CephFS存储进阶——快速扩容子卷配额

1、简介

Ceph 作为企业级分布式存储的明星,支持强大的文件系统功能——CephFS。其中,子卷(subvolume)是CephFS中按需划分空间和权限的利器。本文将重点讲解如何给已创建的CephFS子卷快速安全地 扩容,从10GB升到100GB,提升存储灵活性,满足不断增长的业务需求。

2、为什么要扩容CephFS子卷?

企业应用随着数据不断增长,原有的子卷空间不够用怎么办?CephFS的子卷配额限制可保证多租户安全和资源合理分配,但业务变大后配额需动态调整。手动扩容子卷大小,是解决问题的关键步骤。

3、实战环境简介

  • CephFS名称:cephfs
  • 子卷名称:myshare
  • 初始配额:10GB(10737418240字节)
  • 目标配额:100GB(107374182400字节)
  • 客户端挂载路径示例:/mnt/myshare

4、扩容前准备:确认当前子卷配额和状态

首先,查看当前子卷信息,确认现有空间限制

~ ❯ ceph fs subvolume info cephfs myshare 
{
    "atime": "2025-08-06 07:52:19",
    "bytes_pcent": "2.29",
    "bytes_quota": 10737418240,
    "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
}
  • bytes_quota 表示当前配额大小,单位是字节(这里是10GB)。
  • bytes_used 是当前使用量。
  • state 为 complete 表示子卷处于正常状态。

5、核心操作调整配额

执行以下命令,将配额从10GB调整到100GB(注意单位是字节)

ceph fs subvolume resize cephfs myshare --size 107374182400

命令会修改Ceph集群中的子卷配额元数据,扩容完成后,子卷可用空间相应增加。

6、确认子卷配额更新

再次查看子卷信息,确认配额已生效

~ ❯ ceph fs subvolume info cephfs myshare 
{
    "atime": "2025-08-06 07:52:19",
    "bytes_pcent": "2.29",
    "bytes_quota": 107374182400, #大小为100G
    "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
}

此时,配额变成了100GB,表示扩容成功。

7、客户端视角:查看挂载空间变化

扩容后,客户端看到的挂载空间也会相应变化

~ ❯ df -Th | grep myshare                                                                                     
ceph-fuse                         fuse.ceph-fuse  100G  2.3G   98G   3% /mnt/myshare

注意:客户端如果使用的是内核CephFS客户端,空间配额变更会实时生效,无需手动操作。

8、扩容操作要点及风险提示

  • 扩容是安全的,不会影响已有数据。
  • 缩容(减小配额)风险较大,慎用,避免因配额小于已用空间导致数据不可用。
  • 扩容只修改配额,真实数据存储空间由集群整体容量决定,确保集群有足够可用空间。
  • 扩容后,客户端挂载时看到的容量才会更新。
  • 可结合 CephFS 快照和克隆功能,提高数据管理灵活度。

9、总结

步骤关键命令及说明
查看当前子卷信息ceph fs subvolume info cephfs myshare
调整子卷配额ceph fs subvolume resize cephfs myshare --size <字节数>
验证配额更新再次执行 info 命令确认
查看客户端挂载空间`df -Th

通过以上简单3步,就可以轻松实现 CephFS 子卷从10GB扩容到100GB,满足不断变化的存储需求。

✨ 只写原创,不接广告,不接广告,不接广告。

在这里,你将看到全新的技术分享、运维经验、以及最新的行业动态。我们坚信,原创内容才是最有价值的资源,所以所有文章都是独立创作,与你们一起成长。

声明:来自IT运维大爆炸,仅代表创作者观点。链接:https://eyangzhen.com/2136.html

IT运维大爆炸的头像IT运维大爆炸

相关推荐

关注我们
关注我们
购买服务
购买服务
返回顶部