NFS介绍
NFS即网络文件系统,允许网络中的计算机之间通过TCP/IP网络共享资源,在NFS的应用中,本地的NFS的客户端应用可以透明的读写位于远端的NFS服务器上的文件,就像访问本地文件一样。
NFS的好处:节省本地储存空间,将常用的数据库存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少本身存储空间使用,含可以透明化。
NFS两大组成部分
- NFS服务端机器:通过NFS协议将文件共享到网络。
- NFS客户端机器:通过网络挂载NFS共享目录到本地。
应用场景
共享储存服务器: 图片服务器、视屏服务器等。
家目录漫游: 域网用户家目录服务器。
文件服务器: 内容文件处存服务器。
NFS权限与管理命令说明
权限
权限 | 权限说明 |
---|---|
ro | 只读访问 |
rw | 读写访问 |
sync | 所有数据在请求时写入共享 |
async | NFS再写入数据前可以相应请求 |
secure | NFS通过1024一下的安全TCP/IP端口发送 |
insecure | NFS通过1024以上端口发送 |
wdelad | 如果多个用户要写入NFS目录,则归组写入(默认) |
no_wdelad | 如果多个用户要写入NFS目录,则立即写入,当使用async时无需设置 |
hide | 在NFS共享目录中不共享的子目录 |
no_hide | 共享NFS目录的子目录 |
subtree_check | 如果共享/usr/bin之类的子目录时,强制NFS检测父目录的权限(默认) |
no_subtree_check | 和上面的相对,不检测父目录权限 |
all_squash | 共享文件的UID和GID映射匿名用户anonymous,适合公用目录 |
no_all_squash | 保留文件的UID和GID(默认) |
root_squash root | 用户的所有请求映射成如anonymous用户一样的权限(默认) |
no_root_squash root | 用户具有根目录的完全管管理访问权限 |
anonuid=xxx | 指定NFS服务器/etc/passwd文件中匿名用户的UID |
anongid=xxx | 指定NFS服务器/etc/passwd文件中匿名用户的GID |
管理命令
exportfs:管理NFS共享文件系统列表
选项 | 解释 |
---|---|
-a | 全部挂载或者全部卸载 |
-r | 重新挂载 |
-u | 卸载某一个目录 |
-v | 显示共享目录 |
NFS安装有共享
NFS安装
NFS服务端:192.168.1.55
[root@localhost ~]# yum -y install nfs-utils.x86_64 ##下载nfs服务软件
[root@localhost ~]# yum -y install rpcbind ##解决nfs服务的依赖关系必备包
[root@localhost ~]# systemctl start nfs-utils rpcbind ##开启nfs服务
[root@localhost ~]# systemctl stop firewalld ##关闭防火墙
[root@localhost ~]# systemctl disable firewalld ##取消开机自启(防火墙)
[root@localhost ~]# setenforce 0 ##关闭seliunx
- 重点配置启动服务时注意把nfs-utils和rpcbind一起启动,否则会报错。
- 修改配置文件,把本地某文件共享到网络。
/etc/exports文件中的书写格式如下: - 要共享的文件 共享的IP地址,0代表任意(共享的权限,每个权限中间要用逗号隔开)
范例:/test/study 192.168.1.0/0(rw,sync)
[root@bogon ~]# mkdir /test ##创建一个共享目录
[root@bogon ~]# chmod 757 /test ##赋权与第三者可读写能力
[root@bogon ~]# vim /etc/exports ##配置文件中定义共享文件
[root@bogon ~]# cat /etc/exports
/test 192.168.1.56/24(rw,sync) ##把test共享到192.168.1.56网段,并所有数据在请求时写入文件
[root@bogon ~]# exportfs -r ##重新新加载共享文件
[root@bogon ~]# showmount -e 192.168.1.55
Export list for 192.168.1.55
/tang/yanwei 192.168.1.56/24
客户端:192.168.1.56
[root@localhost ~]# mount -t nfs 192.168.1.55:/test /mnt ##挂载网络共享文件到/mnt上
开机自动挂在的目录
[root@bogon ~]# vim /etc/fstab
192.168.1.55:/test /mnt nfs defaults 0 0
NFS共享问题解答
- 为什么没有权限写入呢?如图1
应为NFS共享文件会默认创建一个,第三方用户 nfsnobody 来管理NFS服务端的文件。 - 为什么在客户端有可写权限但无法修改文件呢?
应为NFS网络共享存储服务是以服务端的权限为准的。
NFS服务端:
这是客户端: