《虚拟数据中心构建指南》——3.11 VMware 存储API

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 本节书摘来自华章出版社《虚拟数据中心构建指南》一 书中的第3章,第3.11节,作者:(法)麦里(Maillé, V.),(法)门内尔(Menecier, R. F.)著;姚军等译.更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.11 VMware 存储API

VMware提供的API允许管理员和发布者扩展vSphere 5功能。

3.11.1 vStorage API for Array Intergration

vStorage API for Array Intergration(VAAI)是一组应用编程接口,提供VMware和存储阵列制造商之间的互操作性,以更智能的方式与VMware通信。有些任务负载可以转移到存储阵列,减轻ESXi主机的负载。

注意:处理器制造商已经在芯片中集成了Intel VT和AMDV指令,减少高消耗的CPU侦听。处理器制造商对服务器所做的正是VAAI对存储阵列所做的。这些API现在对于获得高级别的整合似乎是必不可少的。

表3-4列出了vSphere 4.1中的VAAI和vSphere 5中的VAAI2。

image

下面是表3-4中列出的各种特性的简单说明。

硬件加速锁:没有这个API,SCSI保留就会在全局LUN级别上完成。有了这个API,SCSI保留工作在块级别而不是LUN级别上完成,这样与SCSI保留相关的问题较少,而且减少了VM启动的时间,在虚拟桌面基础架构(VDI)项目中更是如此。

硬件加速置零:没有这个API,创建数据存储时,“置零”由服务器完成,服务器向存储阵列发送SCSI命令。有了这个API,ESX服务器初始化一个命令,存储阵列负责重复这个操作并在结束时通知ESX服务器。这减少了ESXi服务器和存储阵列之间的流量。

硬件加速复制:没有这个API,复制操作从ESX服务器向存储阵列进行。有了这个API,数据由存储阵列的阵列中移动,没有通过服务器。这减少了ESXi服务器的负载和数据迁移所需的时间。

在vSphere 5中,为VAAI 2定义了一些新的概念:
死空间回收(Dead Space Reclaim):当虚拟磁盘被删除,或者精简配置LUN上使用Storage vMotion将一个虚拟磁盘从数据存储中迁移到另一个数据存储之后,可以恢复不再使用的空间。ESXi 5.0通过VAAI命令将释放数据块的有关信息发送给存储系统,然后存储系统恢复这些数据块。

精简配置空间用尽(Thin Provisoning Out of Space)API:预防精简配置LUN上的存储空间问题。

精简配置LUN报告:在vCenter中可以识别使用的存储阵列。

超过限额:当数据存储中超过容量阈值时,在vCenter中显示警告。

空间用尽行为:VM在写入之前确定空间是否足够。如果存储空间已满,在vCenter中显示警告信息,然后VM暂停(其他VM继续运行)。

NAS VAAI存储定义了如下概念。

全文件复制:NAS可以冷方式进行vmdk文件的复制和快照操作,类似于VMFS块复制(全复制)。
扩展统计:可以看到NFS数据存储上已经消耗的空间。
空间保留:允许为NAS存储创建厚配置模式vmdk文件。

3.11.2 vSphere 存储API:存储感知

vStorage API for Storage Awareness(VASA)是一个存储检测API,可直接从vCenter进行存储阵列相关信息的虚拟化,这些信息包括复制、RAID类型、压缩、重复数据消除、精简或者厚格式、磁盘类型、快照状态和性能(IOPS/MBps)。此外,vStorage API可用于配置驱动存储。

3.12 多路径

多路径(multipathing)可以定义为使用冗余组件(如适配器和交换机)以创建服务器和存储设备之间逻辑路径的一种解决方案。

3.12.1 可插入存储架构

可插入存储架构(Pluggable Storage Architecture,PSA)是一组API,允许存储制造商在VMkernel层中直接插入代码,从而开发第三方软件(如EMC PowerPath VE),提供与存储阵列技术直接相关的更高级负载均衡功能。但是VMware也提供标准的基本多路径机制,即原生多路径(Native MultiPathing,NMP),这些功能分布在以下API中:存储阵列类型插件(Storage Array Type Plug-in,SATP)负责与存储阵列通信;路径选择插件(Path Selection Plug-in,PSP)提供路径之间的负载均衡。

如图3-22所示,VMware提供三种PSP。

最近使用(Most Recently Used,MRU):选择ESXi启动时发现的第一个路径。如果这一路径不可访问,ESXi选择替代路径。

固定:使用设计为首选路径的专用路径。如果没有配置,则使用启动时发现的路径。这一路径无法再使用时,随机选择可用路径。当该路径再次可用时,ESXi又会使用固定首选路径。

循环(Round Robin,RR):自动选择所有可用路径,以循环的方式将I/O发送到每条路径,这能实现基本的负载均衡。PSA协调NMP操作,第三方软件协调多路径插件(MPP)软件。


image

NMP循环路径选择策略有一个I/O操作限制参数,控制每条路径切换到下条路径之前发送的I/O操作数量。默认值为1000,因此,NIP默认在向给定路径发送1000次I/O之后转向另一条路径。调整循环路径选择I/O操作限制,能够显著地改进某种工作负载下的性能(例如联机事务处理[online transaction processing,OLTP])。在随机和OLTP工作负载环境中,将循环路径选择参数设置为较低的数字可以得到最好的吞吐率,但是对于顺序工作负载,降低该值不会得到同样显著的改进。因此,有些硬件存储公司建议将NMP循环路径选择I/O操作限制参数设置为较低的值(可以设置为1)。

