Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux安装NFS

Linux安装NFS全过程

作者:楼兰过客

这篇文章主要介绍了Linux安装NFS全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、检测

检查本地是否已经安装nfs服务

rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind

出现以下标识说明已经安装

[melonrind@melonrind ~]$ rpm -qa | grep rpcbind
rpcbind-0.2.0-49.el7.x86_64
[melonrind@melonrind ~]$ rpm -qa | grep nfs-utils
nfs-utils-1.3.0-0.66.el7_8.x86_64

二、安装

需要进行目录共享的两台服务器上均需要安装

1、在线安装

在线安装可以安装nfs-utils及其依赖

yum install nfs-utils -y

2、离线安装

需要先在可以联网的环境中下载nfs-utils及其依赖包

#该命令需要root权限
yum -y install nfs-utils --downloadonly --downloaddir /home/melonrind/nfspackages
#最终显示以下信息说明所有依赖包已经下载完成
依赖关系解决

===========================================================================================
 Package                   架构           版本                       源               大小
===========================================================================================
正在安装:
 nfs-utils                 x86_64         1:1.3.0-0.68.el7.2         updates         413 k
为依赖而安装:
 gssproxy                  x86_64         0.7.0-30.el7_9             updates         111 k
 keyutils                  x86_64         1.5.8-3.el7                base             54 k
 libbasicobjects           x86_64         0.1.1-32.el7               base             26 k
 libcollection             x86_64         0.7.0-32.el7               base             42 k
 libevent                  x86_64         2.0.21-4.el7               base            214 k
 libini_config             x86_64         1.3.1-32.el7               base             64 k
 libnfsidmap               x86_64         0.25-19.el7                base             50 k
 libpath_utils             x86_64         0.2.1-32.el7               base             28 k
 libref_array              x86_64         0.1.5-32.el7               base             27 k
 libtirpc                  x86_64         0.2.4-0.16.el7             base             89 k
 libverto-libevent         x86_64         0.2.5-4.el7                base            8.9 k
 quota                     x86_64         1:4.01-19.el7              base            179 k
 quota-nls                 noarch         1:4.01-19.el7              base             90 k
 rpcbind                   x86_64         0.2.0-49.el7               base             60 k
 tcp_wrappers              x86_64         7.6-77.el7                 base             78 k

事务概要
===========================================================================================
安装  1 软件包 (+15 依赖软件包)

总下载量:1.5 M
安装大小:4.3 M
Background downloading packages, then exiting:
(1/16): libbasicobjects-0.1.1-32.el7.x86_64.rpm                     |  26 kB  00:00:00
(2/16): gssproxy-0.7.0-30.el7_9.x86_64.rpm                          | 111 kB  00:00:00
(3/16): keyutils-1.5.8-3.el7.x86_64.rpm                             |  54 kB  00:00:00
(4/16): libcollection-0.7.0-32.el7.x86_64.rpm                       |  42 kB  00:00:00
(5/16): libpath_utils-0.2.1-32.el7.x86_64.rpm                       |  28 kB  00:00:00
(6/16): libtirpc-0.2.4-0.16.el7.x86_64.rpm                          |  89 kB  00:00:00
(7/16): libverto-libevent-0.2.5-4.el7.x86_64.rpm                    | 8.9 kB  00:00:00
(8/16): libini_config-1.3.1-32.el7.x86_64.rpm                       |  64 kB  00:00:00
(9/16): libnfsidmap-0.25-19.el7.x86_64.rpm                          |  50 kB  00:00:00
(10/16): nfs-utils-1.3.0-0.68.el7.2.x86_64.rpm                      | 413 kB  00:00:00
(11/16): quota-4.01-19.el7.x86_64.rpm                               | 179 kB  00:00:00
(12/16): tcp_wrappers-7.6-77.el7.x86_64.rpm                         |  78 kB  00:00:00
(13/16): libref_array-0.1.5-32.el7.x86_64.rpm                       |  27 kB  00:00:05
(14/16): rpcbind-0.2.0-49.el7.x86_64.rpm                            |  60 kB  00:00:05
(15/16): quota-nls-4.01-19.el7.noarch.rpm                           |  90 kB  00:00:05
(16/16): libevent-2.0.21-4.el7.x86_64.rpm                           | 214 kB  00:00:09
-------------------------------------------------------------------------------------------
总计                                                       156 kB/s | 1.5 MB  00:00:09
exiting because "Download Only" specified

