Josh博客原文

在这一部分中,我们将介绍每个产品写操作的I / O路径,这里的写操作是带镜像的(也称为vSAN的FTT1和Nutanix的RF2)。

我将发布部署软件定义的存储“In-Kernel”与“控制器VM”之间的单独详细比较,本文将重点介绍流量如何穿越和利用集群。

假设针对vSAN和Nutanix ADSF的全新4节点集群以及具有600GB虚拟磁盘的单个VM。 选择600GB的值有两个原因。

  1. 我在本文档后面引用的VMware文章使用了这种大小

2. 600GB表示vSAN将磁盘拆分为多个对象,这对vSAN有利(<255GB表示单个对象)。

从vSAN开始讲起:

The objects will be placed on the node where the VM is hosted and on a single other node as shown below. (Screenshot courtesy of URL below).

由于255GB的对象大小限制,vSAN会将vDisk分成3个对象。 这意味着我们将有3个对象和3个副本以及一个见证(witness)。

对象将放置在托管VM的节点上,同时放置在另一个节点上,如下所示。 (屏幕截图由下面的URL提供)。

Reference: https://storagehub.vmware.com/t/vsan-6-7-update-1-technical-overview/vsan-objects-and-component-placement-3/

vSAN 写路径总结:

在最佳情况下,如果VM尚未从其被创建的主机上移走,或者已移回到原始主机上,则一次写入将写入本地对象,另一次写入将写入远程对象。

场景1:vSAN

如果VM是手动或通过DRS进行vMotion操作的,则如果偶然驻留在节点2上,则其最佳写入路径将如下所示。

场景2:vSAN

如果VM位于没有任何对象托管的主机上(4节点群集中有50%的机会),则所有写入操作都将通过网络远程执行,就像在传统SAN环境中一样,如下所示。

场景3:vSAN有点难

这些情况突显出,即使我们接受vSAN的“内核”架构是最理想(或最短)的IO路径,但在IO处于远程的情况下,可以说消除了理论上的优势。

让我们更深入地研究一下VM在集群中的移动情况(通常情况下)。

让我们用一个简单的示例说明两个VM,它们是由于维护或DRS平衡群集而移动的。 他们每个都最终驻留于一个不承载任何对象的节点上。 IO路径如何查找这些VM?

下图突出显示了问题,我们现在有两个VM,它们的100%的写入I / O都在远程进行。 更糟的是,节点1和节点3上的网络流量都正在服务于2个远程写

场景4:vSAN糟糕了

如前所述,随着群集的增长,VM托管在其对象所在位置的机会减少,因此这种情况变得越来越有可能给环境带来不必要的资源开销。

如果为环境配置了容错2(FFT2),则100%远程VM IO的开销也会增加。

场景5:vSAN

假设VM处于运维状态被vmotion或者DRS移动到了恰好具有该VM对象数据副本的节点,则它会有较理想的数据本地化写IO操作,但随着集群规模增大,数据本地化极具偶然性。4节点集群,这样的偶然性为50%,8节点集群下降到了25%,32节点集群只有6.25%。因此在VM维护期间,大多数写I/O都是跨网络执行的,这会导致与其他VM的争用。

vSAN写I/O路径总结:

“扩展阅读”: 将 vSAN 群集的成员置于维护模式时,有3种数据撤出模式,其中“确保可访问性” 为默认选项。在关闭主机电源或将主机从群集中移除时,vSAN 将确保此主机上的所有可访问的虚拟机均保持可访问状态。如果要将主机暂时移出群集(例如,为了安装升级)并计划将主机移回群集中,请选择此选项。如果要将主机从群集中永久移除,则此选项不适用。通常,只需撤出部分数据。但是,撤出期间,虚拟机可能不再完全符合虚拟机存储策略。这意味着它可能无权访问其所有副本。如果在主机处于维护模式且允许的故障数主要级别设置为1时出现故障,群集可能会出现数据丢失的情况。

REFERENCE:HTTPS://DOCS.VMWARE.COM/EN/VMWARE-VSPHERE/6.7/COM.VMWARE.VSPHERE.VIRTUALSAN.DOC/GUID-521EA4BC-E411-47D4-899A-5E0264469866.HTML

我同意Duncan对vSAN的建议,并且上述维护场景中的数据面临风险,这凸显了vSAN上对FFT2的需求。注意:默认情况下,Nutanix ADSF始终通过RF2(FTT1)保持写入I / O完整性,这是ADSF的主要容量,弹性和性能优势。

