一、概述
近期研究了一下超融合的内容,简单做了下学习总结。
虚拟化是一种基本思想,是云计算、超融合的基础,在信息系统的各层都有不同的应用,举例来说:
存储虚拟化,存储阵列就是将若干集中部署的磁盘先汇总,再划分成不同的逻辑磁盘分配给不同的服务器使用。
网络虚拟化,网络我们一般分为接入层和汇聚层,使用网络虚拟化后,对于单个宿主机到交换机的部分可以认为是汇聚层,对于宿主机中虚拟出的OS,可以在内部虚拟出一个接入层的网络结构,便于对各虚拟OS进行网络管理(比如做一些交换层面的数据流控)。
硬件层虚拟化,主流云技术就是将宿主机的硬件资源先汇总成一个逻辑整体,而后分配给不同的虚拟OS使用。
系统层虚拟化,常用的虚拟机就是这种技术,比如在操作系统内安装一个VM,VM内再运行多个虚拟的OS。
总的来说,云计算、超融合就是对存储、网络、硬件资源的汇总(抽象)和重分配,在实施细节上又有很大的不同由此产生了不同的特性。
二、物理服务器
物理服务器我们比较熟悉了,主要包含CPU、内存、硬盘、网络,一个常见的物理服务器架构如下图:
对于使用者来说,他可以不用关注中间复杂的物理结构,只需要关注OS本身,比如我们在每一台服务器上都部署一个centos系统。
可以看到一个硬件服务器对应一个OS系统,这是最传统的方式。
三、TYPE2(OS虚拟化)
在前面物理服务器的基础上,我们每一台服务器都有一个centos系统,三台服务器就有3个OS,由于linux多用户的特性我们可以将这3个OS提供给9个用户同时使用,但是用户的操作很可能会互相产生干扰,比如某个用户执行了关机指令则其他用户就无法使用该OS了。
为解决这个问题,最简单的办法就是在一个OS内部虚拟出若干个独立的OS,这样用户之间就不受干扰,如下图所示,在centos系统中运行了一个VM程序,而后用VM程序分别虚拟出3个OS系统(可以是windows或linux),这样我们就得到了9个独立运行的OS,每个用户可以分到一个,而且他们的操作互相之间不受干扰。
实现此功能的VM软件称为Hypervisor,在OS基础上再虚拟出OS的做法称为“Hypervisor TYPE2”。
四、TYPE1(硬件虚拟化)
前面的TYPE2虚拟化简单实用,但是问题也很显著,因为他是在OS的基础上虚拟OS,所以执行效率必然是打了折扣,所以又有了TYPE1(技术实现有先后,但这两个概念是一起提出来的,并将硬件虚拟化命名为TYPE1,并不是说硬件虚拟化先有而后有的OS虚拟化)。
下图所示的TYPE1与TYPE2比较,架构上来说看起来差不多,实际上差别很大,相对来说TYPE1是现在主流的云服务器架构,阿里云的ECS就是这样的产品。TYPE2则是我们本地常用的一种虚拟化方式,TYPE2再往前一步就是容器化了。
云计算实践中,TYPE1和TYPE2都会使用,主要看你掏多少钱。所谓私有云、公有云、混合云的主流方案就是在TYPE1、TYPE2的基础上打包面向用户的界面,也即是所谓的Iaas。
Hypervisor是一个总称,具体到应用产品有VMware、Hyper-V、Xen、KVM等,云服务商一般会选择一个一到两个厂商的产品,或自己研发来构建面向客户的云服务,但除了服务器本身的资源虚拟化,云厂商还要打包存储、网络、用户界面等,所以也没那么容易。
本地场景中,我们可以使用VMWare公司的技术,在服务器上安装VMWare vSphere来实现硬件虚拟化(TYPE1)。也可以在windows上安装VMWare workstation实现OS虚拟化(TYPE2)。
五、超融合
1、TYPE1的存储问题
与前面的TYPE1、TYPE2一样,超融合也是基于Hypervisor的一种虚拟技术不过它提出的核心概念是将运算资源与存储资源先打包整合再虚拟出需要的虚拟资源。要说清楚这个逻辑,要先说说TYPE1模式下存在的一个问题即“独立存储的部署问题”。
如上图所示,一般的云架构会在物理机的基础上再独立部署一套或多套存储阵列。主要原因是宿主机磁盘空间有限,假设宿主机配置如下:
CPU:最多28核
内存:最多512G内存
硬盘:最多6个插槽,每个1T,合计6T(因为要做RAID实际可用可能只有4T)
以上配置,假设我们虚拟出7台虚拟服务器,可得到的最低配置是:
CPU:4核
内存:30G
硬盘:0.85T
相对来说4核30G是够用的,但是0.85T的存储空间是肯定不够的对吧,850G比大部分的笔记本存储空间都少。所以宿主机搭配存储阵列是必须的。另外服务器加CPU加内存都很容易的,但是加硬盘真的很难,因为机身设计空间的限制(限定了U数)服务器能插磁盘的空间很有限。
存储阵列的部署、运维和管理不是个简单的事情(甚至有点麻烦),特别是部署好以后想要变动就麻烦了,而且这个东西特别贵,随随便便搞一下就要上百万了,服务器才多少钱呢。
2、超融合架构
下图是一个简单示例,超融合的特点在于它将接入系统内的所有资源先通过Hypervisor进行虚拟化,然后将计算资源、内存资源、存储资源整合成一个资源池,最后从资源池中为用户分配资源。
超融合系统的物理层通过内部的交换机和线路连通,形成一个内部数据互通网络,对外使用虚拟化技术可以虚拟出任何需要的网络结构。
超融合架构下数据采用分布式存储,并使用SSD缓存机制,即在HDD(普通磁盘)的基础上部署10%-20%的SSD来进行缓存加速。
超融合主要解决的是存储的问题,他依然存在TYPE1所存在的宿主机问题,即虚拟出的OS,其CPU依然依赖于宿主机,当宿主机故障时(单个节点)虚拟OS需要迁移到新的宿主机,中间依然存在RTO时间。
超融合所有资源全部基于x86服务器,即新增计算或存储资源只需要在系统中新增一个x86服务器的节点即可,这样的好处是系统的结构清晰简单,不存在外挂的其他物理系统,系统的扩展和维护也比较简单。
3、超融合缺点
资源扩展依赖于x86服务器,那么无法单独新增存储资源,即想要新增存储时要在系统中加入一个完整的x86服务器,而不能单独只加存储。
主流厂商都建议使用其专用一体机(x86服务器)和交换机,建设时需要重新购买硬件,除了成本外,新兴超融合厂商的服务器(交换机)不一定是专业的,而传统服务器(交换机)厂商的超融合方案又很贵。
部分厂商的方案是一体机架式的,只提供有限的服务器插槽,初期的部署容易上手,但后期的扩展存在限制。
超融合在底层硬件上是分布式部署,但上层软件层面却是集中管理的,那么就存在上层软件BUG导致整个系统不可用的风险。
超融合架构本身会占用一部分的计算资源来实现其服务,