一共16个rpm包

在当前下载目录进行安装

[root@melonrind nfspackages]# rpm -ivh *.rpm --force --nodeps
准备中...                          ################################# [100%]
正在升级/安装...
   1:libtirpc-0.2.4-0.16.el7          ################################# [  6%]
   2:rpcbind-0.2.0-49.el7             ################################# [ 13%]
   3:libref_array-0.1.5-32.el7        ################################# [ 19%]
   4:libevent-2.0.21-4.el7            ################################# [ 25%]
   5:libcollection-0.7.0-32.el7       ################################# [ 31%]
   6:libbasicobjects-0.1.1-32.el7     ################################# [ 38%]
   7:libverto-libevent-0.2.5-4.el7    ################################# [ 44%]
   8:tcp_wrappers-7.6-77.el7          ################################# [ 50%]
   9:quota-nls-1:4.01-19.el7          ################################# [ 56%]
  10:quota-1:4.01-19.el7              ################################# [ 63%]
  11:libpath_utils-0.2.1-32.el7       ################################# [ 69%]
  12:libini_config-1.3.1-32.el7       ################################# [ 75%]
  13:gssproxy-0.7.0-30.el7_9          ################################# [ 81%]
  14:libnfsidmap-0.25-19.el7          ################################# [ 88%]
  15:keyutils-1.5.8-3.el7             ################################# [ 94%]
  16:nfs-utils-1:1.3.0-0.68.el7.2     ################################# [100%]
[root@melonrind nfspackages]# rpm -qa|grep rpcbind
rpcbind-0.2.0-49.el7.x86_64
[root@melonrind nfspackages]# rpm -qa|grep nfs
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.68.el7.2.x86_64

三、配置NFS(服务端)

在配置时,分为服务端和客户端。服务端即被共享的服务器,共享的文件真实存在在此服务器上;客户端即共享服务器,共享目录指向服务端目录。

1、创建共享目录(两台服务器)

[root@melonrind data]# mkdir share
[root@melonrind data]# cd share/
[root@melonrind share]# ll
总用量 0
[root@melonrind share]# pwd
/data/share
[root@melonrind share]#

2、服务端配置共享目录

[root@rocketmq-nameserver1 share]# vi /etc/exports

添加共享命令

/data/share/ 192.168.72.163(rw,sync,no_root_squash,no_all_squash)

参数说明:

/data/share/: 共享目录
192.168.72.163: 客户端IP
ro:共享目录只读;
rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

四、启动服务端

[root@rocketmq-nameserver1 share]# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: inactive (dead)
[root@rocketmq-nameserver1 share]# systemctl enable rpcbind
[root@rocketmq-nameserver1 share]# systemctl start rpcbind
[root@rocketmq-nameserver1 share]# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: active (running) since 五 2021-12-24 11:20:57 CST; 3s ago
  Process: 24325 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 24326 (rpcbind)
   CGroup: /system.slice/rpcbind.service
           └─24326 /sbin/rpcbind -w

12月 24 11:20:57 rocketmq-nameserver1 systemd[1]: Starting RPC bind service...
12月 24 11:20:57 rocketmq-nameserver1 systemd[1]: Started RPC bind service.
[root@rocketmq-nameserver1 share]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@rocketmq-nameserver1 share]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@rocketmq-nameserver1 share]# systemctl start nfs-server
[root@rocketmq-nameserver1 share]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since 五 2021-12-24 11:23:20 CST; 3s ago
  Process: 24724 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 24720 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 24724 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

