Nfs 共享存储搭建

发布时间 2023-07-25 15:18:20作者: 宁采臣open

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的一个程序

  1. 首先服务器端启动RPC服务,并开启111端口

  2. 服务器端启动NFS服务,并向RPC注册端口信息

  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

  5. 客户端通过获取的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 执行



#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/