Linux系统下NFS共享存储服务器配置与使用
Linux系统下NFS共享存储服务器配置与使用
-
NFS服务简介
文件共享服务一般有SAMBA和NFS,前者多用于windows系统,如果多个linux系统使用共享存储服务,建议使用NFS服务。
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
-
系统环境
-
系统平台:CentOS Linux release 7.4.1708 (Core)
NFS Server IP:172.30.7.189
Client IP:172.30.7.188
(服务端与客户端处于同一网络环境中)
- 防火墙状态:
[root@cricket-server ~]# firewall-cmd --state
not running
[root@cricket-server ~]# setenforce 0
[root@cricket-server ~]# getenforce
Permissive
-
NFS服务端所需的软件列表
nfs-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)
rpcbind: 这个是CentOS7.X的RPC主程序(CentOS5.X的为portmap)
-
服务端配置
-
安装NFS主程序(nfs-utils)
[root@cricket-server ~]# yum install nfs-utils
Loaded plugins: fastestmirror, langpacks
================================
nfs-utils.x86_64 1:1.3.0-0.48.el7_4
-
在NFS服务器上建立用于NFS文件共享的目录
并设置足够的权限确保其他人也有写入权限
[root@cricket-server /]# mkdir -p /nfsfile
[root@cricket-server /]# chmod -Rf 777 /nfsfile
[root@cricket-server /]# echo "This is a test nfs text" > /nfsfile/readme
-
编辑nfs的配置文件
NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照"共享目录的路径 允许访问的NFS客户端(共享权限参数)"的格式,定义要共享的目录与相应的权限。
[root@cricket-server /]# vim /etc/exports
/nfsfile 172.30.7.188 (rw,sync,root_squash)
用于配置NFS服务程序配置文件的参数
|
参数 |
作用 |
|
ro |
只读 |
|
rw |
读写 |
|
root_squash |
当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
|
no_root_squash |
当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
|
all_squash |
无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
|
sync |
同时将数据写入到内存与硬盘中,保证不丢失数据 |
|
async |
优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
请注意,NFS客户端地址与权限之间没有空格
-
启动和启用NFS服务程序
[root@cricket-server /]# systemctl restart rpcbind
[root@cricket-server /]# systemctl enable rpcbind
[root@cricket-server /]# systemctl start nfs-server
[root@cricket-server /]# 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.
由于NFS服务在文件共享过程中是依赖RPC服务进行工作,RPC服务用于把服务器地址和服务端口号等信息通知给客户端,因此要使用NFS共享服务,也要把rpcbind服务程序启动,并且把这两个服务一起加入到开机启动项中.
-
客户端配置
-
查询NFS服务器的远程共享信息
[root@cricket-client /]# showmount -e 172.30.7.189
Export list for 172.30.7.189:
/nfsfile 172.30.7.188
showmount命令用于查询NFS服务端的远程共享信息
-
客户端创建远程挂载共享路径
[root@cricket-client /]# mkdir -p /nfsshare
-
将远程服务端共享(nfsfile)挂载到本地(nfsshare)
[root@cricket-client /]# mount -t nfs 172.30.7.189:/nfsfile /nfsshare
[root@cricket-client /]# ls
bin boot dev etc home lib lib64 media mnt nfsshare opt proc root run sbin srv sys tmp usr var
[root@cricket-client /]# cat /nfsshare/readme
This is a test nfs text //挂载以后即可在本地看到远程挂载信息
-
写入到fstab文件开机自动挂载
[root@cricket-client /]# vi /etc/fstab
# /etc/fstab
# Created by anaconda on Mon Jan 22 19:02:25 2018
#
# 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/centos-root / xfs defaults 0 0
UUID=de031118-6c87-446d-8f54-549e58ad5918 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
172.30.7.189:/nfsfile /nfsshare nfs defaults 0 0
5、 最终配置与服务
共享存储服务端:
172.30.7.189
服务端共享路径:/nfsfile
共享存储客户端:
172.30.7.188
客户端挂载路径:/nfsshare

浙公网安备 33010602011771号