VMware vSAN OSA存储策略 - 基于虚拟机的分布式对象存储

news2024/11/16 7:24:16

简介

博客:https://songxwn.com/

存储策略 (Storage Policy) 是管理员定义的一组规则,这组规则定义了数据对象在 vSAN 存储上是如何保存的,存储策略定义了数据存储的可靠性、访问性能等特性。vSAN 提供了基于存储策略的存储管理 SPBM (Storage Policy-Based Management),管理员创建多个存储策略,利用 SPBM 来对 vSAN 存储进行灵活地管理,SPBM 是 vSAN 的一个重要特色。

本文简单介绍了vSAN 的OSA架构,从vSphere 5.5版本开始到7.0,只支持OSA,8.0以后除了支持OSA外,还支持ESA(Express Storage Architecture)。

OSA为传统架构,支持SSD+HDD的混合组,或者容量SSD+高速SSD的全闪存组。有容量和性能存储分层。

ESA为全新闪存架构,要求使用4块以上的NVME SSD,512G内存、25G网络。无存储分层。

起源

据说啊OSA架构是借鉴了路坦力(Nutanix)的设计,大概是2013年,SSD的价格还很贵,这个设计就是利用SSD的高性能,作为读写缓存,提升超融合存储的性能,算是个划时代的产品。VMware的vSAN借鉴了这个思路,当年路坦力的产品依附在VMware平台上,而VMware几乎是抄袭了路坦力,把路坦力气的嘚嘚的,最后导致路坦力和VMware翻脸。

vSAN 基于虚拟机为对象的超融合分布式存储

Distributed RAID:

vSAN将数据按一定的规则(Storage Policy)分布到集群各个物理主机上,确保数据可以在发生主机或存储设备故障的时候可以恢复,类似于磁盘整理上的RAID技术,可以理解成分布式的RAID

Objects:

vSAN是一个对象存储,虚拟机是由多个对象组成,如虚拟机磁盘(VMDK),存储虚拟机配置的VM home namespace,namespace这种对象,可以理解成目录,vSAN的性能数据,ISO文件,内容库这些都是以namesapce的类型存储的;当虚拟开机的时候,VM swap object会被创建;当故障发生的时候,vSAN会创建叫“durablility componet”的对象,以存储新写入的数据。

每个虚拟机都可以应用一个存储策略,这代表每台虚拟机冗余方法都可以不一样。而数据分布也是每台都是不同,分布在不同容量硬盘上。

Component

为了Object可以在故障的时候恢复,所以vSAN将Object切成更小的块(chunk),一个object由多个componet构成,可以理解为下图

重要的存储策略概念

对象磁盘条带数 (Number of disk stripes per object)

