[root@NFS ~]# rpm -qa nfs-utils rpcbind
[root@NFS ~]# yum -y install nfs-utils rpcbind #使用 yum 安装nfs 和 rpc
[root@NFS ~]# mkdir -p /data/nfs/
[root@NFS ~]# chmod 777 /data/nfs/
[root@NFS ~]# ll /data/
[root@NFS ~]# cat >>/etc/exports< /data/nfs 10.10.15.20(rw,sync,no_subtree_check) 10.10.12.198(rw,sync,no_subtree_check)
> EOF
[root@NFS ~]# cat /etc/exports
/data/nfs 10.10.15.20(rw,sync,no_subtree_check) 10.10.12.198(rw,sync,no_subtree_check)
[root@NFS ~]#
其中:/data/nfs 是服务器端共享的目录
10.10.15.20和10.10.12.198 是共享目录的客户端ip地址(rw,sync),其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
[root@NFS ~]# exportfs -r #让配置文件生效
service rpcbind start #启动rpc
service nfs start #启动nfs
service rpcbind status #查看rpc运行状态
service nfs status #查看nfs运行状态
[root@NFS ~]# rpcinfo -p localhost
选项与参数:
-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;
[root@NFS ~]# showmount -e localhost
Export list for localhost:
/data/nfs 10.10.12.198,10.10.15.20
[root@NFS ~]#
选项与参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。
参数说明:
#rpcinfo -p 检查nfs服务是否有注册端口信息
#showmount -e 检查共享目录信息
[root@rsync ~]# rpm -qa nfs-utils rpcbind
[root@rsync ~]# yum -y install nfs-utils rpcbind
[root@rsync ~]# service rpcbind start #启动rpc
[root@rsync ~]# service nfs start #启动nfs
[root@rsync]# mkdir -p /data/nfs
[root@rsync nfs]# showmount -e 10.10.50.9
Export list for 10.10.50.9:
/data 10.10.12.198,10.10.15.20
[root@rsync nfs]#
mount -t nfs 10.10.50.9:/data/nfs /data/nfs
[root@localhost nfs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 23G 28G 45% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 8.9M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/mapper/centos-home 407G 6.0G 401G 2% /home
/dev/sda1 1014M 147M 868M 15% /boot
tmpfs 770M 0 770M 0% /run/user/0
10.10.50.9:/data/nfs 50G 21G 30G 42% /data/nfs
服务端:
[root@NFS nfs]# echo "nfs" > test.txt
客户端:
[root@rsync data]# cat /data/nfs/test.txt
nfs
1,在部署nfs的时候,共享了一个文件夹。为了让远程nfs客户端挂载这个文件夹的时候都有可读写权限,我需要把服务器上的用户uid、gid设置成nfs服务端文件夹一样的权限。不过因为之前新建的用户uid、gid都是系统自动生成的,几台服务器之前某个用户的uid、gid可能都不一样,
解决方法
1. 需要把这个uid、gid都设置成统一某个值。
# usermod -u 2005 thn
# groupmod -g 2005 thn
thn用户的家目录下面的文件属主和属组会在命令执行后自动修改成新的uid、gid对应的属主 属 组,但是其他文件目录需要手动修改。手动修改的命令也比较简单。
# find / -user 2001 -exec chown -h thn {} \;
# find / -group 2001 -exec chgrp -h thn {} \;
这样用户和组的uid、gid就修改好了。可以用id命令看下是否修改的如我们所愿。
# ls -l /home/thn/
# id -u thn
# id -g thn
# grep thn /etc/passwd
# grep thn /etc/group
2.
服务端
# echo N > /sys/module/nfsd/parameters/nfs4_disable_idmapping
# service rpcbind restart
客户端
# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
# service rpcbind restart
现在在服务端和客户端将发送字符串主体而不是数字 ID