12月 24 11:23:20 rocketmq-nameserver1 systemd[1]: Starting NFS server and services...
12月 24 11:23:20 rocketmq-nameserver1 systemd[1]: Started NFS server and services.
[root@rocketmq-nameserver1 share]#

启动后查看共享是否成功

[root@rocketmq-nameserver1 share]# showmount -e localhost
Export list for localhost:
/data/share 192.168.72.163

显示刚才配置的共享目录和IP说明共享生效

五、客户端配置

1、查看远程共享服务器是否共享成功

[root@melonrind share]# showmount -e 192.168.72.81
Export list for 192.168.72.81:
/data/share 192.168.72.163

这里查看时连接的是远程服务端IP

2、启动客户端服务

[root@melonrind share]# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2021-09-30 09:14:18 CST; 2 months 24 days ago
  Process: 773 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 774 (rpcbind)
    Tasks: 1
   CGroup: /system.slice/rpcbind.service
           └─774 /sbin/rpcbind -w

9月 30 09:14:18 melonrind.ora systemd[1]: Starting RPC bind service...
9月 30 09:14:18 melonrind.ora systemd[1]: Started RPC bind service.
[root@melonrind share]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@melonrind share]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@melonrind share]# systemctl start nfs-server
[root@melonrind share]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since 五 2021-12-24 11:29:50 CST; 3s ago
  Process: 31978 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 31961 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 31959 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 31961 (code=exited, status=0/SUCCESS)
    Tasks: 0
   CGroup: /system.slice/nfs-server.service

12月 24 11:29:50 melonrind.ora systemd[1]: Starting NFS server and services...
12月 24 11:29:50 melonrind.ora systemd[1]: Started NFS server and services.

3、挂载共享目录

mount -t nfs -o nolock 192.168.72.81:/data/share /data/share

说明:mount -t nfs -o nolock 服务端IP:共享目录绝对路径 本地挂载目录

4、查看挂载结果

[root@melonrind share]# df -Th
文件系统                  类型      容量  已用  可用 已用% 挂载点
devtmpfs                  devtmpfs  1.8G     0  1.8G    0% /dev
tmpfs                     tmpfs     1.8G  672M  1.2G   37% /dev/shm
tmpfs                     tmpfs     1.8G   91M  1.7G    5% /run
tmpfs                     tmpfs     1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   xfs       100G   33G   68G   33% /
/dev/sda2                 xfs      1014M  226M  789M   23% /boot
/dev/sda1                 vfat     1022M   12M 1011M    2% /boot/efi
/dev/mapper/centos-var    xfs        10G  4.1G  6.0G   41% /var
/dev/mapper/centos-home   xfs       812G   98G  714G   12% /home
tmpfs                     tmpfs     366M  8.0K  366M    1% /run/user/42
tmpfs                     tmpfs     366M     0  366M    0% /run/user/1002
tmpfs                     tmpfs     366M     0  366M    0% /run/user/0
tmpfs                     tmpfs     366M     0  366M    0% /run/user/1000
192.168.72.81:/data/share nfs4      400G  239G  162G   60% /data/share

可以看到远程目录已经挂载

5、将挂载功能加入开机自启动

vi /etc/fstab
#在文件末尾添加一句命令
192.168.72.81:/data/share /data/share nfs defaults 0 0

六、测试共享

1、在服务端共享目录中创建一个文件test

[root@rocketmq-nameserver1 share]# ll
总用量 0
[root@rocketmq-nameserver1 share]# touch test
[root@rocketmq-nameserver1 share]# vi test
[root@rocketmq-nameserver1 share]# ll
总用量 4
-rw-r--r-- 1 root root 7 12月 24 11:35 test
[root@rocketmq-nameserver1 share]# pwd
/data/share

2、再去客户端共享目录中查看

[root@melonrind share]# cd /data/share/
[root@melonrind share]# ll
总用量 0
[root@melonrind share]# ll
总用量 4
-rw-r--r-- 1 root root 7 12月 24 11:35 test
[root@melonrind share]# pwd
/data/share

已经可以看到共享的文件了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文