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

简介: 本节书摘来自华章出版社《虚拟数据中心构建指南》一 书中的第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

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
24天前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
40 3
|
1月前
|
缓存 安全 测试技术
构建高效的RESTful API:后端开发的实践指南
【2月更文挑战第17天】在数字化转型的浪潮中,RESTful API已成为连接不同软件组件、实现数据交互的核心桥梁。本文将深入探讨如何构建一个高效、可扩展且安全的RESTful API,涉及设计原则、开发流程以及性能优化等关键方面。我们将透过实际案例,展示如何在保证简洁性和灵活性的同时,满足日益增长的业务需求和技术挑战。
|
2月前
|
IDE Java API
使用Java Web技术构建RESTful API的实践指南
使用Java Web技术构建RESTful API的实践指南
|
2月前
|
Web App开发 JavaScript NoSQL
深入浅出:构建基于Node.js的RESTful API
在当今快速发展的互联网时代,RESTful API已成为前后端分离架构中不可或缺的一部分。本文旨在为初学者和中级开发人员提供一个清晰、简洁的指南,详细介绍如何使用Node.js构建一个高效、可维护的RESTful API。通过结合实际案例,本文将从API设计理念出发,深入讲解如何利用Express框架及MongoDB数据库实现API的增删改查功能,同时探讨如何通过JWT进行安全认证,确保数据传输的安全性。此外,文章还将简要介绍如何使用Swagger生成API文档,使得API的测试和维护更加便捷。无论你是希望提升现有项目的API设计,还是想从零开始构建一个新项目,本文都将为你提供一条清晰的道路
|
2月前
|
安全 前端开发 API
深入理解与实践GraphQL:构建高效、灵活的API
在本文中,我们将探索GraphQL这一强大的API查询语言及其运行原理。不同于传统的RESTful API设计,GraphQL提供了一种更加高效、灵活的方式来交互数据。通过实例和比较,本文旨在揭示GraphQL如何使前端和后端开发更加紧密协作,同时减少数据传输的冗余。我们将从GraphQL的基本概念入手,深入到查询(Queries)、变更(Mutations)和订阅(Subscriptions)的实现,最后探讨如何在实际项目中部署和优化GraphQL服务。此外,本文还将简要介绍如何利用现有的GraphQL工具和库来加速开发过程。
|
3天前
|
监控 JavaScript 安全
构建微服务架构下的API网关
【4月更文挑战第15天】在微服务架构中,API网关扮演着至关重要的角色。它作为系统的唯一入口,不仅负责请求的路由、负载均衡和认证授权,还涉及到监控、日志记录和服务熔断等关键功能。本文将探讨如何构建一个高效且可靠的API网关,涵盖其设计原则、核心组件以及实现策略,旨在为后端开发人员提供一套实用的指导方案。
14 4
|
15天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
27天前
|
缓存 负载均衡 监控
构建高效微服务架构:API网关的作用与实践
【2月更文挑战第31天】 在当今的软件开发领域,微服务架构已成为实现系统高度模块化和易于扩展的首选方法。然而,随着微服务数量的增加,确保通信效率和管理一致性变得尤为重要。本文将探讨API网关在微服务架构中的核心角色,包括其在请求路由、安全性、负载均衡以及聚合功能方面的重要性。我们将通过具体案例分析,展示如何利用API网关优化后端服务,并讨论实施过程中的最佳实践和常见挑战。
|
28天前
|
缓存 前端开发 API
构建高效可扩展的RESTful API:后端开发的最佳实践
【2月更文挑战第30天】 在现代Web应用和服务端架构中,RESTful API已成为连接前端与后端、实现服务间通信的重要接口。本文将探讨构建一个高效且可扩展的RESTful API的关键步骤和最佳实践,包括设计原则、性能优化、安全性考虑以及错误处理机制。通过这些实践,开发者可以确保API的健壮性、易用性和未来的可维护性。
|
1月前
|
数据采集 供应链 前端开发
电商企业如何构建一站式数字化供应链体系|API接口实现淘宝/京东/1688多平台商品采集+上传一站式供应链系统搭建
网络时代,企业面临转型。如今进入数字化时代,企业再次面临重大变革,全面实现数字化、智能化已是当务之急。公司将继续良性发展,请记住16个字:精简流程、降低成本、提高效率、智慧管理。主流电商平台API商品数据采集接口,不但可以在商品采集上为供应链提供大量商品,同时我们也可以通过申请官方商品上传商品发布API接口,实现商品的多平台发布。