searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

云硬盘快照介绍

2023-05-12 09:57:17
151
0

1.简介

1.概念:RBD快照是RBD在某一时刻全部数据的只读镜像,可以保留某个时间点的状态历史。

2.原理:RBD快照只保留少量的快照元数据信息,其底层数据I/O的实现完全依赖于RADOS层的快照实现。

3.用途:

  1. 基于快照做clone卷。
  2. 数据备份:
    • 基于快照的导入导出
    • 基于快照的回滚
    • 基于快照的rbd mirror

4.使用方式:

  1. 通过rbd命令行。
  2. 通过对外提供的接口:
    • QEMU
    • Libvirt
    • OpenStack
    • CloudStack

2.基本操作

1.创建快照

#rbd snap ceate pool_name/image_name@snap_name
rbd snap create rbd/m1@v1

2.查看快照

#rbd snap list pool_name/image_name
rbd snap list rbd/m1

3.快照回滚,恢复到指定快照的数据

#rbd snap rollback pool_name/image_name@snap_name
rbd snap rollback rbd/m1@v1

4.删除快照

#rbd snap rm pool_name/image_name@snap_name
rbd snap rm rbd/m1@v1

5.清除快照个数限制

#rbd snap limit clear pool_name/image_name
rbd snap limit clear rbd/m1

6.设置快照个数限制,默认不限制

#rbd snap limit set pool_name/image_name limit_num
rbd snap limit set rbd/m1 7

7.设置快照保护,设置后可以进行克隆

#rbd snap protect pool_name/image_name@snap_name
rbd snap protect rbd/m1@v1

8.快照去保护

#rbd snap unprotect pool_name/image_name@snap_name
rbd snap unprotect rbd/m1@v1

9.清除所有快照

#rbd snap purge pool_name/image_name
rbd snap purge rbd/m1

10.快照重命名

#rbd snap rename pool_name/image_name@src_name pool_name/image_name@dst_name
rbd snap rename rbd/m1@v1 rbd/m1@v10

3.原理

1.云硬盘存储架构

Librbd:提供操作image的接口,会将image拆分成多个obj。

Librados:提供操作obj的接口,librbd调用接口将指定obj请求发送到指定osd。

Rados:提供osd服务,处理librados的消息。

磁盘:提供物理存储介质。

2.rados快照原理

从云硬盘架构可以看出librbd是依赖rados的,云硬盘快照也是依赖rados快照的。

操作1,如下:

①rbd写[0~4M]。

②rbd创建快照v1。

③rbd写[512k~1M]。

此时有head对象和clone对象,通过overlap记录clone对象和head对象的覆盖区间。

操作2,如下:

①1.对rbd写[0~4M]。

②2.创建快照v1。

③3.写[512k~1M]。

④4.写[1.5M~2M]。

快照后,随着新写入的数据增多,对应快照的overlap越小,直至没有覆盖区间。

2.云硬盘快照原理

1.创建快照snap1

创建快照,只是记录了快照元数据,数据没有变化。

2.云硬盘写0~4M区间的数据,会触发COW操作,将obj0克隆。

 

 

 

0条评论
0 / 1000
星火
3文章数
0粉丝数
星火
3 文章 | 0 粉丝
星火
3文章数
0粉丝数
星火
3 文章 | 0 粉丝
原创

云硬盘快照介绍

2023-05-12 09:57:17
151
0

1.简介

1.概念:RBD快照是RBD在某一时刻全部数据的只读镜像,可以保留某个时间点的状态历史。

2.原理:RBD快照只保留少量的快照元数据信息,其底层数据I/O的实现完全依赖于RADOS层的快照实现。

3.用途:

  1. 基于快照做clone卷。
  2. 数据备份:
    • 基于快照的导入导出
    • 基于快照的回滚
    • 基于快照的rbd mirror

4.使用方式:

  1. 通过rbd命令行。
  2. 通过对外提供的接口:
    • QEMU
    • Libvirt
    • OpenStack
    • CloudStack

2.基本操作

1.创建快照

#rbd snap ceate pool_name/image_name@snap_name
rbd snap create rbd/m1@v1

2.查看快照

#rbd snap list pool_name/image_name
rbd snap list rbd/m1

3.快照回滚,恢复到指定快照的数据

#rbd snap rollback pool_name/image_name@snap_name
rbd snap rollback rbd/m1@v1

4.删除快照

#rbd snap rm pool_name/image_name@snap_name
rbd snap rm rbd/m1@v1

5.清除快照个数限制

#rbd snap limit clear pool_name/image_name
rbd snap limit clear rbd/m1

6.设置快照个数限制,默认不限制

#rbd snap limit set pool_name/image_name limit_num
rbd snap limit set rbd/m1 7

7.设置快照保护,设置后可以进行克隆

#rbd snap protect pool_name/image_name@snap_name
rbd snap protect rbd/m1@v1

8.快照去保护

#rbd snap unprotect pool_name/image_name@snap_name
rbd snap unprotect rbd/m1@v1

9.清除所有快照

#rbd snap purge pool_name/image_name
rbd snap purge rbd/m1

10.快照重命名

#rbd snap rename pool_name/image_name@src_name pool_name/image_name@dst_name
rbd snap rename rbd/m1@v1 rbd/m1@v10

3.原理

1.云硬盘存储架构

Librbd:提供操作image的接口,会将image拆分成多个obj。

Librados:提供操作obj的接口,librbd调用接口将指定obj请求发送到指定osd。

Rados:提供osd服务,处理librados的消息。

磁盘:提供物理存储介质。

2.rados快照原理

从云硬盘架构可以看出librbd是依赖rados的,云硬盘快照也是依赖rados快照的。

操作1,如下:

①rbd写[0~4M]。

②rbd创建快照v1。

③rbd写[512k~1M]。

此时有head对象和clone对象,通过overlap记录clone对象和head对象的覆盖区间。

操作2,如下:

①1.对rbd写[0~4M]。

②2.创建快照v1。

③3.写[512k~1M]。

④4.写[1.5M~2M]。

快照后,随着新写入的数据增多,对应快照的overlap越小,直至没有覆盖区间。

2.云硬盘快照原理

1.创建快照snap1

创建快照,只是记录了快照元数据,数据没有变化。

2.云硬盘写0~4M区间的数据,会触发COW操作,将obj0克隆。

 

 

 

文章来自个人专栏
librbd
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0