XSKY容器方案通过Veeam验证,可实现云原生应用的存储、备份和容灾
2022/10/20
发展云原生生态圏是 Veeam的又一重要战略,该战略以Kasten by Veeam为圆心,分为三个重要的组成部分:公有云厂商、K8S分发版本和云原生存储厂商。云原生的领域中,与云原生生态所适配的存储已经成为大家所关注的热点。
Veeam China在中国的云原生生态战略布局中,积极与国内多家云原生存储厂商合作。XSKY CSI容器存储解决方案,已助力多家企业实现云原生存储转型,是国内率先通过K8S CSI认证的SDS厂商,同时也是国内加入CNCF Landscape全景图的SDS厂商之一。
近日,Veeam China通过实测验证了XSKY CSI容器存储解决方案可实现云原生应用的存储、备份和容灾。现将实测验证过程予以转发,以飨读者。
验证目标
本次验证场景中,我们将结合XSKY CSI容器存储解决方案保护云原生应用的方式。
- 利用Kubestr对云原生存储进行评测
- 利用K10对存储CSI API进行调用生成快照,达成最快速的RPO 与RTO的备份与恢复
- 利用XSKY对象存储,将快照数据导出到对象存储桶上,实现异地容灾与数据长期保留XSKY对象存储
达成效果
- 利用XSKY CSI快照,在本地Kubenetes环境,云原生应用的快速备份与恢复(利用CSI快照)
- 利用XSKY对象存储,在本地形成长期保留
- 利用Kasten K10将数据容灾到远端,或利用XSKY对象存储实现存储桶的复制,实现 3-2-1-1-0的数据保护
Kasten 与 XSKY
Kasten是Veeam在Kubernetes平台的数据管理解决方案,通过部署Kasten K10,企业可安全备份和还原、执行灾难恢复以及迁移云原生的应用、Kubernetes集群资源和持久卷等存储资源,解决用户备份、灾难恢复、迁移过程中的数据管理问题,提高云原生环境数据管理的便捷性,帮助用户降低灾备成本,提高生产执行效率。
XSKY星辰天合作为国内率先通过K8S CSI认证的SDS厂商,同时也是加入CNCF Landscape全景图的SDS厂商之一,针对企业云原生业务提出了基于软件定义存储(SDS)的容器存储解决方案。解决了需要敏捷性、并能够同时访问多个应用程序容器的数据流动性问题,同时还提供包括快照、克隆和复制等高级存储特性。
· 标准接口,统一存储:实现标准的K8S CSI接口,无缝支持K8S生态,支持 iSCSI和NFS两种接口,实现块和文件的统一存储。
· 存算分离,稳定可靠:将计算和存储分离,实现资源隔离,可独立对存储集群进行扩容;基于数千个企业级生产案例的最佳实践,XSKY星辰天合分布式存储为容器平台提供稳定可靠的保障。
· 性能卓越,特性丰富:可根据应用需要提供SSD、混合盘以及全HDD等存储资源,通过XSKY SDS IO全路径的性能优化能力,获得卓越性能;除了支持裸设备、卷扩容、卷克隆、卷快照和QoS等基础特性,也支持延展集群和MPIO等高级特性。
测试环境配置检查
检查 Nodes 及其资源
测试环境如下:由三个Nodes组成, 一个Master与两个Worker。
检查CSI Driver是否部署成功
安装driver,所有pod状态为running,部署成功。关于XSKY CSI Driver部署,请联系XSKY专业人员。
检查 K8S api-versions
版本最低要求为v1beta1
配置测试环境存储与快照类
配置 storageclass
设置存储类为默认
配置 volumesnapshotclass
设置快照类为注释提示K10进行调用K10进行调用
用 Kasten kubestr 进行评测
Kubestr是一个简单的轻量级工具,用于评估集群中的存储选项。
可帮助您发现、验证和评估您的kubernetes云原生存储,以明确当前配置的状态与存储能力是否满足应用的要求。当比较跨多个集群、云平台与存储选项的性能时,还可以通过切换Kubeconfig使其跨多个集群运行。
Kubestr的安装
点击这里可直接下载您所需要的Kubestr版本。
用wget可以直接获取Kubestr软件包, 并解包
检查kubenetes环境和StorageProvisioners
进行快照功能测试
目的是简单快速进行快照功能验证,在验证过程中,kubestr会创建一个Pod,在其上绑定PVC,再对其进行Clone操作。
测试过程中,我们可以查看Pod和绑定的PVC。
进行简单的性能测试
性能测试的默认用例将涉及如下场景,同时默认的存储性能测试会创建一个100G的卷。
如果您希望调整测试场景与卷大小,可使用-f来写配置文件,-z选项来指定卷的大小。
详细情况见如下的帮助提示:
blocksize=4K | filesize=2G | iodepth=64 | rw=randread |
blocksize=4K | filesize=2G | iodepth=64 | rw=randwrite |
blocksize=128K | filesize=2G | iodepth=64 | rw=randread |
blocksize=128K | filesize=2G | iodepth=64 | rw=randwrite |
安装 Kasten K10 到 K8S 集群
获取Helm Chart供本地使用
建立名空间
安装Kasten K10
目前在不同的K8S环境下部署K10有很多参数需要设置,此时我们需要查阅部署参数。
确认Kasten K10 Pod及Service的部署情况
访问K10控制台
通过查看K8S Service,可以看到K10的ingress配置。
其中的Gateway-ext,查看访问K10的IP地址。
访问: ", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">http://10.252.3.229:31940/k10/#
用Chrome浏览器访问:
http://10.252.3.229:31940/k10/#
Kasten On XSKY保护云原生应用测试
测试应用mysql的安装
应用程序发现
在应用程序安装完成之后,就可以在Application列表中发现这个应用了
应用程序的备份与恢复
· 建立MySQL数据集
· 创建Policy保护MySQL应用
创建Policy保护MySQL应用,之后点击Run Once
查看Dashboard中的快照备份已经完成,并生成了还原点:
查看系统中快照已经生成:
· 模拟灾难删除MySQL数据
· 还原MySQL数据
要恢复丢失数据,需要使用之前创建的备份时间点,进行Policy的Restore操作。
新建一个namespace mysql-resore1。
在恢复的过程中我们可以观察Dashboard或从命令行查看新的Namesspace中Pod的部署情况, 这时查看系统可以发现K10利用快照Clone出的新的PVC:
DataSource:Snapshot,k10-csi-snap-c6j28vzklskt59s8
· 查看还原后的MySQL数据
查看已经删除的数据表,可以看到数据已经恢复了
将数据Export到XSKY的对象存储
创建Location Profile
编辑Policy设定将快照备份导出到XSKY对象存储
点击Run Once运行新规则
查看数据备份进程
如下图,我们可以看到数据已经Export到S3Bucket,并且意识到这是数据库应用,自动开启Kanister应用感知的备份。
从XSKY的S3存储桶上可以浏览到,数据已经存在
利用对象存储库的备份集进行恢复
查看还原的进程
从K8S上确认数据已经恢复
从Kasten K10上观察存储库的数据使用情况
利用存储桶复制的方法避免人为错误
在日常运维过程中,有时会因为人为的原因导致本地的存储桶数据丢失。这时我们可以使用XSKY对象存储的桶复制功能,直接将存储桶的数据复制到远端,在设置桶复制规则时,可以设置为禁用删除操作,这样我们就可以避免人为或逻辑错误,从远端的存储桶恢复数据了。
恢复时,我们只要选择Alternate Location Profile,并选择目标存储桶。
本次的实验环境:
源端:XSKY-S3-bucket
目标端:S3-bucket
总结
我们验证了结合XSKY CSI容器存储解决方案保护云原生应用的方法。
首先,我们利用Kubestr对云原生存储进行评测,并使用K10对存储CSI进行调用生成快照,达成最快速的RPO与RTO的备份与恢复,最后,我们利用XSKY的对象存储及桶复制功能,将快照数据导出到对象存储桶上,实现了异地容灾与数据长期保留。
欢迎与我们讨论您的观点与想法!
参考资料
[1]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">Kubernetes Container Storage Interface Documentation
[2]Kasten k10实战系列-03 CSI存储快照适配
[3]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">Kasten k10实战系列-04 利用 Kubestr 进行云原生存储能力评测
[4]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">Kasten k10 系统需求
[5]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">详解支持 kubernetes CSI的持久化容器存储
[6]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">同时支持iSCSI和NFS,XSKY SDS V5的K8s CSI卷扩展功能是如何炼成的
[7]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">XSKY 星辰天合云原生容器存储解决方案
[8]", roboto, "helvetica neue", helvetica, "pingfang sc", "hiragino sans gb", "microsoft yahei", simsun, sans-serif;">Complete List of K10 Helm Options