NFS服务的使用

来自CloudWiki
跳转至: 导航搜索

NFS服务

NFS概念

NFS网络文件系统提供了一种在类UNIX系统上共享文件的方法。目前NFS有3个版本:NFSv2、NFSv3、NFSv4。CentOS 7默认使用NFSv4提供服务,优点是提供了有状态的连接,更容易追踪连接状态,增强安全性。NFS监听在TCP 2049端口上。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。在客户端看来,使用NFS的远端文件就像是在使用本地文件一样,只要具有相应的权限就可以使用各种文件操作命令(如cp、cd、mv和rm等),对共享的文件进行相应的操作。Linux操作系统既可以作为NFS服务器也可以作为NFS客户,这就意味着它可以把文件系统共享给其他系统,也可以挂载 从其他系统上共享的文件系统. 为什么需要安装NFS服务?当服务器访问流量过大时,需要多台服务器进行分流,而这多台服务器可以使用NFS服务进行共享。NES除了可以实现基本的文件系统共享之外,还可以结合远程网络启动,实现无盘工作站(PXE启动系统,所有数据均在服务器的磁盘阵列上)或瘦客户工作站(本地自动系统)。NFS应用场景多为高可用文件共享,多台服务器共享同样的数据,但是它的可扩展性比较差,本身高可用方案不完善。取而代之,数据量比较大的可以采用MFS、TFS、HDFS等分布式文件系统。

NFS组成

两台计算机需要通过网络建立连接时,双方主机就一定需要提供一些基本信息,如IP地址、服务端口号等。当有100台客户端需要访问某台服务器时,服务器就需要记住这些客户端的IP地址以及相应的端口号等信息,而这些信息是需要程序来管理的。在Linux 中, 这样的信息可以由某个特定服务自己来管理,也可以委托给RPC来帮助自己管理。RPC是远程过程调用协议,RPC 协议为远程通信程序管理通信双方所需的基本信息,这祥,NFS服务就可以专注于如何共享数据。至于通信的连接以及连接的基本信息,则全权委托给RPC 管理。因此,NFS组件由与NFS相关的内核模块、NFS用户空间工具和RPC相关服务组成。
主要由如下2个RPM包提供。
1.nfs-utils:包含NFS服务器端守护进程和NFS客户端相关工具。
2.rpcbind:提供RPC的端口映射的守护进程及其相关文档、执行文件等。
若系统上还没有安装NFS的相关组件,可以使用如下命令安装。

实战案例--NFS服务的使用

案例目标

(1)了解NFS服务的安装。
(2)了解NFS的配置与使用。

基础准备

该实战案例需要使用两台服务器,使用实战案例3.3安装的Linux系统作为nfs-server 节点,再安装一台CentOS 7.2的虚拟机(1核/2G内存/20G硬盘),作为nfs-client进行下述实验

基础配置

修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。修改后重启,命令如下:nfs-server节点:

