CentOS 7.2 搭建NFS文件系统

NFS服务简介

NFS是Network File System的缩写及网络文件系统。它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据。

CentOS 7.2 系统下 NFS服务器部署

1,让我们先来准备2台服务器

服务器系统

角色

内网IP

主机名

挂载目录

CentOS 7.2

NFS服务端

eth1:192.168.14.10

DEV-COM-NFS-01

/data/nfs

CentOS 7.2

NFS客户端

eth1:192.168.14.10

DEV-APP-MSG-01

/data/nfsdata

2,服务器安装nfs

[root@DEV-COM-NFS-01 ~]# yum -y install nfs-utils

安装过程就此省略了,知道看到如下输出,就表示安装成了

以上省略若干报文
......
"/etc/exports" 1L, 49C written                                                                                                                                                                                                                
  Verifying  : selinux-policy-targeted-3.13.1-60.el7.noarch                                                                                                                                                                                               32/45 
  Verifying  : libsemanage-2.1.10-18.el7.x86_64                                                                                                                                                                                                           33/45 
  Verifying  : systemd-sysv-219-19.el7.x86_64                                                                                                                                                                                                             34/45 
  Verifying  : libgudev1-219-19.el7.x86_64                                                                                                                                                                                                                35/45 
  Verifying  : systemd-219-19.el7.x86_64                                                                                                                                                                                                                  36/45 
  Verifying  : selinux-policy-3.13.1-60.el7.noarch                                                                                                                                                                                                        37/45 
  Verifying  : krb5-libs-1.13.2-10.el7.x86_64                                                                                                                                                                                                             38/45 
  Verifying  : systemd-libs-219-19.el7.x86_64                                                                                                                                                                                                             39/45 
  Verifying  : libselinux-utils-2.2.2-6.el7.x86_64                                                                                                                                                                                                        40/45 
  Verifying  : cryptsetup-libs-1.6.7-1.el7.x86_64                                                                                                                                                                                                         41/45 
  Verifying  : libselinux-python-2.2.2-6.el7.x86_64                                                                                                                                                                                                       42/45 
  Verifying  : libsepol-2.1.9-3.el7.x86_64                                                                                                                                                                                                                43/45 
  Verifying  : policycoreutils-2.2.5-20.el7.x86_64                                                                                                                                                                                                        44/45 
  Verifying  : libselinux-2.2.2-6.el7.x86_64                                                                                                                                                                                                              45/45 

Installed:
  nfs-utils.x86_64 1:1.3.0-0.65.el7                                                                                                                                                                                                                             

Dependency Installed:
  gssproxy.x86_64 0:0.7.0-26.el7       keyutils.x86_64 0:1.5.8-3.el7       libbasicobjects.x86_64 0:0.1.1-32.el7  libcollection.x86_64 0:0.7.0-32.el7     libevent.x86_64 0:2.0.21-4.el7  libini_config.x86_64 0:1.3.1-32.el7  libnfsidmap.x86_64 0:0.25-19.el7 
  libpath_utils.x86_64 0:0.2.1-32.el7  libref_array.x86_64 0:0.1.5-32.el7  libtirpc.x86_64 0:0.2.4-0.16.el7       libverto-libevent.x86_64 0:0.2.5-4.el7  lz4.x86_64 0:1.7.5-3.el7        quota.x86_64 1:4.01-19.el7           quota-nls.noarch 1:4.01-19.el7   
  rpcbind.x86_64 0:0.2.0-48.el7        tcp_wrappers.x86_64 0:7.6-77.el7   

Updated:
  selinux-policy.noarch 0:3.13.1-252.el7_7.6                                                                                           systemd.x86_64 0:219-67.el7_7.2                                                                                          

Dependency Updated:
  cryptsetup-libs.x86_64 0:2.0.3-5.el7   krb5-libs.x86_64 0:1.15.1-37.el7_7.2   libgudev1.x86_64 0:219-67.el7_7.2     libselinux.x86_64 0:2.5-14.1.el7                      libselinux-python.x86_64 0:2.5-14.1.el7   libselinux-utils.x86_64 0:2.5-14.1.el7  
  libsemanage.x86_64 0:2.5-14.el7        libsepol.x86_64 0:2.5-10.el7           policycoreutils.x86_64 0:2.5-33.el7   selinux-policy-targeted.noarch 0:3.13.1-252.el7_7.6   systemd-libs.x86_64 0:219-67.el7_7.2      systemd-sysv.x86_64 0:219-67.el7_7.2    

