一、NFS简介
NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机、不同的操作系统可以共享存储的服务。NFS在文件传送或信息传送过程中依赖于RPC协议。RPC (Remote Procedure Call) ——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以这么理解,NFS是一个文件存储系统,而RPC负责信息的传输。
二、环境准备
为了搭建并且检验NFS服务的配置,我们需要准备两台安装Linux系统(这里以Centos7为例)的服务器,一台充当NFS服务端,开放共享目录,提供NFS存储服务;一台充当NFS客户端,挂载服务端共享目录到本地,使用NFS存储服务。
C/S类型 | eth0口ip |
---|---|
服务端 | 192.168.203.10 |
客户端 | 192.168.203.20 |
三、环境搭建
(一)NFS服务端配置
1.安装软件
yum -y install nfs-utils rpcbind
2. 配置
编辑nfs的配置文件,默认为空。
vi /etc/exports
在exports文件里面填入内容(网段根据实际情况填写,地址与括号之间不能有空格,括号里面为权限属性)
/mnt/nfs_file 192.168.203.0/24(rw,no_root_squash,no_all_squash,async,anonuid=501,anongid=501)
含义:NFS服务端将/mnt/nfs_file目录共享出来,给192.168.203.0网段的客户端使用
权限属性说明:
rw 读写
ro 只读
no_root_squash 不将root用户转换匿名,当NFS客户端以root管理员访问时,则原样映射为NFS服务器的root管理员
root_squash 将root用户转换匿名,当NFS客户端以root管理员访问时,则映射为NFS服务器对应的匿名用户
no_all_squash 所有用户都不转换为匿名用户,无论NFS客户端使用什么账户访问,原样映射为对应用户身份
all_squash 所有用户都转换为匿名用户,无论NFS客户端使用什么用户访问,均映射为NFS服务器的匿名用户
sync 同步模式,将数据写入内存并同步写入磁盘;
async 异步即不同步写入磁盘, 先将数据写入内存,然后再定期写入磁盘;
anonuid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID,要和root_squash 以及all_squash一同使用
anongid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID,要和root_squash 以及all_squash一同使用
如果有多个共享目录配置,则使用多行,一行一个配置。
3. 编译配置
exportfs –r
4. 启动nfs
(1)顺序启动
systemctl start rpcbind
systemctl start nfs
(2)加入开机自启
systemctl enable rpcbind
systemctl enable nfs
5. 校验配置
showmount -e localhost
会出现
Export list for localhost:
/mnt/nfs_file 192.168.203.0/24
6. 编辑配置
vi /etc/sysconfig/nfs
在文末加入:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
STATD_OUTGOING_PORT=30005
指定NFS相关服务的端口,便于Firewall防火墙开放端口
7. 重启服务
systemctl restart rpcbind
systemctl restart nfs
systemctl restart nfslock
8.使用rpcinfo -p查看并验证
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
100005 1 udp 30003 mountd
100005 1 tcp 30003 mountd
100005 2 udp 30003 mountd
100005 2 tcp 30003 mountd
100005 3 udp 30003 mountd
100005 3 tcp 30003 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 30002 nlockmgr
100021 3 udp 30002 nlockmgr
100021 4 udp 30002 nlockmgr
100021 1 tcp 30002 nlockmgr
100021 3 tcp 30002 nlockmgr
100021 4 tcp 30002 nlockmgr
100024 1 udp 30004 status
100024 1 tcp 30004 status
9. 防火墙开端口
如果firewall防火墙开着,需要把111,2049,30001到30005的端口都开放出来
firewall-cmd --add-port={111,2049,30001,30002,30003,30004,30005}/tcp --permanent
firewall-cmd --reload
(二)NFS客户端配置
1. 安装nfs
云平台管理服务器也需要安`nfs但无需启动
yum -y install nfs-utils rpcbind
2. 查看服务端挂载的目录
showmount -e 192.168.203.10
可以看到
Export list for 192.168.203.10:
/mnt/nfs_file 192.168.203.0/24
3. 挂载共享目录
mount -t nfs 192.168.203.10:/mnt/nfs_file /mnt/nfc_file -o proto=tcp -o nolock
同时把这一行加到/etc/rc.local文件的最后,即加入开机启动
4.查看挂载盘
df –h
会看到
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 1.4M 7.8G 1% /run
/dev/vda1 197G 53G 134G 29% /
192.168.203.10:/mnt/nfs_file 197G 66G 122G 35% /mnt/nfc_file
最后一行显示192.168.203.10:/mnt/nfs_file /mnt/nfc_file
,说明挂载成功了
5. 验证一下
在客户端本地/mnt/nfc_file
中放入一个文件(如a.txt),然后去服务端的/mnt/nfs_file
中查看,若存在a.txt,则说明配置成功
标签:udp,--,mnt,tcp,CentOS7,NFS,file,nfs From: https://www.cnblogs.com/jianmuzi/p/17556529.html