把虚机对象分成多个条带 (stripe) 分布存储在多个硬盘上,这样有助于提高数据读取的性能。在下图的例子中,所示的虚机被分为两个条带 a 和 b 进行存储;因为同时又采用了 Raid-1,所以虚机对象又被保存了两个副本,一个副本在服务器 ESX01 的磁盘组中,另一个副本存放在位于服务器 ESX02 和 ESX03 上的磁盘组中。(其实就相当于 RAID 10

对象条带数实际上就是 Raid-0 的概念,只不过我们在定义 Raid-0 的配置时,更多使用的是条带宽度 (stripe width) 的概念,条带宽度是指每一块条带块的大小,条带数量取决于组成 Raid-0 阵列的磁盘数量。vSAN 中对象条带数缺省为1 (建议不要改动这个值),最大值为12。把这个值设置成大于1能够提高系统性能,但是会引起更多的资源消耗。

vSAN-RAID1+0

读缓存预留 (Flash read cache reservation %)

无论是机械硬盘和 SSD 组成的混合架构,还是由高速NVME SSD 和普通SAS/SATA SSD 组成的全闪存架构,vSAN 都会把两种设备中性能更高的那种设备用作读写缓存(全闪只会用于写缓存),从而来提高整个系统的性能。这个参数指定了为虚机对象保留的缓存 SSD 空间占比 (相对于虚机大小),缺省为0% ;建议一般情况下不要改动这个值,仅当特定情况下需要提高性能时才改动。

vSAN OSA 混合硬盘组里面的缓存盘划分写缓冲区(30%)和读缓存区(70%)。

vSAN OSA 全闪存硬盘里面的缓存盘只用于写缓存,最高利用容量为 600G / 1.6TB。(vSAN8 可扩展到1.6TB)

vSAN OSA 缓存和容量硬盘比应该是 1/10。

对象空间预留 (Object space reservation %)

vSphere 在创建虚机时虚拟硬盘有三种格式可以选择:

  • Thick Provision Lazy Zeroed(厚置延迟置零):一开始就分配足额空间给虚拟硬盘,但是等真正写入数据时才初始化(写 0);

  • Thick Provision Eager Zeroed(厚置快速置零):一开始就分配足额空间给虚拟硬盘,并且完全初始化(写 0),性能最优;

  • Thin Provision(精简置备):根据虚拟硬盘的实际使用来分配空间,但在性能上要比上面两种差一些。

一般为了节省存储空间的话,会使用精简置备。

对象空间预留参数定义了创建虚机对象时,如果虚机采用的是 Thin Provision 方式的话,必须为虚机保留的存储空间比例 (相对于虚机的大小)。

可以忍受的故障数 FTT (Failure to Tolerate)

FTT (Failure to Tolerate) 是定义数据保护等级的一个重要参数,FTT = 1 意味着可以忍受一个节点的故障。跟 FTT 紧密相关的另一个参数是数据保护方法 FTM (Failure Tolerance Method),FTM 也定义了数据布局的方式,vSAN 中的 FTM 主要有 Raid-1、Raid-5 和 Raid-6 这几种。

Raid-1 就是镜像 (Mirroring),在另一台服务器的磁盘组上保存数据的副本,当其中一台服务器发生故障时,也可以保证数据不丢失。下图展示了 Raid-1 的工作原理,同一个数据对象存在两个副本分别存放在两台服务器上,这种情况下对应 FTT = 1。

Raid-5 跟传统的 Raid 5 磁盘阵列类的概念类似,只不过阵列不是由同一台服务器上磁盘组成,而是由多台服务器上的磁盘组成,通过增加奇偶校验块来提高数据的容错能力。Raid-5 最少要求4个服务器节点,可以实现 FTT = 1 的容错要求。跟 Raid-1 相比,Raid-5 可以至少节省 30% 的存储空间。(在OSA架构下,性能会有一定下降。)

Raid-6 的工作原理跟 Raid-5 类似,只不过采用了双份的奇偶校验块,从而使数据的容错能力进一步提高。Raid-6 最少要求6个服务器节点,可以实现 FTT = 2 的容错要求。跟 Raid-1 相比,Raid-6 可以至少节省 50% 的存储空间。(在OSA架构下,性能会有一定下降。)

vSAN 中的 Raid-5/6 也称之为纠删码 (Erasure Coding),我们可以把它理解成一种跨服务器的 Raid 阵列实现。

在ESA架构中 Raid-5/6 的性能被优化到和RAID1 接近。

IOPS (Input / Output Per Second) 限制

IOPS 是衡量存储性能的一个重要指标,vSAN 通过为虚机指定 IOPS 限制值,来控制虚机可以获得的存储访问 QoS (Quality of Service) 服务质量等级。通过这个值的设定可以限制某些非关键应用虚机对于 vSAN 性能的占用,从而保证关键应用虚机的存储访问性能。

校验和 (checksum) 验证

校验和 (checksum) 是在数据处理和数据通信领域中,用于校验数据正确性的一种方法:把数据的各个位数累加起来,在处理数据结束之后根据这个数值判断是否接收到的数据是否正确,如果数值匹配那么说明数据被正确地处理了。校验和通常是以十六进制为数制表示的形式来进行计算,如十六进制串: 0102030405060708 的校验和是 24 (十六进制,十进制累加结果为36)。

vSAN 在写入数据时同时也写入该数据的校验和,作为日后比对的依据。打开该功能时,vSAN 在后台执行磁盘扫描 (Disk Scrubbing),如果通过校验和验证发现了错误,则重建数据,能够自动检测和解决静态磁盘错误 (silent disk errors)。

强制调配 (Force Provisioning)

当存储策略中设定的规则不能满足时,vSAN 也可以强制为虚机分配存储空间,保证在一些极端条件下 (如存储空间不够) 也能够为虚机分配空间,让系统能够正常地运行下去。

存储策略的定义和使用

定义存储策略

存储策略必须在虚机创建之前建立,这样才可以在虚机创建时选择使用;当然 vSAN 有缺省的存储策略,如果没什么特殊需求的话,就可以使用缺省的策略。下图示意了虚机存储策略是如何被创建的,创建之后就可以在 web client 管理控制台中看到 vSAN 集群中现有的存储策略。

使用存储策略

接下来就可以在创建虚机的时候指定它所使用的存储策略了,或是修改现有虚机的存储策略。下图示意了修改一个虚机存储策略的过程,管理员修改了虚机的存储策略后,vSAN 会根据新的策略来调整虚机数据的存储布局,以符合新的存储策略的要求。

检查存储策略的合规性 (Compliant)

管理员也可以去检查虚机对象的存储是否符合存储策略的规定,合规 (Compliant) 的意思就是 vSAN 存储满足了存储策略定义的要求。在存储空间资源短缺的情况下,也会产生不合规的情况,例如要求采用镜像来保存虚机对象,如果其他服务器上没有足够空间的话,结果只保存了一份虚机对象副本。如果出现不合规情况的话,就意味着数据对象没有得到应有的安全保护,也有可能是存储策略设置得不合理,管理员就要立即采取行动,找出造成违规的原因。

vSAN规划注意

  • 至少单台物理服务器256G 内存以上。

  • 每台服务器CPU是同型号,最少是同代。建议近三年发布的。

  • 要求有单独的接入交换机(方便网络接入)。

  • 要求集群数量最少三台,推荐为四台以上。

  • vSAN 集群网络之间延迟要求小于1毫秒,最好独立VLAN。

  • 要求有单独两块硬盘做RAID1 作为系统盘,独立于vSAN。

  • vSAN 至少要求一个SSD+一个HDD,推荐为两块SDD 作为缓存层,两块HDD作为容量层,作为两个硬盘组。

  • 缓存硬盘和容量硬盘的总容量比应该为1:10

  • vSAN网络要求10G起步,推荐使用25G*2

  • 缓存盘和容量盘要求直通或RAID0,推荐用SAS卡接入,有一定队列深度要求。

  • 集群中所有vSAN主机相互访问延迟不应该大于1MS.

  • 网卡要求四个10G网卡,其中两个作为管理、虚拟机迁移、vSAN网络。其他两个为业务网卡。

  • 单个阵列卡,RAID和直通模式不能混用,否则vSAN会有问题。vSAN告警

  • vSAN 规定每个磁盘组最少需要一块SSD作为缓存+一块HDD/SSD作为容量层,最多一块+7块HDD/SSD作为容量层。每台主机不能多于 5 个磁盘组。(vSAN会占用内存、 HA也会预留内存)

  • vSAN缓存盘,30%作为写缓存 70%作为读缓存。每个磁盘组仅可以有一个缓存盘。

  • vSAN OSA 混合硬盘组,缓存层和容量层的大小比应该最小为 1:10

  • vSAN OSA 全闪存硬盘组,缓存盘最大利用率为600G。可增加使用到1.6TB

  • vSAN ESA 架构,需要每台至少有512G内存,四个NVME SSD,两个25G网卡。

  • vSAN可以部署RDMA 增加性能,但需要网卡+交换机支持。

硬件兼容性查询:https://www.vmware.com/resources/compatibility/search.php

延伸阅读

将 VMware vSphere / vSAN 软件与 Intel 的最新硬件平台技术相结合,可以为用户交付最佳的超融合架构平台,帮助用户简化数据中心管理,降低采购和运维成本,轻松应对企业在数字化转型中面对的各种挑战。(AMD目前的服务器CPU性价比更高。)

  • VMware vSAN 是最佳的存储方案平台,具有管理简便、高性能、低成本、易扩展的特点,在 vSAN 平台上可以支持任何类型的应用。

  • Intel 至强处理器提供最强计算能力,基于傲腾 (Optane) 和 3D NAND 技术的固态盘是理想的高速缓存,以太网融合网卡提供稳定的网络带宽和低网络延迟。(傲腾 产品线已经被放弃了。)

参考文档

https://blogs.vmware.com/china/2018/12/29/vsan-%E5%AD%98%E5%82%A8%E7%AD%96%E7%95%A5%E6%BC%94%E7%A4%BA/

https://communities.vmware.com/t5/VMware-vSAN-Discussions/cache-size-in-vSAN-6-2/td-p/2225513

https://zhuanlan.zhihu.com/p/686508940

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1552318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解码“零信任”,如何带来信任感?

零信任的“信任”来源,并非凭空而生,而是建立在严格、细致且持续的验证、策略之上。它不仅能够提升企业的安全防护能力,也在加速安全技术的创新与演进。 推动创新 零信任理念激活网络安全 身份和访问管理革新。零信任理念“永不信任&#…

Jenkins升级中的小问题

文章目录 使用固定版本安装根据jenkins页面下载war包升级jenkins重启jenkins报错问题解决 K8s部署过程中的一些小问题 ##### Jenkins版本小插曲 ​ 在Jenkins环境进行插件安装时全部清一色飘红,发现是因为Jenkins版本过低导致,报错的位置可以找到更新je…

【InternLM 实战营第二期笔记】书生·浦语大模型全链路开源体系及InternLM2技术报告笔记

大模型 大模型成为发展通用人工智能的重要途径 专用模型:针对特定任务,一个模型解决一个问题 通用大模型:一个模型应对多种任务、多种模态 书生浦语大模型开源历程 2023.6.7:InternLM千亿参数语言大模型发布 2023.7.6&#…

【React】onClick点击事件传参的4种方式

记录React onClick 点击事件传参的 4 种方式 方式一&#xff1a;使用内联箭头函数 import React, { MouseEvent } from "react";function App() {const handleClick (event: MouseEvent<HTMLButtonElement>, name: string) > {console.log(event)console.…

Unity图集编辑器

图集编辑器 欢迎使用图集编辑器新的改变编辑器图片 欢迎使用图集编辑器 Unity图集操作很是费劲 无法批量删除和添加图集中的图片 新的改变 自己写了一个图集编辑器 客&#xff1a; 支持批量删除 左键点击图片代表选中 右键点击图标定位到资产支持批量添加 选中图片拖拽到编…

小程序利用WebService跟asp.net交互过程发现的问题并处理

最近在研究一个项目&#xff0c;用到asp.net跟小程序交互&#xff0c;简单的说就是小程序端利用wx.request发起请求。获取asp.net 响应回来的数据。但经常会报错。点击下图的测试按钮 出现如下错误&#xff1a; 百思不得其解&#xff0c;试了若干方法&#xff0c;都不行。 因为…

非wpf应用程序项目【类库、用户控件库】中使用HandyControl

文章速览 前言参考文章实现方法1、添加HandyControl包&#xff1b;2、添加资源字典3、修改资源字典内容 坚持记录实属不易&#xff0c;希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区&#xff01; 谢谢~ 前言 wpf应用程序中&#xff0c;在入口项目中…

单例模式如何保证实例的唯一性

前言 什么是单例模式 指一个类只有一个实例&#xff0c;且该类能自行创建这个实例的一种创建型设计模式。使用目的&#xff1a;确保在整个系统中只能出现类的一个实例&#xff0c;即一个类只有一个对象。对于频繁使用的对象&#xff0c;“忽略”创建时的开销。特点&#xff1a…

arp 协议

数据链路层 我们之前学习到的 IP 协议解决的是数据跨网络传输的问题。 数据链路层解决的是&#xff1a;直接相连的主机&#xff0c;进行数据交付的问题&#xff01; 直接相连的设备包括我们的电脑&#xff0c;路由器等等哈&#xff01; 我们在网络基础那篇文章中讲过什么是以…

Unity | 射线检测及EventSystem总结

目录 一、知识概述 1.Input.mousePosition 2.Camera.ScreenToWorldPoint 3.Camera.ScreenPointToRay 4.Physics2D.Raycast 二、射线相关 1.3D&#xff08;包括UI&#xff09;、射线与ScreenPointToRay 2.3D&#xff08;包括UI&#xff09;、射线与ScreenToWorldPoint …

基于单片机锂电池电量检测数码管显示系统设计

**单片机设计介绍&#xff0c;基于单片机锂电池电量检测数码管显示系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机锂电池电量检测数码管显示系统设计的主要目标是实时、准确地检测锂电池的电量&#xff0c;并…

如何利用webpack来优化前端性能

当涉及前端性能优化时&#xff0c;Webpack 是一款不可或缺的工具。它不仅仅是一个模块打包工具&#xff0c;还提供了各种功能和插件&#xff0c;可以帮助开发人员优化前端应用程序的性能。在这篇文章中&#xff0c;我们将深入探讨如何有效地利用 Webpack 来优化前端性能&#x…

「15」色源:添加指定色彩的纯色画面素材

「15」色源添加指定色彩的纯色画面素材 在OBS软件里&#xff0c;在来源里可以增加色源&#xff0c;添加一个色块到您的场景中&#xff0c;作为一个背景色或辅助色。 图中的显示器就是加了色源的 实操步骤 第1步 添加色源 在「来源」的左下角&#xff0c;点「」选择「色源」&a…

使用Kaggle API快速下载Kaggle数据集

前言 在使用Kaggle网站下载数据集时&#xff0c;直接在网页上点击下载可能会很慢&#xff0c;甚至会出现下载失败的情况。本文将介绍如何使用Kaggle API快速下载数据集。 具体步骤 安装Kaggle API包 在终端中输入以下命令来安装Kaggle API相关的包&#xff1a; pip install…

「DevExpress中文教程」如何将DevExtreme JS HTML编辑器集成到WinForms应用

在本文中我们将演示一个混合实现&#xff1a;如何将web UI工具集成到WinForms桌面应用程序中。具体来说&#xff0c;我们将把DevExtreme JavaScript WYSIWYG HTML编辑器(作为DevExtreme UI组件套件的一部分发布的组件)集成到Windows Forms应用程序中。 获取DevExtreme v23.2正式…

Kafka重要配置参数全面解读(重要)

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Kafka重要配置参数全面解读(重要 前言auto.create.topics.enableauto.leader.rebalance.enablelog.retention.{hour|minutes|ms}offsets.topic.num.partitions 和 offsets.topic.replication.factorlo…

Excel:使用VLOOKUP函数,抓取指定数据,后一个列

Excel:使用VLOOKUP函数&#xff0c;抓取指定数据&#xff0c;后一个列 我们有这样一个数据源 要是实现这个页面的赋值 就是对应关系映射 使用 VLOOKUP(A2,Sheet2!$A$2:$B$9,2,FALSE)第一个参数是需要匹配的单元格。 第二个参数是数据源&#xff0c;我这里数据源用的是shee…

[Flutter]环境判断

方式一&#xff08;推荐&#xff09; 常量kReleaseMode&#xff0c;它会根据你的应用是以什么模式编译的来获取值。bool.fromEnvironment会从Dart编译时的环境变量中获取值。对于dart.vm.product这个特定的环境变量&#xff0c;它是由Dart VM设置的&#xff0c;用来标明当前是…

SnapGene 5 for Mac 分子生物学软件

SnapGene 5 for Mac是一款专为Mac操作系统设计的分子生物学软件&#xff0c;以其强大的功能和用户友好的界面&#xff0c;为科研人员提供了高效、便捷的基因克隆和分子实验设计体验。 软件下载&#xff1a;SnapGene 5 for Mac v5.3.1中文激活版 这款软件支持DNA构建和克隆设计&…

单摄像头、双目摄像头、多视图系统:了解自动驾驶汽车的传感器

1.鱼眼摄像机 其他摄像机的位置 2.激光雷达 3.Radar 4.sonar 声纳 各个传感器的对比 相机类型 一般来说&#xff0c;相机可以分为单目相机、双目相机和多视角相机。 单目相机&#xff1a;最常见的相机类型&#xff0c;只有一个镜头。双目相机&#xff1a;有两个镜头&…