成都市网站开发公司服务,新闻热点事件,创建空白网站,wordpress 汉化1、NFS简介
NFS 是Network File System的缩写#xff0c;即⽹络⽂件系统。NFS 的基本原则是“容许不同的客户 端及服务端通过⼀组RPC分享相同的⽂件系统”#xff0c;它是独⽴于操作系统#xff0c;容许不同硬件及操作 系统的系统共同进⾏⽂件的分享。 NFS在⽂件传送或信息…1、NFS简介
NFS 是Network File System的缩写即⽹络⽂件系统。NFS 的基本原则是“容许不同的客户 端及服务端通过⼀组RPC分享相同的⽂件系统”它是独⽴于操作系统容许不同硬件及操作 系统的系统共同进⾏⽂件的分享。 NFS在⽂件传送或信息传送过程中依赖于RPC协议。nfs服务也是基于C/S架构⼯作的。
NFS 在文件传送或信息传送过程中依赖于 RPCRemote Procedure Call 协议即远程过程调用 NFS 的各项功能都必须要向 RPC 来注册如此一来 RPC 才能了解 NFS 这个服务的各项功能 Port、PID、NFS 在服务器所监听的 IP 等而客户端才能够透过 RPC 的询问找到正确对应的端口所以NFS 必须要有 RPC 存在时才能成功的提供服务NFS是 一个文件存储系统而 RPC 是负责信息的传输。
NFS分为客户端与服务器端⼀般设置为⼀个Server端多个客户端也可设置为多对多当 服务器端设置好共享⽬录/data后客户端通过相应的访问权限将共享⽬录挂载到本地系统 的某个⽬录下就可以透明的看到共享⽬录⾥的⽂件了依据服务器制定的相应权限做操作
2、NFS服务器与客户端的通信原理
客户端NFS和服务端NFS通讯过程
1.⾸先服务器端启动RPC服务并开启111端⼝
2.启动NFS服务并向RPC注册端⼝信息
3.客户端启动RPCportmap服务向服务端的RPC(portmap)服务请求服务端的NFS端 ⼝
4.服务端的RPC(portmap)服务反馈NFS端⼝信息给客户端。
5.客户端通过获取的NFS端⼝来建⽴和服务端的NFS连接并进⾏数据的传输。
3、nfs服务特点
优点
nfs服务配置简单部署⽅便数据可靠服务稳定满⾜中⼩企业需求。
nfs客户端可以透明地读写位于远端nfs服务器上的⽂件就像访问本地⽂件⼀样。
nfs不仅适⽤于Linux与Unix之间实现⽂件共享也能实现Linux与Windows间的⽂件共享 功能
缺点
nfs是运⾏在应⽤层的协议其监听端⼝较多⽽且这些端⼝不固定。
nfs数据明⽂并不对数据做任何校验。 nfs存在单点故障如果构建⾼可⽤维护较复杂。
客户端认证是基于IP地址没有⽤户名和密码的说法安全性不⾼内⽹。
环境
Redhat 9
192.168.200.133 服务端
192.168.200.129 客户端
步骤
更名
[rootadmin ~]# hostname server
[rootadmin ~]# bash
[rootserver ~]#
[rootAI ~]# hostname client
[rootAI ~]# bash
[rootclient ~]#
安装nfs服务软件包
[rootserver ~]# yum -y install nfs-utils
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查1 day, 0:44:54 前执行于 2024年03月30日 星期六 13时50分28秒。
依赖关系解决。
软件包 架构 版本 仓库 大小安装:nfs-utils x86_64 1:2.5.4-18.el9 BaseOS 459 k
安装依赖关系:gssproxy x86_64 0.8.4-4.el9 BaseOS 114 kkeyutils x86_64 1.6.3-1.el9 BaseOS 78 klibev x86_64 4.33-5.el9 BaseOS 56 klibnfsidmap x86_64 1:2.5.4-18.el9 BaseOS 66 klibverto-libev x86_64 0.3.2-3.el9 BaseOS 15 krpcbind x86_64 1.2.6-5.el9 BaseOS 62 ksssd-nfs-idmap x86_64 2.8.2-2.el9 BaseOS 44 k事务概要安装 8 软件包总计893 k
安装大小2.1 M
下载软件包
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 省略。。。。。 已更新安装的产品。已安装:gssproxy-0.8.4-4.el9.x86_64 keyutils-1.6.3-1.el9.x86_64 libev-4.33-5.el9.x86_64 libnfsidmap-1:2.5.4-18.el9.x86_64 libverto-libev-0.3.2-3.el9.x86_64 nfs-utils-1:2.5.4-18.el9.x86_64 rpcbind-1.2.6-5.el9.x86_64 sssd-nfs-idmap-2.8.2-2.el9.x86_64 完毕
[rootserver ~]#
重启nfs服务 并设置开机自启
[rootserver ~]# systemctl restart nfs-server.service
[rootserver ~]#
[rootserver ~]# systemctl enable nfs-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[rootserver ~]# ss -anltp | grep 2049
LISTEN 0 64 0.0.0.0:2049 0.0.0.0:*
LISTEN 0 64 [::]:2049 [::]:*
[rootserver ~]#
查看RPC服务端口信息
[rootserver ~]# ss -anltp | grep rpcbind
LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:((rpcbind,pid3270,fd4),(systemd,pid1,fd227))
LISTEN 0 4096 [::]:111 [::]:* users:((rpcbind,pid3270,fd6),(systemd,pid1,fd229))
[rootserver ~]# 创建共享目录
[rootserver ~]# mkdir /nfs-upload
[rootserver ~]# 配置共享文件目录
[rootserver ~]# cat /etc/exports
/nfs-upload 192.168.200.129(rw)
//共享文件夹路径 客户机地址权限
[rootserver ~]#
[rootserver ~]# exportfs -r
exportfs 命令主要⽤于管理当前NFS服务器的⽂件系统。exportfs 是在服务端上使⽤的命 令主要⽤来操作挂载的⽬录⽐如我们修改了NFS配置⽂件需要重启NFS服务如果客户 端正在读写那么重启NFS服务对客户端是有影响的因此 exportfs 命令的其中⼀个功能就 是不重启就能重新加载NFS配置⽂件。
exportfs [选项] [参数]-r //重新读取/etc/exports⽂件中的设置并使其⽴即⽣效⽆需
重启服务-u //取消⼀个或者多个NFS共享⽂件系统的共享-a //exports配置⽂件中所有的共享⽬录-v //显示执⾏过程
exportfs -r 或 systemctl reload nfs-server 可以实现不重启服务重
新加载服务配置 重启nfs服务关闭防火墙和selinux
[rootserver ~]# systemctl restart nfs-server.service
[rootserver ~]# systemctl stop firewalld
[rootserver ~]# setenforce 0
[rootserver ~]#
客户端下载NFS-utils包
[rootclient ~]# yum -y install nfs-utils
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查1 day, 0:29:17 前执行于 2024年03月30日 星期六 14时25分54秒。
依赖关系解决。
软件包 架构 版本 仓库 大小安装:nfs-utils x86_64 1:2.5.4-18.el9 BaseOS 459 k
安装依赖关系:gssproxy x86_64 0.8.4-4.el9 BaseOS 114 kkeyutils x86_64 1.6.3-1.el9 BaseOS 78 klibev x86_64 4.33-5.el9 BaseOS 56 klibverto-libev x86_64 0.3.2-3.el9 BaseOS 15 krpcbind x86_64 1.2.6-5.el9 BaseOS 62 k事务概要安装 6 软件包总计783 k
安装大小1.8 M
下载软件包
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 省略 。。。。。。。已安装:gssproxy-0.8.4-4.el9.x86_64 keyutils-1.6.3-1.el9.x86_64 libev-4.33-5.el9.x86_64 libverto-libev-0.3.2-3.el9.x86_64 nfs-utils-1:2.5.4-18.el9.x86_64 rpcbind-1.2.6-5.el9.x86_64 完毕
列出有哪些NFS共享资源showmount -e 服务器地址
[rootclient ~]# showmount -e 192.168.200.133
Export list for 192.168.200.133:
/nfs-upload 192.168.200.129
[rootclient ~]# 创建挂载点 手动挂载NFS共享
[rootclient ~]# mkdir /nfs-mount
[rootclient ~]# mount 192.168.200.133:/nfs-upload /nfs-mount
[rootclient ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs tmpfs 1.5G 9.8M 1.5G 1% /run
/dev/mapper/rhel-root xfs 66G 22G 44G 34% /
/dev/nvme0n1p1 xfs 1014M 292M 723M 29% /boot
/dev/sr0 iso9660 9.0G 9.0G 0 100% /mmt
/dev/mapper/rhel-home xfs 32G 260M 32G 1% /home
tmpfs tmpfs 767M 92K 767M 1% /run/user/0
192.168.200.133:/nfs-upload nfs4 66G 18G 48G 28% /nfs-mount
[rootclient ~]#
客户端验证
[rootclient ~]# cd /nfs-mount/
[rootclient nfs-mount]# ls
[rootclient nfs-mount]# touch abc
touch: 无法创建 abc: 权限不够
[rootclient nfs-mount]#
#解释默认客户端是以nfs⽤户身份访问远端的nfs服务器如果nfs服务端共享
的⽬录属主为root⽤户那客户端默认是没有写权限 修改服务端配置 重新加载配置
[rootserver ~]# vim /etc/exports
[rootserver ~]# cat /etc/exports
/nfs-upload 192.168.200.129(no_root_squash,rw)
[rootserver ~]# exportfs -r
[rootserver ~]#
常用共享目录访问权限 只读ro 读写rw sync同步数据同时写入内存与磁盘中效率低但可以保证数据的一致性1.0.0版本后为默认 async异步数据先保存在内存中必要时写入磁盘可提高性能但服务器意外停止会丢失数据 all_squash不论登陆者以什么身份都会被映射为匿名用户nfsnobody no_all_squash以登陆者的身份不做映射包括文件所属用户和组默认 root_squash将root用户及所属组都映射为匿名用户或用户组默认 no_root_squash开放客户端使用root的身份来操作服务器文件系统
回到客户端进行测试
[rootclient nfs-mount]# touch abc.txt
[rootclient nfs-mount]# ls
abc.txt
[rootclient nfs-mount]# 设置开机自动挂载
[rootclient ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs tmpfs 1.5G 9.8M 1.5G 1% /run
/dev/mapper/rhel-root xfs 66G 22G 44G 34% /
/dev/nvme0n1p1 xfs 1014M 292M 723M 29% /boot
/dev/sr0 iso9660 9.0G 9.0G 0 100% /mmt
/dev/mapper/rhel-home xfs 32G 260M 32G 1% /home
tmpfs tmpfs 767M 92K 767M 1% /run/user/0
192.168.200.133:/nfs-upload nfs4 66G 18G 48G 28% /nfs-mount
[rootclient ~]# vim /etc/fstab
[rootclient ~]# cat /etc/fstab
省略。。。。。。
/dev/mapper/rhel-root / xfs defaults 0 0
UUID4257c2e0-c8da-45a5-aada-14c0041af5d5 /boot xfs defaults 0 0
/dev/mapper/rhel-home /home xfs defaults 0 0
/dev/mapper/rhel-swap none swap defaults 0 0
192.168.200.133/nfs-upload /nfs-mount nfs4 defaults,_netdev 0 0
服务器地址:路径 挂载点路径 文件类型 格式默认 _netdev指网络设备
[rootclient ~]#