vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系
目录
- 传统的共享存储
- vSAN存储
- OSA的系统要求
- vSAN安装
- vSAN集群
- vSAN skyline health
- vSAN与HA
- 磁盘组
- 混合磁盘架构
- 全闪磁盘架构
- vSAN对象
- vSAN内部架构
传统的共享存储
- 通过
隔离的存储网络使得不同的ESXi主机访问独立的存储设备。 - 需要前期投入较高的资金单独采购存储、网络
- 可以单独规划
巨帧,使得MTU变大,网络利用率变高 - 需要专门设置存储管理员(如果划分细致)
vSAN存储
- 利用
本机的空余磁盘,作成共享存储 - 5.5
必须一个SSD,其他没有要求;6.0开始可以支持全闪(同时支持高级功能如去重、压缩)- 8.0前叫做Original Storage Architecture OSA。
- 8.0 叫做Express Storage Architecture ESA。
- 每台机器可以最多包含5个磁盘组。每个磁盘组都得有一个SSD
- 假如5个磁盘组,每个磁盘组最多7块硬盘可用,至少需要32G内存可用
- 与vSphere集成,可以直接在vCenter上管理与使用
- 必须是一整块的空闲磁盘,而不是部分空闲
OSA的系统要求
- vSAN集群的主机,硬件/磁盘配置/ESXi软件版本 需要一致。
- VMWare HCL 硬件兼容性列表
- 每个磁盘组必须一个SSD作为缓存,其余磁盘作为容量层。缓存不计入可用容量
- 对于混合架构(SSD+HDD),至少1Gb网络;全闪架构,至少10Gb网络
- 建议网络层面单独隔离,开启巨帧
vSAN安装
- 配置VMKernel端口,启用vSAN服务




IP设置提前规划

- vSAN流量配置上联链路冗余Bond



- 虚拟交换机与物理交换机同时配置巨帧
略
-
新建启用vSAN的集群


-
添加ESXi主机进入集群



-
申明磁盘组(大小)




-
配置完成,退出维护模式

-
创建集群管理主机vCLS(大于3台ESXi会创建3个vCLS)

vSAN集群的容量只会显示容量层而不会显示缓存层
vSAN集群
- 可以支持3~64台主机,不需要每台主机都贡献磁盘
- 现网一般最低都是4,保证可用
vSAN skyline health
- 提供vSAN整体健康度检查,包括硬件和配置层面
- 发生故障时,提供错误分析和解决建议。

vSAN与HA
- vSAN必须在启用HA之前配置。
- 未启用vSAN的HA集群用
管理网络传输心跳; - 启用vSAN的HA集群用
vSAN网络传输心跳;
- 未启用vSAN的HA集群用
- 先停止HA,配置好vSAN再启用HA
磁盘组
- OSA要求每个磁盘组至少一块SSD作为缓存层,至多7块SSD/HHD作为容量层;
- 每个ESXi主机最多5个磁盘组;
- 5个8盘磁盘组,内存最少32G;
- 容量层全闪时,支持压缩、去重;
混合磁盘架构
- 缓存层中70%空间用于read,30%用于write;
- write到达缓存层直接返回写确认;
- 缓存层至少是容量层的10%,缓存层大小增加可以提高read命中率

write-through(透写): 所有的写操作直接写往主存,同时也写在缓存cache中,写主存成功后返回写成功。
write-back(回写): 写操作先缓存在cache中,直接返回写成功。稍后才会统一将缓存写到主存中去。
全闪磁盘架构
- 缓存层所有空间用于写缓存
- 写缓存中的数据趋于稳定后,写入容量层。
- 降低写放大(WA)
- 提高磁盘寿命
- 容量层选择容量大的SSD,缓存层选择寿命大的SSD

vSAN对象
- vSAN是一种逻辑的、基于对象的块存储架构
- VMDK,基于文件夹的存储,文件夹内有不同的文件
-对象本身不存放数据,相当于指针,指向组件
- VMDK,基于文件夹的存储,文件夹内有不同的文件
| 对象 | 描述 |
|---|---|
| 虚拟机Home Namespace | 虚拟机对象存放的根容器,例如VMDK、VMX等对象。 |
| 虚拟机交换对象 | 虚拟机开机时被创建,其大小等于配置的内存减去预留。 |
| 虚拟机磁盘对象 | 虚拟机的vmdk对象。 |
| 快照增量对象 | 快照后的差异磁盘对象。 |
| 内存快照对象(.vmem) | 快照后对内存的状态保存对象。 |

