参考原文,这里对原文做了一些简化,把安装过程整合成了一个shell脚本。
本文介绍如何在centos7上安装NFS,nfs是一个流行的分布式文件协议,它可以允许用户挂载远程目录到客户端目录上.本文介绍如何在centos7上安装NFS服务,以及客户端,并且在客户端上挂载服务器目录。
准备工作
本文安装了2个centos7系统;
ip地址 | 作用 |
---|---|
192.168.3.100 | nfs服务器 |
192.168.3.101 | nfs客户端 |
NFS 服务端
#!/bin/bash
# 参数
export server_ip='192.168.3.100'
export clinent_ip='192.168.3.101'
export path_nfs="/var/nfsshare"
# 安装相关文件
yum install -y nfs-utils
mkdir -p ${path_nfs}
chmod -R 755 ${path_nfs}
chown nfsnobody:nfsnobody ${path_nfs}
# 设置开机启动
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
# 配置客户端
cat >/etc/exports <<EOF
/var/nfsshare ${clinent_ip}(rw,sync,no_root_squash,no_all_squash)
# /home ${clinent_ip}(rw,sync,no_root_squash,no_all_squash)
EOF
# 重启,配置防火墙
systemctl restart nfs-server
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload
NFS 客户端
#!/bin/bash
# 参数
export server_ip='192.168.3.100'
export path_nfs="/var/nfsshare"
# 安装工具
yum install -y nfs-utils
# 挂载
# mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs${path_nfs}
# mount -t nfs ${server_ip}:/home /mnt/nfs/home/
mount -t nfs ${server_ip}:/var/nfsshare /mnt/nfs${path_nfs}
# 添加开机启动
cat >/etc/fstab <<EOF
/var/nfsshare ${server_ip}(rw,sync,no_root_squash,no_all_squash)
# /home ${server_ip}(rw,sync,no_root_squash,no_all_squash)
EOF
结语
- 客户端上查看挂载情况:
[root@localhost nfsshare]# df -kh
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.1G 16G 7% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.4M 912M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
192.168.3.100:/var/nfsshare 17G 1.1G 16G 7% /mnt/nfs/var/nfsshare
tmpfs 184M 0 184M 0% /run/user/0
-
我们可以测试在客户端
/mnt/nfs/var/nfsshare
目录下新建,修改文件,在服务器也能够同步出现该文件。 -
/etc/exports语法
#:允许ip地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。
/home/work 192.168.3.*(rw,sync,root_squash)
/home 192.168.3.120 (rw,sync)
/public * (rw,sync)
配置文件每行分为两段:第一段为共享的目录,使用绝对路径,第二段为客户端地址及权限。
地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com
权限有:
rw:read-write,可读写; 注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
- 卸妆目录
umount -l 192.168.3.93:/var/nfsshare
网友评论