写点什么

智汇华云 | ArcherOS Stack 共享存储虚拟化技术剖析

用户头像
华云数据
关注
发布于: 2021 年 03 月 18 日

随着硬件性能的飞速提升,信息业务的不断增长,企业用户对部署 IT 基础设施的灵活性和可管理性也提出了更高的要求,传统的以硬件服务器主机为单位的架构已经无法满足新的需求,越来越多的企业选择应用共享存储虚拟化技术整合存储资源并进行集中化管理。本期智汇华云,特别带来《ArcherOS Stack 共享存储虚拟化技术剖析》,加快推动政企用户业务和应用的上云。


1.ArcherOS Stack 介绍


ArcherOS Stack 作为介于硬件和业务负载之间的云操作系统层,采用 X86 和 ARM 双栈支持的虚拟化技术,实现对通用服务器物理资源的抽象,将 CPU、内存、I/O 等服务器物理资源转化为一组可统一管理、调度和分配的逻辑资源,并基于这些逻辑资源在单个物理服务器上构建多个同时运行、相互隔离的虚拟机执行环境,实现更高的资源利用率,同时满足应用更加灵活的资源动态分配需求,譬如提供热迁移、热升级等高可用特性,实现更低的运营成本、更高的灵活性和更快速的业务响应速度。


ArcherOS Stack 重点聚焦关键业务的虚拟化需求,满足 ERP、CRM、核心数据库、Web、电子商务、多应用整合等典型的关键业务应用对于性能、高可靠、高安全以及自动运维方面的业务诉求,提供相应的虚拟化技术特性,加快推动业务和应用的云化。


 2.ArcherOS Stack 系统架构


ArcherOS Stack 是一种横向扩展的软件集成基础架构云操作系统,包括云管理平台(ArManager)、软件定义计算(ArCom)、软件定义网络(ArNet)、共享存储虚拟化(ArSSV)、软件定义安全等功能。是软件定义数据中心(SDDC)架构的最小集。



ArManager:ArcherOS Stack 管理平台,提供对资源的创建、管理以及监控能力。


部署工具(ArLCM):向导式的图形化部署工具,对 ArcherOS 集群进行生命周期的管理。


ArCom:虚拟机管理程序,用于创建与管理虚拟机。


ArNet:虚拟交换机管理;利用安全组可针对虚拟机设置安全策略,规则支持 TCP/UDP/ICMP/EGP 等多种协议;支持 IPV4/IPV6 双栈;流量隔离。


ArSSV:共享存储虚拟化组件,通过软件层将 SAN 设备划分映射到物理服务器的 LUN 进行统一池化管理,从中划分出一个个小的逻辑卷,虚拟机将这些逻辑卷识别为块设备使用。


3.ArSSV 简介


云计算带来的一大挑战就是解决大规模虚拟机部署所面临的存储方面的问题,首先是存储 I/O 性能瓶颈问题,因为存储性能增长速度相比于计算能力的增长要慢,因此对于虚拟化而言,I/O 瓶颈和缓慢的存储性能成为主要瓶颈,ArcherOS Stack 通过共享虚拟化组件(ArSSV)提供不同 I/O 性能优化手段,有效缓解存储瓶颈。其次是存储利用率低的问题, ArSSV 提供存储精简置备技术,提高存储利用率降低存储硬件的采购成本。再次是大规模部署虚拟机的效率问题,ArSSV 提供虚拟机克隆技术,可以缩短大规模部署、分发虚拟机的时间。


此外,尽管近几年超融合以及软件定义存储市场增速迅猛,传统的企业级客户 IT 架构中往往仍存在一些 SAN 设备,这些 SAN 设备往往成本高昂,因而客户不愿浪费已有投资。根据 IDC 市场报告,截至 2020 Q3,传统企业级存储仍占据国内存储市场 59.2%的份额,但 HCI 和 SDS 正在逐步蚕食传统存储市场,未来几年也将稳步增长。出于利旧等因素,IT 架构上云转型存在从传统 SAN 设备到软件定义存储(SDS)的一个过渡期。




ArcherOS Stack 支持对接 SAN 设备,保护客户现有投资。用户无需对 LUN、RAID 等存储概念对象进行单独管理和设置,只需要对虚拟机/虚拟磁盘进行设置就可以使用存储的各项功能,降低了用户使用门槛。ArcherOS Stack 通过共享存储虚拟化组件,实现了以下特点:


与硬件无关,只要是 Linux 支持的 SAN 存储都可适配

与自研的计算虚拟化组件(ArCOM)完全集成

统一所有设备到同一软件栈

支持精简置备,按写入有效数据容量分配实际空间


3.1  ArSSV 整体架构



实现思路是:在 FC-SAN 设备上划分配置好 LUN,通过多路径软件映射给物理服务器,在服务器端将映射过来的 LUN 经由软件层虚拟化出一个大的存储资源池,资源池内分出一个个小的逻辑卷(LV),虚拟机可以识别这些逻辑卷成一个个块设备(虚拟磁盘)。


3.2  ArSSV 关键技术解析


ArSSV 对接各类存储后端


ArSSV 最大的优势在于:在对接不同厂家的 SAN 存储设备时,不需要花费大量的时间开发对应的存储驱动程序。而且由于各家存储系统有不同的功能集,针对 A、B 不同存储系统开发的功能集也不一致,从而导致平台层面功能的差异性。针对存储系统开发对应的驱动仅适用于定制化项目中,而且每次开发、测试周期都很长。ArSSV 另辟蹊径:屏蔽后端存储系统细节,将存储池的部分存储空间,通过 LUN 直接作为主机节点的存储空间,主机节点再对其进行细粒度的划分后,分配给虚拟机使用。


ArSSV 实现精简置备

由于 LVM 自身的精简置备是通过 thin-provision target 实现的,这种实现方式下在 LV 创建快照之后性能会严重下降,所以 ArSSV 采用的是通过 qemu 将 qcow2 文件的数据分布直接写入 LV 的方式来实现精简置备。


qcow2 在创建时实际占用空间很小(目前为 1G,此数值可以调整),只有在有真正数据写入后开始增长,增长速度会根据 IO 速度变化。虽然 qcow2 可以自动增长,但 LV 的大小是固定的,所以需要在合适的时间动态扩展 LV。LV 的动态扩展会通过以下两种方式触发:


其一:ArSSV 主动检查:ArSSV 主动监测 LV 的空间增长情况,当实际写入空间占到所创建 LV 的 50%时,LV 会主动增加 1GB 大小的存储空间,以此类推,直至实际数据与 LV 大小一致。


其二:通过事件达到对 LV 真实空间的扩容,即:当虚拟机内部读写速度大于磁盘的自动扩容速度,虚拟机会出现磁盘读写错误,系统服务会发送一个读写错误的事件,当 ArSSV 监听到此类事件后会立即发起一次 LV 扩容操作,扩容成功后虚拟机读写即可自动恢复正常。


ArSSV 元数据管理


ArSSV 通过分布式锁服务实现元数据的统一,当涉及到元数据的修改操作时,通过分布式锁保证同一时刻只在一个节点上操作。集群中的每个节点都各自运行分布式锁服务,锁的状态都被写到了共享存储上,使用 Disk Paxos 算法读写共享存储以实现对分布式锁的获取、释放和超时。由于分布式锁服务的所有数据都被保存在 SAN 存储上,即使集群主机进程崩溃也不会影响可靠性。


ArSSV 快照和克隆


ArSSV 通过标签来唯一标识快照的 LV,在线快照通过调用 libvirt 实现。ArSSV 通过 cinder driver 实现虚拟机的完整克隆,克隆后新虚拟机与源虚拟机没有数据引用关系,源虚拟机的部分数据损坏不会影响新虚拟机的数据,数据上保持独立,可靠性相较于链接克隆要高。


3.3  ArSSV 总结


ArSSV 以极高的通用性和兼容性帮助用户管理使用不同品牌型号的 FC-SAN 存储,免去了和不同 FC-SAN 存储厂商设备驱动对接的复杂过程,也避免了 FC-SAN 厂商不提供硬件驱动的情况下需要自己开发驱动的窘境,统一了 X86 和 ARM 对不同厂商 FC-SAN 设备的使用体验,甚至通过提供精简置备、快照、克隆功能,让用户直接用上了高端 SAN 存储才有的功能,让用户不用关心硬件驱动的对接,也不需要具备专业的 SAN 存储管理知识,更专注虚拟化平台上业务的建设,对 IT 建设能力较弱、IT 人才梯队不够完善的中小厂商非常友好。


用户头像

华云数据

关注

还未添加个人签名 2020.11.02 加入

还未添加个人简介

评论

发布
暂无评论
智汇华云 | ArcherOS Stack共享存储虚拟化技术剖析