Complete!

3,配置NFS

vim /etc/exports
/data/nfs * (rw,sync,all_squash)
/data/nfs 192.168.13.0/24(rw,sync,all_squash)

/data/nfs  共享目录的路径

* 这里标识没有限制,也可用限制ip替换

参数

参数作用

rw*

读写权限

ro

只读权限

root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)

no_root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)

all_squash

无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)

no_all_squash

无论NFS客户端使用什么账户访问,都不进行压缩

sync*

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

anonuid*

配置all_squash使用,指定NFS的用户UID,必须存在系统

anongid*

配置all_squash使用,指定NFS的用户UID,必须存在系统

4,启动服务,并将服务加入开机启动

[root@DEV-COM-NFS-01 data]# systemctl enable rpcbind nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@DEV-COM-NFS-01 data]# systemctl start rpcbind nfs-server

5,检查端口

[root@DEV-COM-NFS-01 data]# netstat -nltp

  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:50317 0.0.0.0:* LISTEN 11278/rpc.statd
  tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
  tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 11279/rpc.mountd
  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 668/sshd
  tcp 0 0 0.0.0.0:41561 0.0.0.0:* LISTEN -
  tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
  tcp6 0 0 :::41480 :::* LISTEN -
  tcp6 0 0 :::33226 :::* LISTEN 11278/rpc.statd
  tcp6 0 0 :::111 :::* LISTEN 1/systemd
  tcp6 0 0 :::20048 :::* LISTEN 11279/rpc.mountd
  tcp6 0 0 :::22 :::* LISTEN 668/sshd
  tcp6 0 0 :::2049 :::* LISTEN -

6,检查共享的内容

[root@DEV-COM-NFS-01 data]# cat /var/lib/nfs/etab               
/data/nfs       *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash)

7,检查匿名用户对应的真实账户,并授权共享目录为nfsnobody

[root@DEV-COM-NFS-01 data]# grep "65534" /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@DEV-COM-NFS-01 data]# chown -R nfsnobody.nfsnobody /data/nfs

8,客户端安装nfs,先放我们来看下客户端目前的磁盘情况

[root@DEV-COM-MSA-01 data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.9G   17G  11% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G   17M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdc         50G   33M   50G   1% /data
tmpfs           379M     0  379M   0% /run/user/0

9,安装nfs

[root@DEV-COM-MSA-01 data]# yum install -y nfs-utils

安装过程同上面第二步

10,启动rpcbind服务

[root@DEV-COM-MSA-01 data]# systemctl enable rpcbind
[root@DEV-COM-MSA-01 data]# systemctl start rpcbind

11,查看服务端提供的可挂载nfs信息

[root@DEV-COM-MSA-01 data]# showmount -e 192.168.14.10
Export list for 192.168.14.10:
/data/nfs *

12,执行挂载命令

[root@DEV-COM-MSA-01 data]# mount -t nfs 192.168.14.10:/data/nfs /data/nfsdata   

13,查看挂载信息

[root@DEV-COM-MSA-01 data]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/vda1                 20G  1.9G   17G  11% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   17M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdc                  50G   33M   50G   1% /data
tmpfs                    379M     0  379M   0% /run/user/0
192.168.14.10:/data/nfs  100G   32M  100G   1% /data/nfsdata

14,关掉客户端重启后,发现挂载信息不见了,还需要手动挂载一次?

[root@DEV-APP-MSA-01 ~]# echo '192.168.14.10:/data/nfs       /data/nfsdata                   nfs     defaults        0 0' >> /etc/fstab

 


[root@DEV-APP-MSA-01 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Jul 11 06:33:31 2014 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=277fd82b-0856-4e23-8371-1f11823281b7 / ext4 defaults 1 1 LABEL=YUNIFYSWAP swap swap defaults 0 0 192.168.14.10:/data/nfs /data/nfsdata nfs defaults 0 0

重启后发现就可以自动挂载了

也可通过如下命令,来验证我们的fstab是否设置成功

#卸载挂载
umount /data/nfsdata
#将/etc/fstab的所有内容重新加载。
mount -a

 

posted @ 2020-01-08 17:29  mickey007  阅读(560)  评论(0编辑  收藏  举报