Rook Ceph Snapshot的清理

本文介绍了在Kubernetes中使用Rook Ceph时,如何管理和清理rbd快照的问题。当VolumeSnapshotContent与Ceph快照不匹配,可能导致Ceph空间不足。文章详细阐述了Ceph rbd快照的性质,以及VolumeSnapshotContent与rbd快照的关系,并提供了删除单个和多个rbd snapshot的步骤。

目录

问题

背景知识

Ceph rbd快照

VolumeSnapshotContent和rbd快照

删除一个rbd snapshot

删除多个rbd snapshot

参考


问题

平时用k8s进行开发测试时,如果使用了rbd的snapshot,并且清理不及时的话,或者清理方法有问题,可能会遇到以下的情况:

  • VolumeSnapshotContent不多

  • 但是Ceph的snapshot很多

最终可能会导致Ceph不可用,比如因为disk空间不够。

背景知识

Ceph rbd快照

Ceph的rbd快照从定义来看,就是一个只读的image。Ceph官方文档建议在创建snapshot的时候把应用的IO停掉,或者先执行fsfreeze,这样得到的就是一个数据一致可用的快照。

由于Ceph image的layering设计,可以支持在一个快照之上快速的创建出一个可以读写的clone。

一个快照的clone从行为上跟一个普通的rbd image一样,可以读写、创建clone等。

VolumeSnapshotContent和rbd快照

通过CSI创建一个PV的VolumeSnapshot之后,会得到一个VolumeSnapshotContent,例如:

[root@sandrider~ ]# kubectl get volumesnapshotcontents.snapshot.storage.k8s.io snapcontent-062c610c-0c73-4963-9909-a5ff5c480234 -o yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
...
...
status:
  creationTime: 1656475215498012908
  readyToUse: true
  restoreSize: 5368709120
  snapshotHandle: 0001-0009-rook-ceph-0000000000000001-fb1a79b8-f75f-11ec-925f-bafec6769230

这里的snapshotHandle就指向一个Ceph的rbd device。进入Rook Ceph的toolbox查看某个snapshot image:

sh-4.4$ rbd ls -l replicapool | grep snap | grep fb1a79b8-f75f-11ec-925f-bafec6769230
csi-snap-fb1a79b8-f75f-11ec-925f-bafec6769230

接着可以通过rbd info来查看这个snapshot的信息:

sh-4.4$ rbd info replicapool/csi-snap-fb1a79b8-f75f-11ec-925f-bafec6769230
rbd image 'csi-snap-fb1a79b8-f75f-11ec-925f-bafec6769230':
        size 5 GiB in 1280 objects
        order 22 (4 MiB objects)
        snapshot_count: 1
        id: 1f461bdf3d46fc
        block_name_prefix: rbd_data.1f461bdf3d46fc
        format: 2
        features: layering, deep-fla
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值