vSAN技术框架

vSAN技术框架Vsan三大预期市场VDI(虚拟桌面系统)        VDI是主要进军路线。VSAN将作为推荐方案,帮助用户解决“启动风暴”难题(即成千上万虚拟系统同时启动所带来的资源压力)、        而无需投资购置昂贵的全闪存阵列产品。第二大市场是测试与开发领域        这类任务往往能够从主存储体系内有效剥离出来,弹性虚拟阵列应该足以满足开发人员的工作需求。第三大目标市…

vSAN技术框架

Vsan三大预期市场

  1. VDI(虚拟桌面系统)

         VDI是主要进军路线。VSAN将作为推荐方案,帮助用户解决“启动风暴”难题(即成千上万虚拟系统同时启动所带来的资源压力)、

         而无需投资购置昂贵的全闪存阵列产品。

  1. 第二大市场是测试与开发领域

         这类任务往往能够从主存储体系内有效剥离出来,弹性虚拟阵列应该足以满足开发人员的工作需求。

  1. 第三大目标市场指向灾难恢复领域

         很多企业为其灾难恢复站点设置了副本阵列,但高昂的支出令用户们怨声载道。

  相比之下,利用虚拟阵列作为故障转移机制能够帮助客户们解决这一烦恼。

Vsan 技术指标

  1. 最高节点支持能力为32个
  2. 4.5PB存储容量200万IOPS
  3. 最多支持3,200 VMs
  4. 支持vSS及vDS虚拟交换机,必须要在Layer2网络中启用IP 多播 (IP MultiCast)机制。
  5. 支持 VM Snapshot、vSphere HA、vSphere vMotion / DRS,「不支持」SIOC、Storage DRS、DPM。

Vsan产品硬件要求

  1. 一个集群配置至少3 台 Hosts / 最多 32 台 Hosts (Scale-Out 架构)
  2. 所有3台主机都必须提供存储(vSphere 5.5 U1或者更高版本)
  3. 本地连接的磁盘必须包括至少1块SSD和1-7块HDD(Scale-Up 架构),推荐ssd与hdd的容量比为1:10

         SSD (SAS、PCIe、NVMe) / SAS / SATA,通常SSD空间为SAS / SATA 硬盘总空间的「10 %」左右。

  1. RAID Controller要符合硬件清单VMware HCL,且必须支持Pass-Through / RAID 0 / JBOD Mode 才行。
  2. USB / SD Card:

                            4GB/8GB,用来安装 VMware vSphere ESXi 5.5。

 

  1. 网络连接支持1Gb和10Gb以太网(生产环境建议采用),因为仅支持NIC Teaming当中的「Active/Standby」模式,所以把多 Port 1Gbps 捆绑起来是没用的。

 

 

Vsan软件要求

• 以下软件之一 :

vSphere 5.5 U1(VMware vSphere® 任意版本或更高版本号的版本)

VMware vSphere® with OperationsManagement™ 5.5 U1(任意版本)

VMware vCloud® Suite 5.5U1(任意版本)
• VMware® vCenter Server™ 5.5 U1

 

Vsan安装概要

vSAN的安装和配置非常简单。其实vSAN不需要特别安装,只需要在相关组件中开启功能选项即可。配置就大概下面几步:

第一步 设置VMkernel 网络

 

在每台 vSphere 主机上,必须创建用于 VSAN 通信的 VMkernel 端口。VMkernel 端口标记为 Virtual SAN。
当集群中的一台 vSphere 主机拥有特定虚拟机时,此端口将用于集群间的节点通信,也用于读写操作,但组成虚拟机文件的实际数据块位于集群中的另一台 vSphere 主机上。在这种情况下,I/O 必须通过在集群中的主机之间配置的网络进行传输。

 

第二步 创建 Virtual SAN 集群

创建 VSAN 集群时,所需的许多步骤与 vSphere 管理员设置 DRS 或 vSphere HA 集群的步骤相同。
在 vCenter Server 清单中创建一个集群对象,然后,既可以选择先启用 VSAN 集群功能,再向此集群添加主机,也可以先添加主机,再启用 VSAN。

