Linux的NFS共享存储服务(配置案例)



NFS共享存储服务

1. 基本概念

  • NFS (Network File System):是一种网络文件系统协议,用于通过网络共享文件系统,依赖于 RPC(远端过程调用)。属于 NAS类别。NFS 是实现 NAS 的一种协议,NAS 可以使用 NFS 协议来提供文件共享服务。
  • 拓展类别(硬件):
    • NAS(Network Attached Storage,网络附加存储)
      • 定义:NAS 是一种专门用于文件存储的设备,连接到网络后,允许多个客户端通过网络访问存储在其中的数据。用户可以像访问本地文件系统一样访问 NAS 上的文件。
      • 特点:易于管理、支持多个协议(如 NFS、SMB/CIFS)、适用于文件共享和备份。
    • 分布式存储
      • 定义:分布式存储是将数据分布在多个物理或虚拟存储设备上,并通过网络进行访问。它通过冗余和数据分布来实现高可用性和可靠性。
      • 特点:弹性扩展、容错能力强、适合大规模数据存储和处理,常用于大数据、云计算等场景。
    • Flash 闪存存储阵列
      • 定义:基于闪存(如 SSD)的存储阵列,提供高速的数据读写性能。相较于传统的机械硬盘,闪存存储阵列具有更快的读写速度和更低的延迟。
      • 特点:高性能、低延迟、功耗低、适用于数据库、虚拟化等高性能要求的应用。
    • SAS(Serial Attached SCSI,串行连接 SCSI)直连存储
      • 定义:SAS 是一种用于连接存储设备的高性能接口标准,主要用于服务器和存储设备之间的高速数据传输。SAS 直连存储是指直接通过 SAS 接口连接存储设备到服务器。
      • 特点:高速传输、支持多设备连接、适合企业级存储系统和数据中心。
  • 依赖于RPC(远端过程调用):负责管理 RPC(Remote Procedure Call)服务,是 NFS 的依赖服务之一。
  • 依赖的软件包nfs-utilsrpcbind
  • 系统服务:nfs、rpcbind
  • 共享配置文件:/etc/exports
  • 应用场景(YUM):可以将共享的挂载点挂载到客户端,再编辑YUM配置文件(baseurl=file:///),实现YUM的网络配置。

2. 案例:配置与使用

服务端配置

  • 安装必要软件NFS和RPC

    yum install -y nfs-utils rpcbind
    systemctl enable nfs
    systemctl enable rpcbind
    # 配置服务在系统启动时自动启动
    
  • 设置共享目录并配置访问规则

    mkdir -p /opt/wwwroot
    chmod 777 /opt/wwwroot/
    # 确保共享目录对所有访问者都可用
    
    vim /etc/exports
    # 配置共享目录,此文件定义了哪些目录被共享,以及可以访问这些目录的客户端。
    
    /opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)
    /var/ftp/pub 192.168.4.11(ro) 192.168.4.110(rw)
    /share *(rw,sync)
    

    解释

    • /opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)
      • /opt/wwwroot:要共享的目录路径。
      • 192.168.7.0/24:指定允许访问该共享目录的网络范围(即 192.168.7.0 网络中的所有主机)。
      • rw:允许客户端对该目录进行读写操作。
      • sync:数据在写入时同步到硬盘中,减少数据丢失的风险,确保数据的写入一致性。(当客户端写入数据时,数据会立即同步写入到服务器的硬盘中,而不是先暂时保存在缓存中再延后写入。服务器会在确认数据已成功写入到硬盘后,才会向客户端返回写入成功的确认信息。)
      • no_root_squash:(直译:不_root_去除)允许客户端的 root 用户在访问共享目录时保留 root 权限(默认是root_squash)。
      • root_squash:表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。(默认情况下,NFS 服务器会将来自客户端的 root 用户请求映射为匿名用户(通常是 nobody),以减少安全风险。这种行为被称为 root_squash )。
    • /var/ftp/pub 192.168.4.11(ro) 192.168.4.110(rw)
      • /var/ftp/pub:要共享的另一个目录路径。
      • 192.168.4.11(ro):允许指定的客户端(192.168.4.11)以只读方式访问该目录。
      • 192.168.4.110(rw):允许指定的客户端(192.168.4.110)以读写方式访问该目录。

    其他常用选项

    • all_squash:所有访问用户都映射为匿名用户或用户组。
    • async:将数据先保存在内存缓冲区中,必要时才写入磁盘。
    • subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
    • no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
  • 启动服务

    systemctl start rpcbind # 先启动rpcbind
    systemctl start nfs
    
    systemctl enable rpcbind --now # 开机自启并当前启动
    
  • 查看端口检查启动情况

    netstat -natp | grep rpcbind
    
  • 查看共享

    查看当前主机共享出去的目录列表

    showmount -e
    

    此时会输出:

    Export list for ftp-nfs:
    /opt/wwwroot 192.168.110.0/24
    

客户端配置

  • 同样需要安装NFS和RPC

    yum install -y nfs-utils rpcbind
    
  • 添加自启并启动

    systemctl enable rpcbind --now
    
    systemctl status rpcbind
    
  • 创建挂载点

    mkdir /myshare
    
  • 查看指定IP主机可供挂载的目录

    showmount -e 192.168.110.128
    # 后面要跟IP地址
    
    # 输出:
    Export list for 192.168.110.128:
    /opt/wwwroot 192.168.110.0/24
    
  • 手动挂载 NFS 共享目录(可省)

    mkdir /myshare
    mount 192.168.110.128:/opt/wwwroot /myshare
    
  • 设置自动挂载(永久挂载)

    vim /etc/fstab
    
    # 添加内容
    192.168.110.128:/opt/wwwroot /myshare nfs defaults,_netdev 0 0
    
    # 根据/etc/fstab文件的配置,挂载所有未挂载的文件系统
    mount -a
    
    # 查看挂载点
    df -hT
    

    解释

    _netdev:表示挂载设备需要网络

  • 测试验证

    上传文件,查看占用空间即可

  • 强制卸载

    如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用 umount 命令是无法直接卸载的,需要加上-If 选项才能卸载。

    umount -lf /myshare
    

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值