分类:
2011-05-27 10:20:40
最近在做一个试验,需要模拟两台主机和一个共享存储。在VMWare里面可以使用vmware-vdiskmanager工具来创建一块或几块共享磁盘来模拟共享存储。
下面简单介绍一下vmware-vdiskmanager的使用方法:
vmware-vdiskmanager
命令语法:
vmware-vdiskmanager [选项] <磁盘名称>
VMware Virtual Disk Manager - build 44356.
Usage: vmware-vdiskmanager [选项] <磁盘名称>
虚拟磁盘文件的名字。
#虚拟磁盘文件必须是
-c
创建虚拟磁盘。
#你必须用-a, -s 和 -t 并指定选项参数,然后你需要指定所要创建的虚拟磁盘文件的文件名。
-r
转换已经指定类型的虚拟磁盘的类型。
#结果会输出创建一个新的虚拟磁盘。你必须用-t选项来指定你想要转换成的磁盘类型,并且指定目标虚拟磁盘的文件名。
#一旦转换完成,你可以先测试虚拟磁盘以确保它能够像你所希望的那样工作,然后再删除原来的那个虚拟磁盘文件。
#为了让虚拟机重新认识转换后的虚拟磁盘,你应该使用虚拟机设置编辑器先从虚拟机中移除先前存在的虚拟磁盘,然后添加转换好的虚拟磁盘给虚机。
-x
增大虚拟磁盘到指定的容量。你必须指定新的更大尺寸的虚拟磁盘用GB或MB单位标示。你不能改变物理磁盘的大小。
#在你运行虚拟磁盘管理软件前,你应该先备份虚拟磁盘文件。因
-d
对指定的虚拟磁盘碎片整理。
#你只能磁盘碎片整理可增长的虚拟磁盘。你不能磁盘碎片整理预分配的虚拟磁盘。
-p
为收缩磁盘做准备处理。
#如果虚拟磁盘被分成多个分区,每个分区必须被单独准备。分区(比如
#在你对分区准备处理后,解除对此分区的映射。继续映射虚拟磁盘的其他每个分区,为收缩磁盘作准备处理直到完成虚拟磁盘上的所有分区的准备工作。
#你在同一时刻只能用VMware DiskMount映射虚拟磁盘的一个分区。你仅仅能在宿主机上进行虚拟磁盘的收缩分区准备工作。
-k
收缩指定的虚拟磁盘。你只能够收缩可增长磁盘。你只能在宿主机中用这种方法收缩虚拟磁盘。
#你不能够收缩有虚拟机快照的虚拟磁盘。你可以保持现有虚拟磁盘的状态,而用快照管理器删除所有快照。你也可以放弃自快照以来对虚拟磁盘所做的更改,恢复到快照时状态。
-a [ ide | buslogic | lsilogic ]
指定磁盘适配器的类型。你在创建新的虚拟磁盘时必须指定其类型。
#选择以下类型之一:
#
#buslogic —— BusLogic SCSI接口适配器
#lsilogic —— LSI Logic SCSI接口适配器
-s
指定虚拟磁盘的大小。确定大小用
#尽管你必须指定虚拟磁盘的大小,但当你增长它的大小时,你不能用-s这个选项。
#可以指定的磁盘大小规定:IDE和SCSI适配器都为最小100MB,最大950GB。
-t [0|1|2|3]
你在创建一个新的虚拟磁盘或者重新配置一个虚拟磁盘时必须指定虚拟磁盘的类型。
#指定以下类型之一:
#0 —— 创建一个包含在单一虚拟文件中的可增长虚拟磁盘
#1 —— 创建一个被分割为每个文件2GB大小的可增长虚拟磁盘
#2 —— 创建一个包含在单一虚拟文件中的预分配虚拟磁盘
#3 —— 创建一个被分割为每个文件2GB大小的预分配虚拟磁盘
-q
禁止虚拟磁盘管理程序写日志
#如果你允许记录日志,日志将会被虚拟磁盘管理程序产生并储存。在虚拟磁盘管理程序运行后,日志的名字和存放位置将会出现在命令行或终端中。
-n
重命名指定的虚拟磁盘。需要指定命名后的虚拟磁盘名字。
为了帮助大家理解,下面举几个例子:
vmware-vdiskmanager -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
创建一个名称为myIdeDisk的大小为850Mb的IDE接口的在一个虚拟机文件中的可增长的磁盘
vmware-vdiskmanager -d myDisk.vmdk
对myDisk进行碎片整理
vmware-vdiskmanager -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
将sourceDisk转换成在一个虚拟机文件中的可增长的磁盘,并命名为destinationDisk
vmware-vdiskmanager -x 36Gb myDisk.vmdk
将磁盘myDisk增大至36G
vmware-vdiskmanager -n sourceName.vmdk destinationName.vmdk
将磁盘sourceName改名为destinationName
2008年10月24日更新:
如果在添加共享磁盘后发现只有一台机器能启动,另外一台因为不能打开共享磁盘文件而不能启动的时候,需要对配置文件进行修改:
分别打开两台虚拟机目录中的vmx文件,在最后一行添加:
disk.locking="FALSE"
scsi0:1.SharedBus="Virtual"
scsi1:1.SharedBus="Virtual"
系统启动的时候会锁定磁盘,所以当启动linux1后共享磁盘被锁定了,linux2就起不来了,因此需要加入disk.locking = "false"。
一般来说,如果是scsi1:0,则n为1,也就是scsi1.sharedBus = "virtual" ,表示所有的bus都共享,vmare推荐这种做法。
如果说是不是所有的bus都共享的话,可以将上述scsi1.sharedBus = "virtual"改成scsi1:1.shared = "true" 。