liunx nfs共享目录搭建

一、环境准备 

1、关闭防火墙
systemctl stop firewalld
2、永久关闭
systemctl disable firewalld
3、关闭SELINUX
sed -i 's/SELINUX=disabled/SELINUX=disabled/g' /etc/sysconfig/selinux
4、查询是否关闭

  [root@localhost mysql]# getenforce
  Disabled

  

二、服务搭建准备

搭建NFS服务准备虚拟机,我这里准备的是centos7 四台虚拟机,可以准备两台效果是一样的。
nfs 服务器 128.196.126.142

nfs 客户端 128.196.126.143

nfs 客户端 128.196.126.144

nfs 客户端 128.196.126.145

 依赖关系nfs 四台都需要操作

    yum install -y nfs-utils

2.1 修改共享目录用户ID  

我这里挂载目录是nas_a目录,大家可以创建任意目录,前提是创建的目录路径需要一致,如果是使用普通用户,需要保证用户ID统一。

修改用户ID和用户组ID参考连接:https://www.cnblogs.com/pythonx/p/12074613.html

2.2 创建共享目录

创建共享目录,四台都操作

mkdir -p /home/ap/nas_a

2.4 编辑NFS配置文件

/etc/exports    
NFS主要配置文件,系统没有默认值,需要手动编辑 vi /etc/exports  
/usr/sbin/exportfs       
NFS管理命令
/usr/sbin/showmount
客户端的查看命令
/var/lib/nfs/etab
记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab
记录测井登陆过的客户端信息

2.5 NFS配置文件格式说明

/etc/exports 文件格式
[共享目录]    [设置访问的主机]    [访问权限,其他,用户映射]    
eg:
/home/ap/nas_a  *(rw,sync,all_squash)

[共享目录] 
            是指:给客户端和服务的使用的同一个目录

 [设置访问的主机]
            指定IP地址主机: 1.1.1.1
            指定子网中的所有主机: 1.1.0.0/24或1.1.0.0/24/255.255.255.0
            指定域名主机: json.chao.com
            指定所有域主机: *.chao.com
            所有主机: *
            注意: 主机和权限中间没有空格
[访问权限]
            只读: ro
            读写: rw
[用户映射]
               all_squash: 将远程的所有普通用户及所有属组映射为匿名用户或用户组(nfsnobody)
                no_all_squash: 与all_squash 取反(默认设置)
                root_squash: 将root用户集所属组都映射为匿名用户或用户组(默认值)
                no_root_squash:  与root_squash取反
                anonuid=xxx : 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
                anondig=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定改匿名用户组账户为本地用户组账户(GID=xxx)

[其他]
        
                secure:限制客户端只能小于1024的tcp/udp端口连接nfs服务器(默认值)
                insecure: 与secure取反,大于1024的tcp/udp端口连接nfs服务器(默认值)
                sync:  将数据同步写入内存缓冲区与磁盘中,效率低,但是可以保证数据的一致性。
                async: 将数据先保证在内存缓冲区中,必要时才写入磁盘
                wdelay:检查是否有相关操作,如果有则将这些写操作一起执行,这样可以提高效率(默认值)    
                no_wdelay:内有写操作则立即执行,应与sync配合使用
                subtree:若输出目录的是一个子目录,则NFS服务将检查其父母了的权限(默认值)
                no_subtrr: 及时输出目录是一个子目录,NFS服务器也不检查其父目录权限,这样可以提高效率。

  

三、服务启动停止

为了使NFS服务正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind 一定要先于nfs启动

3.1 启动rpcbind 和 nfs服务

systemctl start rpcbind.service

systemctl start nfs.service

3.2 设置开机自启动

systemctl enable rpcbind.service

systemctl enable nfs.service

3.3 查询状态

systemctl status rpcbind.service

systemctl status nfs.service

3.3 停止服务

systemctl stop rpcbind.service

systemctl stop nfs.service

四、客户端挂载共享目录

mount 挂载命令

格式: nfs服务ip:共享目录 挂载目标目录

eg: 

mount -t nfs 128.196.126.142:/home/ap/nas_a /home/ap/nas_a

 

五、设置开机自动挂载

vi /etc/fstab

