目录

1.NFS网络文件系统

2.NFS服务安装


1.NFS网络文件系统

NFS,Network File System,网络文件系统。它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案。

1)NFS服务器端安装步骤

01服务器端安装服务

02服务器端配置端口

03服务器端NFS权限设置

04服务器端防火墙设置

05服务器端启动服务

06NFS客户端的挂载

注意

安装服务之前,需要先查询PRC服务(rpc是先决条件)

安装服务一般需要具有超级用户权限,所以需先切换用户,避免安装出错。

2)查询是否安装服务

# rpm –qa|grep rpcbind

3)服务器端端口配置

# vi /etc/sysconfig/nfs

4)服务器端启动服务

# systemctl start nfs.service

5)卸载NFS共享目录

# umount /mnt/nfs
# ls /mnt/nfs

2.NFS服务安装

1).服务器端安装服务 可以发现,系统默认安装了RPC并且启动了服务。

[root@master ~]# rpm -qa|grep rpcbind
rpcbind-0.2.0-44.el7.x86_64
[root@master ~]# systemctl status rpcbind.service
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2019-03-14 04:19:48 CST; 3 days ago
  Process: 698 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 708 (rpcbind)
    Tasks: 1
   CGroup: /system.slice/rpcbind.service
           └─708 /sbin/rpcbind -w
3月 14 04:19:39 localhost.localdomain systemd[1]: Starting RPC bind service...
3月 14 04:19:48 localhost.localdomain systemd[1]: Started RPC bind service.

2).服务器端配置端口

[root@master ~]# vi /etc/sysconfig/nfs

在文件的最后添加以下内容:

# 追加端口配置
MOUNTD_PORT=4001  
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004

NFS除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口,以上配置将定义这些端口,以便配置防火墙。

3).服务器端NFS权限设置  

NFS权限,对于普通用户: (1)当设置all_squash时:访客时一律被映射为匿名用户(nfsnobody); (2)当设置no_all_squash时:访客被映射为服务器上相同uid的用户,因此在客户端应建立与服务端uid一致的用户,否则也映射为nfsnobody。root除外,因为root_suqash为默认选项,除非指定了no_root_squash。 对于root用户: (1)当设置root_squash时:访客以root用户访问NFS服务端时,被映射为nfsnobody用户; (2)当设置no_root_squash时:访客以root用户访问NFS服务端时,被映射为root用户。以其他用户访问时同样映射为对应uid的用户,因为no_all_squash是默认选项。

以nfsnobody创建共享目录,允许所有客户端写入。

[root@master ~]# mkdir /var/nfs
[root@master ~]# echo 'Hello,world!'>/var/nfs/text.txt
[root@master ~]# chown -R nfsnobody:nfsnobody /var/nfs
[root@master ~]# vi /etc/exports

添加如下内容:

/var/nfs *(rw,sync)

重载exports配置:

[root@master ~]# exportfs -r

查看共享参数:

[root@master ~]# exportfs –v  /var/nfs      
<world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,root_squash,no_all_squash)

注:exportfs参数说明: -a 全部挂载或卸载 /etc/exports中的内容 -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录) -v 输出详细的共享参数

4).服务器端防火墙设置

注意,对于CentOS 7.5以上的版本,其默认安装的防火墙是firewall,不是iptables。 运行以下命令可以设置端口:

[root@master ~]# firewall-cmd --permanent --add-port=111/tcp
success
[root@master ~]# firewall-cmd --permanent --add-port=111/udp
success
[root@master ~]# firewall-cmd --permanent --add-port=2049/tcp
success
[root@master ~]# firewall-cmd --permanent --add-port=2049/udp
success
[root@master ~]# firewall-cmd --permanent --add-port=4001-4004/tcp
success
[root@master ~]# firewall-cmd --permanent --add-port=4001-4004/udp
success

5).服务器端启动服务

运行以下命令:

[root@master ~]# systemctl start nfs.service
[root@master ~]# systemctl enable nfs.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@master ~]# systemctl status nfs.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/generator/nfs-server.service.d
           └─order-with-mounts.conf
   Active: active (exited) since 日 2019-03-17 22:39:51 CST; 2min 10s ago
 Main PID: 83600 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

6).客户端挂载

首先执行如下命令切换用户:

$ su - root

将服务器端NFS共享目录挂载到本地的“/mnt/nfs”目录中:

[root@slave ~]# mkdir /mnt/nfs
[root@slave ~]# mount -t nfs master:/var/nfs /mnt/nfs
[root@slave ~]# ls -l /mnt/nfs
text.txt

要卸载NFS共享目录,则执行如下命令:

[root@slave ~]# umount /mnt/nfs
[root@slave ~]# ls /mnt/nfs

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