温馨提示×

CentOS挂载远程存储解决方案

小樊
35
2025-11-21 23:29:21
栏目: 云计算

CentOS 挂载远程存储实用方案

一、方案总览与选型

  • NFS:Linux/Unix 间高性能共享,适合数据中心与同网段服务器。
  • SMB/CIFS:访问 Windows 文件共享或跨平台环境。
  • SSHFS:基于 SSH 的安全访问,部署简便,适合临时或小规模使用。
  • iSCSI:将远程块存储映射为本地磁盘,适合数据库、虚拟机镜像等场景。
  • FTP 挂载:通过 curlftpfs 将 FTP 映射为本地目录,适合只读或弱一致需求。
  • 选型建议:优先 NFS/SMB 做文件共享;需要块设备选 iSCSI;安全临时访问选 SSHFS;仅 FTP 可用 curlftpfs

二、快速上手常用方案

  • NFS

    • 客户端安装与挂载:
      • 安装:sudo yum install -y nfs-utils
      • 查看共享:showmount -e <NFS服务器IP>
      • 挂载:sudo mount -t nfs <NFS服务器IP>:/共享目录 /mnt/nfs
      • 开机自动挂载:echo '<NFS服务器IP>:/共享目录 /mnt/nfs nfs defaults,_netdev,nofail 0 0' | sudo tee -a /etc/fstab
    • 说明:defaults,_netdev,nofail 可避免网络未就绪导致启动阻塞,提升稳定性。
  • SMB/CIFS

    • 客户端安装与挂载:
      • 安装:sudo yum install -y cifs-utils
      • 凭据文件(推荐):/etc/cifs-credentials
        • 内容:
          • username=your_user
          • password=your_pass
          • domain=WORKGROUP(可选)
        • 权限:chmod 600 /etc/cifs-credentials
      • 挂载:sudo mount -t cifs //<服务器IP>/共享名 /mnt/smb -o credentials=/etc/cifs-credentials,iocharset=utf8
      • 开机自动挂载:echo '//<服务器IP>/共享名 /mnt/smb cifs credentials=/etc/cifs-credentials,iocharset=utf8,_netdev,nofail 0 0' | sudo tee -a /etc/fstab
  • SSHFS

    • 安装与挂载:
      • 安装:sudo yum install -y fuse-sshfs
      • 手动挂载:sudo sshfs user@host:/remote/dir /mnt/sshfs
      • 自动挂载(autofs):
        • 安装:sudo yum install -y autofs
        • 配置 /etc/auto.master/mnt /etc/auto.sshfs --timeout=60
        • 配置 /etc/auto.sshfsremote -fstype=fuse,allow_other :sshfs#user@host:/remote/dir
        • 重启:sudo systemctl restart autofs
  • iSCSI

    • 发现与登录:
      • 安装:sudo yum install -y iscsi-initiator-utils
      • 发现:sudo iscsiadm -m discovery -t sendtargets -p <目标IP>
      • 登录:sudo iscsiadm -m node -T <目标IQN> -p <目标IP> --login
    • 分区与挂载:
      • 查看设备:lsblk
      • 分区(示例):sudo parted /dev/sdX mklabel gpt mkpart primary ext4 0% 100%
      • 格式化:sudo mkfs.ext4 /dev/sdX1
      • 挂载:sudo mkdir -p /mnt/iscsi && sudo mount /dev/sdX1 /mnt/iscsi
      • 开机自动挂载:echo '/dev/sdX1 /mnt/iscsi ext4 defaults 0 2' | sudo tee -a /etc/fstab
  • FTP 挂载(curlftpfs)

    • 安装与挂载:
      • 安装:sudo yum install -y epel-release && sudo yum install -y curlftpfs
      • 直接挂载:curlftpfs ftp://user:pass@ftp.example.com /mnt/ftp
      • 凭据文件:echo "user:pass" > /etc/curlftpfs-passwd && chmod 600 /etc/curlftpfs-passwd
      • fstab:ftp.example.com /mnt/ftp fuse._curlftpfs _netdev,user,idmap=user,transform_symlinks,allow_other,default_permissions,password_file=/etc/curlftpfs-passwd 0 0

三、防火墙与稳定性配置

  • NFS

    • 推荐直接放行服务:sudo firewall-cmd --permanent --add-service=nfs && sudo firewall-cmd --reload
    • 如需固定端口(便于严格防火墙策略),在 NFS 服务器上配置静态端口并放行:
      • 配置端口(示例):/etc/sysconfig/nfs 中设置 LOCKD_TCPPORT=30001LOCKD_UDPPORT=30002MOUNTD_PORT=30003STATD_PORT=30004
      • 放行端口:firewall-cmd --permanent --add-port={111,2049,30001,30002,30003,30004}/tcp --permanent && firewall-cmd --reload
    • 客户端 fstab 建议加入 _netdev,nofail,避免网络未就绪导致系统卡死。
  • SMB/CIFS

    • 放行服务或端口:sudo firewall-cmd --permanent --add-service=samba && sudo firewall-cmd --reload
    • 凭据建议使用 credentials 文件,避免明文密码进入命令行或 fstab。

四、验证与常见问题

  • 验证

    • 查看挂载:df -hmount | grep <挂载点>
    • 测试自动挂载:sudo mount -a(无报错即正常)
  • 常见问题

    • 权限被拒绝(NFS):检查服务器 /etc/exports 的客户端网段与权限(如 rw,sync),并注意 root_squash/no_root_squash 的影响;客户端与服务端 UID/GID 不一致会导致访问受限。
    • 挂载超时/卡住:多为网络或防火墙问题;NFS 需确保 rpcbind(111)nfsd(2049) 及动态端口放行;fstab 加入 _netdev,nofail 可提升启动稳定性。
    • SMB 凭据安全:避免在命令行或 fstab 中明文写密码,使用 credentials 文件并设置 600 权限。

0