前面咱们用了两篇文章谈了EMC ScaleIO的部署,今天咱们来聊聊华为FusionStorage的部署。
算法
华为FusionStorage的定位和EMC的ScaleIO是比较相似的,都支持多种Hypervisor,支持融合部署,也支持分离部署。可是,FusionStorage采用了互联网大规模场景下的不少算法,如用DHT(分布式哈希表)来实现非集中式元数据管理,理论来讲,扩展性更好一些(目前ScaleIO宣传支持1024个节点,FusionStorage宣传支持4K个节点)。数据库
FusionStorage架构原理服务器
在谈FusionStorage部署前,咱们先来了解其架构原理。微信
FusionStorage采用分布式集群控制技术和DHT路由技术,提供分布式存储功能特性。FusionStorage功能架构图以下所示:网络
存储接口层:经过SCSI/iSCSI驱动接口(注意不是物理接口)向操做系统、数据库提供卷设备。架构
存储服务层:提供各类存储高级特性,如快照、连接克隆、精简配置、分布式cache、容灾备份等。并发
存储引擎层:FusionStorage存储基本功能,包括管理状态控制、分布式数据路由、强一致性复制技术、集群故障自愈与并行数据重建子系统等。负载均衡
存储管理层:实现FusionStorage软件的安装部署、自动化配置、在线升级、告警、监控和日志等OM功能,同时对用户提供Portal界面。分布式
FusionStorage逻辑架构图以下图所示:性能
FusionStorage Manager:FusionStorage管理模块,提供告警、监控、日志、配置等操做维护功能,主备节点部署。
FusionStorage Agent:代理进程,部署在各节点上,实现各节点与FusionStorage Manager通讯。
MDC(Meta Data Controller):元数据控制软件,实现对分布式集群的状态控制,以及控制数据分布式规则、数据重建规则等。 MDC默认部署在3个节点上,造成MDC集群。
VBS(Virtual Block System):虚拟块存储管理组件,负责卷元数据的管理,提供分布式集群接入点服务,使计算资源可以经过VBS访问分布式存储资源。每一个节点上默认部署一个VBS进程,造成VBS集群。节点上也能够经过部署多个VBS来提高IO性能。
OSD(Object Storage Device):对象存储设备服务,执行具体的I/O操做。在每一个服务器上部署多个OSD进程,一块磁盘默认对应部署一个OSD进程。在SSD卡做主存时,为了充分发挥SSD卡的性能,能够在1张SSD卡上部署多个OSD进程进行管理,例如2.4TB的SSD卡能够部署6个OSD进程,每一个OSD进程负责管理400GB。
从结构上来讲,FusionStorage自己并不提供物理的iSCSI接口,而是经过VBS来提供。也就是说,须要访问的SERVER SAN的主机必须安装VBS,由于VBS提供了分布式集群接入点服务。从这个意义来讲,其接入功能和EMC ScaleIO的SDC相似。
FusionStorage最大的特色就是DHT了。FusionStorage采用DHT(DistributeHash Table,分布式哈希表)路由数据算法。每一个存储节点负责存储一小部分数据,基于DHT实现整个系统数据的寻址和存储(DHT华为首先在其云存储OceanStor UDS上采用,后来设计FusionStorage的时候借用了这个算法)。
相比DHT路由算法,传统存储通常采用集中式元数据管理方式,元数据中会记录全部LUN中不一样偏移量的数据在硬盘中的分布,例如LUN1+LBA1地址起始的4KB长度的数据分布在第32块硬盘的LBA2上。每次IO操做都须要去查询元数据服务,随着系统规模逐渐变大,元数据的容量也会愈来愈大,系统所能提供的并发操做能力将受限于元数据服务所在服务器的能力,元数据服务将会成为系统的性能瓶颈。不一样与传统的集中式元数据管理,FusionStorage采用DHT(分布式一致性哈希)进行数据寻址,具体的算法以下图:
FusionStorage将哈希空间设置为2^32,并将该哈希空间划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如:系统N默认为3600,假设当前系统有32块硬盘,则每块硬盘承载100个分区。上述“分区-硬盘”的映射关系在系统初始化时会分配好,后续会随着系统中硬盘数量的变化会进行调整。该映射表所须要的空间很小,FusionStorage系统中的节点会在内存中保存该映射关系,用于进行快速路由,可见,FusionStorge的路由机制不一样于传统阵列,并无集中的元数据管理,也就不存在元数据服务成为系统的性能瓶颈。
FusionStorage采用数据多副本备份机制来保证数据的可靠性,即同一份数据能够复制保存为2~3个副本。针对系统中的每1个卷,默认按照1MB进行分片,分片后的数据按照DHT算法保存集群节点上。
了解了FusionStorage的原理,下面咱们来谈谈部署。
VMWARE部署场景
融合部署状况下,须要一个单独的控制VM,把OSD和VBS都部署在这个VM上。其余的USER VM无需部署VBS。咱们回顾一下ScaleIO的部署,发现仍是ScaleIO和VMware结合得更加紧密一些,由于ScaleIO的SDC能够部署在Hypervisor内核里。听说VMware是开放这个接口的,也就是说理论上华为也能够把VBS部署在Hypervisor这一层。但VBS不只仅要接入,还有卷元数据的管理,功能上并非和ScaleIO的SDC同样。所以,不知道放入Hypervisor合不合适?
若是采用分离部署,控制VM里面只须要部署VBS模块,OSD模块单独部署到别的物理机器上(采用Suse Linux)。User VM经过VM IO iSCSI接口,经过VBS访问相应的OSD。
华为UVP部署场景
华为UVP平台在融合部署状况下,OSD和VBS模块部署在Domain0中,服务器PCIE SSD或者SCSI Controller下的硬盘或者SSD盘pass through到Domain0中的OSD进行介质管理,节点内的用户VM访问本节点Domain0VM中VBS提供的存储服务。
若是采用分离式部署,OSD模块部署在独立的存储服务器,采用Huawei UVP OS,负责管理本服务器的PCIE SSD或者SCSI Controller下的硬盘或者SSD盘,VBS模块部署在Domain0中,节点内的用户VM访问本节点Domain0 VM中VBS提供的存储服务。Huawei UVP和Domain0安装在本服务器介质设备中。
KVM部署场景
在融合部署场景下,OSD和VBS模块部署在KVM OS中,服务器PCIE SSD或者SCSI Controller下的硬盘或者SSD盘pass through到OS中的OSD进行介质管理,节点内的用户VM访问本节点OS中VBS提供的存储服务。
若是采用分离式部署,把OSD独立部署到单独的物理服务器就能够了。
管理模块部署
融合部署和分离部署主要是考虑了VBS和OSD的状况,还须要考虑MDC和管理模块的部署。
MDC部署:
MDC默认部署在3台服务器中,也能够根据需求部署5个。MDC须要部署在OSD所在的服务器中,其中的zookeeper须要使用服务器的本地存储。
FusionStorage Manager部署:
FusionStorage Manager以虚拟机方式部署,支持部署在VMWare、FusionSphere和KVM虚拟化环境中。FusionStorage Manager虚拟机须要安装在本地硬盘中。FusionStorage Manager须要部署在2个VM中,采用主备工做方式。
FusionStorage Agent部署:
FusionStorage Agent部署在FusionStorage Manager/VBS/OSD/MDC所在的服务器中,负责FusionStorageManager/VBS/OSD/MDC的进程管理和OM管理。
网络规划
(这部份内容摘自华为云计算官微 2015-11-12发表的 “FusionStorage微讲堂11期 | FusionSphere+FusionStorage场景网络设计规划”一文)
网络要求
存储平面支持IB网络,但不支持混合组网。
网卡和网络类型:GE(TCP/IP协议)、10GE(TCP/IP协议)、IB(RMDA协议)。
推荐存储平面使用独立的网卡,不和其余平面共用网卡,以避免不一样平面之间网络互相影响。
组网示意图
10GE/IB网络,4网口场景
1)eth0~eth1绑定为主备或负载均衡模式,走管理平面和业务平面的网络流量。
2)存储平面可以使用10GE(eth2~eth3),也可支持IB组网(ib0~ib1),但不支持混合组网,使用10GE组网时将两个网口绑定为主备或负载均衡模式。
3)存储平面ip经过在FusionCompute Portal上添加存储接口生成,使用IB组网时按照FusionStorage产品文档中的步骤将ib0和ib1组一个Bond,配通IB网络,主机之间存储平面的ip互通便可,无需和外部互通。
10GE/IB网络,6网口网络
1)eth0~eth1绑定为主备或负载均衡模式,走管理平面的网络流量。
2)存储平面可以使用10GE(eth2~eth3),也可支持IB组网,但不支持混合组网,使用10GE组网时将两个网口绑定为主备或负载均衡模式。
3)存储平面ip经过在FusionCompute上添加存储接口生成,使用IB组网时按照FusionStorage产品文档中的步骤将ib0和ib1组一个Bond,并配通IB网络,主机之间存储平面的ip互通便可,无需和外部互通。
4)eth4~eth5绑定为主备或负载均衡模式,走业务平面网络流量。
说明
两网口绑定为负载均衡模式时,须链接在一个交换机上(或两个堆叠的交换机),且和两个网口链接交换机端口绑定为链路聚合。
FusionStorage IP规划
单套FusionStorage所需管理IP为3+1*N,N为计算和存储节点的管理节点之和;单套FusionStorage所需存储IP为M,M为存储节点数量。
【学习心得】
从EMC ScaleIO和华为FusionStorage的部署状况看,二者定位相似,部署思路也相似,但双方底层原理不一样,特别是管理模块的部署上区别比较大。华为的模块分得太细,所以感受部署起来要复杂一些。其实,FSA组件彻底能够融入到VBS和OSD里面,没有必要独立出来。还有,FSM也能够融入MDC集群里,这样部署起来更加简单些。分得太细,针对大规模部署场景下会比较灵活,但针对企业场景的确有点复杂。
本文分享自微信公众号 - 高端存储知识(High-end_Storage)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。