我将在以后的文章中介绍更多重要的弹性考虑因素。

让我们再来看一下Nutanix ADSF:

假设与vSAN上的VM配置相同,一个600GBvdisk。Nutanix ADSF没有对象的概念。所有数据不管有多少vdisk被分割成1MB和4MB的extent group。

VM的所有的写操作,都会保持1份数据在该VM所在的本地节点,另一份数据分布到集群的其他节点。

Nutanix正在写路径中提供容量效率和性能。

接下来让我们讨论下将VM从节点1迁移到节点2时的情况。

在所有情况下,我们仍然可以看到,有一个副本被写入运行VM的主机,另一个副本被写入并分布在整个集群中。

即使在vMotion之后,Nutanix仍继续在写入路径中提供容量效率和性能。

现在,将vMotion VM移至节点3。

在vm被第二次vmotion到节点3时,仍然保证一份数据本地写,一份数据智能分布在集群其他节点。

现在让我们将VM vmotion回其原来的节点。

结果是7个数据中有4个是在本地的,3个是在远程节点的,如果远程节点数据被访问,就会被本地化。如果从未访问过它,那么它将保持远程,不会对vm性能产生影响。

这里的关键点是,不管VM移动到哪里,写路径总是在本地写一个副本,在远程写一个副本,从而提供一致的写性能。

写路径还使用了智能数据副本放置,以确保集群尽可能地平衡。从这个简单的示例中可以看到,节点有3或4个数据片段,所有节点以分布式方式参与写IO。

What about the scenario I highlighted with vSAN where two VMs are moved to hosts they were not created on?

Nutanix ADSF写IO路径总结:

无论VM/s在集群中的什么位置,写路径都是相同的。一个副本被写入运行VM的节点,第二个(RF3的情况下是第三个)副本智能地分布在整个集群中。一致性是关键,这也正是Nutanix数据本地化为写I/Os提供的独特性。

一致性是关键,而这正是Nutanix独特的Data Locality为写入I / O提供的功能。

Nutanix不执行数据本地化的场景?

1. 如果本地节点已满

2. 如果本地节点CVM不可用

3. 覆盖overwrite(“就地”完成)

在前两种情况下,所有写和读I/O都是远程的。

对于覆盖overwrite,仍然在本地向oplog写入随机I/O以获得最佳性能。当IO被耗尽到extent存储时,该操作在本地或远程执行。如果被覆盖的数据被读取,它将被本地化,以实现未来最优的覆盖(和读取)操作。

简而言之,对于Nutanix ADSF,最坏的情况(所有IO远程)是vSAN的典型情况。

由于计划的维护(例如AOS升级),CVM可能不可用。 万一CVM意外脱机,VM会继续运行,并且IO将被远程提供服务,但是关键的智能副本放置仍然适用。 CVM重新联机后,将恢复最佳写入路径。

接下来,我们将介绍vSAN和Nutanix ADSF的读取I / O路径。

总结:

  1. vsan的写入路径会因VM在集群中位置的变化而变化很大,在VM迁移发生时,很大的几率为远程IO读写。
  2. vSAN静态、基于对象的写路径不允许在维护期间保护写进来的IO
  3. Nutanix ADSF总是基于所配置的存储策略(弹性因素)维护写I/O的完整性。
  4. Nutanix ADSF提供了一致的写IO路径,而无需考虑VM会驻留在哪个节点或被移动到的集群中位置。
  5. Nutanix ADSF 写I/O最坏的情况是仅在维护或CVM故障期间才远程发送两个写副本,而这个最坏情况确是vSAN的常见的写IO场景。
  6. Nutanix ADSF数据本地化是机制的设计;vSAN的数据本地化极具偶然性。

