什么是块存储?
分布式存储系统,为业务与数据在集群内漂移提供了自由保障,满足企业对于不受约束的系统环境要求。同时,平台仅保存迁移被改动的数据,而非整体增加数据量,实现增量备份。
魔方云块存储的功能:
- 每个块设备单独创建一个专用的存储控制器。每个存储控制器上只有一个volume。
- 根据需求自定义volume的大小,为容器和虚拟机创建块存储。
- 每个卷都有自己的控制器,因此我们可以为每个卷升级控制器和副本容器,而不会导致IO操作明显中断
- 指定备份操作的计划。可以指定这些操作的频率(例如每天、每小时等),以及执行这些操作的确切时间(你可以指定任意一个时间来执行这个操作),以及保留多少个循环快照和备份集。
什么是魔方云块存储?
魔方云块存储是供Kubernetes使用的分布式块存储系统。它轻量、可靠且使用方便。用户可以使用魔方云平台简单的部署,部署后将为平台提供持久卷的能力。
该块存储系统将为每个块存储设备卷创建一个存储控制器,并在集群内进行多副本备份。同时支持快照、备份。
该系统用CSI作为驱动程序给容器提供持久卷存储
原理
魔方云块存储通过storage-engine这一轻量级的块存储设备控制器(参考网络RAID控制器)将数据存到多个副本(由linux稀疏文件支持同时支持多磁盘的高效快照)
讲解:
1.每个块设备都有自己特定的控制器控制;
2.每个块设备都将映射在管理器容器下创建的特定路径/dev/bs/vol-name,并通过特定内核驱动(open-iscsi/tgt)将读写操作转换为特定的网络请求实现数据操作;
3.控制器接受到网络请求之后将会把操作同步到所有副本;
4.控制器还将负责维持一定健康数目的副本;
5.控制器同时负责操作快照和备份,包括创建删除;
功能
A.池化多个本地或网络存储,并供特定的服务使用;
B.将所有存储卷微服务化,同时配备各自的控制器;
C.控制器控制副本,健康、创建、删除、副本数;
D.可以创建快照及备份(NFS/S3/OSS);
E.备份计划及快照计划;
性能对比
测试环境说明
1)集群环境
2)存储系统规格
3)测试工具及配置
fio 是一个专业的磁盘性能测试工具,本次测试使用该工具版本为2.2.10。
主要配置项如下:
具体测试示例:sudo fio -direct=1 -thread -size=1G -runtime=100 -group_reporting -name=test -numjobs=1 -filename=/dev/vdb -bs=4k -rw=randrw –output=vdb-1_Rrw_1-4.txt
数据对比
4K随机读/4K随机写/4K随机读写
512K顺序读/512K顺序写/512K顺序读写
魔方云块存储操作使用
一. 部署:
在块存储部署界面如下图,可以配置默认副本数、备份设置及存储空间预留相关。
二.动态申请使用:
部署成功之后,可以看见存储类下面有storagebs这个存储类,在创建有状态应用时可以选择该存储类,以下做为实例;
a) 选择部署服务,选择类型有状态
b)添加卷,如下选择存储类模版,选择存储类storagebs
c)申请成功,可以看到pvc下动态创建了:
三.静态申请使用:
a)创建卷:
b)选择要操作的卷,点击操作,创建pv/pvc
c)部署服务,选择添加卷–>选择现有pvc–>选择之前创建的pvc
d)等待服务正常
四.备份恢复:
确认配置了备份路径OSS/NFS/S3/后可以点击特定卷,在特定卷下可以进入操作,添加备份计划(备份或快照):
同时支持操作并手动创建备份:
使用在保存在OSS/S3/NFS上的特定备份恢复数据:
五.故障恢复
现在以wordpress为例子,使用魔方云块存储作为存储,看下图:
1)首先确认测试时间一致;
2)再确认wordpress的服务正常;
3)此时删除wordpress的pod模拟pod意外退出的故障,可以看到服务出现以一段时间的停止;
4)待pod在节点被拉起后,wordpress又恢复了正常
六.魔方云块存储稳定性
使用魔方云块存储作为mysql的数据存储并进行稳定性测试;
测试环境如下:
三副本,每秒写入插入数据10条;
每一小时随机删除一副本控制器(会导致副本失效);
查询插入数据是否一致;
经过数十小时,几十次的删除测试三百多万条插入,未有一次失败