nfs网络文件存储

一.服务端和客户端都安装nfs
1.nfs安装
#yum install -y nfs-utils
2.开放随机启动
centos6
chkconfig rpcbind on
chkconfig nfs on
centos7
systemctl enable rpcbind
systemctl enable nfs
3.启动服务
centos6
service rpcbind start
service nfs start
centos7
systemctl start rpcbind
systemctl start nfs
-------------------------------------------------------------------------
二.服务端linux目录的共享:
首先需要共享要挂载的文件夹,操作如下:
1、以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等
# vi /etc/exports
具体的权限包括以下几种:
Ro 只读权限
Rw读写权限
Sync数据同步写入内存硬盘
no_root_squash 访问共享目录时,用户如果是root权限,对共享目录也具有root权限(最好不要设置,增加服务安全隐患)
root_squash 如果访问共享目录是root的权限用户,对共享目录的权限会被压缩为nfsnobody用户的权
all_squash 不管你访问共享目录的用户是谁,都必须压缩为nfsnobody用户的权限

2、增加如下内容:
/video *(rw,fsid=0,sync) (*可以换成具体ip)(挂载目录后没有写入权限时将sync改为no_root_squash)

临时 /usr/share/nginx/html/disk 192.168.100.2(rw,fsid=0,no_root_squash)

showmount -e localhost //检查
showmount -e x.x.x.x (客户端ip)

假设服务器端要共享的目录是/var/shared/folder1 和 /var/shared/folder2。客户端要分别将这两个目录挂载到 /var/folder1 和 /var/folder2。则/etc/exports文件的配置为:
/var/shared clientHostIP(rw,fsid= 0 ,sync)
/var/shared/folder1 clientHostIP(rw,sync)
/var/shared/folder2 clientHostIP(rw,sync)
重要的是第一行中的“fsid=0”,其含义表示要共享的目录的最上层父目录,folder1 和 folder2的最上层父目录即为/var/shared。“fsid=0”这个配置在/etc/exports中只能出现一次,不然会有问题,不能正确挂载

3、保存退出,执行如下命令:
# service nfs restart
-----------------------------------------------------------------------
三.客户机上创建挂载的目标文件夹
执行如下命令:
# vi /etc/fstab
输入如下指令:
1.1.1.239:/video/ /media/239/ nfs defaults 0 0
其中:
第一个串为原始路径
第二个串为挂载后的路径
第三个串为挂载类型
第四个串为默认属性
最后是2个0
保存退出,重启linux后完成自动挂载
单次挂载测试指令:
mount -t nfs 1.1.1.239:/video/ /media/239/

挂载时如果报错 mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
则在挂载命令-t nfs 后面加上 -o nolock参数
也可以同时加 -o nolock,nfsvers=3 指定版本
需要关闭防火墙 暂不知具体端口
-------------------------------------------------------------------------
四,解除挂载
umount -lf /media/239/ 强制解除挂载