NFS服务的搭建与配置

原创
2019/05/24 22:26
阅读数 427

NFS的服务器介绍:

NFS是Network File System的缩写
 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本
 NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。
 NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

NFS的原理图:

NFS服务器的安装与配置:

yum install -y nfs-utils rpcbind
 vim /etc/exports //加入如下内容
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
 保存配置文件后,执行如下准备操作
 mkdir /home/nfstestdir
 chmod 777 /home/nfstestdir
 systemctl start rpcbind
 systemctl start nfs
 systemctl enable rpcbind
 systemctl enable nfs

 

[root@aming01 ~]# vim /etc/exports  //编辑配置文件信息
[root@aming01 ~]# cat /etc/exports
/home/nfstestdir  192.168.88.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
[root@aming01 ~]# mkdir  /home/nfstestdir  //创建共享的目录
[root@aming01 ~]# chmod 777 /home/nfstestdir/
[root@aming01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      944/nginx: master p
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      890/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      988/master          
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      944/nginx: master p
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      890/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      988/master          
tcp6       0      0 :::3306                 :::*                    LISTEN      1326/mysqld         
[root@aming01 ~]# systemctl start nfs     //启动nfs
[root@aming01 ~]# ps aux|grep nfs
root       2675  0.0  0.0      0     0 ?        S<   15:19   0:00 [nfsd4_callbacks]
root       2681  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2682  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2683  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2684  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2685  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2686  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2687  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2688  0.0  0.0      0     0 ?        S    15:19   0:00 [nfsd]
root       2722  3.0  0.0 112724   988 pts/0    R+   15:19   0:00 grep --color=auto nfs
[root@aming01 ~]#

NFS配置选项:

 rw 读写
 ro 只读
 sync 同步模式,内存数据实时写入磁盘
 async 非同步模式
 no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
 root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
 all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
 anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

客户端挂载:

yum install -y nfs-utils
 showmount -e 192.168.133.130 //该ip为NFS服务端ip
 mount -t nfs 192.168.133.130:/home/nfstestdir /mnt
 df -h
 touch /mnt/aminglinux.txt
 ls -l /mnt/aminglinux.txt //可以看到文件的属主和属组都为1000

 

exportfs的命令

 常用选项
 -a 全部挂载或者全部卸载
 -r 重新挂载
 -u 卸载某一个目录
 -v 显示共享目录
 以下操作在服务端上
vim /etc/exports //增加
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
 exportfs -arv //不用重启nfs服务,配置文件就会生效

[root@aming01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        38G  4.1G   34G   11% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.6M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1       252M  100M  153M   40% /boot
tmpfs            98M     0   98M    0% /run/user/0
[root@aming01 ~]# exportfs -arv
exporting 192.168.88.0/24:/home/nfstestdir
[root@aming01 ~]# vim /etc/exports
[root@aming01 ~]# cat /etc/exports
/home/nfstestdir  192.168.88.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp   192.168.88.129(rw,sync,no_root_squash)
[root@aming01 ~]# exportfs -arv
exporting 192.168.88.129:/tmp
exporting 192.168.88.0/24:/home/nfstestdir
[root@aming01 ~]# ls /tmp/

 

 以下操作在客户端
 mkdir /aminglinux
 mount -t nfs -onolock 192.168.133.130:/tmp /aminglinux
 touch /aminglinux/test.txt
 ls -l !$
 -oremount,nfsvers=3

[root@aming02 mnt]# showmount -e 192.168.88.128
Export list for 192.168.88.128:
/home/nfstestdir 192.168.88.0/24
/tmp             192.168.88.129
[root@aming02 mnt]# mount -t nfs 192.168.88.128:/tmp/  /mnt/
[root@aming02 mnt]# ls /mnt/

 

客户端文件属主属组nobody

 NFS 4版本会有该问题
 客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
 客户端挂载时加上 -o nfsvers=3
 客户端和服务端都需要
 vim /etc/idmapd.conf //
 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部