vSAN01: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安装

  1. 配置VMKernel端口,启用vSAN服务


IP设置提前规划

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



  1. 虚拟交换机与物理交换机同时配置巨帧

  1. 新建启用vSAN的集群

  2. 添加ESXi主机进入集群


  3. 申明磁盘组(大小)

  1. 配置完成,退出维护模式

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

vSAN集群的容量只会显示容量层而不会显示缓存层

vSAN集群

  • 可以支持3~64台主机,不需要每台主机都贡献磁盘
    • 现网一般最低都是4,保证可用

vSAN skyline health

  • 提供vSAN整体健康度检查,包括硬件和配置层面
  • 发生故障时,提供错误分析和解决建议。

vSAN与HA

  • vSAN必须在启用HA之前配置。
    • 未启用vSAN的HA集群用管理网络传输心跳;
    • 启用vSAN的HA集群用vSAN网络传输心跳;
  • 先停止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,基于文件夹的存储,文件夹内有不同的文件
      -对象本身不存放数据,相当于指针,指向组件
对象 描述
虚拟机Home Namespace 虚拟机对象存放的根容器,例如VMDK、VMX等对象。
虚拟机交换对象 虚拟机开机时被创建,其大小等于配置的内存减去预留。
虚拟机磁盘对象 虚拟机的vmdk对象。
快照增量对象 快照后的差异磁盘对象。
内存快照对象(.vmem) 快照后对内存的状态保存对象。

vSAN内部架构

假如VM需要请求创建磁盘:

  1. 在vCenter上下发指令。通过vpxd进行下发,

    • vpxd:vCenter的一个daemon
  2. vpxd将该指令下发到ESXi主机的vpxa进程

    • vpxa: 专门从vCenter获取指令的进程
  3. vpxa将指令传输给hostd进程

    • hostd:ESXi的核心进程
  4. hostd接收到创建磁盘的指令,会调用一些需要的进程如OSFSd/DISKLIB

    • OSFSd: Object Storage File System Daemon
    • DISKLIB: 访问磁盘需要的Library库
  5. OSFSd/DISKLIB将指令传输到CLOM

    • CLOM: Cluster Level Object Manager,根据策略来定义写的磁盘文件最终怎么存储
  6. CLOM通过询问CMMDS进程 获取信息,判断对象组件写哪

    • CMMDS:Cluster Monitoring MemberShip and Directory Service,拥有集群中所有与vSAN相关信息的集合数据库,如对象存放、调用空间等。
    • 为了保证不同ESXi的CMMDS数据库内容一致,vSAN集群会选举出唯一的Master,其他则作为一台backup和多台Agent。只有Master可以读写,其他只能读;Backup作为Master Down后的接管角色
  7. CMMDS 的同步依赖于RDT

    • RDT: Reliable Datagram Transport

      shell 复制代码
      # ESXi CLI 
      # 两条效果一样的
      ~] esxicli vsan cluster list
      ~] esxicli vsan cluster get
      ...
      Local Node State: Agent/Master/Backup
      ...
  8. 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。
  9. DOM Component Manager会将指令传输给LSOM

    • LSOM: Log Structured Object Manager 负责日志对象分区的读写操作。负责最终的IO请求写入的一个角色,也负责读写的缓存管理。
  10. LSOM调用PSA,将IO请求转换成磁盘能接受的指令

    • PSA: Pluggable Storage Architecture 可插拔存储架构。vSAN控制物理磁盘组最后的角色。PSA将IO落入磁盘上。
相关推荐
AI人H哥会Java7 小时前
【Spring】Spring的模块架构与生态圈—Spring MVC与Spring WebFlux
java·开发语言·后端·spring·架构
小屁不止是运维7 小时前
麒麟操作系统服务架构保姆级教程(二)ssh远程连接
linux·运维·服务器·学习·架构·ssh
不会写代码的女程序猿7 小时前
关于ETL的两种架构(ETL架构和ELT架构)
数据仓库·架构·etl
Leoysq13 小时前
深度学习领域的主要神经网络架构综述
深度学习·神经网络·架构
ahhhhaaaa-20 小时前
【AI图像生成网站&Golang】项目架构
开发语言·架构·golang
你有抖音吗1 天前
请说下你对 MYSQL 架构的了解?
mysql·架构
橘子在努力1 天前
【橘子微服务】spring cloud function的编程模型
spring cloud·微服务·架构
一休哥助手1 天前
分布式超低耦合,事件驱动架构(EDA)深度解析
分布式·架构
颯沓如流星1 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构