[root@nfs-server~]# hostnamectl set-hostname nfs-server
[root@nfs-server~]# hostnamectl
Static hostname: nfs-server
Icon name:computer-vm
Chassis: vm
Machine ID: 1d0a70113a074d488dc3b581178a59b8
Boot ID: 7285608fd50c4da886e94c6a33873ed9
Virtualization: vmware
Operating System: CentOS Linux 7(Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

reboot
nfs-client节点:

[root@nfs-client~]# hostnamectl set-hostname nfs-client
[root@nfs-client~]# hostnamectl
Static hostname: nfs-client
Icon name: computer-vm
Chassis: vm
Machine ID: 06c97bdf0e6c4a89898aa7d58c6be2cc
Boot ID: f07cf0f9d31e4b2185deOf8db7dd456b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
 

reboot

安装NFS服务

nfs-client节点按照实战案例3.7中的方法配置YUM源。两个节点安装NFS服务。命令 如下: nfs-server节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

nfs-client节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC.

NFS服务使用

在nfs-server节点创建一个用于共享的目录,命令如下:

[root@nfs-server~]# mkdir/mnt/test

编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下:

[root@nfs-server~]# vi/etc/exports
[root@nfs-server~]# cat /etc/exports
/mnt/test   192.168.200.0/24(rw,no_root_squash,no_all_squash,sync,anonuid  501,anongid  501)

生效配置,命令如下:

[root@nfs-server~]# exportfs -r

nfs-server端启动NFS服务,命令如下:

[root@nfs-server~]# systemctl start rpcbind
[root@nfs-server~]# systemctl start nfs

nfs-server端查看可挂载目录,命令如下:

[root@nfs-server~]# showmount -e 192.168.200.10
Export list for 192.168.200.10:
/mnt/test 192.168.200.0/24

可以查看到共享的目录。 转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭, 命令如下:

[root@nfs-client~]# setenforce o
[root@nfs-client~]# systemctl stop firewalld

在nfs-client节点,进行NFS共享目录的挂载,命令如下:

[root@nfs-client~]# mount -t nfs 192.168.200.10:/mnt/test /mnt/

无提示信息则表示成功,查看挂载情况。命令如下:

[root@nfs-client~]# df -h
Filesystem
Size Used Avail Use% Mounted on
ldev/mapper/centos-root18G878M 17G5%/
devtmpfs
903Mo 903M 0%/dev
tmpfs
913M0 913M 0%/dev/shm
tmpfs
913M8.6M 904M 1%/run
tmpfs
913Mo 913M 0%/sys/fs/cgroup
/dev/sdal
497M125M373M25%/boot
tmpfs
183M0 183M 0%/run/user/O
/dev/srO
4.1G 4.1G0 100%/opt/centos
192.168.200.10:/mnt/test5.8G20M 5.5G1%/mnt

可以看到nfs-server节点的/mnt/test目录已挂载到nfs-client节点的/mnt目录下。

4.验证NFS共享存储

在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值,命令如下:

[root@nfs-client~]# cd/mnt/
[root@nfs-client mnt]# ll
total o
[root@nfs-client mnt]# touch abc.txt
[root@nfs-client mnt]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

回到nfs-server节点进行验证,命令如下:

[root@nfs-server~]#cd /mnt/test/
[root@nfs-server test]#ll
total o
-rW-r--r--.1 root root 0 Oct 30 07:18 abc.txt
[root@nfs-server test]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

可以发现,在client节点创建的文件和server节点的文件是一样的。

基础准备

该实战案例需要使用两台服务器,使用实战案例3.3安装的Linux系统作为nfs-server 节点,再安装一台CentOS 7.2的虚拟机(1核/2G内存/20G硬盘),作为nfs-client进行下述实验

基础配置

修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。命令如下:nfs-server节点:

[root@nfs-server~]# hostnamectl set-hostname nfs-server
[root@nfs-server~]# hostnamectl
Static hostname: nfs-server
Icon name:computer-vm
Chassis: vm
Machine ID: 1d0a70113a074d488dc3b581178a59b8
Boot ID: 7285608fd50c4da886e94c6a33873ed9
Virtualization: vmware
Operating System: CentOS Linux 7(Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

nfs-client节点:

[root@nfs-client~]# hostnamectl set-hostname nfs-client
[root@nfs-client~]# hostnamectl
Static hostname: nfs-client
Icon name: computer-vm
Chassis: vm
Machine ID: 06c97bdf0e6c4a89898aa7d58c6be2cc
Boot ID: f07cf0f9d31e4b2185deOf8db7dd456b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
 

安装NFS服务

nfs-client节点按照实战案例3.7中的方法配置YUM源。两个节点安装NFS服务。命令 如下: nfs-server节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

nfs-client节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC.

NFS服务使用

在nfs-server节点创建一个用于共享的目录,命令如下:

[root@nfs-server~]# mkdir/mnt/test

编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下:

[root@nfs-server~]# vi/etc/exports
[root@nfs-server~]# cat /etc/exports
/mnt/test
192.168.200.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

生效配置,命令如下:

[root@nfs-server~]# exportfs -r

nfs-server端启动NFS服务,命令如下:

[root@nfs-server~]# systemctl start rpcbind
[root@nfs-server~]# systemctl start nfs

nfs-server端查看可挂载目录,命令如下:

[root@nfs-server~]# showmount -e 192.168.200.10
Export list for 192.168.200.10:
/mnt/test 192.168.200.0/24

可以查看到共享的目录。 转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭, 命令如下:

[root@nfs-client~]# setenforce o
[root@nfs-client~]# systemctl stop firewalld

在nfs-client节点,进行NFS共享目录的挂载,命令如下:

[root@nfs-client~]# mount -t nfs 192.168.200.10:/mnt/test /mnt/

无提示信息则表示成功,查看挂载情况。命令如下:

[root@nfs-client~]# df -h
Filesystem
Size Used Avail Use% Mounted on
ldev/mapper/centos-root18G878M 17G5%/
devtmpfs
903Mo 903M 0%/dev
tmpfs
913M0 913M 0%/dev/shm
tmpfs
913M8.6M 904M 1%/run
tmpfs
913Mo 913M 0%/sys/fs/cgroup
/dev/sdal
497M125M373M25%/boot
tmpfs
183M0 183M 0%/run/user/O
/dev/srO
4.1G 4.1G0 100%/opt/centos
192.168.200.10:/mnt/test5.8G20M 5.5G1%/mnt

可以看到nfs-server节点的/mnt/test目录已挂载到nfs-client节点的/mnt目录下。

4.验证NFS共享存储

在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值,命令如下:

[root@nfs-client~]# cd/mnt/
[root@nfs-client mnt]# ll
total o
[root@nfs-client mnt]# touch abc.txt
[root@nfs-client mnt]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

回到nfs-server节点进行验证,命令如下:

[root@nfs-server~]#cd /mnt/test/
[root@nfs-server test]#ll
total o
-rW-r--r--.1 root root 0 Oct 30 07:18 abc.txt
[root@nfs-server test]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

可以发现,在client节点创建的文件和server节点的文件是一样的。

基础准备

该实战案例需要使用两台服务器,使用实战案例3.3安装的Linux系统作为nfs-server 节点,再安装一台CentOS 7.2的虚拟机(1核/2G内存/20G硬盘),作为nfs-client进行下述实验

基础配置

修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。命令如下:nfs-server节点:

[root@nfs-server~]# hostnamectl set-hostname nfs-server
[root@nfs-server~]# hostnamectl
Static hostname: nfs-server
Icon name:computer-vm
Chassis: vm
Machine ID: 1d0a70113a074d488dc3b581178a59b8
Boot ID: 7285608fd50c4da886e94c6a33873ed9
Virtualization: vmware
Operating System: CentOS Linux 7(Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

nfs-client节点:

[root@nfs-client~]# hostnamectl set-hostname nfs-client
[root@nfs-client~]# hostnamectl
Static hostname: nfs-client
Icon name: computer-vm
Chassis: vm
Machine ID: 06c97bdf0e6c4a89898aa7d58c6be2cc
Boot ID: f07cf0f9d31e4b2185deOf8db7dd456b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel:Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
 

安装NFS服务

nfs-client节点按照实战案例3.7中的方法配置YUM源。两个节点安装NFS服务。命令 如下: nfs-server节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

nfs-client节点:

[root@nfs-server~]# yum -y install nfs-utils rpcbind

注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC.

NFS服务使用

在nfs-server节点创建一个用于共享的目录,命令如下:

[root@nfs-server~]# mkdir/mnt/test

编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下:

[root@nfs-server~]# vi/etc/exports
[root@nfs-server~]# cat /etc/exports
/mnt/test
192.168.200.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

生效配置,命令如下:

[root@nfs-server~]# exportfs -r

nfs-server端启动NFS服务,命令如下:

[root@nfs-server~]# systemctl start rpcbind
[root@nfs-server~]# systemctl start nfs

nfs-server端查看可挂载目录,命令如下:

[root@nfs-server~]# showmount -e 192.168.200.10
Export list for 192.168.200.10:
/mnt/test 192.168.200.0/24

可以查看到共享的目录。 转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭, 命令如下:

[root@nfs-client~]# setenforce o
[root@nfs-client~]# systemctl stop firewalld

在nfs-client节点,进行NFS共享目录的挂载,命令如下:

[root@nfs-client~]# mount -t nfs 192.168.200.10:/mnt/test /mnt/

无提示信息则表示成功,查看挂载情况。命令如下:

[root@nfs-client~]# df -h
Filesystem
Size Used Avail Use% Mounted on
ldev/mapper/centos-root18G878M 17G5%/
devtmpfs
903Mo 903M 0%/dev
tmpfs
913M0 913M 0%/dev/shm
tmpfs
913M8.6M 904M 1%/run
tmpfs
913Mo 913M 0%/sys/fs/cgroup
/dev/sdal
497M125M373M25%/boot
tmpfs
183M0 183M 0%/run/user/O
/dev/srO
4.1G 4.1G0 100%/opt/centos
192.168.200.10:/mnt/test5.8G20M 5.5G1%/mnt

可以看到nfs-server节点的/mnt/test目录已挂载到nfs-client节点的/mnt目录下。

4.验证NFS共享存储

在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值,命令如下:

[root@nfs-client~]# cd/mnt/
[root@nfs-client mnt]# ll
total o
[root@nfs-client mnt]# touch abc.txt
[root@nfs-client mnt]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

回到nfs-server节点进行验证,命令如下:

[root@nfs-server~]#cd /mnt/test/
[root@nfs-server test]#ll
total o
-rW-r--r--.1 root root 0 Oct 30 07:18 abc.txt
[root@nfs-server test]# md5sum abc.txt
d41d8cd98f00b204e9800998ecf8427eabc.txt

可以发现,在client节点创建的文件和server节点的文件是一样的。