荐 Linux网络--NFS共享存储服务及实操
程序员文章站
2022-06-23 19:31:02
文章目录一:NFS基本概述二:网络文件系统(Network File System)三:NFS具体流程四:实验环境4.1:实验环境4.2:首先服务端添加一块硬盘并重启,格式化并挂载刚刚添加的硬盘(我们刚刚添加40G)4.3:进行挂载4.4:安装nfs-utils rpcbind,并设置开机启动4.5: 设置共享目录,启动服务并关闭防火墙4.6: 设置客户端4.7:进行NFS共享目录挂载或永久挂载4.8: 配置httpd网页开启服务4.9: 下一步切换到服务端5.0: 假如服务器NFS突然崩掉(模拟实验)....
文章目录
一:NFS基本概述
NFS(Network File System)网络文件系统
主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS。
二:网络文件系统(Network File System)
- 依赖于RPC(远程过程调用)
- 需安装nfs-utils,rpcbind软件包
- 系统服务:nfs【网络文件系统】,rpcbind 【远程过程调用】
- 共享配置文件:/etc/exports
以下为启动各服务的作用
rpc:远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。
portmapper:负责分配rpc server的端口,并在client端请求时,负责响应目的rpc server端口返回给client端,工作在tcp与udp的111端口上。
mountd:是nfs服务的认证服务的守护进程,client在收到返回的真正端口时,就会去连接mountd,认证取得令牌。
nfsd:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户,工作在tcp和udp的2049端口。
idmapd:是NFS的一个程序,用来负责远程client端创建文件后的权限问题。
quotad:用用于实现磁盘配额,当client端挂载nfs后可以限制磁盘空间的大小。
三:NFS具体流程
- 本地用户要访问nfs服务器中文件,先向内核发起请求,内核处理调用nfs模块及rpc client
- rpc client向rpc server发起连接
- 在连接之前,NFS服务除了启动nfsd本身监听的端口2049/tcp和2049/udp,还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口
- 完成连接,接受访问请求
- nfs应用程序向内核发起请求
- 内核调用文件系统
然后client端通过获取的NFS端口来建立和server端的NFS连接并进行数据的传输。
四:实验环境
4.1:实验环境
两台主机centod 7 一个做服务端 shuai01 (20.0.0.41) 一个作为客户端:shuai02(20.0.0.42)
4.2:首先服务端添加一块硬盘并重启,格式化并挂载刚刚添加的硬盘(我们刚刚添加40G)
[root@shuai01 ~]# fdisk -l ##查看磁盘信息
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0b1b
[root@shuai01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xf1e0c807 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@shuai01 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=2621376 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10485504, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5119, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
4.3:进行挂载
[root@shuai01 ~]# vim /etc/fstab
[root@shuai01 ~]# mount -a
[root@shuai01 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 4.9G 49G 10% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 40K 378M 1% /run/user/0
/dev/sdb1 xfs 40G 33M 40G 1% /mnt
4.4:安装nfs-utils rpcbind,并设置开机启动
[root@shuai01 ~]# yum install nfs-utils rpcbind -y
[root@shuai01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@shuai01 ~]# systemctl enable rpcbind
4.5: 设置共享目录,启动服务并关闭防火墙
[root@shuai01 ~]# vim /etc/exports ##编辑exports
/mnt 20.0.0.0/24(rw,sync,no_root_squash) ##rw:读写 sync:同步
,数据同步写到内存与硬盘中 no_root_squash: 有root的权限,不建议使用
[root@shuai01 ~]# systemctl start nfs ##重启服务
[root@shuai01 ~]# systemctl start rpcbind ##重启服务
[root@shuai01 ~]# netstat -ntap | grep rpc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 13212/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 14350/rpc.mountd
tcp 0 0 0.0.0.0:37028 0.0.0.0:* LISTEN 14348/rpc.statd
tcp6 0 0 :::50250 :::* LISTEN 14348/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 13212/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 14350/rpc.mountd
[root@shuai01 ~]# systemctl stop firewalld.service #关闭防火墙
[root@shuai01 ~]# setenforce 0 ##关闭防护功能
[root@shuai01 ~]# showmount -e ##查看本机NFS共享目录
Export list for shuai01:
/mnt 20.0.0.0/24
4.6: 设置客户端
[root@shuai02 ~]# systemctl stop firewalld.service ##关闭防火墙
[root@shuai02 ~]# setenforce 0 ##关闭安全防护功能
[root@shuai02 ~]# yum install httpd -y ##下载httpd
....省略
4.7:进行NFS共享目录挂载或永久挂载
[root@shuai02 ~]# mount 20.0.0.41:/mnt /var/www/html/ ##挂载
[root@shuai02 ~]# df -Th ##查看挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 5.0G 46G 10% /
devtmpfs devtmpfs 3.6G 0 3.6G 0% /dev
tmpfs tmpfs 3.6G 0 3.6G 0% /dev/shm
tmpfs tmpfs 3.6G 13M 3.6G 1% /run
tmpfs tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 242G 33M 242G 1% /home
tmpfs tmpfs 726M 4.0K 726M 1% /run/user/42
tmpfs tmpfs 726M 48K 726M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
20.0.0.41:/mnt nfs4 40G 33M 40G 1% /var/www/html
##配置永久挂载
[root@shuai02 ~]# umount /var/www/html/ ##先解除刚刚的挂载
[root@shuai02 ~]# vim /etc/fstab ##进行编辑
[root@shuai02 ~]# mount -a ##加载挂载
[root@shuai02 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 5.0G 46G 10% /
devtmpfs devtmpfs 3.6G 0 3.6G 0% /dev
tmpfs tmpfs 3.6G 0 3.6G 0% /dev/shm
tmpfs tmpfs 3.6G 13M 3.6G 1% /run
tmpfs tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 242G 33M 242G 1% /home
tmpfs tmpfs 726M 4.0K 726M 1% /run/user/42
tmpfs tmpfs 726M 48K 726M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
20.0.0.41:/mnt nfs4 40G 33M 40G 1% /var/www/html
4.8: 配置httpd网页开启服务
[root@shuai02 ~]# cd /var/www/html/
[root@shuai02 html]# ls
[root@shuai02 html]# vim index.html
[root@shuai02 html]# cat index.html ##查看一下内容
<h1>woshishuaig</h1>
4.9: 下一步切换到服务端
[root@shuai01 ~]# cd /mnt
[root@shuai01 mnt]# ls
index.html
[root@shuai01 mnt]# cat index.html
<h1>woshishuaige</h1>
你会发现mnt底下的也有刚刚配置的内容
5.0: 假如服务器NFS突然崩掉(模拟实验)
[root@shuai01 mnt]# systemctl stop nfs
##切换到客户机
[root@shuai02 html]# df -Th
#你会发客户机会卡在这边
[root@shuai02 ~]# umount -lf /var/www/html ##解除挂载 l:解除正在繁忙的挂载点 f:强制
###这边注意html不可Tab键补全 否则也会卡死 卡死需要从新打开一个终端
[root@shuai02 ~]# df -Th ##已经好了
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 5.0G 46G 10% /
devtmpfs devtmpfs 3.6G 0 3.6G 0% /dev
tmpfs tmpfs 3.6G 0 3.6G 0% /dev/shm
tmpfs tmpfs 3.6G 13M 3.6G 1% /run
tmpfs tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 242G 33M 242G 1% /home
tmpfs tmpfs 726M 4.0K 726M 1% /run/user/42
tmpfs tmpfs 726M 48K 726M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64:
感谢观看,给少年尝尝楼顶的滋味吧
本文地址:https://blog.csdn.net/weixin_47151643/article/details/107329931