大家知道,vSAN就是一种分布式存储,其数据保护技术不是采用传统的RAID方式,而是叫分布式RAID/RAIN。

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

  说白了,就是采用多副本技术,VSAN支持2副本或者3副本(目前实现)。

  那么问题来了,为什么VSAN可以支持两副本呢?大家知道,很多的产品,比如基于hadoop的开源实现,还有包括华为的UDS,爱数的Anyshare这些商业产品,都是采用三副本技术。西瓜哥曾经和爱数的米香总聊过,为啥备份产品也搞三副本,不是有点浪费吗?米香总说三副本的可靠性比较高,如果一台主机失效,那两个副本还可以提供服务。如果是采用两副本,如果发生一个主机失效(比如心跳断了),这种脑裂特别难处理,因为,大家各有一个副本,到底哪个副本来提供服务呢?

  西瓜哥想了想,这个确实是一个问题。但VSAN是如何解决的呢?

  VSAN数据存储其实是一种对象存储。对象指的是一个独立的存储块设备。对象取代LUN成了VSAN的主要存储单元。在VSAN中最典型的对象就是VMDK、虚拟机交换文件、增量盘(快照)和虚拟机名字空间。

  VSAN中的每个对象都有自己的RAID树,组件是RAID树上的叶子。存储数据的副本就是一个组件,为了解决脑裂的问题,VSAN引入了一个非常重要的组件——见证(witness),也就是我们经常所的仲裁盘。

  如果大家对集群系统如微软的MSCS有所了解的话,都知道集群系统都会有一个仲裁的机制,一般是一个仲裁盘(LUN)。当发生脑裂的时候,谁可以访问这个仲裁盘,那么这个主机就来对外提供服务。其实存储里面的虚拟化网关,如华为的VIS、EMC VPLEX,IBM SVC都有这个仲裁的机制。

  VSAN的聪明之处,就是引入了见证。这样可以实现仲裁的效果,但由于见证只是一个逻辑组件,不是一个副本,没有数据,只有元数据(大小仅2MB),占用的空间非常小。因此,可以只实现两副本的分布式集群,使用率比三副本要高很多,但有效解决了脑裂的问题,可靠性也很高。

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

  RAID树必须允许数据访问(RAID-1必须最少有一个完好的副本,RAID-0必须所有的条带都完好)

  必须有超过50%的组件可用(注意,不包含等于哦)

  简单来说,哪个对象拥有超过一半的组件,那么这个对象就可以访问。其他的对象就不能对外提供服务,这样就防止了脑裂。

  这种规则的抽象,可以让VSAN支持不同的高可用策略。

  这个是VSAN中不同高可用策略对副本以及主机数的要求:

  有了见证这个组件,就可以支持不同的VSAN的高可用策略。比如,你允许故障数是2,那么你需要3个副本,5台主机。这个时候需要多少个见证呢?需要主机数减去副本数,也就是需要2个见证。也就是5个主机,每个主机上要么有一个副本,要么有一个见证,这样发生脑裂,只有拥有超过50%组件的对象才能提供服务。

  好了,超过5分钟了,总结一下。西瓜哥认为,见证(witness)是VSAN非常有技巧的一个实现,它可以支持不同的高可用策略,而且可以有效防止脑裂。这是实现方式使得两副本这种比较经济的方式,可以在大规模的分布式存储里面实现。

  延伸思考一下:IBM XIV也是采用两副本,15台主机,是否也有仲裁机制来防止脑裂呢?西瓜哥在红皮书没有看到,但考虑到XIV都在一个机柜了,工程上是一个紧密的系统,也就是主机坏了,网络不可能坏,网络不坏,心跳就可以正常通讯,就不会有脑裂的问题,或者脑裂的概率非常小。因此,不特别考虑也是可以理解的。

