CephFS 和 SSHFS 挂载指南:从配置到排错
1. 引言
在现代 IT 基础设施中,分布式存储 和 远程文件系统挂载 是常见的需求。
本文将介绍两种主流的挂载方式:
- CephFS:适用于大规模分布式存储集群(如企业级存储)。
- SSHFS:基于 SSH 的轻量级远程文件系统挂载(适合个人或临时使用)。
2. CephFS 挂载
2.1 什么是 CephFS?
CephFS 是 Ceph 存储集群提供的分布式文件系统,支持高可用、高性能存储,适用于 Kubernetes、OpenStack 等场景。
2.2 挂载步骤
(1) 安装依赖
sudo apt-get install ceph-common # Ubuntu/Debian
sudo yum install ceph-common # CentOS/RHEL
(2) 准备密钥文件
从 ceph.client.admin.keyring
提取密钥:
grep -oP 'key\s*=\s*\K[^ ]+' /etc/ceph/ceph.client.admin.keyring | sudo tee /etc/ceph/admin.secret
sudo chmod 600 /etc/ceph/admin.secret
(3) 挂载 CephFS
sudo mount -t ceph \192.168.168.11,192.168.168.21,192.168.168.31:/ \/mnt/cephfs \-o name=admin,secretfile=/etc/ceph/admin.secret,mds_namespace=samples,wsize=16777216
(4) 开机自动挂载
编辑 /etc/fstab
:
192.168.168.11,192.168.168.21,192.168.168.31:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/admin.secret,mds_namespace=samples,wsize=16777216,_netdev 0 0
然后执行:
sudo mount -a
2.3 验证挂载
df -h | grep cephfs # 查看挂载状态
ls /mnt/cephfs # 检查文件
2.4 常见问题
问题 | 解决方案 |
---|---|
no mds is up | 检查 ceph mds stat ,确保 MDS 服务运行 |
secret is not valid base64 | 确保密钥文件无多余字符 |
Input/output error | 检查网络连通性 |
3. SSHFS 挂载
3.1 什么是 SSHFS?
SSHFS(SSH Filesystem)通过 SSH 协议挂载远程目录,适合临时访问远程文件。
3.2 挂载步骤
(1) 安装 SSHFS
sudo apt-get install sshfs # Ubuntu/Debian
sudo yum install fuse-sshfs # CentOS/RHEL
(2) 挂载远程目录
mkdir -p ~/mnt/remote
sshfs user@192.168.1.100:/home/user/data ~/mnt/remote -o allow_other,reconnect
(3) 开机自动挂载
编辑 /etc/fstab
:
user@192.168.1.100:/home/user/data /home/user/mnt/remote fuse.sshfs allow_other,reconnect,IdentityFile=/home/user/.ssh/id_rsa 0 0
然后执行:
sudo mount -a
3.3 验证挂载
df -h | grep remote # 查看挂载状态
ls ~/mnt/remote # 检查文件
3.4 常见问题
问题 | 解决方案 |
---|---|
Connection refused | 检查 SSH 服务是否运行 (systemctl status sshd ) |
Permission denied | 确保远程用户有目录访问权限 |
read: Connection reset by peer | 添加 ServerAliveInterval 60 到 ~/.ssh/config |
4. CephFS vs SSHFS 对比
特性 | CephFS | SSHFS |
---|---|---|
协议 | Ceph 原生协议(分布式) | SSH(单通道加密) |
性能 | 高(并行访问) | 较低(受限于 SSH 吞吐量) |
适用场景 | 企业级存储、K8s 持久化存储 | 个人开发、临时文件访问 |
复杂度 | 较高(需部署 Ceph 集群) | 低(仅需 SSH) |
5. 总结
- CephFS 适合大规模分布式存储,提供高可用和高性能。
- SSHFS 适合快速挂载远程目录,简单易用但性能有限。