织梦网站上传的文章只显示摘要不显示内容如何修改,wordpress百度跟踪,山东网站建设方案制作,浙江建设厅 继续教育 网站搭建NFS存储服务器--基于CentOS7系统 - jianmuzi - 博客园
在CentOS中搭建NFS - 陌上荼靡 - 博客园
NFS简介
NFS 是 Network FileSystem 的缩写#xff0c;顾名思义就是网络文件存储系统#xff0c;它最早是由 Sun 公司发展出来的#xff0c;也是 FreeBSD 支持的文件系统…搭建NFS存储服务器--基于CentOS7系统 - jianmuzi - 博客园
在CentOS中搭建NFS - 陌上荼靡 - 博客园
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存储服务。
表1 服务端和客户端IP配置 C/S类型 eth0 ip 服务端 192.168.203.10 客户端 192.168.203.20
环境搭建
一NFS服务端配置
安装软件
# nfs-utils依赖rpcbind, 因此, 执行 yum -y install nfs-utils 也会安装rpcbind
yum -y install nfs-utils rpcbind
创建需要共享的NFS目录并赋予相关权限
mkdir /home/nfs
chmod 777 /home/nfs
配置
编辑nfs的配置文件默认为空。
vi /etc/exports
在exports文件里面填入内容网段根据实际情况填写地址与括号之间不能有空格括号里面为权限属性
/mnt/nfs_file 192.168.203.0/24(rw,no_root_squash,no_all_squash,async,anonuid501,anongid501)
这里我们挂载的NFS指定为可读写的目录并且进行同步读写将所有root用户都映射为匿名用户
/home/nfs 192.168.203.0/24(rw,sync,root_squash)
查看完整的配置参数介绍:
man exports
含义
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 , 异步即不同步写入磁盘 先将数据写入内存然后再定期写入磁盘anonuidxxx , 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID要和root_squash 以及all_squash一同使用并生效anongidxxx , 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID要和root_squash 以及all_squash一同使用并生效
tip:
如果有多个共享目录配置则使用多行一行一个配置。 编译配置
exportfs -r
启动nfs
1顺序启动
systemctl start rpcbindsystemctl start nfs
systemctl start nfs-server
2加入开机自启
systemctl enable rpcbind systemctl enable nfs
校验配置
$. showmount -e localhost
# 输出
Export list forlocalhost:
/mnt/nfs_file 192.168.203.0/24
编辑配置指定NFS通信端口
vi /etc/sysconfig/nfs
在文末加入
RQUOTAD_PORT30001LOCKD_TCPPORT30002LOCKD_UDPPORT30002MOUNTD_PORT30003STATD_PORT30004STATD_OUTGOING_PORT30005指定NFS相关服务的端口便于Firewall防火墙开放端口。
注其实这里也可以不用配置即不指定端口那么配置Firewalld防火墙时需要放过特定IP。
重启服务
systemctl restart rpcbindsystemctl restart nfssystemctl restart nfslock
使用rpcinfo -p查看并验证
rpcinfo -p
会出现 program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100005 1 udp 30003 mountd100005 1 tcp 30003 mountd100005 2 udp 30003 mountd100005 2 tcp 30003 mountd100005 3 udp 30003 mountd100005 3 tcp 30003 mountd100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 3 tcp 2049 nfs_acl100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 3 udp 2049 nfs_acl100021 1 udp 30002 nlockmgr100021 3 udp 30002 nlockmgr100021 4 udp 30002 nlockmgr100021 1 tcp 30002 nlockmgr100021 3 tcp 30002 nlockmgr100021 4 tcp 30002 nlockmgr100024 1 udp 30004 status100024 1 tcp 30004 status防火墙开放端口或IP
如果firewall防火墙开着需要把111204930001到30005的端口都开放出来
firewall-cmd --add-port{111,2049,30001,30002,30003,30004,30005}/tcp --permanent
firewall-cmd --add-port{111,2049,30001,30002,30003,30004,30005}/udp --permanent
firewall-cmd --reload注如果未指定NFS端口那么应配置firewall防火墙放过192.168.203.0/24段的ip
firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.203.0/24 accept
firewall-cmd --reload其它防护墙配置示例参考:
如果执行上述的mount命令一直处于等待状态可能是服务器上启用了防火墙或者是云服务器本身的防火墙限制了端口的访问需要在NFS服务端开放以下端口号的访问权限111、2049、20048。如果是云服务器可以到各自的网站后台去配置防火墙策略如果是本地的机器可以使用以下命令开放指定的端口。
firewall-cmd --zonepublic --add-port111/tcp --permanent
firewall-cmd --zonepublic --add-port111/udp --permanent
firewall-cmd --zonepublic --add-port2049/tcp --permanent
firewall-cmd --zonepublic --add-port20048/tcp --permanent
firewall-cmd --zonepublic --add-port20048/udp --permanent
firewall-cmd --reload
上述端口信息都可以在以下文件中查找到
/usr/lib/firewalld/services/nfs.xml
/usr/lib/firewalld/services/rpc-bind.xml
/usr/lib/firewalld/services/mountd.xml
如果你不关心具体的端口号也可以直接使用以下命令直接根据配置文件放行相应的端口
firewall-cmd --zonepublic --add-servicenfs --permanent
firewall-cmd --zonepublic --add-servicerpc-bind --permanent
firewall-cmd --zonepublic --add-servicemountd --permanent
firewall-cmd --reload
二NFS客户端配置
1. 安装nfs
云平台管理服务器也需要安nfs但无需启动
yum -y install nfs-utils rpcbind
2. 查看服务端挂载的目录
showmount -e 192.168.203.10
# 可以看到
Export list for192.168.203.10:
/mnt/nfs_file 192.168.203.0/24
3. 挂载共享目录
mkdir /mnt/file_nfc
chmod 777 /mnt/file_nfc
mount -t nfs 192.168.203.10:/mnt/nfs_file /mnt/file_nfc -o prototcp -o nolock
# or
mount -t nfs 192.168.203.10:/mnt/nfs_file /mnt/file_nfc# 如若不再需要可以使用以下命令卸载NFS目录
umount /mnt/file_nfc
同时把这一行加到/etc/rc.local文件的最后即加入开机启动
或者 修改开机自动挂载文件/etc/fatsb末行填入如下内容
192.168.203.10:/mnt/nfs_file /mnt/file_nfc nfs defaults,tcp,nolock 0 04查看挂载盘
# 最后一行显示192.168.203.10:/mnt/nfs_file /mnt/file_nfc说明挂载成功了
$. 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/file_nfc
5. 验证
在客户端本地/mnt/file_nfc目录中放入一个文件如a.txt然后去服务端的/mnt/nfs_file目录中查看若存在a.txt则说明配置成功
其他命令
# 在服务端执行查看nfs状态信息
nfsstat -s# 在客户端执行查看nfs挂载信息
nfsstat -m# 查看服务端的远程共享信息此命令会调用服务端的20048端口
showmount -e 192.168.202.151# 查看rpcbind注册的所有端口号
rpcinfo -p# 在服务端执行重新挂载/etc/exports中配置
exportfs -r