vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系

news/2024/10/4 20:15:47 标签: 架构, VMWare, vSAN, 虚拟化, 实验

目录

传统的共享存储

  • 通过隔离的存储网络使得不同的ESXi主机访问独立的存储设备
  • 需要前期投入较高的资金单独采购存储、网络
  • 可以单独规划巨帧,使得MTU变大,网络利用率变高
  • 需要专门设置存储管理员(如果划分细致)

vSAN_7">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_24">vSAN安装

  1. 配置VMKernel端口,启用vSAN服务
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

IP设置提前规划

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

  1. 新建启用vSAN的集群
    在这里插入图片描述
    在这里插入图片描述

  2. 添加ESXi主机进入集群
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 申明磁盘组(大小)
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 配置完成,退出维护模式
    在这里插入图片描述

  2. 创建集群管理主机vCLS(大于3台ESXi会创建3个vCLS)
    在这里插入图片描述

vSAN集群的容量只会显示容量层而不会显示缓存层
在这里插入图片描述

vSAN_90">vSAN集群

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

vSAN_skyline_health_94">vSAN skyline health

  • 提供vSAN整体健康度检查,包括硬件和配置层面
  • 发生故障时,提供错误分析和解决建议。
    在这里插入图片描述

vSANHA_101">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_131">vSAN对象

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

在这里插入图片描述

vSAN_148">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
      # 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落入磁盘上。

http://www.niftyadmin.cn/n/5690301.html

相关文章

集合框架01:集合的概念、Collection体系、Collection接口

1.集合的概念 集合是对象的容器,定义了多个对象进行操作的常用方法。可实现数组的功能。 集合和数组的区别: 1.数组长度固定,集合长度不固定; 2.数组可以存储基本类型和引用类型,集合只能存储引用类型; …

深入理解Linux内核网络(一):内核接收数据包的过程

在应用层执行read调用后就能很方便地接收到来自网络的另一端发送过来的数据,其实在这一行代码下隐藏着非常多的内核组件细节工作。在本节中,将详细讲解数据包如何从内核到应用层,以intel igb网卡为例。 部分内容来源于 《深入理解Linux网络》…

算法日记-链表翻转

文章目录 场景:解法一:迭代步骤完整代码 解法二:递归步骤完整代码 重温力扣常规算法,记录算法的演变,今天介绍的是链表翻转 场景: 现在有一条单项链表,链表节点存在一个数据和指向下一个节点的…

【Matlab绘图】从Excel导入表格并进行三维绘图

前言 今天手头上拿到一份论文的xlsx数据,要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。 如上数据所示,数据是一个30行25列的数据,数据的内容是论文某项模型模拟的结果,我们希望把横坐标x取…

jdk 相关网址

官方资源: OpenJDK: https://openjdk.org/ OpenJDK 官方网站 (https://openjdk.org/) 是 Java 开发者的重要资源。以下是该网站的主要内容和功能: 项目概览 OpenJDK 的介绍和目标最新版本信息 下载 源代码下载预构建二进制文件链接 文档 开发者指南AP…

【SpringBoot详细教程】-09-Redis详细教程以及SpringBoot整合Redis【持续更新】

🌲 Redis 简介 🌾 什么是Redis Redis 是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库 Redis是互联网技术领域使用最为广泛的存储中间件,它是「Remote DictionaryServic…

【Linux系统编程】权限

目录 1、shell命令以及运行原理 2、Linux权限的概念 3、Linux权限管理 3.1 文件访问者的分类(人) 3.2 文件类型和访问权限(事物属性) 4、目录的权限 5、粘滞位 1、shell命令以及运行原理 首先,我们来了解一条指令是如何跑起来的 一般操作系统是不会让用户直…

关于深度学习torch的环境配置问题

已经下好了torch在虚拟环境中,结果在ipynb文件中无法运行 后来在终端直接用python语句编译 发现没有问题 在编辑测试py文件 发现runcode有问题 原来是插件默认base环境 具体操作参考VS Code插件Code Runner使用python虚拟环境_coderunner怎么在虚拟环境中使用-CSD…