NFS服务器搭建

NFS服务器搭建

    • 1. NFS简介
    • 2. NFS工作原理
    • 3. 配置NFS服务端
      • 3.1 启动服务
      • 3.2 修改配置文件
    • 4. 配置NFS客户端
    • 5. 防火墙设置

1. NFS简介

NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。
NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
NFS必须和RPC共同使用,而且只兼容类UNIX系统。通过远程过程调用(Remote Procedure Call,RPC)协议来实现了RPC服务(portmap 或rpcbind服务)。RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的port上去

2. NFS工作原理

NFS服务端和客户端之间通过随机选择端口来传输数据,NFS服务端利用RPC协议与客户端进行沟通决定使用的随机端口,然后利用这个端口来传输数据,使用的随机端口通常小于1024。RPC协议用来统一管理NFS的随机端口,其使用的端口默认为111。

通信过程:

1.客户端向服务端的rpc服务请求服务端的NFS端口
2.服务端的rpc服务返回NFS端口信息给客户端
3.客户端通过获取到的NFS端口建立和服务端的连接
4.服务端获取本地共享文件的信息
5.服务端通过NFS端口建立和客户端的连接
6.开始进行文件传输

3. 配置NFS服务端

3.1 启动服务

[root@k8s-node-02 backup]# ps -ef|grep nfs
root     123018      2  0 11:18 ?        00:00:00 [nfsiod]
root     123110   2033  0 11:18 pts/0    00:00:00 grep --color=auto nfs
[root@k8s-node-02 backup]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@k8s-node-02 backup]# systemctl start nfs
[root@k8s-node-02 backup]# systemctl enable nfs
[root@k8s-node-02 backup]# systemctl status nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Thu 2023-02-16 11:19:14 EST; 1s ago
  Process: 123374 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 123357 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 123355 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 123357 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
   CGroup: /system.slice/nfs-server.service

Feb 16 11:19:13 k8s-node-02 systemd[1]: Starting NFS server and services...
Feb 16 11:19:14 k8s-node-02 systemd[1]: Started NFS server and services.

不同版本的系统可能默认安装的软件不同,如果没有该软件,需要安装

[root@k8s-node-02 backup]# yum install -y nfs-utils

3.2 修改配置文件

NFS的配置文件/etc/exports

[root@k8s-node-02 backup]# cat /etc/exports
/share *(rw,sync,no_subtree_check,no_root_squash)
[root@k8s-node-02 backup]# mkdir /configs
[root@k8s-node-02 backup]# exportfs -arv			#使配置文件生效

这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在。这里的*表示任何客户端都可以访问/share

选项:

配置项 说明
rw 可读写权限。
ro 只读权限。
no_root_squash 当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。
root_squash 如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。
all_squash 忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。
anonuid 通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。
anongid 同anonuid,但是变为Group ID。
sync 同步写入资料到内存与硬盘中。
async 资料会先暂存于内存中,而非直接写入硬盘。
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
hide 在NFS共享目录中不共享其子目录

如:
/home/share 192.168.88.109(rw,sync) 192.168.88.102(ro) 配置说明:对192.168.88.109赋予读写权限,102机器仅有只读权限。

4. 配置NFS客户端

服务端

[root@k8s-node-02 backup]# echo 123>/share/123

[root@k8s-node-02 backup]# ll /share/
total 0
-rw-r--r--. 1 root root 0 Feb 16 11:51 123
[root@k8s-node-02 backup]#

客户端

[root@k8s-node-02 backup]# mkdir /share
[root@k8s-node-02 backup]# mount 192.168.71.183:/share /share
[root@k8s-node-02 backup]# ll /share
total 0
[root@k8s-node-02 backup]# ll /share
total 0
-rw-r--r-- 1 root root 0 Feb 16 11:51 123
[root@server ~]# showmount -e node-138
Export list for node-138:
/share *
[root@server ~]# df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  846M     0  846M   0% /dev
tmpfs               tmpfs     875M     0  875M   0% /dev/shm
tmpfs               tmpfs     350M  9.8M  340M   3% /run
/dev/sda2           xfs        20G  4.8G   16G  24% /
/dev/sr0            iso9660   8.0G  8.0G     0 100% /media/cdrom
/dev/sda1           xfs      1014M  257M  758M  26% /boot
tmpfs               tmpfs     175M   52K  175M   1% /run/user/42
tmpfs               tmpfs     175M   36K  175M   1% /run/user/0
/dev/mapper/vg0-lv1 xfs       197M   14M  184M   7% /mnt/lv1
node-138:/share     nfs4       27G   18G  9.7G  65% /nfs

5. 防火墙设置

如果在需要启用防护墙的服务器上安装nfs,则需要对其放行,命令如下:

firewall-cmd --add-service=nfs
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=mountd
firewall-cmd --add-service=mountd --permanent

你可能感兴趣的:(#,NFS服务器,服务器,网络,linux)