Nfs 共享存储搭建
为了实现不同操作系统中的数据共享,我们一般会搭建一些用于文件共享的服务器,nfs服务器就是其中一种,它实现的是linux与linux之间的共享。今天我将把如何在linux系统搭建nfs服务器的步骤分享出来,供大家参考。
介绍
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;
NFS一般用来存储共享视频,图片等静态数据;NFS 协议默认是不加密的,它不像 Samba,它不提供用户身份鉴别。服务端通过限定客户端的 IP 地址和端口来限制访问。
原理
NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序
-
首先服务器端启动RPC服务,并开启111端口
-
服务器端启动NFS服务,并向RPC注册端口信息
-
客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
-
服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
-
客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
一 环境准备
服务器 | IP地址 | 角色 | 备注 |
---|---|---|---|
master01 | 10.0.0.100 | NFS服务端 | 共享存储服务器 /data/nfs |
node01 | 10.0.0.101 | 客户端 | |
node02 | 10.0.0.102 | 客户端 |
#01 创建虚拟机 修改IP地址
sed -i 's#10.0.0.100#10.0.0.101#g' /etc/sysconfig/network-scripts/ifcfg-ens32
hostnamectl set-hostname node01
reboot
#02 修改主机名
hostnamectl set-hostname node01
二.开始搭建服务端
-
master01 执行
2.1 安装nfs所需软件包
yum install -y rpcbind nfs-utils
复制
2.2 创建测试文件并赋权限
#01 创建共享目录 并授权
[root@master01 ~]# mkdir -p /data/nfs
[root@master01 ~]# chmod 777 -R /data/
[root@master01 ~]# cd /data/nfs/
#02 创建测试文件
[root@master01 nfs]# echo 'zhangbingbing zhen bucuo' >test.txt
[root@master01 nfs]# cat test.txt
zhangbingbing zhen bucuo
2.3 修改配置文件
[root@master01 nfs]# cat /etc/exports
/data/nfs 10.0.0.0/24(rw)
解释下: 共享文件路径 允许共享网段(10.0.0.0/24)(共享文件读写权限)
-
权限
共享文件可执行权限有:
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
2.4 开启服务
#01 启动服务
[root@master01 nfs]# systemctl start rpcbind nfs
[root@master01 nfs]# systemctl enable rpcbind nfs
#系统管理 systemctl
#启动 start
#关闭 stop
#重启 restart
设置开机自启
echo "192.168.121.38:/home/test /nfs nfs4 defaults 0 0" >> /etc/fstab
mount -av
2.5 检查共享信息
#01 检查进程
[root@master01 nfs]# ps -ef | grep nfs
root 1518 2 0 23:02 ? 00:00:00 [nfsd4_callbacks]
root 1524 2 0 23:02 ? 00:00:00 [nfsd]
root 1525 2 0 23:02 ? 00:00:00 [nfsd]
root 1526 2 0 23:02 ? 00:00:00 [nfsd]
root 1527 2 0 23:02 ? 00:00:00 [nfsd]
root 1528 2 0 23:02 ? 00:00:00 [nfsd]
root 1529 2 0 23:02 ? 00:00:00 [nfsd]
root 1530 2 0 23:02 ? 00:00:00 [nfsd]
root 1531 2 0 23:02 ? 00:00:00 [nfsd]
root 1542 1187 0 23:02 pts/0 00:00:00 grep --color=auto nfs
[root@master01 nfs]# ps -ef | grep rpc
rpc 1482 1 0 23:02 ? 00:00:00 /sbin/rpcbind -w
rpcuser 1499 1 0 23:02 ? 00:00:00 /usr/sbin/rpc.statd
root 1501 2 0 23:02 ? 00:00:00 [rpciod]
root 1506 1 0 23:02 ? 00:00:00 /usr/sbin/rpc.idmapd
root 1513 1 0 23:02 ? 00:00:00 /usr/sbin/rpc.mountd
root 1544 1187 0 23:02 pts/0 00:00:00 grep --color=auto rpc
#02 检查挂载目录
[root@master01 nfs]# showmount -e 10.0.0.100
Export list for 10.0.0.100:
/data/nfs 10.0.0.0/24
(此处ip地址为搭建服务器主机地址)
三.搭建客户端
-
node01 node02 执行
标签:02,00,NFS,23,nfs,Nfs,共享,root,搭建 From: https://www.cnblogs.com/saas-open/p/17579959.html
#00 安装NFS
yum install -y nfs-utils
#01 启动服务 并创建目录
[root@node01 ~]# mkdir -p /data/nfs
[root@node01 ~]# systemctl start nfs
[root@node01 ~]# systemctl enable nfs
#02 检查是否启动
[root@node01 ~]# systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Active: active (exited) since 六 2023-07-22 23:09:39 CST; 4min 32s ago
Main PID: 1470 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
7月 22 23:09:39 node01 systemd[1]: Starting NFS server and services...
7月 22 23:09:39 node01 systemd[1]: Started NFS server and services.
#03 挂载目录
[root@node01 ~]# mount 10.0.0.100:/data/nfs /data/nfs
#04 检查
[root@node01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 38G 1.6G 36G 5% /
/dev/mapper/centos-home 19G 33M 19G 1% /home
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 199M 0 199M 0% /run/user/0
10.0.0.100:/data/nfs 38G 1.6G 36G 5% /data/nfs
#05 授权
[root@master01 nfs]# chmod 777 -R /data/