一、搭建NFS服务
1.安装服务
[root@nfs ~]#yum -y install nfs-utils
2.配置服务
[root@nfs ~]#vim /etc/exports #安装后默认生成 空文件
/data 172.16.1.0/24(rw,sync,all_squash)
/data #共享的目录
172.16.1.0/24 #允许哪个网段可以挂载
rw #挂载的参数 可读写
sync #表示所有的I/O操作都将被同步到存储设备上,这意味着数据在写入磁盘后才会返回写入成功的确认。
all_squash #表示所有的客户端用户和组都会被映射为匿名用户(通常是nobody或nogroup),这样做可以防止客户端用户对NFS服务器上的文件拥有不同的权限。
3.根据配置创建必要的数据信息
#参数中使用的all_squash用户的身份压缩,压缩成哪个用户就使用哪个用户的身份往/data中写数据
创建目录 /data
[root@nfs ~]#mkdir /data
4.启动服务
[root@nfs ~]#systemctl start nfs
[root@nfs ~]#systemctl enable nfs
5.查看服务启动参数
#需要参数存在说明配置文件没问题,如果参数不存在说明配置文件出错。
[root@nfs ~]#cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
通过uid查找用户
[root@nfs ~]#cat /etc/passwd |grep 65534
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
6.修改/data的属主属组
[root@nfs ~]#chown nobody.nobody /data
[root@nfs ~]#ll -d /data
drwxr-xr-x 2 nobody nobody 6 Dec 3 20:49 /data
7.测试
1.安装nfs-utild
[root@web01 ~]#rpm -qa nfs-utild
2.查看共享的文件
[root@web01 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.挂载使用
[root@web01 ~]#mkdir /img
[root@web01 ~]#mount -t nfs 172.16.1.31:/data /img
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.8M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.31:/data 48G 3.8G 45G 8% /img
写入测试
[root@web01 ~]#touch /img/{1..3}.txt
[root@nfs ~]#ll /data/
total 0
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 1.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 2.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 3.txt
#bakcup 挂载
[root@backup ~]#mount -t nfs 172.16.1.31:/data /img
[root@backup ~]#ll /img/
total 0
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 1.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 2.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 3.txt
-rw-r--r-- 1 666 666 0 Dec 3 21:16 4.txt
8.写入开机自启动
[root@web01 ~]#vim /etc/fstab
172.16.1.31:/data /img nfs defaults 0 0
#建议写入/etc/rc.local
[root@web01 ~]#vim /etc/rc.local
mount -t nfs 172.16.1.31:/data /img
#因为开机自启动的时候网络和自动挂载是同时进行 容易造成没有挂载成功
二、NFS参数
/data 172.16.1.0/24(ro,sync,all_squash)
ro #表示客户端只读权限
[root@nfs ~]#groupadd -g666 www
[root@nfs ~]#useradd -u666 -g666 -M -s /sbin/nologin www
[root@nfs ~]#id www
uid=666(www) gid=666(www) groups=666(www)
[root@nfs ~]#chown www.www /data
[root@nfs ~]#ll -d /data
drwxr-xr-x 2 www www 45 Dec 3 21:06 /data
[root@nfs ~]#cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
[root@web01 ~]#umount /img
[root@web01 ~]#!mount
mount -t nfs 172.16.1.31:/data /img
[root@web01 ~]#touch /img/4.txt
[root@web01 ~]#ll /img/
total 0
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 1.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 2.txt
-rw-r--r-- 1 nobody nobody 0 Dec 3 21:06 3.txt
-rw-r--r-- 1 666 666 0 Dec 3 21:16 4.txt
三、夯住解决方法
1.挂载到NFS
2.将NFS的内网网卡关闭
3.df -h 夯住
解决方法:
1.启动网卡
2.强制卸载挂载点
[root@web01 ~]#umount -f /img
3.如果不知道挂载点,查看/proc/mounts信息
[root@web01 ~]#cat /proc/mounts
172.16.1.31:/data /img nfs4 rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0
然后卸载
实例
backup服务器
#搭建rsync服务
1.安装
[root@backup ~]#yum -y install rsync
2,修改配置文件
[root@backup ~]#cat /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup
[nfs]
path = /nfs
3.创建用户
[root@backup ~]#groupadd -g666 www
[root@backup ~]#useradd -u666 -g666 -M -s /sbin/nologin www
4.创建密码文件并修改权限
[root@backup ~]#cat /etc/rsync.passwd
rsync_backup:123456
[root@backup ~]#chmod 600 /etc/rsync.passwd
5.创建目录并修改属主属组
[root@backup ~]#mkdir /backup /nfs
[root@backup ~]#chown www.www /backup /nfs
6.启动rsyncd服务
[root@backup ~]#systemctl start rsyncd
[root@backup ~]#systemctl enable rsyncd
#搭建nfs服务
7.安装nfs-utilsf
[root@backup ~]#yum -y install nfs-utils
8.修改配置文件
[root@backup ~]#vim /etc/exports
/nfs 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
9.启动服务
[root@backup ~]#systemctl start nfs
10.查看
[root@backup ~]#cat /var/lib/nfs/etab
/nfs 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
nfs服务器
#搭建nfs服务
1.安装
[root@nfs ~]#yum -y install nfs-utils
2.修改配置文件
[root@nfs ~]#cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3.创建用户
[root@nfs ~]#groupadd -g666 www
[root@nfs ~]#useradd -u666 -g666 -M -s /sbin/nologin www
4.创建目录并修改属主属组
[root@nfs ~]#mkdir /data
[root@nfs ~]#chown www.www /data
5.启动nfs服务
[root@nfs ~]#systemctl start nfs
6.查看
[root@nfs ~]#cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
#搭建lsync服务
1.安装lsync
[root@nfs ~]#yum -y install lsyncd
2.修改配置文件
[root@nfs ~]#vim /etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log", -- 日志文件所在的位置
statusFile = "/var/log/lsyncd/lsyncd.status", -- 状态文件日志所在的位置
maxProcesses = 2, -- 最大的进程数量,内核的数量保持一致
nodaemon = false, -- 以守护进程方式来运行
}
sync {
default.rsync, -- 默认用rsync命令
source = "/data/", -- 实时监控/data目录,只要发生变化立刻推送到backup
target = "rsync_backup@10.0.0.41::nfs", -- 通过rsync守护进程命令来推送数据
delete = true, -- 使用--delete参数来实时同步
delay = 1, -- 1秒钟同步一次
rsync = {
binary = "/usr/bin/rsync", -- 命令所在的位置
password_file = "/etc/rsyncd.pwd", -- 密码的配置文件
archive = true, -- 使用-a参数
compress = true, -- 使用-z参数
}
}
3.创建密码文件并修改权限
[root@nfs ~]#vim /etc/rsyncd.pwd
123456
[root@nfs ~]#chmod 600 /etc/rsyncd.pwd
4.启动lsync服务
web01服务器
创建目录/img
[root@web01 ~]#mkdir /img
查看可挂载目录
[root@web01 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
[root@web01 ~]#showmount -e 172.16.1.41
Export list for 172.16.1.41:
/nfs 172.16.1.0/24
将命令img挂载到nfs的/data目录
[root@web01 ~]#mount -t nfs 172.16.1.31:/data /img/
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.8M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.31:/data 48G 3.8G 45G 8% /img
模拟nfs挂掉
关闭 nfs ens36
[root@nfs ~]#ifdown ens36
[root@web01 ~]#df -h
^C
夯住了
1.卸载挂载
[root@web01 ~]#umount -f /img
2.挂载backup
[root@web01 ~]#mount -t nfs 172.16.1.41:/nfs /img
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.8M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.41:/nfs 48G 3.8G 45G 8% /img
[root@web01 ~]#!vim
#!/bin/bash
ping -c1 -w1 172.16.1.31
if [ $? -ne 0 ];then
umount -f /img &> /dev/null &
sleep 2
umount -f /img &> /dev/null
mount -t nfs 172.16.1.41:/nfs /img
fi
[root@nfs ~]#ifdown ens36
[root@web01 ~]#sh m.sh
PING 172.16.1.31 (172.16.1.31) 56(84) bytes of data.
--- 172.16.1.31 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/sda3 48G 3.8G 45G 8% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 195M 122M 74M 63% /boot
tmpfs 95M 0 95M 0% /run/user/0
172.16.1.41:/nfs 48G 3.8G 45G 8% /img
Comments NOTHING