这里就带来了一个问题,我们需要打开DRS和HA吗?那FT怎么办?

其实vSAN和FT功能是不兼容的,也不支持DPM和Storage IO control,但我们可以用DRS和HA。参考Characteristics of Virtual SAN

 

启用 VSAN 功能后,将显示一个选项,要求管理员选择手动或自动集群。这为 vSphere 管理员提供了一种选择 :既可以分配 VSAN 以发现主机上的所有本地磁盘并将磁盘自动添加到 VSAN 数据存储中,也可以手动选择磁盘以添加到集群中,参考:VSAN Part 6 – Manual or Automatic Mode

第三步 添加磁盘到磁盘组

先在vSphere Web Client看一下每一台主机的本地磁盘:

手动向磁盘组添加磁盘
如果选择此选项,则仍会形成 VSAN 集群。不过,VSAN 数据存储的初始大小为 0 字节。管理员必须按主机手动创建磁盘组,并为每个磁盘组添加至少一块 HDD最多一块 SSD 磁盘。每个磁盘组只能包含一块SSD,因此,可能会有多个磁盘组,每个磁盘组包含一块 SSD 和任意多个 HDD。按主机创建每个磁盘组后,VSAN 数据存储的大小将根据所添加的 HDD 的数量而增加。

注意 :SSD 可用作读缓存和写缓冲区,且不包括在 VSAN 数据存储的容量中。
自动创建磁盘组
如果选择自动方法创建 VSAN 集群,则 VSAN 将自动发现每台主机上的本地 HDD 和 SSD,并在集群中的每台主机上构建磁盘组。配备有效存储的所有主机均具有一个包含本地 HDD 和 SSD 的磁盘组。完成这一步之后,最终将创建 VSAN 数据存储,并且其大小反映集群中所有主机上的所有 HDD 的容量(某些元数据的额外容量除外)。

不具有有效存储或不具有任何存储的主机仍可访问 VSAN 数据存储。这是 VSAN 非常有用的一项功能,因为 VSAN 集群现在不仅能够根据存储需求进行扩展,还能根据计算需求进行扩展。

至此vSAN会创建一个叫vSANdatastore的数据存储。

 

Vsan虚拟机存储策略

一个5节点的Vsan集群上,采用默认配置我们创建一个虚拟机。

发现我们只用到了5台主机的3台,为什么呢?这就是Vsan的虚拟机存储策略的作用结果。这个存储策略(Storage Policy)可以算是升级版的存储配置文件(Storage Profile)。

创建存储策略

添加策略并选择增加磁盘条带(stripe)功能

配置3个条带

存储策略构成要素

通过上面添加存储策略的实例,我们了解到一个存储策略包含2个配置因子:

Num of failures to tolerate(FTT): 允许的故障数量

这一属性要求存储对象至少允许集群中的并行主机、网络或磁盘故障的“NumberOfFailuresToTolerate”(允许的故障数量),并仍确保对象的可用性。如果此属性已填充,则指定配置必须至少包含“NumberOfFailuresToTolerate”(允许的故障数量)+1 个副本,还可包含一个额外的见证对象以确保此对象的数据可用(维护定额以防裂脑),即使存在“NumberOfFailuresToTolerate”(允许的故障数量)的并发主机故障,情况也不例外。

因此,要容许 n 个故障,至少必须存在 (n + 1) 个对象副本且至少需要 (2n + 1) 台主机。 注意 :单台主机上的任意磁盘故障均可视为符合此标准的“故障”。因此,如果将“NumberOfFailuresTo Tolerate”(允许的故障数量)设置为 1,则当主机 A 上出现一个磁盘故障,同时主机 B 上出现另一个磁盘故障时,此对象将无法保存。

 

Stripe: 每个对象的磁盘条带数

VSAN在主机之间使用RAID-1(同步镜像)来满足对系统中存储对象的可用性和可靠性的要求。虚拟机存储对象的镜像拷贝数量取决于虚拟机存储策略。根据虚拟机存储策略不同,一个组件最多可在一个32节点的VSAN上拥有3个镜像。