第三方软件解决方案使用更高级的算法,因为循环选择算法有一个局限性,在进行自动分配的时候没有考虑路径级别上的实际活动。有些软件建立动态负载均衡,设计为在任何时候都使用所有路径,而不是像循环路径算法那样,在同一时间仅用一条路径来负担所有I/O负载。

3.12.2 模式
访问共享存储空间的数据是虚拟环境的基础。VMware强烈建议实施多种LUN访问路径。最小值是两条路径,但是VMware建立使用四条路径。多路径提供冗余的LUN访问路径,从而减少了服务中断。路径不可用时,会使用另一条路径,这不会造成服务中断。这些切换机制被称作多路径I/O(MultiPath I/O,MPIO)。

在VMware中,如图3-23所示,存储可以采用不同的模式。

主动/主动:在给定时刻,一个LUN同时连接到多个存储控制器。I/O可以同时来自多个控制器。
主动/被动:在给定时刻,一个控制器拥有一个LUN(从属LUN)。只要LUN链接到该控制器,其他控制器就不能向它发送I/O。
ALUA:对LUN的访问不是直接的(无优化的),而是通过辅助控制器以不对称方式发生。


image

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
48 4
|
4天前
|
监控 安全 API
深入浅出:构建高效RESTful API的最佳实践
在数字化时代,API已成为连接不同软件和服务的桥梁。本文将带你深入了解如何设计和维护一个高效、可扩展且安全的RESTful API。我们将从基础概念出发,逐步深入到高级技巧,让你能够掌握创建优质API的关键要素。无论你是初学者还是有经验的开发者,这篇文章都将为你提供实用的指导和启示。让我们一起探索API设计的奥秘,打造出色的后端服务吧!
|
16天前
|
SQL 缓存 测试技术
构建高性能RESTful API:最佳实践与避坑指南###
—— 本文深入探讨了构建高性能RESTful API的关键技术要点,从设计原则、状态码使用、版本控制到安全性考虑,旨在为开发者提供一套全面的最佳实践框架。通过避免常见的设计陷阱,本文将指导你如何优化API性能,提升用户体验,确保系统的稳定性和可扩展性。 ###
54 12
|
9天前
|
缓存 API 开发者
构建高效后端服务:RESTful API设计原则与实践
【10月更文挑战第43天】在数字化时代的浪潮中,后端服务的稳定性和效率成为企业竞争力的关键。本文将深入探讨如何构建高效的后端服务,重点介绍RESTful API的设计原则和实践技巧,帮助开发者提升服务的可用性、可扩展性和安全性。通过实际代码示例,我们将展示如何将这些原则应用到日常开发工作中,以确保后端服务能够支撑起现代Web和移动应用的需求。
|
16天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
10天前
|
JSON API 开发者
构建高效API:后端开发中的RESTful最佳实践####
在数字化时代,API作为不同系统间通信的桥梁,其重要性日益凸显。本文将深入探讨RESTful API的设计原则与最佳实践,通过实际案例分析,揭示如何构建高效、可维护且易于使用的API接口,助力后端开发者提升项目质量与用户体验。 ####
|
12天前
|
缓存 JavaScript API
探索后端开发:构建高效API的艺术
【10月更文挑战第40天】本文深入探讨了后端开发的核心—构建高效且可维护的API。通过分析设计原则、技术选型、性能优化以及安全性考量,文章旨在为读者提供一套完整的方法论,以实现高质量API的开发。从理论到实践,我们不仅讨论了RESTful架构和GraphQL等技术的优劣,还涵盖了缓存策略、数据库优化等性能提升技巧。同时,安全性章节将引导读者如何保护API免受常见攻击。最后,通过一个实际的代码示例,展示了如何将这些概念应用于创建一个简洁而强大的API。
|
13天前
|
JSON JavaScript API
深入浅出Node.js:从零开始构建RESTful API
【10月更文挑战第39天】 在数字化时代的浪潮中,API(应用程序编程接口)已成为连接不同软件应用的桥梁。本文将带领读者从零基础出发,逐步深入Node.js的世界,最终实现一个功能完备的RESTful API。通过实践,我们将探索如何利用Node.js的异步特性和强大的生态系统来构建高效、可扩展的服务。准备好迎接代码和概念的碰撞,一起解锁后端开发的新篇章。
|
15天前
|
存储 前端开发 搜索推荐
淘宝 1688 API 接口助力构建高效淘宝代购集运系统
在全球化商业背景下,淘宝代购集运业务蓬勃发展,满足了海外消费者对中国商品的需求。掌握淘宝1688 API接口是构建成功代购系统的關鍵。本文详细介绍如何利用API接口进行系统架构设计、商品数据同步、订单处理与物流集成,以及用户管理和客户服务,帮助你打造一个高效便捷的代购集运系统,实现商业价值与用户满意度的双赢。
|
18天前
|
JSON 缓存 API
构建高效RESTful API的最佳实践
【10月更文挑战第34天】在数字时代的浪潮中,后端开发扮演着至关重要的角色。本文将带你深入探索如何构建高效的RESTful API,从设计原则到实际编码技巧,再到性能优化和错误处理,我们将一一解锁这些技能。你将学会如何打造一个既优雅又强大的后端服务,让你的应用程序在激烈的市场竞争中脱颖而出。那么,让我们一起踏上这段精彩的旅程吧!
28 2
下一篇
无影云桌面