Cephfs扩展计划需求描述建立完整的cephfs扩展计划,以满足在各种情况下cephfs用户数据存储空间的扩展需求。当前,扩展仅涉及用户的数据存储,并且元数据部分由于空间使用率低而不需要考虑扩展。现有的cephfs用户存储模型当前,一个用户对应一个ceph集群中的多个Dir目录,每个Dir目录的底层与两个池关联。 Metadata_pool用于存储元数据,而data_pool用于存储数据。通过文件布局扩展进行单集群扩展计划的基本原理每个文件都有文件布局的xattr属性,该属性包含一个密钥池字段,该字段用于指定在存储文件底部使用哪个池,因此可以使用此功能。用于实现基于目录的基本扩展。请参阅https://docs.ceph.com/docs/master/cephfs/file-layouts/#adding-a-data-pool-to-the-mds操作流程root @ host1:/ mnt / cephfs1#cephdfRAWSTORAGE:CLASSSIZEAVAILUSEDRAWUSED %RAWUSEDhdd952TiB861TiB89TiB91TiB9.52TOTAL952TiB861TiB89TiB91TiB9.52POOLS:POOLIDSTOREDOBJECTSUSED%USEDMAXAVAILrbdtest-site1-ssd-img18.7TiB2.34M26TiB24.5827TiBrbdtest-site1-sas-img28.8TiB2.31M26TiB3.63233TiBcephfs_metadata385GiB116.05k86GiB0.1027TiBcephfs_data412TiB198.68M36TiB30.6527TiBcephfs_pool15121GiB31.04k364GiB0.4427TiBsym_cephfs_data6656KiB133.6MiB0233TiBsym_cephfs_metadata70B00B0233TiBkubernetes20152B6192KiB0233TiBroot@host1 :/mnt/cephfs1#setfattr-nceph.dir.layout.pool-vcephfs_pool1/mnt/cephfs1/extest1/root@host1:/mnt/cephfs1#getfattr-nceph.dir.layout/mnt/cephfs1/extest1getfattr:Removing Leading&# 39; /'来自绝对路径名#file:mnt / cephfs1 / extest1ceph.dir.layout =“” stripe_unit = 4194304stripe_count = 1object_size = 4194304pool = cephfs_pool1“” root @ host1:/ mnt / cephfs1 / extest1#touch / file2root @ host1: mnt / cephfs1 / extest1#getfattr-nceph.fil e.layout / mnt / cephfs1 / extest1 / file2getfattr:从绝对路径名中删除Leading' /' file:mnt / cephfs1 / extest1 / file2ceph.file.layout = “ stripe_unit = 4194304stripe_count = 1object_size = 4194304pool = cephfs_pool1”计划1。相同级别的目录扩展如果业务端可以通过添加新的主目录来扩展容量,则可以通过添加用户主目录并将新目录指向新的data_pool来扩展它。优点:新扩展的池不会影响现有的存储服务。缺点:业务需要能够适应此新子目录的扩展方法。解决方案2.子目录扩展如果业务端只能在原始主目录中执行操作,则可以通过在原始主目录下添加用户子目录并将新生成的子目录指向新的data_pool来实现扩展。优点:新扩展的池不会影响现有的存储服务。缺点:业务需要能够适应此新子目录的扩展方法。通过添加OSD进行容量扩展的基本原理是基于本地基础分布式存储的基本特征。可以将OSD添加到原始池中进行扩展,但是新的OSD将导致旧数据重新平衡,从而导致性能波动并影响服务质量。解决方案3.通过将OSD添加到原始data_pool中来实现原始data_pool的扩展。优点:无需在业务和k8s级别进行任何更改,并且对上层完全透明。缺点:添加OSD时,旧群集的性能会抖动。同时,为了考虑扩张速度并减少业务影响,相对扩张期将相对较长。限于机房机柜和网络设备环境,物理级别有上限。多集群扩展解决方案4.新添加的ceph集群受到单集群存储集群(受限制的机柜,网络等)的大小限制。一个计算机机房中可能有多个群集,多个计算机机房中可能存在多个群集,因此这一存储扩展计划也将包括在设计范围内。优点:适应现有的单集群部署方案(1个集群跨越3个机柜),相对容易地执行故障域隔离(不要将鸡蛋放在篮子里)。扩展新群集不会影响现有的存储服务。缺点:企业需要能够适应这种跨集群模型(跨集群目录数据不能互操作),并且最好不要在单个docker中同时装载两个以上集群的目录。 k8s存储资源调度的复杂性增加了,它需要支持多个集群。