麒麟服务器系统搭建nfs共享

麒麟服务器系统搭建nfs共享

1. NFS介绍

NFS(Network File System,网络文件存储系统)最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以通过网络,让不同的主机、不同的操作系统可以共享存储的服务。

NFS 跟其他文件共享协议一样,也是采用了 C/S 架构。但是,NFS 只提供了基本的文件处理功能,而不提供任何 TCP/IP 数据传输功能。它需要借助 RPC(Remote Procedure Call,远程过程调用) 协议才能实现 TCP/IP 数据传输功能。

NFS 在文件传送或信息传送过程中依赖于 RPC(Remote Procedure Call,远程过程调用) 协议。 NFS 的各项功能都必须要向 RPC 来注册,如此一来 RPC 才能了解 NFS 这个服务的各项功能 Port、PID、NFS 在服务器所监听的 IP 等,而客户端才能够透过 RPC 的询问找到正确对应的端口,所以,NFS 必须要有 RPC 存在时才能成功的提供服务,简单的理解二者关系:NFS是 一个文件存储系统,而 RPC 是负责信息的传输。

2. 系统环境

服务端

IP:192.168.136.128

系统版本:

[root@localhost 桌面]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)

Kernel:
4.19.90-24.4.v2101.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################

客户端

IP:192.168.136.130

系统版本:Kylin-Desktop-V10-SP1-2107-x86_64

3. 服务端共享

通过上边简短的介绍,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbindnfs-utils

  • 安装 nfs 服务
[root@localhost 桌面]# yum install -y rpcbind nfs-utils 
[root@localhost 桌面]# 

  • 启动rpc服务,并设置开启自启动
[root@localhost 桌面]# systemctl start rpcbind.service
[root@localhost 桌面]# 
[root@localhost 桌面]# systemctl enable rpcbind.service
[root@localhost 桌面]# 
[root@localhost 桌面]# systemctl status rpcbind.service 
● rpcbind.service - RPC Bind
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2022-12-22 13:32:58 CST; 7h ago
     Docs: man:rpcbind(8)
 Main PID: 812 (rpcbind)
    Tasks: 1
   Memory: 604.0K
   CGroup: /system.slice/rpcbind.service
           └─812 /usr/bin/rpcbind -w -f

12月 22 13:32:58 localhost.localdomain systemd[1]: Starting RPC Bind...
12月 22 13:32:58 localhost.localdomain systemd[1]: Started RPC Bind.
[root@localhost 桌面]# 
  • 启动nfs服务,并设置开机自启动
[root@localhost 桌面]# systemctl start nfs.service
[root@localhost 桌面]# 
[root@localhost 桌面]# systemctl enable nfs.service
[root@localhost 桌面]# 
[root@localhost 桌面]# 
[root@localhost 桌面]# systemctl status nfs.service 
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2022-12-22 21:17:36 CST; 1min 57s ago
 Main PID: 1802 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
   CGroup: /system.slice/nfs-server.service

12月 22 21:17:35 localhost.localdomain systemd[1]: Starting NFS server and services...
12月 22 21:17:36 localhost.localdomain systemd[1]: Started NFS server and services.
  • 防火墙放行

NFS所需服务有:rpc-bind、nfs、mountd 。

[root@localhost 桌面]# firewall-cmd --zone=public --add-service=rpc-bind --permanent 
success
[root@localhost 桌面]# firewall-cmd --zone=public --add-service=nfs --permanent 
success
[root@localhost 桌面]# firewall-cmd --zone=public --add-service=mountd --permanent 
success
[root@localhost 桌面]# firewall-cmd --reload
success
[root@localhost 桌面]# 
[root@localhost 桌面]# firewall-cmd --zone=public --list-services 
cockpit dhcpv6-client mdns mountd nfs rpc-bind ssh
[root@localhost 桌面]# 

  • 创建共享目录
#创建共享目录,并将其权限设置成777
[root@localhost 桌面]# mkdir /data
[root@localhost 桌面]# chmod -R 777 /data
[root@localhost 桌面]# 

  • 编辑配置文件 /etc/exports ,加入以下内容。
vim /etc/exports


/data 192.168.136.0/24(rw,sync)

注意:IP地址与权限之间没有空格。

配置说明:

格式: 共享目录的路径 允许访问的NFS客户端(共享权限参数)

如上,共享目录为 /data,允许访问的客户端为 192.168.136.0/24 网段,读写权限

这里用于设置共享权限的参数有很多,下面列出一些常见的:

参数 说明
ro 只读
rw 读写
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
  • 重新加载nfs服务,使配置生效

如果修改了 NFS 配置文件,我们可以通过以下命令直接使新的配置文件生效而不用中断服务。

[root@localhost 桌面]# systemctl reload nfs
[root@localhost 桌面]# 

或者

[root@localhost 桌面]# exportfs -rv
[root@localhost 桌面]# 

4. 客户端挂载

  • 安装nfs服务
kylin@kylin-vm:~/桌面$ sudo apt install nfs-common 
kylin@kylin-vm:~/桌面$ 

  • 查看nfs服务端的共享目录
kylin@kylin-vm:~/桌面$ showmount -e 192.168.136.128
Export list for 192.168.136.128:
/data 192.168.136.0/24
kylin@kylin-vm:~/桌面$ 

showmount 命令:

参数 说明
-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况NFS资源的情况
-v 显示版本号
  • 挂载共享目录
#创建挂载点
kylin@kylin-vm:~/桌面$ sudo mkdir /share
[sudo] kylin 的密码:
kylin@kylin-vm:~/桌面$ 

#挂载共享目录到本地
kylin@kylin-vm:~/桌面$ sudo mount -t nfs 192.168.136.128:/data /share
kylin@kylin-vm:~/桌面$ 

#查看挂载结果
kylin@kylin-vm:~/桌面$ df -hT
文件系统              类型      容量  已用  可用 已用% 挂载点
udev                  devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                 tmpfs     391M  3.0M  388M    1% /run
/dev/sda5             ext4       23G   16G  6.3G   71% /
tmpfs                 tmpfs     2.0G     0  2.0G    0% /dev/shm
tmpfs                 tmpfs     5.0M  4.0K  5.0M    1% /run/lock
tmpfs                 tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1             ext4      976M  105M  804M   12% /boot
/dev/sda7             ext4       16G  2.5G   12G   18% /data
/dev/loop0            squashfs  173M  173M     0  100% /run/wine
tmpfs                 tmpfs     391M   44K  391M    1% /run/user/1000
192.168.136.128:/data nfs4       66G  9.7G   56G   15% /share
kylin@kylin-vm:~/桌面$ 


  • 设置开机自动挂载

编辑 /etc/fstab ,在末尾加上下面的内容。

sudo vim /etc/fstab

192.168.136.128:/data    /share	nfs		defaults		0 0

你可能感兴趣的:(kylin,linux,kylin,服务器,运维)