美文网首页linux tools
NFS 及 nfs+sersync实现实时同步

NFS 及 nfs+sersync实现实时同步

作者: 你好_请关照 | 来源:发表于2019-05-30 19:19 被阅读31次

NFS介绍:
全名 NETWORK FILE system
软件组成:rpcbind、NFS-utils
rpc 在centos 5中叫 portmap
NFS 服务名叫做nfsd
rpc 服务端口号:111
配置文件:/etc/eports

NFS服务部署:

1、安装
服务端安装rpc 服务:yum install -y rpcbind nfs-utils
客户端:yum install -y nfs-utils
2、安装完成后查看:
查看服务状态:systemctl is-active rpcbind
查看rpc服务信息:rpcinfo -p ip地址
查看NFS服务共享了多少个目录:showmount -e IP地址
3、编辑配置文件,默认没有内容需要自己添加。

[root@NFS01 ~]# vim /etc/exports
#share /data to web /upload
/data 172.16.1.0/24(rw)
/web_data 172.16.1.0/24(rw)

4、创建目录
mkdir -p /web_data
chown nfsnobody.nfsnobody /web_data
chmod +777 /web_data
5、启动服务端、和客户端服务并查看
systemctl start nfs
showmount -e IP
rpcinfo -p
6、本地测试
本地挂载:mount -t nfs 172.16.1.41:/data /mnt
文件写入测试 touch /mnt/test{01..10}
7、客户端挂载 mount -t nfs 172.16.1.41:/data /mnt (这里的ip指向服务端的IP)

注意:nfs服务修改配置文件,需要重启时,如果使用 systemctl restart nfs 来重启 会有 90s 的无敌时间(或者叫死亡时间),在90s内不会响应。所以尽量使用平滑重启 来重读配置文件即可,Systemctl reload nfs

NFS配置文件里各参数详解:

参数 含义
no_all_squash 所有都不压缩
root_squash 只将root用户压缩为nfsnobody
all_squash 将所有用户都压缩为nfsnobody
anonuid=888 nfsnobody用户UID为888
anongid=888 nfsnobody用户GID为888
sync 同步IO
async 异步IO
rw 读写权限
ro 只读权限

NFS用户压缩:

1、安装NFS服(rpcbind、nfs-utils)
yum install -y rpcbind nfs-utils
2、创建虚拟用户
groupadd -g 888 www
useradd -s /sbin/nologin -M -u 888 -g www www
3、创建nfs 存放文件的目录 web_data
mkdir /web_data
4、修改nfs配置文件 /etc/exports

[root@NFS01 ~]# cat /etc/exports
#share /data to web /upload
/web_data 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
[root@NFS01 ~]# 

5、测试

NFS开机自启动及共享目录自动挂载

思路:
1、服务端rpcbind 和NFS服务处于开机自启动状态
2、客户端自动挂载

排坑:

在centos6 中因为系统从守护进程(init进程)之后,各服务程序开始串行启动,在C6中,先执行挂载,然后启动网络服务,而NFS的挂载又恰好需要网络服务,所以会导致挂载失败。

解决办法:将启动命令写入 /etc/rc.local,或者启动一个netfs的服务

NFS 排错流程:

NFS故障排查思路:
1、检查防火墙 selinux
2、ping 路是否通畅
3、rpcinfo -p ip
4、showmount -e ip
5、查看客户端/proc/mounts
6、查看服务端的/proc/mounts 、/var/lib/nfs/etab
7、查看配置文件

==============================================================

NFS使用mount 挂载时需要使用的一些参数(为了安全,和相对好的性能)

安全相关:
noexec :执行权限相关
nosuid:特殊权限相关
nodev:特殊设备相关
性能相关(至少大于131072)
rsize:每一次读写是的大小
wsize:每一次读写是的大小
时间戳相关
noatime:不更改时间戳,

linux中时间戳包括
mtime:文件内容的更改时间
ctime:文件属性的更改时间
atime:文件的访问时间

磁盘的故障案例 readonly file system

排查思路

1、查看 /proc/mounts 文件中是不是有ro的参数
2、如果有ro 的参数 ,使用 mount 挂载时加上rw参数,mount -o rw ...
3、若查看/proc/mounts 时没有发现挂载点没有ro这个参数,还有可能是磁盘问题导致

汇总mount 命令使用 -o 选项后常用的一些参数

参数 含义
noexec 执行权限相关
nosuid 特殊权限相关
nodev 特殊设备相关
noatime 不更改时间戳
rw 读写权限
ro 只读权限

sersync部署

sersync介绍

功能:实现实时同步

  • sersync 由rsync+inotify组成
  • rsync 实现推送功能
  • inotify 用来监控某个目录下面文件/目录是否发生变化
    sersync原理就是,监控到发生变化的文件或目录,就使用rsync直接推送走

1、搭建好rsync守护进程模式
2、下载sersync_installdir_64bit 软件包(在GitHub上)
3、给这个文件加上执行权限sersync
chmod +x sersync
4、将这个文件软连接至/sbinz中(使用绝对路径)
ln -s /application/sersync/bin/sersync /sbin/
5、编辑vim sersync/conf/confxml.xml

sersync_installdir_64bit配置文件.png
6、 启动:sersync -rdo /application/sersync_installdir_64bit/sersync/conf/confxml.xml 全网备份

相关文章

网友评论

    本文标题:NFS 及 nfs+sersync实现实时同步

    本文链接:https://www.haomeiwen.com/subject/qbhbtctx.html