Linux 下 NFS 文件共享服务的部署

Linux 下 NFS 文件共享服务的部署

  • NFS(Network File System)网络文件系统
    服务可以将远程 Linux 系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux 客户端)基于 TCP/IP 协议,像使用本地主机上的资源那样读写远程 Linux 系统上的共享文件。

1. NFS 服务的安装

在 NFS 客户端,服务端都进行安装

 [root@server ~]# yum install nfs-utils.x86_64
                # nfs 服务安装
 [root@server ~]# systemctl start nfs-server
                # nfs 服务启动
 [root@server ~]# systemctl enable nfs-server
                # nfs 服务开机自启
 注意关闭服务端与客户端的防火墙

NFS 服务程序的配置文件为 /etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的 NFS 客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。

NFS 服务程序配置文件的参数如下

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

2. NFS 服务的共享配置

2.1 建立 nfs 共享目录

 [root@server ~]# mkdir /nfsshare      
                # 建立共享目录
 [root@server ~]# chmod 777 /nfsshare/
                # 修改目录权限,让所有人可以访问

在服务端编辑主配置文件 /etc/exports

 [root@server ~]# vim /etc/exports   #编辑配置文件
 内容如下:
 1 /mnt     *(sync,rw,anonuid=1001,anongid=1001)
 #共享目录   对所有用户共享(同步数据,读写权限,指定用户ID,组ID'如建立的文件属于此用户')
 2 /nfsshare 172.25.151.0/24(sync)  172.25.151.50(sync,rw)
 #共享目录    对此网段的共享(数据同步)对此 IP 进行共享(数据同步,读写)

 编辑完成后执行:exportfs -rv 进行刷新
 exportfs   #维护导出的NFS文件系统的表
      -r    #重新导出所有目录
      -v    #示导出选项列表

执行如下:
编辑配置文件
这里写图片描述
进行列表刷新
这里写图片描述
在客户端进行使用

 [root@client ~]# showmount    
                #显示NFS服务器的挂载信息
           -e   #显示 NFS 服务器的共享列表
           -a   #显示本机挂载的文件资源的情况
           -v   #显示版本号
 [root@client ~]# showmount -e 172.25.151.150
                #查看 172.25.151.150 主机的 NFS 共享目录列表
 [root@client ~]# mount 172.25.151.150:/nfsshare /mnt 
                #执行此命令进行挂载使用172.25.151.150 下的共享目录 /nfsshare 挂载到客户端的 /mnt 下使用

执行如下:
执行 showmount -e IP 查看对应主机的共享目录信息
这里写图片描述
在IP为 172.25.151.50 客户端进行挂载使用,在配置文件中赋予的权限为 rw
这里写图片描述
在IP为 172.25.151.250 客户端进行挂载使用,在配置文件中赋予的权限为 ro
这里写图片描述
注:将172.25.151.150 ,即 nfs 服务器下的 /mnt 目录进行挂载使用,在配置文件中所指定的‘anonuid=1001,anongid=1001’意味着,在客户端进行操作后的用户 id 为1001
示例如下:
这里写图片描述
将挂载信息填入/etc/fstab 文件后,系统在每次开机时都自动将其挂载,
而 autofs 服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和
服务器的硬件资源。

3. autofs 自动挂载服务

无论是 Samba 服务还是 NFS 服务,都要把挂载信息写入到/etc/fstab 中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费
autofs 服务程序是一种 Linux 系统守护进程,当检测到用户视图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。autofs 服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

进行服务的安装及使用

 [root@client ~]# yum install autofs.x86_64 -y   #进行安装   
 [root@client ~]# systemctl start autofs         #开启服务
 [root@client ~]# systemctl enable autofs        #开机自启

 #启动完毕后,会生成  /net 目录,此目录下没有任何东西。
 #进入 /net/加NFS主机的IP 然后可以看到默认共享的目录,
 #进入目录后,将会自动进行挂载操 作并将其作为挂载点
 [root@client ~]# cd /net/172.25.151.150/nfsshare/

 #当挂载设备闲置后,默认是在300s后将其卸载,可以通过编辑配置文件对此时间进行修改
 #编辑 /etc/sysconfig/autofs 对第 13 行进行修改
 [root@client ~]# vim /etc/sysconfig/autofs 
 编辑第 13:
 13 TIMEOUT=5  规定了默认卸载时间,单位为 s (秒)

执行如下:
直接进入对应目录,自动挂载
这里写图片描述
编辑配置文件,修改自动卸载时间
这里写图片描述
未执行卸载操作,只要系统不再以任何方式访问共享目录 5 秒后自动卸载
这里写图片描述

使用 autofs 进行挂载目录以及挂载类型的指定
/etc/auto.master 此处定义最终挂载点的上层目录
/etc/auso.test 此处定义最终挂载点(此文件自己创建)

 编辑 /etc/auto.master 
 [root@client ~]# vim /etc/auto.master
 在第 7 行后添加
 9 /nfs /etc/auto.test
 其中/nfs   #最终挂载点的上层目录
 /etc/auto.test  子配置目录
 建立并编辑 /etc/auto.test 对最终挂载点,挂载方式以及挂载设备进行确认
 [root@client ~]# vim /etc/auto.test
 内容如下: 
  1 test  -ro  172.25.151.150:/nfsshare
 其中 test 最终挂载点
     -ro 只读挂载
     172.25.254.239:/nfsshare 设备
 重启服务后 进入 /nfs/test
 [root@client ~]# cd /nfs/test

执行如下:
编辑配置文件:
/etc/auto.master
这里写图片描述
/etc/auto.test
这里写图片描述
进入目录(/nfs/test)进行查看
这里写图片描述

猜你喜欢

转载自blog.csdn.net/Buster_ZR/article/details/80600576
今日推荐