共计 3731 个字符,预计需要花费 10 分钟才能阅读完成。
NFS(network file system) 网络文件系统,类似 Windows 中的文件夹共享,如下有三台机器 A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到 A, B, C。但是使用 NFS 只需要放到 A 上,然后 A 共享给 B 和 C 即可。访问的时候,B 和 C 是
通过网络的方式去访问 A 上的那个目录。
一、在 A 机上安装 NFS 服务器所需的软件包:
yum install -y nfs-utils
(实际上需要安装两个包 nfs-utils 和 rpcbind, 不过当使用 yum 安装 nfs-utils 时会把 rpcbind 一起安装上)
二、编辑 exports 文件,添加从机
vim /etc/exports
/home/nfs 192.168.222.201(rw,sync,fsid=0) 192.168.222.202(rw,sync,fsid=0)
配置说明:
这一行分为三个部分:
第一部分:/home/nfs,这个是本地要共享出去的目录。
第二部分:192.168.222.0/24,允许访问的主机,可以是一个 IP:192.168.222.201,也可以是一个 IP 段:192.168.222.0/24
第三部分:括号中部分。
rw 表示可读写,ro 只读;
sync:同步模式,内存中数据时时写入磁盘;async:不同步,把内存中数据定期写入磁盘中;
no_root_squash:加上这个选项后,root 用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;root_squash:和上面的选项对应,root 用户对共享目录的权限不高,只有普通用户的权限,即限制了 root;all_squash:不管使用 NFS 的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid:要和 root_squash 以及 all_squash 一同使用,用于指定使用 NFS 的用户限定后的 uid 和 gid,前提是本机的 /etc/passwd 中存在这个 uid 和 gid。
fsid= 0 表示将 /home/nfs 整个目录包装成根目录
这个配置文件也可以这样写:
/opt/test/ 192.168.222.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
三、启动 A 机上 nfs 服务
先为 rpcbind 和 nfs 做开机启动:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
然后分别启动 rpcbind 和 nfs 服务:
systemctl start rpcbind.service
systemctl start nfs-server.service
确认 NFS 服务器启动成功:
rpcinfo -p
通过查看 service 列中是否有 nfs 服务来确认 NFS 是否启动。
showmount -e 192.168.222.200
查看可挂载目录及可连接的 IP
四、关闭 A 机上的防火墙或者给防火墙配置 nfs 的通过规则
还是关闭简单啊!
systemctl stop firewalld.service
五、在 B,C 机上配置 clinet 端
1、安装 nfs,并启动服务。
yum install -y nfs-utils
systemctl enable rpcbind.service
systemctl start rpcbind.service
客户端不需要启动 nfs 服务,只需要启动 rpcbind 服务.
2、检查 NFS 服务器端是否有目录共享
showmount -e 192.168.222.200
3、使用 mount 挂载 A 服务器端的目录 /home/nfs 到客户端 B 的目录 /home/nfs 下
[root@localhost ~]# mkdir /home/nfs
[root@localhost ~]# mount -t nfs 192.168.222.200:/home/nfs/ /home/nfs/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/mapper/CentOS-root 11G 1.3G 9.1G 13% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 921M 0 921M 0% /dev/shm
tmpfs 921M 8.5M 912M 1% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/sda1 497M 170M 328M 35% /boot
tmpfs 185M 0 185M 0% /run/user/0
192.168.222.200:/home/nfs 11G 1.3G 9.1G 13% /home/nfs
4、挂载完成,可以正常访问本机下的 /home/nfs,如果在服务端 A 在共享目录 /home/nfs 中写入文件,B、C 机上可以看到,但是不能在这个目录中写入文件.
六、在服务器端 A 再建立一个共享目录,并且可以允许 A、B、C 写入共享目录
1、在 B、C 机上取得 root 用户 ID 号
[root@localhost home]# id root
uid=0(root) gid=0(root) 组 =0(root)
2、在 A 服务器上再建立一个共享目录
mkdir /home/nfs1
# vim /etc/exports
/home/nfs 192.168.222.201(rw,sync,fsid=0) 192.168.222.202(rw,sync,fsid=0)
/home/nfs1 192.168.222.0/24(rw,sync,all_squash,anonuid=0,anongid=0)
加入第二行,anonuid=0,anongid= 0 即为 root 用户 id。
3、让修改过的配置文件生效
exportfs –arv
使用 exportfs 命令,当改变 /etc/exports 配置文件后,不用重启 nfs 服务直接用这个 exportfs 即可,它的常用选项为 [-aruv].
-a:全部挂载或者卸载;
-r:重新挂载;
-u:卸载某一个目录;
-v:显示共享的目录;
4、查看新的可挂载目录及可连接的 IP
showmount -e 192.168.222.200
5、在 B、C clinet 端新挂载一个目录
showmount -e 192.168.222.200 #查看新的挂载共享目录是否有了。
mkdir nfs1
mount -t nfs 192.168.222.200:/home/nfs1/ /home/nfs1/
ll / >/home/nfs1/ll.txt #测试向新的共享目录中可以写入文件了。
(卸载挂载:umount /home/nfs1/)
6、想在客户机 B、C 上实现开机挂载,则需要编辑 /etc/fstab:
vim /etc/fstab
加入以下内容:
192.168.222.200:/home/nfs /home/nfs nfs nolock 0 0
192.168.222.200:/home/nfs1 /home/nfs1 nfs nolock 0 0
保存后,重新挂载
mount -a
NFS 文件系统详解 http://www.linuxidc.com/Linux/2016-06/131940.htm
Ubuntu 12.04 安装 NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm
NFS 服务器安装配置实现 Ubuntu 12.04 与 ARM 文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm
Ubuntu 搭建 nfs 服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm
文件服务器 NFS 配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm
Ubuntu 下搭建 NFS 网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm
Heartbeat_ldirector+LB+NFS 实现 HA 及 LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm
CentOS 5.5 配置 NFS 服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm
Ubuntu 12.10 下 NFS 的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-10/135970.htm