为一个虚拟环境配置存储资源需要经过几个抽象层
,
用户需要将此视作一个堆栈以便按照完整的路径成功完成配置。用户首先会在存储阵列中看到多个关于存储资源配置方式的选项;接着会在
ESX Server
级别看到若干关于存储资源编址和配置方式的选项;然后在虚拟机级别又会看到多个决定虚拟磁盘分区和编址方式的选项。由于存储堆栈中这三层的每一层都存在多个配置选项,而且相互之间的区别并不明显,因此用户很容易搞不清楚实际存在怎样的虚拟到物理映射关系。本文的目的就是详细说明这些选项和相关术语,从而帮助用户理解这些选项之间的复杂关系。
由于
ESX Server
能够对存储资源进行编址并为虚拟机提供虚拟磁盘,因此在引入存储虚拟设备之前就已经有几个混合的虚拟层了。即使没有实际的存储虚拟设备,这些存储虚拟层也有助于减轻管理工作、提高资源利用率(即,减少已分配但未使用的存储资源),以及提供更加灵活的配置选项。
VMware
的虚拟机文件系统(
Virtual Machine File System
,
VMFS
)所带来的好处可以在虚拟环境中发挥很大的作用。
![](../attachment/200712/200712291198926742930.jpg)
图
1
是一个简单示意图,显示了
Virtual Infrastructure 3
环境中虚拟机的存储技术堆栈的三个层。最下面的是存储阵列层,由多个物理磁盘(显示为逻辑磁盘)组成。存储阵列层的上面是操作系统层,在虚拟环境中被
ESX Server
所占据。这一层采用逻辑单元号(
logical unit number
,
LUN
)的方式对
VMFS
卷中的存储资源进行编址。堆栈的顶端由虚拟机层占据,这一层通过将
ESX Server
识别到的存储资源的一部分分配给虚拟机的虚拟磁盘来对存储资源进行编址。
在存储阵列中,有多个用于配置存储资源的选项。通常,存储管理小组需要确定所需的
LUN
大小和保护级别。某些情况下,他们还会询问用户所需的性能级别。
RAID-1
和
RAID-5
是通常所提供的保护选项。还有一个选项是连接多个磁盘组成单个
LUN
,也就是说该
LUN
将会占据多个磁盘并在这些磁盘上进行分散读写。大多数情况下,主机
OS
(在本文中为
ESX Server
)并不知晓为
LUN
所提供的
RAID
保护级别。主机
OS
也不知道逻辑
LUN
与其物理组件之间存在何种关系。
![](../attachment/200712/200712291198926765849.jpg)
图
2
-
在
ESX Server
级别的
LUN
配置
图
2
显示了最常见的几种
LUN
配置:
A.
整个物理磁
盘
B.
连接在一起的多个磁盘
C.
一个大容量物理磁盘的一部分
D.
占据多个磁盘所有空间的分散读写集
E.
占据多个磁盘部分空间的分散读写集
请注意
LUN
配置会影响
I/O
性能特征。保护级别也会影响性能。例如,如果正在以同步模式将
LUN
复制到远程站点,则由于延迟,整体性能可能会显著降低。光在真空中的传播速度限制会导致每传播
198 千米(123 英里)便有 1
毫秒的延迟。如果复制采用的是同步模式,则每隔
198 千米(123 英里)会有 2
毫秒的延迟,因为主站点必须在收到辅助站点的远程写入确认后才认为写入操作完成。
在
ESX Server
系统中存储空间显示为带有
LUN
的卷,就网络连接存储而言,即
NFS
卷。
ESX Server
会在发现一个
LUN
后将其当成一个存储目标来对待。此后,
ESX Server
会将该
LUN
当作一个裸磁盘映射(
raw disk map
,
RDM
)的裸磁盘来进行编址,或者当作一个
VMFS
卷或一个多区域
VMFS
卷中的一个区域来进行管理。
作为一个
RDM
时,整个
LUN
通常由单个虚拟机(
Virtual Machine
,
VM
)进行编址,不能被分区或被当作多个虚拟机的分段来编址。要获得小于
LUN
容量的
RDM
,方法之一是只对
LUN
的部分空间进行编址以便用于指定的
VM
,但这样做会损失或浪费掉
LUN
的剩余空间。如果使用这种方法,当您有一个
100 GB
的可用
LUN
,而
VM
仅需要一个
50 GB
的
RDM
时,该
LUN
的一半空间就会被浪费。为单个
VM
分配一个单独的
LUN
(可通过为单个
VM
分配一个
RDM
或一个
VMFS
卷实现)就是我们所说的“隔离存储”。
作为
VMFS
卷的一部分时,
LUN
会成为一种可以用作多个
VM
或多个
ESX Server
的合并
/
群集存储池的存储资源。这种配置(“合并存储”)是可集中管理且可按需增加容量的大容量存储池的一部分,因而可以提高存储资源的利用率和灵活性。图
3
显示了相对于隔离存储,合并
/
共享存储池的几点优势。
![](../attachment/200712/200712291198926787736.jpg)
图
3
:
比较隔离存储和共享存储池
ESX Server
虚拟机将其虚拟磁盘文件存储在经过特殊格式化的逻辑容器(即数据存储区)中,数据存储区可以存在于不同类型的物理存储设备中。可以使用
Virtual Infrastructure
(
VI
)
Client
来创建数据存储区,数据存储区可以使用一个或多个物理设备上的磁盘空间。在
ESX 3.x Server
中,数据存储区可以是
FC
磁盘、
iSCSI
磁盘、
NFS
或
ESX Server
的本地磁盘。
图
4
显示了为
ESX Server
配置存储资源时可以进行的所有选择。如果使用本地存储,用户将无法利用启用
VMware Distributed Resource Schedule
(
DRS
)和
High Availability
(
HA
)所需的
VMotion
功能。然而,如果使用共享存储,用户可以从
VMFS
、
RDM
或网络连接存储(
Network-Attached Storage
,
NAS
)几个选项中进行选择。实际上,单个
ESX Server
经过配置可以同时访问位于这三种不同选项上的数据存储区。此外,如果使用的是
VMFS
,用户还可以从
FC SAN
存储或
iSCSI SAN
存储中进行选择。
![](../attachment/200712/200712291198926801359.jpg)
图
4-
ESX Server
上提供的存储选项
通过创建虚拟磁盘(
VMDK
),用户可以将
ESX Server
识别到的存储资源的一部分分配给虚拟机,从而在虚拟机中实现存储资源的编址。用户可以通过编辑虚拟机设置(属性)分配一个新的磁盘或为现有磁盘分配更多空间。如果
RDM
是首选的访问方法,用户还可以选择指向一个现有的
RDM
。使用现有的
VMFS
卷创建一个虚拟磁盘时,用户需要选择为该
VDMK
分配哪个数据存储区中的空间。对于要在群集中两个或两个以上
ESX Server
之间移动(例如通过
Vmotion
和
HA
功能移动)的虚拟机,群集中的所有节点必须都能识别到该数据存储区。
为了在虚拟环境中使用磁盘而对其进行识别和格式化的具体步骤因操作系统而异。另外,在客户操作系统级别,也有多种不同的方法可将已在底层进行了扩容的磁盘识别为大容量磁盘。这种配置超出了本文的讨论范围,在此不做介绍。
在虚拟环境中配置存储需要综合考虑很多相互依赖的因素:有些是物理元素,有些是抽象元素。将不同的存储虚拟级别看成一个由多个互不相同的层组成、层与层之间线性关联(这种关联关系对于每个层来说未必可见)的堆栈,可以使设置过程变得简单明了。按照从存储阵列到
ESX Server
再到虚拟机的步骤执行操作,用户可以正确无误地完成虚拟存储配置。