一,nfs 简介
1,nfs 性质
NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议
通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议
NFS 它是文件系统,是操作系统内核来管理的
2,nfs 软件
在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务
nfs-utils (包括服务器端和客户端) 用于 NFS 共享发布和访问
rpcbind 用于 RPC 支持
手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
3,nfs 特点
采用TCP/IP传输网络文件; 安全性低 ;简单易操作 适合局域网环境
4,nfs 端口号
rpcbind 端口号111(固定) nfs端口号不固定
5,nfs日志
日志:/var/lib/nfs/
6,nfs 配置文件
/etc/exports
/etc/exports.d/*.exports
二,nfs 原理
NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率
rpcbind 端口号111(固定) nfs端口号不固定
客户端先去找rpcbind rpcbind 告诉客户端端口号
三,NFS共享配置文件格式
/dir *
共享目录 共享给哪个主机(权限)
(一)主机名格式
1,网段:
两种掩码格式均支持
172.18.0.0/16
172.18.0.0/255.255.0.0
2, 域名
*.kgc.com
3,*
指共享所有人
(二)权限格式
默认选项:(ro,sync,root_squash,no_all_squash)
1,ro,rw
只读和读写
2,async
异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性
3, sync(1.0.0后为默认)
同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
4,root_squash (默认)
意思是压榨root
所有客户机root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody
5,no_root_squas
不压榨root
6,all_squash
所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
7,no_all_squash
(默认)保留共享文件的UID和GID
8,anonuid和anongid
指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
四,实验步骤nfs
(一)搭建nfs
1, 实验准备:
服务机下载nfs-utils、rpcbind
客户机下载nfs-utils
2,服务机新建一个专门用于共享的文件夹 /share
放123.txt
3,手搓 服务机nfs 的配置文件
4, 启动nfs 服务 并重新加载配置文件
5, 去到客户机
showmount -e 可显示nfs 服务器 加载的信息
6, 将服务机 /share 文件夹挂载到 /mnt 上
如果想永久挂载需要写道/etc/fstab文件中
此处写错!格式为192.168.217.77:/share
192.168.217.77:/share /mnt nfs defaults _netdev 0 0
#IP地址:/共享文件名 #挂在点 #文件类型 #权限 #没网不加载 #不备份 #不检查
7, 客户机想创建文件,权限拒绝
原因: /share 文件夹的权限不足
nfs 软件权限不足
8,在服务机 给share 文件夹加上权限 让其他客户机(other)可以写入文件
并在 服务机nfs 配置文件 加上权限
重新加载配置文件
9,客户机再次写入345.txt 成功
注意:虽然客户机是root账户 但是文件的属主变成了 nfsnobody (nfs匿名账户)
因为服务机nfs 配置文件有一条默认权限 root_squash
即压榨 root用户 只要是root用户创建的文件 都变成nfsnobody
(二)更改服务机 nfs 配置文件权限
1,关闭压榨root
2,统一压榨
nonuid和anongid 配合all_squash使用
在服务机/data 这个共享文件夹 压榨所有的客户机用户,都变成uid 为1003 组id为1003 的用户
记得前提:服务机里要有 uid 为1003 组id为1003 的用户哦
五,NFS工具
1,exportfs
exportfs:可用于管理NFS导出的文件系统
常见选项:
-v #查看本机所有NFS共享
-r #重读配置文件,并共享目录
-a #输出本机所有共享
-au #停止本机所有共享
2, showmount
常见用法:
showmount -e hostname
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *
3, mount.nfs
客户端NFS挂载
NFS相关的挂载选项:man 5 nfs
fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft #非持续请求
intr #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
六,搭建一台NFS共享服务器
实验目的,电脑访问7-1 7-2看到的内容都是一样的,都是nfs 服务机共享文件夹的内容
这样7-2,7-3 这两台服务机只需要能接受很多人访问就可以,不需要很多存储空间,网页的内容都由7-1 nfs服务机 来提供
(一)httpd 原理
httpd 主页面在 /var/www/html/
当我们在主页面 写入 hello my son
电脑访问对应ip
(二) 搭建一台NFS共享服务器
7-1nfs 服务机:
1,安装软件
2,创建一个用于做nfs 文件分享
3, 手搓nfs 配置文件
4, 重新加载配置文件 给足权限
7-2,7-3 步骤:
1,启动httpd 网页服务
2,将 7-1的共享文件夹 挂载到 httpd 主页面 /var/www/html/
再去到7-1 nfs服务机
在共享文件/share 写入
真实电脑操作:
不论是访问7-2 还是7-3 都会显示 7-1nfs 服务机的内容