snmpset对象不可写_写 I/O 路径 (FTT1/RF2) 对比 – Nutanix vs VMware vSAN相关推荐

  1. 信签纸有虚线怎么写_写观后感的信签纸格式

    导语:观后感,就是看了一部影片或连续剧后,把具体感受和得到的启示写成的文章.所谓"感",可以是从作品中领悟出来的道理或精湛的思想,那么关于"观后感的格式"怎么写 ...

  2. c语言x的n次方怎么写_写这么sao的代码,不怕被揍么?

    曾经,我接手了一份大佬的代码,里面充满了各种"骚操作",还不加注释那种,短短几行的函数花了很久才弄懂. 这世上,"只有魔法才能对抗魔法",于是后来,翻阅各种&q ...

  3. 截取年月日在hana中怎么写_写完作业就不学了怎么办?焦虑中的家长不妨先低头看看...

    相信有不少家长都遇到了孩子每天写完作业之后,明明还有很长的时间可以利用起来再学点别的,比如某些科目还需要拓展一下,比如有些知识点还需要巩固一下等等,但是孩子就是不听,怎么说也不听. 一直都想写写对这件 ...

  4. bigdecimal不等于0怎么写_写文章死憋写不出来,怎么破?

    本文2529字,阅读大致需要4-6分钟  tip:今天这篇文章,是马上会上线的新课程「写作认知课」中的一个课时. 很多打算写作的人会遇到这样的困境,就像前两天一个同学跟我说的: 很多没有对写作这件事认 ...

  5. java的课后作业咋写_写的简单的java第三季的课后作业

    1.card类,继承了comparable接口 package cardGame_simple; public class card implements Comparable{ private St ...

  6. dynamo方程怎么写_【简明自控】为什么特征方程如此重要

    简明自动控制--为什么特征方程如此重要. 热场视频: 自平衡杆-双轴反作用轮倒立摆_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 顶个棍子!具有主动脚轮的全向移 ...

  7. PTA(类与对象) 用java写 7-1 定义类与创建对象

    PTA(类与对象) 用java写 7-1 定义类与创建对象 定义一个类Person,定义name和age属性,定义有参的构造方法对name和age进行初始化.在测试类中创建该类的2个对象,姓名.年龄分 ...

  8. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...

    代写OS python程序作业.代写代写OS作业.代写OS实验报告 日期:2018-06-11 03:21 CSE 304 - Operating Systems DUE: June 11. Subm ...

  9. java能看懂代码不会写_为什么很多学习Java的人能看懂代码,但就是不会写!

    众所周知,程序员的代码是主观性很强的东西,同样的一个功能,每一个程序员所写出来的代码都不一样,所以这一句名言 "一千个读者心中就有一千个哈姆雷特" 在程序员中同样适用. 而同时能够 ...

最新文章

  1. 少一些计较多_人与人之间最舒服的关系:低期待,少索取,不苛求
  2. Sharepoint学习笔记--Farm Backup Error:Administration 2010 Service is not started
  3. 电脑没有ps怎么改照片dpi_PS入门笔记!新手必备
  4. 把windows当linux用,把Windows Vista当成Linux系统来使用
  5. Word论文公式居中、编号右对齐方法
  6. 分享 | 滴滴分布式NoSQL数据库Fusion的演进之路
  7. 谈谈这些年来我为什么一直在坚持
  8. python创建对象教程_python源码学习 之 对象创建和对象的行为
  9. python爬虫什么意思-Python为什么叫爬虫?Python与爬虫有什么关系?
  10. Spring 基于注解的AOP实现
  11. MockingBrid(AI拟声)教程
  12. android tf卡 修复工具,闪迪sd卡修复工具(sd卡修复工具安卓版)
  13. python 用列表筛选法求素数
  14. 如何使用python自动化查四六级成绩
  15. 好听的女孩名字2225个 懿婕、馨媛、雨熙、若涵、馨瑜、瑾涵、羽欣、琪悦、逸菲、馨瑜、雨婷、昕妤、婉婷、梦琪、馨月、佳瑜、晓琦、婷瑛、诗琪、瑾瑜、艺琳、雨婷、欣怡、诗雨、佳琪、悦涵、昕瑶、蓓佳、诗萌、
  16. Harris角点检测及数据分析
  17. Gephi安装教程及相关错误解决
  18. 云闪付,每天签到,转账领红包,新用户领取8-2018元红包
  19. 个税汇算期,公司收到好多申诉,怎么办?
  20. Facade(外观模式) 结构型

热门文章

  1. Altium设置菜单之系统菜单
  2. 自动生成python接口文档_Django自动生成Swagger接口文档
  3. 教你十步实现内网穿透
  4. 轻量级工具emoji-java处理emoji表情字符
  5. 扫除知识共享障碍,天翎知识文档管理系统+群晖NAS一体化解决方案
  6. java中retry的使用
  7. CobaltStrike(CS)与MetasploitFramework(MSF)联动
  8. 批量 m3u8文件转成MP4的方法--Python实现和 cmd 实现(推荐cmd)--仅粉丝可见
  9. 联网技术架构讨论:Facebook 如何管理150亿张照片
  10. RSA对称加密(JS加密,C#、Java解密)