# /etc/fstab
# Created by anaconda on Wed Nov  6 17:42:41 2019
#
# 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
#
/dev/mapper/ol-root     /                       xfs     defaults        0 0
UUID=55aa95cc-bedd-4549-8479-59dafbc409c7 /boot                   xfs     defaults        0 0
/dev/mapper/ol-swap     swap                    swap    defaults        0 0
128.196.126.142:/home/ap/nas_a  /home/ap/nas_a  nfs  sync  0 0

如果需要验证;保存退出,重启系统 df -h 验证即可。

六、相关命令

1、exportfs [-aruv]

  -a 重新启动/etc/exportfs 中的内容

  -r: 重新读取/etc/exportfs 中的信息,并同步更新/etc/exportfs 、/var/lib/nfs/xtab

  -u :卸载单一目录(和 -a 使用 就是卸载说有的/etc/exportfs 文件中的目录)

  -v:显示详细信息

这里的举例

exportfs -au : 卸载所有共享目录,在NFS 服务器上使用,客户端没有作用。
   服务端执行后,客户端会卸载共享目录,代表umount  

先查询客户端挂载情况
[root@localhost ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
devtmpfs                        477M     0  477M   0% /dev
tmpfs                           496M     0  496M   0% /dev/shm
tmpfs                           496M   14M  483M   3% /run
tmpfs                           496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/ol-root              47G  6.1G   41G  13% /
/dev/sda1                      1014M  156M  859M  16% /boot
tmpfs                           100M     0  100M   0% /run/user/0
128.196.126.142:/home/ap/nas_a   47G  7.2G   40G  16% /home/ap/nas_a

    

服务端执行exportfs -au

[root@localhost ap]# exportfs -au
[root@localhost ap]# 

客户端在检查挂载情况
[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             477M     0  477M   0% /dev
tmpfs                496M     0  496M   0% /dev/shm
tmpfs                496M   14M  483M   3% /run
tmpfs                496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/ol-root   47G  6.1G   41G  13% /
/dev/sda1           1014M  156M  859M  16% /boot
tmpfs                100M     0  100M   0% /run/user/0

exportfs -rv:重新共享所有的目录并输出详细信息,NFS服务端使用重新挂载。

       服务端执行后,客户端会重新挂载共享目录。

服务端执行
[root@localhost ap]# exportfs -rv
exporting *:/home/ap/nas_a
[root@localhost ap]# 

客户端查询挂载情况

[root@localhost ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
devtmpfs                        477M     0  477M   0% /dev
tmpfs                           496M     0  496M   0% /dev/shm
tmpfs                           496M   14M  483M   3% /run
tmpfs                           496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/ol-root              47G  6.1G   41G  13% /
/dev/sda1                      1014M  156M  859M  16% /boot
tmpfs                           100M     0  100M   0% /run/user/0
128.196.126.142:/home/ap/nas_a   47G  7.2G   40G  16% /home/ap/nas_a

  

2、showmount:[-ae]

  -a 显示已经于客户端连接的目录信息

[root@localhost ap]# showmount -a
All mount points on localhost.localdomain:

  -e:ip或者Hostname 显示此IP地址分享出来的目录

[root@localhost ap]# showmount -e
Export list for localhost.localdomain:

3、rpcinfo

  查看rpm执行信息,可以用于检查rpm运行情况的工具,利用rpcinfo -p可以查看出rpc开启端口所提供的程序有哪些。

[root@localhost ap]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  43206  status
    100024    1   tcp  54467  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  41563  nlockmgr
    100021    3   udp  41563  nlockmgr
    100021    4   udp  41563  nlockmgr
    100021    1   tcp  58204  nlockmgr
    100021    3   tcp  58204  nlockmgr
    100021    4   tcp  58204  nlockmgr

总结;如果想设置开机自启或者开机自动挂载,参考上述。

1、安装 NFS服务(四台都操作)

yum install -y nfs-utils

2、编译nfs配置文件(四台都操作)

vi /etc/exports
/home/ap/nas_a *(rw,sync,all_squash)

3、创建共享目录(四台都操作)

mkdir -p /home/ap/nas_a

4、启动NFS服务,先启动rpcbind 在启动nfs服务(服务端操作)

systemctl start rpcbind.service
systemctl start nfs.service

5、挂载(客户端操作)

mount -t nfs 128.196.126.142:/home/ap/nas_a /home/ap/nas_a

 

原文地址:https://www.cnblogs.com/pythonx/p/12095559.html