NFS服务挂载不上排查方法
服务端排查
- 检查nfs进程信息是否注册
服务启动顺序不对,没有启动nfs服务,先启动rpc再启动nfs
rpcinfo -p 172.16.1.31
- 检查有没有可用存储目录
配置文件编写有问题,重启nfs服务
showmount -e 172.16.1.31
- 在服务端进行挂载测试
是否能够在存储目录中创建或删除数据
客户端排查
- 检查nfs进程信息是否注册
服务启动顺序不对,没有启动nfs服务,先启动rpc再启动nfs
rpcinfo -p 172.16.1.31
- 检查有没有可用存储目录
配置文件编写有问题,重启nfs服务
showmount -e 172.16.1.31
- 检查网络情况
ping 172.16.1.31
telnet 172.16.1.31 111
开机自动挂载NFS
- 将挂载命令写入
/etc/rc.local
文件要有执行权限 - 在
/etc/fstab
目录中添加挂载信息
Centos6必须启动
netfs
Centos7必须启动
remote-fs.target
- 查看所有开机运行的服务
ll /etc/systemd/system/multi-user.target.wants
实时同步服务原理
- 需要部署好rsync守护进程服务,实现数据传输
- 需要部署好inotify服务,实现目录中数据变化监控
- 将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
实时同步服务部署
主机名称和IP地址规划
服务 | 主机名 | eth0网卡IP | eth1网卡IP | 软件 |
---|---|---|---|---|
防火墙服务器 | firewalld | 10.0.0.81 | 172.16.1.81 | firewalld |
负载均衡服务器 | lb01 | 10.0.0.5 | 172.16.1.5 | nginx,keepalived |
负载均衡服务器 | lb02 | 10.0.0.6 | 172.16.1.6 | nginx,keepalived |
web服务器 | web01 | 10.0.0.7 | 172.16.1.7 | nginx |
web服务器 | web02 | 10.0.0.8 | 172.16.1.8 | nginx |
web服务器 | web03 | 10.0.0.9 | 172.16.1.9 | nginx |
存储服务器 | nfs01 | 10.0.0.31 | 172.16.1.31 | nfs |
备份服务器 | backup | 10.0.0.41 | 172.16.1.41 | rsync |
数据库服务器 | db01 | 10.0.0.51 | 172.16.1.51 | mysql,mariaDB |
批量管理服务器 | m01 | 10.0.0.61 | 172.16.1.61 | ansible |
跳板机服务器 | jumpserver | 10.0.0.71 | 172.16.1.71 | jumpserver |
监控服务器 | zabbix | 10.0.0.72 | 172.16.1.72 | zabbix |
缓存服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
部署rsync守护进程
部署inotify
监控服务
安装软件
#存储服务器10.0.0.31
yum install -y inotify-tools
熟悉命令的使用
/usr/bin/inotifywait
监控目录数据信息变化/usr/bin/inotifywatch
对监控的变化信息进行统计
inotifywait
命令参数
- 使用方法: inotifywait [参数] 监控的目录
- -m : monitor 实现一直监控目录的数据变化
- -r : recursive 进行递归监控
- -q : quiet 尽量减少信息的输出
- --format
: 指定输出信息的格式 - --timefmt : 指定输出的时间信息格式
- -e : event 指定监控的事件信息
事件列表
sed
命令修改文件原理
/data/ OPEN 1997sty #打开文件
/data/ CREATE sedSZeS11 #创建临时文件
/data/ OPEN sedSZeS11 #打开临时文件
/data/ ACCESS 1997sty #读取文件内容
/data/ MODIFY sedSZeS11 #修改临时文件
/data/ ATTRIB sedSZeS11 #临时文件属性变化
/data/ CLOSE_NOWRITE,CLOSE 1997sty #不编辑直接关闭文件
/data/ CLOSE_WRITE,CLOSE sedSZeS11 #写入关闭临时文件
/data/ MOVED_FROM sedSZeS11 #移动一个来自`sedSZeS11`临时文件
/data/ MOVED_TO 1997sty #移入到`1997sty`文件
inotify监控命令格式
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
企业中,防止系统重要文件被破坏,需要用到
inotify
进行实时监控/etc/passwd
,/var/spool/cron/root
部署sersync
同步服务
从github获取sersync
解压到服务器
/usr/local/sersync/
中
sersync/
├── confxml.xml #sersync软件配置
└── sersync2 #sersync软件命令
编写配置文件
- 执行备份命令
rsync -avz /data rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
confxml.xml
配置文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<!-- 排除指定数据信息不进行实时传输同步 -->
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<!-- 定义inotify程序需要监控的事件 -->
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>
<sersync>
<!-- 配置rsync参数 -->
<localpath watch="/data">
<remote ip="172.16.1.41" name="backup"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="true" port="873"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>
<plugin name="command">
<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">
<include expression="(.*)\.php"/>
<include expression="(.*)\.sh"/>
</filter>
</plugin>
<plugin name="socket">
<localpath watch="/opt/tongbu">
<deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<plugin name="refreshCDN">
<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
<sendurl base="http://pic.xoyo.com/cms"/>
<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
</localpath>
</plugin>
</head>
sersync
命令参数
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
启动
sersync
服务
/usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
停止
sersync
服务
[root@nfs01 data]# ps -ef|egrep 'sersync'
root 4913 1 0 20:19 ? 00:00:00 /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
root 4929 4369 0 20:19 pts/0 00:00:00 grep -E --color=auto sersync
[root@nfs01 data]# kill 4913
[root@nfs01 data]# ps -ef|egrep 'sersync'
root 4931 4369 0 20:19 pts/0 00:00:00 grep -E --color=auto sersync
开机自动启动
echo '/usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml' >> /etc/rc.local
最后一次更新于2020-01-10 21:30
0 条评论