🍒克隆HyperClone-复制粘贴我在行🍒(〃 ̄︶ ̄)人( ̄︶ ̄〃)

307 阅读5分钟

这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战

LUN 克隆(HyperClone For Block)

HyperClone 在不中断业务的前提下,为存储系统的 LUN 建立一份某时刻的完整物理 拷贝,并且在分裂后对物理拷贝的读写操作不会影响源 LUN 上的数据。

非立即可用克隆技术原理:

HyperClone 采用了位图和写前复制(copy-on-write)、位图和双写(并行写从 LUN 和主 LUN)相结合的技术方式来实现,其实现原理如下: 在克隆组中添加从 LUN 后,默认是需要经过一次从主 LUN 到从 LUN 的完全同步,通 过进度位图显示拷贝进程,在初始同步时主 LUN 收到生产主机写请求,如下图所示, 需要检查同步进度。  若要写入位置的数据块尚未拷贝到从 LUN 只需要写主 LUN 即可返回主机成功, 稍后利用同步任务将整个数据块同步到从 LUN;  若要写入位置的数据块已经拷贝,需要分别写入主 LUN 和从 LUN;  若要写入位置的数据块正在拷贝,需要等待该数据块拷贝完成后分别写入主 LUN 和从 LUN; 初始同步完成以后可以将主、从 LUN 分裂,这时主、从 LUN 都可以用于独立的数据 分析及测试,主、从 LUN 数据的变化互不影响,只是用进度位图记录主、从 LUN上对应数据块的变化。 image.png

立即可用克隆技术原理:

从 LUN 添加成功后就可以被主机访问(不需要等分裂完成),从 LUN 的数据是主 LUN 启动同步时间点的数据,其实现原理如下:

  1. 添加从 LUN 后,默认需要经过一次从主 LUN 到从 LUN 的初始同步,启动同步时 在主 LUN 创建一个保护时间点,将保护时间点的数据同步给从 LUN。拷贝过程 中有拷贝进度显示,直到拷贝完成。
  2. 如果在同步过程中主 LUN 收到生产主机写请求,如图 5-2 所示,直接写主 LUN 并记录差异,如图 1 中情况①②③所示。
  3. 如果在同步过程中从 LUN 收到备份主机写请求,如图所示,需要检查同步进度: a. 若要写入位置的数据块尚未拷贝到从 LUN,需要等待该数据块拷贝完成后再写入从LUN并在从LUN 上记录差异;

b. 若要写入位置的数据块已经拷贝(同情况⑤),直接写入从 LUN 并记录差异;

c. 若要写入位置的数据块正在拷贝(同情况④),需要等待该数据块拷贝完成后再 写入从 LUN 并记录差异;

  1. 如果在同步过程中从 LUN 收到备份主机读请求,如图所示,需要检查同步进度: a. 若要读取位置的数据块尚未拷贝到从 LUN,需要启动拷贝将这一 块的数据先同步过来再读从 LUN;

b. 若要读取位置的数据块已经拷贝,直接读从 LUN;若要读取位置 的数据块正在拷贝,需要等待该数据块拷贝完成后再读从 LUN;

c. 若要读取位置的数据块已经被写,直接读取从 LUN。

image.png

FS 克隆(HyperClone For File)

文件系统克隆特性是父文件系统某个时间点的副本,可以独立共享给客户端读写,从而满足快速部署、应用测试、容灾演练等场景。

技术原理:

文件系统克隆是基于 ROW 技术的文件系统快照基础上实现的某个时间点的可读可写副本。

image.png

  1. 如图 a 所示,文件系统是 ROW 方式,数据写入不会覆盖原有数据,而是分配新 磁盘空间写入;数据每次写入都会记录一个时间点信息,表明写入的时序。时间 点实际是一个依次递增的序列号。
  2. 如图 b 所示,创建克隆文件系统步骤: a. 基于新建快照方式会在父文件系统中创建只读快照;

b. 拷贝快照的根节点生成克隆文件系统的根节点;

c. 在克隆文件系统中创建初始快照。 与创建只读快照类似,整个过程中不需要拷贝任何用户数据,因此整个过程耗时 极少,通常在一两秒内完成。并且在数据被修改之前,克隆文件系统与父文件系 统共享数据。

  1. 如图 c 所示,从父文件系统修改 A 数据块时,会新分配一个 A1 数据块,并且由于有快照保护,A 数据块不会释放,因此修改父文件系统数据不会影响克隆文件系统;从克隆文件系统修改 D 数据块时,也会分配一个 D1 数据块,D 数据块写 入时间点小于克隆文件系统初始时间点,D 数据块也不会释放,因此修改克隆文 件系统数据也不会影响父文件系统;
  2. 如图 d 所示,分裂克隆文件系统步骤:

a. 删除克隆文件系统中所有只读快照;

b. 遍历克隆文件系统中所有对象的数据块,通过覆盖写触发共享数据在克隆文 件系统中新分配数据块,从而达到共享数据分裂的目的;

c. 删除父文件系统中关联快照。 分裂完成后克隆文件系统和父文件系统完全独立,没有依赖。分裂克隆文件系统时间 根据共享数据大小而定。

点赞富三代,评论帅一生哦,谢谢谢谢~

image.png