Linux系统下NFS共享存储服务器配置与使用
文件共享服务一般有SAMBA和NFS,前者多用于windows系统,如果多个linux系统使用共享存储服务,建议使用NFS服务。
NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
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-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)
rpcbind: 这个是CentOS7.X的RPC主程序(CentOS5.X的为portmap)
[root@cricket-server ~]# yum install nfs-utils
Loaded plugins: fastestmirror, langpacks
================================
nfs-utils.x86_64 1:1.3.0-0.48.el7_4
并设置足够的权限确保其他人也有写入权限
[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服务程序的配置文件为/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客户端地址与权限之间没有空格
[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服务程序启动,并且把这两个服务一起加入到开机启动项中.
[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
[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 //挂载以后即可在本地看到远程挂载信息
[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
共享存储服务端:
172.30.7.189
服务端共享路径:/nfsfile
共享存储客户端:
172.30.7.188
客户端挂载路径:/nfsshare
原文:https://www.cnblogs.com/qcricket/p/11568314.html