Title

liunx nfs共享目录搭建

一、环境准备 

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

  [root@localhost mysql]# getenforce
  Disabled

  

二、服务搭建准备

1
2
3
4
5
6
7
8
搭建NFS服务准备虚拟机,我这里准备的是centos7 四台虚拟机,可以准备两台效果是一样的。
nfs 服务器 128.196.126.142
 
nfs 客户端 128.196.126.143
 
nfs 客户端 128.196.126.144
 
nfs 客户端 128.196.126.145<br><br>

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

    yum install -y nfs-utils

 

2.1 修改共享目录用户ID  

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

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

2.2 创建共享目录

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

1
mkdir -p /home/ap/nas_a

2.4 编辑NFS配置文件

1
2
3
4
5
6
7
8
9
10
/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配置文件格式说明

1
2
3
4
/etc/exports 文件格式
[共享目录]    [设置访问的主机]    [访问权限,其他,用户映射]   
eg:
/home/ap/nas_a*(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)[共享目录] 是指:给客户端和服务的使用的同一个目录 [设置访问的主机] 指定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服务

1
2
3
systemctl start rpcbind.service
 
systemctl start nfs.service

3.2 设置开机自启动

1
2
3
systemctl enable rpcbind.service
 
systemctl enable nfs.service

3.3 查询状态

1
2
3
systemctl status rpcbind.service
 
systemctl status nfs.service

3.3 停止服务

1
2
3
systemctl stop rpcbind.service
 
systemctl stop nfs.service

 

四、客户端挂载共享目录

mount 挂载命令

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

eg: 

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

 

五、设置开机自动挂载

vi /etc/fstab

1
2
3
4
5
6
7
8
9
10
# /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  

1
2
3
4
5
6
7
8
9
10
11
先查询客户端挂载情况
[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

1
2
3
4
5
6
7
8
9
10
11
12
13
[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服务端使用重新挂载。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
服务端执行
[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 显示已经于客户端连接的目录信息

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

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

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

3、rpcinfo

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[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服务(四台都操作)

1
yum install -y nfs-utils

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

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

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

1
mkdir -p /home/ap/nas_a

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

1
2
systemctl start rpcbind.service
systemctl start nfs.service

5、挂载(客户端操作)

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

 6、总结新部署

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
nfs 操作
安装包
所使用的节点安装nfs-utils
yumdownloader --resolve --destdir /data/nfs/ nfs-utils
rpm -ivh nfs-utils-1.3.0-0.68.el7.x86_64.rpm
 
server端操作
1、编辑配置文件
cat >>  /etc/exports << EOF
/data/nas_a *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)
/data/nas_b *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)
EOF
2、启动服务
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable rpcbind.service
systemctl enable nfs.service
3、编辑开机自动挂载
cat >> /etc/fstab << EOF
192.168.8.102:/data/nas_a  /home/ap/nas_a  nfs  sync  0 0
192.168.8.102:/data/nas_b  /home/ap/nas_b  nfs  sync  0 0
EOF
4、挂载目录
mount -t nfs 192.168.8.102:/data/nas_a /home/ap/nas_a
 
mount -t nfs 192.168.8.102:/data/nas_b /home/ap/nas_b
 
5、注意修改ip

  

posted @   jasonchao  阅读(544)  评论(0编辑  收藏  举报
编辑推荐:
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 接口重试的7种常用方案!
#编辑目录
点击右上角即可分享
微信分享提示