1.什么是NFS

NFS是Network File System 的缩写,中文意思是网络文件共享系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。

2.NFS存储服务作用

(1)实现数据的共享存储

(2)编写数据操作管理

(3)节省购买服务器磁盘开销

3.NFS服务部署流程

RPC:远程过程调用服务程序

服务端:
(1)下载安装软件
[root@nfs01 ~]# yum install nfs-utils  rpcbind -y

(2)编写nfs服务的配置文件,并修改权限

[root@nfs01 ~]#  vim /etc/exports
/data 172.16.1.0/24(rw,sync)

(3)创建存储目录

[root@nfs01 ~]# mkdir -p /data
[root@nfs01 ~]# id nfsnobody #安装软件后系统自动创建,虚拟用户
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
[root@nfs01 ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 6 Aug 3 15:53 /data/

(4)启动服务

#先启动rpcfuw
[root@nfs01 ~]# systemctl start rpcbind.service
[root@nfs01 ~]# systemctl enable rpcbind.service
#在启动nfs服务
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs

(5)NFS相关进程说明

客户端:
(1)下载安装软件
[root@backup ~]# yum install nfs-utils.x86_64 -y

(2)实现远程挂载共享目录

[root@backup ~]# mount -t nfs 172.16.1.31:/data  /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 50G 1.7G 49G 4% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 7.5M 484M 2% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 99M 0 99M 0% /run/user/0
172.16.1.31:/data 50G 1.7G 49G 4% /mnt

4.NFS服务端详细参数配置说明

(1)支持多网段挂载
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
(2)NFS配置参数权限说明
参数 含义
rw 存储目录的读写权限
ro 存储目录的只读权限
sync 同步方式存储数据
async 异步方式存储数据
no_root_squash 不要将root用户身份进行转换
root_squash 将root用户身份进行转换
all_squash 将所有用户身份都进行转换
no_all_squash 不要将所有用户身份进行装换

(3)参数操作演示
a.操作演示no_all_squash参数功能:
[root@nfs01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,no_all_squash)
[oldboy@backup mnt]$ touch shuai_data02.txt
touch: cannot touch ‘shuai_data02.txt’: Permission denied
解决权限问题:
[root@nfs01 ~]# chmod o+w /data/
[root@nfs01 ~]# ll /data/ -d
drwxr-xrwx. 2 nfsnobody nfsnobody 52 May 9 12:11 /data/
[shuai@backup mnt]$ touch shuai_data02.txt
[shuai@backup mnt]$ ll
total 4
-rw-rw-r-- 1 shuai shuai 0 May 9 12:17 shuai_data02.txt

b. 操作演示root_squash参数功能:

[root@nfs01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,root_squash)
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
-rw-r--r-- 1 nfsnobody nfsnobody 0 May 9 12:20 root_data.txt

c.操作演示no_root_squash参数功能

[root@nfs01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,no_root_squash)
[root@backup mnt]# ll
total 4
-rw-r--r-- 1 root root 0 May 9 12:23 root_data02.txt
d.企业互联网公司如何配置NFS各种squash参数

保证网站存储服务器用户数据安全性:

no_all_squash 需要进行配置 共享目录权限为www(确保客户端用户和服务端用户 uid数值一致)

root_squash 需要进行配置

以上默认配置(很多服务默认配置都是从安全角度出发)

e.查看nfs默认配置

[root@nfs01 ~]# 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,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
/data 10.0.0.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
参数 含义
anonuid=65534,anongid=65534

指定映射的用户信息

5企业中如何编辑nfs配置文件

(1)服务端配置
01.通用方法
data 172.16.1.31/24(rw,sync)

02.特殊情况(部分人员不能操作存储目录)

data 172.16.1.31/24(rw,sync) 10.0.0.0/24(ro,sync)

03.修改默认映射用户

/data   10.0.0.0/24(rw,sync,anonuid=xxx,anongid=xxx)
(2)客户端配置(永久挂载)
[shuai@backup ~]$ mount -t nfs 172.16.1.31:/data /mnt
#实现永久挂载
[shuai@backup ~]$ echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local
#实现/etc/fstab开机自动挂载,必须开启自启动remote-fs.target服务(C7) (C6必须启动netfs)
[root@backup /mnt]# tail -1 /etc/fstab
172.16.1.31/data /mnt nfs defaults 0 0

6.mount参数

[root@backup ~]# man mount
[root@backup ~]# mount -t nfs -o rw 172.16.1.31:/data /mnt
#强制卸载挂载点
umount -lf /mnt
参数 参数意义
rw 实现挂载后挂载点目录可读可写 (默认)
ro 实现挂载后挂载点目录只读
suid 在共享目录中可以让setuid权限位生效 (默认)
nosuid 在共享目录中可以让setuid权限位失效 (提供共享目录的安全性)
exec 共享目录中的执行文件可以直接执行
noexec 共享目录中的执行文件不可以直接执行
auto 可以实现自动挂载 配合mount -a使用 实现开机自动挂载
noauto 不可以实现自动挂载
nouser 禁止普通用户可以卸载挂载点
user 允许普通用户可以卸载挂载点

7.nfs服务问题

nfs服务器重启,挂载后创建数据比较慢 ​ 服务器重启方式不正确 ​ 服务重启:

1.restart 重启服务 强制断开所有连接 用户感受不好

2.reload 重启服务(平滑重启) 强制断开没有数据传输的连接 提升用户感受

8.NFS服务挂载不上排查方法

(1)检查nfs进程信息是否注册(服务端)

[root@nfs01 ~]# rpcinfo -p 172.16.1.31
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
100024 1 udp 55958 status
100024 1 tcp 49103 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 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 59352 nlockmgr
100021 3 udp 59352 nlockmgr
100021 4 udp 59352 nlockmgr
100021 1 tcp 37172 nlockmgr
100021 3 tcp 37172 nlockmgr
100021 4 tcp 37172 nlockmgr
#原因服务没启动

(2)检查有没有可用的存储目录(客户端)

[root@backup ~]# showmount -e 172.16.1.31  #检查配置文件,重启服务
Export list for 172.16.1.31:
/data 172.16.1.0/24

(3)服务端进行本地挂载测试(服务端)

[root@nfs01 ~]# mount -t nfs 172.16.1.31:/data /mnt  #检查网络

最新文章

  1. 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)
  2. [No00004A]为什么你看了很多书,却依然没有洞见
  3. 多线程编程4 - NSOperationQueue
  4. python编码问题(1)
  5. iOS-UIResponse之事件响应链及其事件传递
  6. PHP Libxml
  7. prototype原型属性
  8. PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本
  9. Building Android Apps 30条建议
  10. 泛型DAO
  11. Linux基本操作笔记
  12. sigaction 的使用
  13. 对java中的equals()方法的总结
  14. Win10系列:C#应用控件基础23
  15. vue 动态修改 css
  16. 1047B_Cover Points
  17. 解决Ubuntu14.04下sublime无法输入中文
  18. learning docker steps(2) ----- docker contailner 初次体验
  19. 一、Java多线程基础
  20. Python字符与ASCII码转换

热门文章

  1. Linux 操作系统(四)用户组管理&进程管理&任务调度
  2. 040.Python进程和Join
  3. Elasticsearch + Logstash + Kibana +Redis +Filebeat 单机版日志收集环境搭建
  4. JDK、JRE 和 JVM 的区别
  5. OSI七层模型与TCP/IP五层模型-(转自钛白Logic)
  6. systemverilog数组类型
  7. unity 使用OnDrag实现物体旋转
  8. Python小白的数学建模课-04.整数规划
  9. 怎样训练YOLOv3
  10. 3D点云完美匹配