在一个存储区域网络(SAN)上,有两种方法为虚拟机配置存储。一种方法是使用
VMFS,这是
VMwareInfrastructure(VI)提供的专有高性能集群文件系统。对大多数企业应用来说,在
VMFS上使用虚拟磁盘(VMDK文件)是首要选择,在VI里支持全部可用的功能,包括虚拟机快照、VMotion、Storage VMotion和
VMwareConsolidated Backup(VCB)。另一种配置存储的方法是Raw Device Mapping(原始设备映射,即
RDM)。在对下面的存储进行虚拟化访问时,会干涉运行在虚拟机里的软件操作,这时候就需要使用
RDM。这样的一个例子是SAN管理软件,它一般需要直接访问下面的硬件;因此需要使用RDM而不是虚拟磁盘。在本文中,TechTarget中国的特约作者Scott Lowe将讨论什么是RDM,并将说明在什么时候使用。
1. 定义原始设备映射
RDM是VMFS卷上的一个文件,对原始物理设备来说,它就像一个代理或媒介。我们可以把RDM看作是一个到原始LUN的象征性链。RDM包含所访问原始物理设备的元数据和其他一些信息,取决于RDM的配置,能添加使用原始LUN像VMotion支持和虚拟机快照这样的功能。为什么使用RDM而不是虚拟磁盘文件?VMware将VMFS作为企业应用的优先选项,包括文件服务器、web服务器、EPR和CRM。在ESX Server和VMFS的之前版本里,RDM通常用于最小化VMFS开支,以便提高磁盘性能。不过,基于VMware使用VMFS-3所作的比较,在大多数情况下,VMFS-3和RDM之间的磁盘性能是差不多的。如果在多数情况下,使用VMFS和RDM所获得的性能差不多的话,那么还有其他什么原因使用RDM而不是VMFS呢?通常,这个答案在于应用要求。SAN管理软件已经作为一种需要RDM而不是虚拟磁盘的应用,这归功于SAN管理软件和存储阵列之间的直接通信。下面这些例子都表明哪里需要RDM而不是虚拟磁盘:在MSCS集群里需要RDM提供法定人数和数据盘。这包括跨ESX主机的V2V集群和P2V集群。注意,虚拟磁盘在单个物理主机上能用作“cluster-in-a-box”配置。运行在虚拟机里的SAN知道的应用的解决方案里需要RDM。这种情况有许多例子,比如NetApp的SnapManager系列应用。这些应用需要与存储阵列直接通信,因此不能使用虚拟磁盘。在使用NPIV(N_Port ID Virtualization)的解决方案里必须使用RDM。NPIV使用WWPN允许单个光纤通道HBA端口利用光纤通道结构进行注册。ESX 3.5新添NPIV支持,允许ESX在虚拟机面前表现得像个“虚拟HBA”。NPIV只能与RDM一起使用。
2. RDM的局限
有两种类型的RDM:虚拟兼容模式RDM和物理兼容模式RDM。尤其是物理兼容模式RDM有一些相当重要的局限:
- 不能使用VMware快照
- 不支持VCB,因为VCB需要VMware快照
- 使用物理模式RDM不能克隆虚拟机
- 在模板里使用物理模式RDM不能转换虚拟机
- 如果迁移包括复制磁盘,使用物理模式RDM不能迁移虚拟机
- 物理模式RDM不能使用VMotion功能
虚拟模式RDM能解决这样一些问题,允许将原始LUN看作虚拟磁盘,并能使用像VMotion、快照和克隆这样的功能。如果需要使用RDM,大多数情况下,虚拟模式RDM比较受欢迎。例如,虚拟模式RDM能用于跨物理主机的V2V集群。不过注意,跨物理主机的P2V迁移需要使用物理模式RDM。在VI环境下,大多数应用和工作负载使用虚拟磁盘,不过RDM——不管是虚拟模式还是物理模式——能帮助消除潜在的兼容性问题或允许应用在虚拟状态下运行而没有功能的丢失。
3. 为虚拟机添加RDM磁盘
具体步骤如下:1、首先需要添加一个未使用的LUN到ESXi/ESX主机后RDM到虚拟机:2、右击虚拟机点击“Edit Settings”在Hardware页标签点击“Add”,选择添加硬盘,采用RDM(裸机映射),然后进入下一步:
3、选择一个LUN之后进入下一步:
4、选择与虚拟机存储在同一目录中或者将链接RDM的快捷方式存储到指定datastore,然后进入下一步:
5、选择“Physical”或“Virtual”兼容模式后进入下一步:
6、需要为RDM分配一个单独的SCSI总线控制器,所以在这里选择一个和主磁盘不一致的总线控制器后进入下一步:说明:RDM 磁盘不能与原vm 磁盘使用相同的SCSI 控制器,所以必须选择另外的挂载点,即会创建新的SCSI 控制器。
7、点击Finish完成配置后如下图:
8、选择新建的SCSI 控制器,将其设置为“物理”模式,如下所示:
9、然后进入到系统里面去格式化即可使用。
4. 性能比较
有人说因为RDM是直接从SAN上的LUN到映射到虚拟机上面,在一定程度可以提高性能,进而可以部署相对高IO的Database服务。我没有进行相关的测试,但是VM有个官方测试文档,
貌似差别不是很大,详情请参加VM官方文档《
performance_char_vmfs_rdm.pdf