1、简介
在现代云原生存储方案中,CephFS 凭借其强大的可扩展性、高可靠性与灵活的权限控制,已成为企业级文件系统的首选之一。本文将从创建 CephFS 文件存储到客户端挂载的全过程进行详尽介绍,帮助你快速掌握 CephFS 文件存储的使用方式,并无缝集成到实际业务中。
2、存储类型
在 Ceph 中,提供了三种主流存储接口:
- CephFS 文件存储:基于 POSIX 的分布式文件系统,适用于容器共享存储、机器学习数据目录、用户空间文件访问等场景。
- RBD 块存储:面向虚拟机镜像、数据库存储等场景,提供高性能块级存储。
- RGW 对象存储:兼容 S3/Swift 的对象存储,适用于海量非结构化数据场景,如备份归档、日志存储、视频资源管理等。
本文将聚焦于 CephFS 的创建与挂载流程。
3、存储方式对比
存储类型 | 接口形式 | 典型场景 | 优势特点 |
---|---|---|---|
RBD 块存储 | 块设备 | 虚拟机、数据库 | 高性能、可快照、克隆 |
RGW 对象存储 | RESTful API | 对象存储(图片/视频/日志) | S3 兼容、大规模可扩展 |
CephFS 文件存储 | 文件系统挂载 | HPC、K8s 共享卷、NAS 替代 | POSIX 支持、可挂载、支持多用户 |
4、创建并启用 CephFS 文件存储
仅需一条命令即可启动完整的 CephFS 文件系统:
ceph fs volume create cephfs
🔍 背后发生了什么?
执行该命令后,Ceph 将自动:
- 创建元数据池
cephfs_metadata
- 创建数据池
cephfs_data
- 启用名为
cephfs
的文件系统 - 自动部署 MDS(元数据服务)守护进程(前提是已启用
cephadm
)
🔎 验证文件系统状态
通过以下命令检查文件系统与 MDS 状态:
ceph fs ls
ceph fs status
ceph orch ps --daemon-type mds
确保输出中包含:
- CephFS 文件系统
cephfs
- 至少一个处于
active
状态的 MDS 守护进程
5、创建子卷(Subvolume)
子卷用于在 CephFS 中进行更细粒度的目录隔离与配额管理
ceph fs subvolume create cephfs myshare --size 10G
查询子卷信息
ceph fs subvolume info cephfs myshare
输出内容包括路径、配额、MON 节点信息、快照功能支持等
{
"atime": "2025-08-06 07:52:19",
"bytes_pcent": "2.29",
"bytes_quota": 107374182400,
"bytes_used": 2459648068,
"created_at": "2025-08-06 07:52:19",
"ctime": "2025-08-07 06:53:30",
"data_pool": "cephfs.cephfs.data",
"features": [
"snapshot-clone",
"snapshot-autoprotect",
"snapshot-retention"
],
"flavor": 2,
"gid": 0,
"mode": 16877,
"mon_addrs": [
"172.22.1.101:6789",
"172.22.1.102:6789",
"172.22.1.103:6789"
],
"mtime": "2025-08-07 06:53:30",
"path": "/volumes/_nogroup/myshare/29bb058a-e1e6-4455-b41a-de8415bf7aa3",
"pool_namespace": "",
"state": "complete",
"type": "subvolume",
"uid": 0
}
6、客户端挂载 CephFS
✅ 前提准备
- Ceph 集群正常运行,MDS 服务已启用
- 已创建 CephFS 与子卷
- 客户端安装好
ceph-common
包 - 拷贝
ceph.conf
与admin.keyring
到客户端
🔧 安装客户端依赖
Ubuntu/Debian:
sudo apt install ceph-common
CentOS/RHEL:
sudo yum install ceph-common
🔐 配置认证文件
将认证文件拷贝至客户端:
scp /etc/ceph/ceph.conf root@client:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring root@client:/etc/ceph/
或者将 key 文件内容直接写入:
#主节点查看密钥
/etc/ceph ❯ ceph auth get-key client.admin
AQDJyZJoYgpkHBAADLWHydc9RZHNOVytNhBDrQ==#
#写入从节点
echo'AQDJyZJoYgpkHBAADLWHydc9RZHNOVytNhBDrQ==' > /etc/ceph/admin.secret
📌 挂载方式一:内核挂载(推荐)
mkdir /mnt/myshare
mount -t ceph 172.22.1.101,172.22.1.102,172.22.1.103:/volumes/_nogroup/myshare/29bb058a-e1e6-4455-b41a-de8415bf7aa3 /mnt/myshare -o name=admin,secretfile=/etc/ceph/admin.secret
挂载成功后,可用 df -Th
查看:
Filesystem Type Size Used Avail Use% Mounted on
172.22.1.101,172.22.1.102,172.22... ceph 10G 0 10G 0% /mnt/myshare
📌 挂载方式二:ceph-fuse(用户态挂载)
适用于不便使用内核模块的系统环境
sudo apt install ceph-fuse
sudo ceph-fuse -r /volumes/_nogroup/myshare/<uuid> /mnt/myshare
验证挂载成功:
Filesystem Type Size Used Avail Use% Mounted on
ceph-fuse fuse.ceph-fuse 100G 0 100G 0% /mnt/myshare
7、总结
本文完整介绍了 CephFS 的部署流程,包括:
- 如何一键创建 CephFS
- 如何创建与管理子卷
- 如何在客户端挂载使用 CephFS(支持内核与用户态方式)
借助 CephFS,你可以轻松构建高性能、弹性扩展的共享存储平台,为你的容器平台、AI 训练集群或科研数据分析系统提供坚实的存储基础。
✨ 只写原创,不接广告,不接广告,不接广告。
在这里,你将看到全新的技术分享、运维经验、以及最新的行业动态。我们坚信,原创内容才是最有价值的资源,所以所有文章都是独立创作,与你们一起成长。
声明:来自IT运维大爆炸,仅代表创作者观点。链接:https://eyangzhen.com/2101.html