基于容器的块存储使用

什么是块存储?

分布式存储系统,为业务与数据在集群内漂移提供了自由保障,满足企业对于不受约束的系统环境要求。同时,平台仅保存迁移被改动的数据,而非整体增加数据量,实现增量备份。

基于容器的块存储使用_第1张图片

魔方云块存储的功能:

  1. 每个块设备单独创建一个专用的存储控制器。每个存储控制器上只有一个volume。
  2. 根据需求自定义volume的大小,为容器和虚拟机创建块存储。
  3. 每个卷都有自己的控制器,因此我们可以为每个卷升级控制器和副本容器,而不会导致IO操作明显中断
  4. 指定备份操作的计划。可以指定这些操作的频率(例如每天、每小时等),以及执行这些操作的确切时间(你可以指定任意一个时间来执行这个操作),以及保留多少个循环快照和备份集。

基于容器的块存储使用_第2张图片

什么是魔方云块存储?

魔方云块存储是供Kubernetes使用的分布式块存储系统。它轻量、可靠且使用方便。用户可以使用魔方云平台简单的部署,部署后将为平台提供持久卷的能力。

该块存储系统将为每个块存储设备卷创建一个存储控制器,并在集群内进行多副本备份。同时支持快照、备份。

该系统用CSI作为驱动程序给容器提供持久卷存储

原理
魔方云块存储通过storage-engine这一轻量级的块存储设备控制器(参考网络RAID控制器)将数据存到多个副本(由linux稀疏文件支持同时支持多磁盘的高效快照)

基于容器的块存储使用_第3张图片

讲解:

1.每个块设备都有自己特定的控制器控制;

2.每个块设备都将映射在管理器容器下创建的特定路径/dev/bs/vol-name,并通过特定内核驱动(open-iscsi/tgt)将读写操作转换为特定的网络请求实现数据操作;

3.控制器接受到网络请求之后将会把操作同步到所有副本;

4.控制器还将负责维持一定健康数目的副本;

5.控制器同时负责操作快照和备份,包括创建删除;

功能

A.池化多个本地或网络存储,并供特定的服务使用;

B.将所有存储卷微服务化,同时配备各自的控制器;

C.控制器控制副本,健康、创建、删除、副本数;

D.可以创建快照及备份(NFS/S3/OSS);

E.备份计划及快照计划;

性能对比

测试环境说明

1)集群环境
基于容器的块存储使用_第4张图片

2)存储系统规格
基于容器的块存储使用_第5张图片

3)测试工具及配置

fio 是一个专业的磁盘性能测试工具,本次测试使用该工具版本为2.2.10。

主要配置项如下:

基于容器的块存储使用_第6张图片

具体测试示例: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随机读写
基于容器的块存储使用_第7张图片
基于容器的块存储使用_第8张图片
基于容器的块存储使用_第9张图片

512K顺序读/512K顺序写/512K顺序读写
基于容器的块存储使用_第10张图片
基于容器的块存储使用_第11张图片
基于容器的块存储使用_第12张图片

魔方云块存储操作使用

一. 部署:

在块存储部署界面如下图,可以配置默认副本数、备份设置及存储空间预留相关。
基于容器的块存储使用_第13张图片

二.动态申请使用:

部署成功之后,可以看见存储类下面有storagebs这个存储类,在创建有状态应用时可以选择该存储类,以下做为实例;

a) 选择部署服务,选择类型有状态
基于容器的块存储使用_第14张图片

b)添加卷,如下选择存储类模版,选择存储类storagebs

c)申请成功,可以看到pvc下动态创建了:
基于容器的块存储使用_第15张图片

三.静态申请使用:

a)创建卷:
基于容器的块存储使用_第16张图片

b)选择要操作的卷,点击操作,创建pv/pvc
基于容器的块存储使用_第17张图片

c)部署服务,选择添加卷–>选择现有pvc–>选择之前创建的pvc
基于容器的块存储使用_第18张图片
d)等待服务正常

四.备份恢复:

确认配置了备份路径OSS/NFS/S3/后可以点击特定卷,在特定卷下可以进入操作,添加备份计划(备份或快照):
基于容器的块存储使用_第19张图片

同时支持操作并手动创建备份:
基于容器的块存储使用_第20张图片

使用在保存在OSS/S3/NFS上的特定备份恢复数据:
基于容器的块存储使用_第21张图片

五.故障恢复

现在以wordpress为例子,使用魔方云块存储作为存储,看下图:
基于容器的块存储使用_第22张图片

1)首先确认测试时间一致;

2)再确认wordpress的服务正常;

3)此时删除wordpress的pod模拟pod意外退出的故障,可以看到服务出现以一段时间的停止;

4)待pod在节点被拉起后,wordpress又恢复了正常

六.魔方云块存储稳定性

使用魔方云块存储作为mysql的数据存储并进行稳定性测试;

测试环境如下:

三副本,每秒写入插入数据10条;

每一小时随机删除一副本控制器(会导致副本失效);

查询插入数据是否一致;

经过数十小时,几十次的删除测试三百多万条插入,未有一次失败。

你可能感兴趣的:(容器专栏,docker,容器,块存储)