云存储之数据迁移

时间:2022-09-02 01:40:31

云存储之数据迁移

云存储在数据存储的过程中,会遇到很多关于存储的数据问题,如数据不全,数据分布不均衡等,都会影响系统的性能,为了较好地规避尤其是数据分布不均衡以及产生的热点问题,衍生出了数据再均衡即数据迁移的功能。

1.应用场景

假如在有300台存储节点(Storage Node)的云存储环境中,在存储过程中,Controller会尽量做到负载均衡,就是说这300台Storage Node的磁盘使用率会慢慢趋于相等,但是当管理员认为整体容量快满而又不足以触发清盘策略时,都会考虑加几台新的机器到集群中。加新机器之后,因为老的一批Storage Node空间基本用尽,所以之后的写存储过程都会集中到后来新增的几台机器上。

同时,对最近数据的读取也会集中在新增机器上,这就很容易造成热点问题,导致集群整体效率降低和带宽损耗。所以要求有数据迁移的负载均衡,把老的Storage Node上的数据部分迁移到新Storage Node上,直到所有StorageNode达到一个相对平衡值,这样对集群的读写访问将可以随机分配到所有Storage Node上,对在单Storage Node上新增的新磁盘也要求能进行数据迁移。

2.分类

(1)同Rack中,数据从高利用率向低利用率的Storage Node进行迁移;

(2)单Storage Node,数据从高利用磁盘向低利用磁盘进行迁移。

3.问题及解决方法

3.1Storage Node利用率的高低怎么定?

同Rack的Storage Node间的数据迁移:Comntroller会根据所有StorageNode汇报的磁盘使用信息计算出一个当前平均利用值,通过设定配置常量“上下浮动最大值”,来定位哪些StorageNode是利用正常,哪些利用是过于高的,哪些利用是过于低的。

同Storage Node的磁盘间的数据迁移:Storage Node根据自己的每个磁盘计算出各自的利用率,与当前所有磁盘平均利用率与浮动值进行比较,筛选出哪些磁盘是利用率正常的,哪些磁盘利用率是过高的,哪些磁盘利用率是过低的。

3.2数据迁移过程由谁控制?

(1)同Rack的Storage Node间迁移:发起由Comntroller控制,过程由Storage Node自己控制。

(2)同Storage Node的磁盘间迁移:发起由Storage Node控制,过程由Storage Node控制。

3.3谁向谁迁移?

(1)同Rack的Storage Node间迁移低利用的Storage Node都会向高利用的Storage Node复制文件块(见图1)。

(2)同Storage Node的磁盘间迁移:发起迁移命令,低利用率磁盘向高利用率磁盘复制文件块(见图2)。

3.4迁移多少?

如果目标Storage Node拒绝迁移请求或者迁移完成后自己还远没有达到平衡值,而首先建立连接的高利用率的Storage Node已经达到平衡值时,停止本次迁移,这个Storage Node不可以向余下的高利用Storage Node发送拷贝请求;等待下次迁移任务。

3.5迁移哪些数据?

首先一定是按块进行迁移,因为现在云存储上的文件都是以块为基础单元。接下来块的选取第一步是同StorageNode不同磁盘间数据迁移,优先选择单磁盘利用率高的数据;第二是同Rack下Storage Node间数据迁移,优先选择最高利用率的Storage Node上的数据。

其次才是数据的随机选择,如果考虑优先把老数据迁移,或者优先迁移新数据,都会造成自身或者其他StorageNode的热点问题。随机选取能够容易达到双方的平衡,而且无需时间比对计算,操作简单。

上一篇:你用或不用,数据就在那里 下一篇:网新智能:物联网智能传感与分析处理