2.9. 使用 trash 命令管理块设备镜像
RADOS 块设备 (RBD) 镜像可以使用 rbd trash
命令移到回收站中。
这个命令提供了广泛的选项,例如:
- 从回收站中删除镜像。
- 从回收站中列出镜像.
- 防止从回收站中删除镜像。
- 从回收站中删除镜像.
- 从回收站中恢复镜像
- 从回收站中恢复镜像并对其进行重命名。
- 从回收站中清除过期的镜像。
- 调度从回收站中清除。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 客户端节点的根级别访问权限。
流程
将镜像移动到回收站:
语法
rbd trash mv POOL_NAME/IMAGE_NAME
示例
[root@rbd-client ~]# rbd trash mv mypool/myimage
镜像处于回收站中后,将分配一个唯一镜像 ID。
注意如果需要使用任何回收选项,则在指定镜像时需要此镜像 ID。
列出回收站中的镜像:
语法
rbd trash ls POOL_NAME
示例
[root@rbd-client ~]# rbd trash ls mypool 1558a57fa43b rename_image
唯一的 IMAGE_ID
1558a57fa43b
可用于任何垃圾
选项。将镜像移动到回收站中,并提提从回收站中删除镜像:
语法
rbd trash mv POOL_NAME/IMAGE_NAME --expires-at "EXPIRATION_TIME"
EXPIRATION_TIME 可以是秒数、小时、日期、时间为"HH:MM:SS"或"tomorrow"。
示例
[root@rbd-client ~]# rbd trash mv mypool/myimage --expires-at "60 seconds"
在本例中,
myimage
被移到 trash。但是,在 60 秒前,您无法从回收中删除它。从回收站中恢复镜像:
语法
rbd trash restore POOL_NAME/IMAGE_ID
示例
[root@rbd-client ~]# rbd trash restore mypool/14502ff9ee4d
从回收站中删除镜像:
语法
rbd trash rm POOL_NAME/IMAGE_ID [--force]
示例
[root@rbd-client ~]# rbd trash rm mypool/14502ff9ee4d Removing image: 100% complete...done.
如果镜像延迟删除,则不能将其从回收站中删除,直到过期为止。您收到以下出错信息:
示例
Deferment time has not expired, please use --force if you really want to remove the image Removing image: 0% complete...failed. 2021-12-02 06:37:49.573 7fb5d237a500 -1 librbd::api::Trash: remove: error: deferment time has not expired.
重要从回收站中删除镜像后,便无法恢复。
重命名镜像,然后从回收站中恢复:
语法
rbd trash restore POOL_NAME/IMAGE_ID --image NEW_IMAGE_NAME
示例
[root@rbd-client ~]# rbd trash restore mypool/14502ff9ee4d --image test_image
从回收站中删除过期的镜像:
语法
rbd trash purge POOL_NAME
示例
[root@rbd-client ~]# rbd trash purge mypool
在本例中,从
mypool
遍历的所有镜像都会被移除。