这可定义分布有存储对象的每个副本的物理磁盘的数量。如果读缓存无效的话,则高于 1 的值可能会提高性能,但会使用更多的系统资源。 为了解磁盘条带的影响,我们首先从写入操作方面对其进行了解,然后再从读取操作方面进行了解。由于写入的所有数据都将进入 SSD 写缓冲区,因此增加磁盘条带数量可能无法提高写入性能。这是因为无法保证新的条带使用不同的 SSD。新的条带可能位于相同的磁盘组中并因此使用相同的 SSD。

磁盘条带数量增加能够发挥作用的唯一一种情况是在许多写入从 SSD 降级到磁盘时。 从读取角度来看,磁盘条带数量增加在您遇到许多缓存丢失时会有帮助。例如,如果虚拟机每秒处理2,000个读取操作且缓存命中率为 90%,则每秒将有 200 个读取操作必须通过 HDD 存储处理。在这种情况下,单个 HDD 可能无法处理这些读取操作,因此,磁盘条带数量增加对此会有所帮助。

通常,默认磁盘条带数量 1 能满足所有或大多数虚拟机工作负载要求。磁盘条带是仅在少量高性能虚拟机运行时才应更改的要求。

使用虚拟机存储策略

  • 虚拟机存储对象

Vm虚机对象结构层次没有明确的官方文档,根据基于对象存储的观点我们可参考VMFS结构:

 

 

  • 组件(component)

VSAN数据存储其实是一种对象存储。对象指的是一个独立的存储块设备。

对象取代LUN成了VSAN的主要存储单元。在VSAN中最典型的对象就是VMDK、虚拟机交换文件、增量盘(快照)和虚拟机名字空间。

VSAN中的每个对象都有自己的RAID树,组件是RAID树上的叶子。存储数据的副本是一个组件。

 

  • 见证(witness)

为了解决脑裂的问题,VSAN引入了一个非常重要的组件——见证(witness),也就是我们经常所的仲裁盘。

见证只是一个逻辑组件,不是一个副本,没有数据,只有元数据(大小仅2MB),占用的空间非常小。

因此,可以只实现两副本的分布式集群,使用率比三副本要高很多,但有效解决了脑裂的问题,可靠性也很高。

见证分类:

         初级见证(Primary Witness):为保证任意一个host故障后,vm对象的可用组件数达到2 * FTT+1添加初级见证

         次级见证(Secendary Witness):为保证任意一个host对vm都有平等的组件影响力,给组件少的节点添加次级见证

         打破平衡见证(Tiebreaker Witness):当vm分布在偶数个节点上的时候,为防止发生双方拥有相同的组件数导致脑裂,增加一个打破平衡见证。

 

下面为vm技术blog中对三中类型见证的描述:

         关于Witness机制的完整描述参考              

  • 独立节点可靠阵列 (RAIN)

RAIN 的含义是独立节点可靠阵列,与独立磁盘可靠阵列 (RAID) 相对。简单地说,RAIN 意味着您的环境现在可以承受 vSphere 主机(或主机中的组件,例如磁盘驱动器或网络接口)故障,并可继续为您的所有虚拟机提供完整功能。 如果出现故障,无需将故障节点上的所有数据迁移至集群中的其他节点。

凭借 RAIN 体系结构以及虚拟机存储策略的使用,虚拟机副本可保留在集群中的多个节点上。无需将故障主机上存储的数据撤出,因为数据已存在于集群中的其他位置。

Vsan产品使用raid0实现stripe支持,使用raid1实现FTT支持。

每个虚拟机对象拥有自己的raid树,支持运行期间存储策略的动态更新。

 

  • 虚拟机对象可用原则

         VSAN中的一个vm对象要被认为可用,必须满足以下两个条件:

  • RAID树必须允许数据访问(RAID-1必须最少有一个完好的副本,RAID-0必须所有的条带都完好)
  • 必须有超过50%的组件可用(注意,不包含等于!)哪个对象拥有超过一半的组件,那么这个对象就可以访问。其他的对象就不能对外提供服务,这样就防止了脑裂。这种规则的抽象,可以让VSAN支持不同的高可用策略。

