美文网首页
Centos 安装NFS共享服务

Centos 安装NFS共享服务

作者: 木人呆呆 | 来源:发表于2022-12-14 15:19 被阅读0次

    本文详细讲解了NFS实验的几个步骤。

    一、NFS概述
    NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。
    NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。
    二、安装 nfs-utils、rpcbind 软件包
    NFS 服务的实现依赖于 RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在Centos 7系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

    nfs端口号2049
    RPC端口号111

    rpm -q rpcbind nfs-utils     #查询是否安装
    yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包
    
    systemctl start nfs      #开启nfs服务
    systemctl start rpcbind   #开启rpcbind服务
    systemctl enable nfs     #开机自启nfs服务
    systemctl enable rpcbind   #开机自启rpcbind服务
    

    三、NFS的特点
    采用TCP/IP传输网络文件
    安全性低
    简单易操作
    适合局域网环境
    四、实验步骤
    安装nfs和rpcbind软件
    修改配置文件设置共享
    创建共享目录
    开启服务
    客户端验证共享目录可访问
    1、安装nfs和rpcbind软件

    rpm -q rpcbind nfs-utils     #查询是否安装
    yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包
    

    2、设置共享目录
    NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。
    在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。
    例如,将文件夹 /opt/web 共享给 192.168.109.0/24网段使用,允许读写操作,配置如下

    mkdir /opt/web
    
    vim /etc/exports
    
    /opt/web 192.168.109.0/24(rw,sync,no_root_squash)
    

    常用选项:

    rw 表示允许读写
    ro 表示为只读
    sync 表示同步写入到内存与硬盘中
    no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
    root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
    其它常用选项:

    all_squash 所有访问用户都映射为匿名用户或用户组
    async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
    subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
    no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
    举例:
    其中客户机地址可以是主机名 ID 地址、网段地址,允许使用 “*” “?” 通配符;权限选项中的 rw 表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将为 nfsnobody 用户降权对待)。

    当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。
    例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。

    [root@localhost ~]# vim /etc/exports
    
    /var/ftp/public 192.168.109.11(ro) 192.168.109.12(rw)
    

    3、启动 NFS服务并验证结果
    需要先启动rpc服务,因为nfs要向rpc注册端口

    systemctl start nfs      #开启nfs服务
    systemctl start rpcbind   #开启rpcbind服务
    systemctl enable nfs     #开机自启nfs服务
    systemctl enable rpcbind   #开机自启rpcbind服务
    
    netstat -anpu | grep rpc  #过滤出rpc所有UDP连接信息
    
    rpcinfo -p localhost   #查看nfs向rpc注册的端口信息
    
    exports -v     #验证结果
    exports -r     #刷新结果
    
    showmount -e localhost   #验证共享
    

    4、客户机中访问 NFS 共享资源

    yum install -y nfs-utils rpcbind
    
    showmount -e 192.168.109.11   #客户端验证共享
    
    yum install -y httpd
    
    mount -t nfs 192.168.109.11:/opt/web /var/www/html   #将共享目录挂载到网页目录
    
    systemctl start httpd   #启动web服务
    
    curl 127.0.0.1   #访问主页内容
    
    echo "到此一游" >> /var/www/html/index.html    #客户端修改主页文件(服务端会同步)
    
    

    NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs 。
    可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。
    4.1 手动挂载 NFS 共享目录
    以 root 用户身份执行 mount 操作,将 NFS 服务器共享的 /opt/web目录挂载到本地目录 /var/www/html 。与挂载本地文件系统不同的是,设备位置处应指出服务器地址。

    mount -t nfs 192.168.109.11:/opt/web /var/www/html
    

    4.2 fstab自动挂载设置
    修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置(文件系统类型为nfs)。
    挂载参数建议添加_netdev(设备需要网络)
    若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS 共享资源了。

    vim /etc/fstab

    192.168.109.11:/opt/web /var/www/html           nfs     default,_netdev 0 0
    

    4.3 强制卸载 NFS
    NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h
    命令卡死的现象。
    这个时候使用 umount 命令是无法直接卸载的,需要加上-lf 选项才能卸载。
    当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。然后使用 umount 命令卸载,其中-l 选项表示解除正在繁忙的文件系统,-f 选项表示强制。

    systemctl stop nfs    #服务器端模拟nfs挂掉
    
    umount /var/www/html   #客户端卸载时会卡住
    
    umount -lf /var/www/html   #加lf参数成功卸载
    

    其他nfs文件:

    /var/lib/nfs/etab       #记录NFS分享出来的目录的完整权限设定值
    
    /var/lib/nfs/xtab       #记录曾经登录过的客户端信息
    

    五、总结
    本文内容主要讲了NFS的安装步骤,先安装nfs和rpcbind软件,然后修改配置文件设置共享,再创建共享目录,最后开启服务,客户端就可以访问共享目录了。

    相关文章

      网友评论

          本文标题:Centos 安装NFS共享服务

          本文链接:https://www.haomeiwen.com/subject/jskkqdtx.html