5分钟了解VMware vSAN的分布式RAID相关推荐

  1. 【VMware vSAN 7.0】5.4.2 创建 vSAN 集群

    [VMware vSAN 7.0]5.4.2 创建 vSAN 集群-我们有软硬件解决方案 IT干货 2021-03-31 10:19:32 123 收藏 1 分类专栏: 1.服务器虚拟化集群方案 文章 ...

  2. vSAN架构细节-分布式RAID

    [编者按] 首先祝大家国庆节.中秋节,双节快乐! 先分享一个快讯: DELL EMC VxRail力压Nutanix,夺得HCIA的桂冠. 根据IDC的数字,2017年第2季度,全球HCI营收达到$7 ...

  3. VMware vSAN 7 超融合基础架构 (HCI)虚拟化集群解决方案

    一.    VMware vSAN 简述 通过超融合基础架构 (HCI),可将存储.计算和网络连接功能整合到一个系统中.这种经过简化的解决方案可使用软件和 x86 服务器来替代专门构建的昂贵硬件. v ...

  4. 【VMware vSAN 7.0】超融合基础架构 (HCI)虚拟化集群解决方案

    [VMware vSAN 7.0] 超融合基础架构 (HCI)虚拟化集群解决方案 置顶 IT干货 2021-02-24 11:43:51 1208 收藏 4 分类专栏: 1.服务器虚拟化集群方案 文章 ...

  5. VMware vSAN 6.7实战(六)配置vSAN存储策略

    VMware vSAN 6.7实战(六)配置vSAN存储策略 https://blog.51cto.com/11694088/2462016 这一节我们继续本系列文章中的第三节继续讲述具体配置vSAN ...

  6. VMware vSAN网络设计中不得不说的事

    VMware vSAN网络设计中不得不说的事 原创 李严省 虚实之路 2018-06-07 VMware vSAN分布式存储我想大家都已经很了解了,我再简单的啰嗦一下.VMware vSAN架构如下图 ...

  7. VMware vSAN性能测试那点后续的事

    VMware vSAN性能测试那点后续的事 原创 李严省 虚实之路 2018-06-05 VMware vSAN条带介绍 大家好,以前我和各位朋友讲过关于VMware vSAN的性能测试那点事,分析了 ...

  8. vsan加入不同型号服务器,VMware VSAN的特点与要求,与优缺点

    VSAN的特点与要求,与优缺点 VMware VSAN主要有5个特点: 1.运行在标准x86服务器上 2.分布式集群,把VM数据文件打散放在多个主机上,每个服务器的本地存储网络池化3.使用SSD作为读 ...

  9. 【VMware vSAN 7.0】5.4.5 在现有集群上启用 vSAN—我们有软硬件解决方案

    目录 1. vSAN简介 1.1 vSAN 概念 1.1.1 vSAN 的特性 1.2 vSAN术语和定义 1.3 vSAN 和传统存储 1.4 构建 vSAN 群集 1.5 vSAN 部署选项 1. ...

最新文章

  1. GPU编程和流式多处理器(二)
  2. 区块链+数字经济发展白皮书,45页pdf
  3. laravel框架内置的各种路径帮助函数
  4. linux下使用sftp
  5. ftp+线程池批量上传文件
  6. 离散对数(Baby Step Giant Step)
  7. 第十四章:Java_网络编程
  8. Windows下RMAN备份脚本
  9. 使用Yii 1.1框架搭建第一个web应用程序
  10. java 编写 servlet 程序_Java技术分享:如何编写servlet程序
  11. 5.jenkins 自动部署
  12. 已知圆心及半径,通过MATLAB画圆
  13. 计算机wifi共享usb设备,手机设置wifi热点如何通过usb和电脑共享网络
  14. 计算机水印如何操作,图片的水印如何添加|怎么用word给图片添加水印
  15. mock.js的使用方法
  16. 计算机信息采集方式有哪些,数据监控都有哪些信息采集渠道
  17. 【视频课】8大真实金融工程案例,20多小时Python进阶课推荐给你学习!
  18. 腾讯汤道生:面向数实融合新世界,开发者是最重要的“建筑师”
  19. python中true和false_我对python里True和False的理解
  20. JSON——李炎灰js笔记

热门文章

  1. 用计算机转换层次的例子,两类层次分析法的转换及在应用中的比较-计算机工程与应用.PDF...
  2. JavaScript高级程序设计--01
  3. sscanf解析复杂字符串,双引号通配符的使用问题
  4. 工厂模式,简单工厂模式,抽象工厂模式三者有什么区别
  5. ARM 编译 phddns
  6. cs中ComboBox以设置DataSource方式填充后,清除选项出错
  7. java编程思想3感悟(4)---被隐藏的具体实现
  8. 强强联合,OpenCV搭载飞桨模型,帮你轻松玩转深度学习
  9. 含噪数据的有效训练,谷歌地标图像检索竞赛2020冠军方案解读
  10. 超过100G的CVPR 2020 图像匹配挑战赛数据下载!