根据FTT的定义,超过50%组件可用的约束可转换为最少可用组件数=2*FTT +1

虚机策略举例

假设一个4节点的Vsan集群,配置存储策略为FTT=1,stripe=3。创建一个虚拟机(假设由3个组件构成:ABC),下面以图表的形式说明该虚拟机对象的组件分布过程:

  1. 数据组件初始化分布

  1. 当任意一个host发生故障时,可用组件数为4或者5个,超过了总个数6的一半,因此不用增加初级见证
  2. 为保证host3、host4与host1、host2拥有相同的组件数,分别给host3、host4增加一个初级见证SW

  1. 这时每个host都拥有2个组件,任意一个host发生故障剩余可用组件数都相同
  2. 假设由于网络故障,集群被分隔为两个无法通讯的区域,每个区域都有2个host,这时由于每个区域都拥有4个组件,发生脑裂,vm不可用,为解决该故障场景,随机选取一个host创建一个打破平衡见证TW,假设选择host2

  1. 虚拟机的组件数为奇数,故障导致分裂后,两个区域中组件数多的一方成为工作副本,避免了脑裂情况

Vsan与传统psan的区别与结合

我用VMWARE高管的观点来统一答复一下分布式存储和高端存储应用问题。

CHUCK是VMWARE的首席策略官,他原来是DG Clariion(后来被EMC收购)团队的,因此,他对存储和VSAN都是非常熟悉。他在blog写了一篇文章,我们来看看他的观点。

从他的BLOG的资料的版本看,VMWARE内部也在讨论这个问题。

他认为,传统的存储阵列(我们叫PSAN,即物理SAN)有着自己的独特优势,如共享访问、性能好、丰富的数据服务。特别是数据服务,如快照、远程复制、多站点容灾、加密、WORM、法规遵从、重删、压缩、分层、瘦分配等等。而且这些存储厂商已经在这些方面投入很大的研发力量,用户也有熟悉这种架构的技术人员。这是一个完善和成熟的生态环境。

 

 

 

 

 

当然,大部分用户都感觉外部存储难于管理,特别是在以应用为中心的环境下,并且价格昂贵。

而VSAN的出现,带来了很多新的东西,特别是管理的简单,和虚拟化的结合,更好的性价比。

 

 

 

那么是否可以构造一个和谐的存储社会,利用双方的优点呢?答案是肯定的。总的来说,就是把需要丰富数据服务的关键数据放在外边的存储阵列上,而其他的临时数据或者可以再生的数据全部放在VSAN上。

 

比如在VDI环境下,用户的数据放在存储阵列上,而VDI映像,临时空间,SWAP空间等等,都放在VSAN上。对于ORACLE数据库,也是一样,主数据库还是放在外部存储阵列上,可以利用其丰富的数据服务,实现很好的DR或者法规遵从的功能,而测试环境、OLAP查询这些数据可以放在SERVER SAN上。针对Hadoop大数据分析,道理一样,Chunk不建议把HDFS datastore放在VSAN上,但MapReduce阶段的数据适合放在VSAN上。

 

这么做后有什么不同,主要是管理简化了。VSAN由于和VM结合紧密,由VM团队管理,而存储团队只是负责维护存储阵列。日常维护各管各的,不像以前,任何存储的事情都需要找存储的团队,效率大大提升。这个其实也是一种分层存储,第一层是VSAN,第二层是PSAN,但每一层里面又可以再分层。

 

这种分类服务再加上VMWARE的VMOTION功能,使得整个管理过程很多都可以基于策略自动化。

 

因此,VSAN和外部存储共存,利用各自优点的方式,可以构造一个三赢的局面。对VM团队来说,管理可以和应用结合起来,管理更加方便。对于存储团队来说,主要关注关键数据的存储和数据服务,系统的性能也好维持,日常的管理也变得简单。对于其他人,会觉得存储更加智能,性价比更好。

 

 

今天的文章vSAN技术框架分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32603.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注