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
全网备份