NFS优势: 实现数据统一,节省磁盘资源,节省带宽
主要存放:用户上传图片,视频附件等信息
NFS共享存储工作原理
1 在NFS服务端创建共享存储目录与挂载点
2 在NFS客户端创建远程目录挂载点(需要与服务端一致)
3 在NFS客户端进行远程挂载
RPC服务简介(房屋中介) 默认端口:111 与NFS通信
负责协同管理NFS服务生成的多个随机端口号并整合后告知客户端
统一管理NFS生成端口号 (记住端口号)
记录每个NFS功能对应的端口号
NFS 服务器参数说明 vim /etc/exports
rw 可读写
ro 只读
sync 同步
async 异步 (先写入内存在写入到硬盘)
no_all_squash 其他用户不压缩,映射不变
root_squash 对root用户进行压缩映射
all_squash 对所有用户进行压缩映射
root_squash 当客户端以ROOT账号访问NFS服务端时,会把root映射成nobody用户访问服务端
all_squash 所有用户都映射成为nobody匿名用户
insecure 允许客户端从大于1024端口发请求
anonuid= 指定映射用户UID (服务端与客户端需要都有相同用户UID并且一致)
anongid= 指定映射用户GID (服务端与客户端需要都有相同用户GID并且一致)
********* 修该指定用户后需要修改共享目录的所属用户组与权限*********
chown -R imp.imp /data
部署环境:
1台 NFS服务器 1台WEB服务器
NFS服务端详细部署方法:
1.检查NFS软件安装情况。(nfs-utils,rpcbind)
[root@NFS-31 ~]# rpm -qa nfs-utils rpcbind rpcbind-0.2.0-16.el6.x86_64 nfs-utils-1.2.3-78.el6_10.1.x86_64
2.创建共享目录与权限设置
[root@NFS-31 ~]# mkdir -p /nfs_data/ [root@NFS-31 ~]# chmod 766 /nfs_data
[root@NFS-31 ~]# chown -R nfsnobody.nfsnobody /nfs_data/
3.修改共享存储配置文件(默认/etc/exports)
[root@NFS-31 ~]# cat /etc/exports /nfs_data 10.0.0.0/24(insecurerw,sync)
/nfsuser 10.0.0.0/24 (insecure,rw,sync,)
/nfs_data 10.0.0.0/24 (insecure,rw,sync,)
#共享目录 共享地址 访问使用权限
[root@NFS-31 ~]# cat /var/lib/nfs/etab # 检查共享文件详细参数
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
/nfs_data 10.0.0.0/24(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,ro,root_squash,no_all_squash)
/nfs_data *(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
4.启动服务(必须按照顺序启动,先启RPC后启NFS服务)并检查服务状态
[root@NFS-31 ~]# /etc/init.d/rpcbind start [root@NFS-31 ~]# /etc/init.d/nfs start
[root@NFS-31 ~]# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/data 172.16.1.0/24
/nfs_data (everyone)
5.模拟挂载本地地址做客户端测试挂载访问情况
[root@NFS-31 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 1.6G 15G 10% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 35M 146M 19% /boot [root@NFS-31 ~]# mount -t nfs 127.0.0.1:nfs_data /mnt [root@NFS-31 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 1.6G 15G 10% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 35M 146M 19% /boot 127.0.0.1:nfs_data 18G 1.6G 15G 10% /mnt
[root@NFS-31 ~]# touch /nfs_data/我是imp.txt
[root@NFS-31 ~]# ll /mnt/
total 4
-rw-r--r--. 1 root root 14 Jun 10 09:03 imp.txt
-rw-r--r--. 1 root root 0 Jun 10 09:13 nfshahaa.txt
-rw-r--r--. 1 root root 0 Jun 10 09:40 我是imp.txt
客户端部署
1.确认软件是否安装
[root@web03 ~]# rpm -qa rpcbind nfs-utils rpcbind-0.2.0-16.el6.x86_64 nfs-utils-1.2.3-78.el6_10.2.x86_64
2.开启rpcbind服务并检查远程挂
[root@web03 ~]# service rpcbind status rpcbind (pid 2821) is running... [root@web03 ~]# showmount -e 10.0.0.31 Export list for 10.0.0.31: /nfsuser (everyone) /data 172.16.1.0/24 /nfs_data (everyone)
3.创建远程共享目录的挂载点
[root@web03 ~]# mount -t nfs 172.16.1.31:/nfs_data /mnt
autofs自动挂载部署方法:
特点:autofs为守护进程,请求时候才挂载。(高并发不适用)
1.安装软件
yum install autofs -y
2.修改配置文件 (第七行添加如下代码)
vim /etc/auto.master
/~ /etc/auto.home
3.修改自定义的挂载配置文件
vim /etc/auto.home
/impkk -rw,soft,init 172.16.1.31:/data
本地挂载点 访问参数 服务器端共享目录
4.启动autofs服务
systemctl start autofs
5.进行df-h 测试 看是否自动挂载
共享方式 (NFS参数)
1 同步或异步写入服务器磁盘并且可读写
/data 10.0.0.0/24(rw,sync)
2 只读共享 (常用开发使用查看线上生产环境)
/data 10.0.0.0/24(ro)
3 修改NFS映射用户进行网络共享
/data 10.0.0.0/24(rw,sync,anonuid=500,anongid=500)
NFS存储服务目录说明
/etc/rc.d/init.d/nfs NFS服务启动脚本
/usr/sbin/showmount NFS共享目录信息
/var/lib/nfs/etab 查看NFS默认配置信息
/etc/rc.d/init.d/rpcbind rpcbind(中介)服务启动脚本
/usr/sbin/rpcinfo NFS服务向RPC服务注册信息
/proc/mounts 查看NFS客户端挂在信息
NFS配置常见故障
客户端挂载时报错
mount.nfs: access denied by server while mounting 172.16.1.31:/data
mount.nfs: mounting 172.16.1.31:/date failed, reason given by server: No such file or directory
解决方法:查看服务端/etc/exports 是否与客户端挂载点拼写一致
mount: wrong fs type, bad option, bad superblock on 10.0.0.31:/nfs_data,
解决方法:没有安装nfs-utils .安装即可