vSAN内部架构

假如VM需要请求创建磁盘:
- 在vCenter上下发指令。通过
vpxd进行下发,- vpxd:vCenter的一个daemon
vpxd将该指令下发到ESXi主机的vpxa进程- vpxa: 专门从vCenter获取指令的进程
vpxa将指令传输给hostd进程- hostd:ESXi的核心进程
hostd接收到创建磁盘的指令,会调用一些需要的进程如OSFSd/DISKLIB- OSFSd: Object Storage File System Daemon
- DISKLIB: 访问磁盘需要的Library库
OSFSd/DISKLIB将指令传输到CLOM中- CLOM: Cluster Level Object Manager,根据策略来定义写的磁盘文件最终怎么存储
CLOM通过询问CMMDS进程 获取信息,判断对象组件写哪- CMMDS:Cluster Monitoring MemberShip and Directory Service,拥有集群中所有与vSAN相关信息的集合数据库,如对象存放、调用空间等。
- 为了保证不同ESXi的CMMDS数据库内容一致,vSAN集群会选举出唯一的Master,其他则作为一台backup和多台Agent。只有Master可以读写,其他只能读;Backup作为Master Down后的接管角色
CMMDS的同步依赖于RDT- RDT: Reliable Datagram Transport
# ESXi CLI # 两条效果一样的 ~] esxicli vsan cluster list ~] esxicli vsan cluster get ... Local Node State: Agent/Master/Backup ...
- RDT: Reliable Datagram Transport
CLOM将具体操作的指令发送给DOM- DOM:分布式对象管理
- DOM Client:接受CLOM发来的读写IO的要求,转发IO请求给Owner
- DOM Owner:真实对对象拥有读写访问权写的角色。vSAN中创建每一个对象,都会选择一个DOM作为它的Owner。对对象的操作只能通过DOM Owner进行传递。
- 如果对象就在本机,Owner会把这个IO读写请求转发给DOM Component Manager。
- 如果DOM Owner和组件所在物理位置不一致,通过
RDT转发给对应的DOM Component Manager。
- DOM Component Manager:负责管理组件所在主机上的一个对象。组件物理存放在那个ESXi。
- DOM:分布式对象管理
DOM Component Manager会将指令传输给LSOM- LSOM: Log Structured Object Manager 负责日志对象分区的读写操作。负责最终的IO请求写入的一个角色,也负责读写的缓存管理。
LSOM调用PSA,将IO请求转换成磁盘能接受的指令- PSA: Pluggable Storage Architecture 可插拔存储架构。vSAN控制物理磁盘组最后的角色。PSA将IO落入磁盘上。
相关文章:
vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系
目录 传统的共享存储vSAN存储OSA的系统要求vSAN安装vSAN集群vSAN skyline healthvSAN与HA磁盘组混合磁盘架构全闪磁盘架构 vSAN对象vSAN内部架构 传统的共享存储 通过隔离的存储网络使得不同的ESXi主机访问独立的存储设备。需要前期投入较高的资金单独采购存储、网络可以单独规…...
Apache NiFi最全面试题及参考答案
目录 解释什么是Apache NiFi以及它的主要用途。 NiFi 的数据处理流程是怎样的? NiFi 的架构包括哪些组件? 解释 NiFi 的 “FlowFile” 概念及其组成部分。 NiFi 的 “Processor” 是什么?有哪些类型? 如何在 NiFi 中创建一个新的数据流? NiFi 的 “Connection” 有…...
基于Docker部署最新版本SkyWalking【10.1.0版本】
文章目录 前言前置条件一、创建Docker 网络二、部署 SkyWalking OAP 服务器三 部署 SkyWalking UI四 查看日志4.1. 查看 SkyWalking OAP 日志4.2. 查看 SkyWalking UI 日志 五 停止并删除容器结论 前言 由于本地的 JDK 版本与 SkyWalking 对应的 JDK 版本不一致,为…...
如何在 Ubuntu 18.04 上使用 LEMP 安装 WordPress
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 WordPress 是互联网上最流行的 CMS(内容管理系统)。它允许您在 MySQL 后端和 PHP 处理的基础上轻松设置灵…...
shadcn-vue 快速入门(2)
components.json 关于项目配置 components.json 文件保存了项目的配置信息。 我们使用该文件了解项目的基本设定,并生成定制化的组件以适应项目需求。 注意:components.json 文件是可选的,仅在使用 CLI 向项目添加组件时才需要。如果使用复…...
Oracle数据恢复—异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxf…...
数据结构-4.1.特殊矩阵的压缩存储
一.一维数组的存储结构: 1.知道一维数组的起始地址,就可以求出任意下标对应的元素所在的地址; 2.注:如果数组下标从1开始,上述公式的i就要改为i-1; 3.数组里的元素类型相同,因此所占空间也相同…...
Hive数仓操作(十四)
一、Hive的DDL语句 在 Hive 中,DDL(数据定义语言)语句用于数据库和表的创建、修改、删除等操作。以下是一些重要的 DDL 语句: 1. 创建数据库和表 创建数据库 CREATE DATABASE IF NOT EXISTS database_name;创建表 CREATE TABLE …...
SpringBoot技术:实现古典舞在线交流平台的秘诀
摘 要 随着互联网技术的发展,各类网站应运而生,网站具有新颖、展现全面的特点。因此,为了满足用户古典舞在线交流的需求,特开发了本古典舞在线交流平台。 本古典舞在线交流平台应用Java技术,MYSQL数据库存储数据&#…...
自动驾驶系列—全面解析自动驾驶线控制动技术:智能驾驶的关键执行器
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...
YOLO11改进|卷积篇|引入可变核卷积AKConv
目录 一、AKConv卷积1.1AKConv卷积介绍1.2AKConv核心代码 五、添加MLCA注意力机制5.1STEP15.2STEP25.3STEP35.4STEP4 六、yaml文件与运行6.1yaml文件6.2运行成功截图 一、AKConv卷积 1.1AKConv卷积介绍 AKConv允许卷积参数的数量以线性方式增加或减少,而不是传统的…...
推荐 uniapp 相对好用的海报生成插件
插件地址:自定义canvas样式海报 - DCloud 插件市场 兼容性也是不错的:...
MySQL表操作(进阶)
一、数据库约束 1、约束类型 NOT NULL - 指示某列不能存储 NULL 值 UNIQUE - 保证某列的每行必须有唯一的值 DEFAULT - 规定没有给列赋值时的默认值 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识ÿ…...
【设计模式】软件设计原则——接口隔离迪米特
接口隔离原则引出 接口隔离原则 定义:用多个专门的接口,不使用单一的总接口,客户端不应该依赖它不需要的接口; 一个类对另一个类的依赖,应该建立在最小接口上;如果有一个大接口,里面有很多方法,如果使用一个类实现该接口,所有的类都要实现,导致代码冗余;…...
【C++】——list的介绍和模拟实现
P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan. …...
B树系列解析
我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》࿱…...
docker 部署 WEB IDE
简介 问题描述:GitCode 的 Web IDE 不满足个人使用需求 如何解决:在本机或云服务器部署 Web IDE 如何解决 拉取容器镜像 docker pull coder/code-server 运行 docker run -d --name vscode -p 8080:8080 -p 8443:8443 -e PASSWORD"123456&quo…...
【Android】数据存储
本章介绍Android五种主要存储方式的用法,包括共享参数SharedPreferences、数据库SQLite、SD卡文件、App的全局内存,另外介绍重要组件之一的应用Application的基本概念与常见用法,以及四大组件之一的内容提供器ContentProvider的基本概念与常见…...
个人网络安全的几个重点与防御
1 浏览器 firefox 这是第一选择 如果你真的不明白可以找找各个浏览器漏洞 mail 的危险的 来自与代理和漏洞 浏览器溢出漏洞 实时注意更新就可以 2 防火墙 大家都用windows 只需在 gpedit.msc 设置 但有什么未知漏洞就不得而知了 因为美国的计划问题 网络端口溢出漏洞 但…...
python爬虫 - 初识爬虫
🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、爬虫的关键概念 (一)HTTP请求与响应 ࿰…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

