|
首先,介绍下用命令行vm-diskmanager形式创建磁盘文件的方法(其实,图形界面添加新磁盘就是调用此命令)。
很多网上文章提及plainmaker.exe去创建共享磁盘,是以前的版本,新版本使用vm-diskmanager。
命令行下进行目录 E:\Program Files\VMware\VMware GSX Server使用vmware-vdiskmanager创建共
享磁盘。例如:
E:\Program Files\VMware\VMware GSX Server>vmware-vdiskmanager -c -s 4Gb -a lsilogic -t 1
"E:\LinuxRacShareDisk\LinuxShareDisk.vmdk"
Using log file C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\vdiskmanager.log
Creating a split disk 'E:\LinuxRacShareDisk\LinuxShareDisk.vmdk'
Virtual disk creation successful.
实际使用中,发现共享磁盘极不稳定,复制文件会突然关机,后重新创建,仍然如此。试了不少
次,这里列出最后创建语句,也许是运气吧,一直比较稳定:
E:\Program Files\VMware\VMware GSX Server>vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "E:\VMDISK\LinuxShareDisk.vmdk"
Using log file C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\vdiskmanager.log
Creating monolithic preallocated disk 'E:\VMDISK\LinuxShareDisk.vmdk'
Create: 100% done.
Virtual disk creation successful.
笔者认为,在虚拟机硬盘的设置中,“动态增加大小”和“分割成小文件”两个选项不仅降低了性能,也
是系统很不稳定的重要因素。推荐不要使用!
命令的具体参数含义,可以输入vmware-vdiskmanager详细查看,不再说明。
共享磁盘创建后,需要将它分别添加到两台节点机上。
1. 如果是用上述的命令创建出磁盘文件后,只要在RAC下的两个虚拟机vmx格式的配置文件里(可以在任意行)都添加如下信息即可创建出共享磁盘:
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "E:\VMDISK\RACDATA.vmdk"
E:\VMDISK\RACDATA.vmdk即创建的共享磁盘文件。
原英文如下:
#
# ----------------------------------------------------------------
# SHARED DISK SECTION - (BEGIN)
# ----------------------------------------------------------------
# - The goal in meeting the hardware requirements is to have a
# shared storage for the two nodes. The way to achieve this in
# VMware is the creation of a NEW SCSI BUS. It has to be of
# type "virtual" and we must have the disk.locking = "false"
# option.
# - Just dataCacheMaxSize = "0" should be sufficient with the
# diskLib.* parameters, although I include all parameters for
# documentation purposes.
# - maxUnsyncedWrites should matter for sparse disks only, and
# I certainly do not recommend using sparse disks for
# clustering.
# - dataCacheMaxSize=0 should disable cache size completely, so
# other three dataCache options should do nothing (no harm,
# but nothing good either).
# ----------------------------------------------------------------
#
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.locking = "false"
# ----------------------------------------------------------------
# Create one HBA
# ----------------------------------------------------------------
scsi1.present = "TRUE"
scsi1.sharedBus = "virtual"
scsi1.virtualDev = "lsilogic"
# ----------------------------------------------------------------
# Create virtual SCSI disks on single HBA
# ----------------------------------------------------------------
scsi1:0.present = "TRUE"
scsi1:0.fileName = "M:\My Virtual Machines\Workstation 5.5.3\vmlinux1\Disk1.vmdk"
scsi1:0.redo = ""
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
2. 如果不是命令来创建磁盘文件,而是通过图形界面的操作来添加共享磁盘时(即在一个虚拟机上添加磁盘时选“创建一个新磁盘”,而在另一个虚拟机上添加磁盘时选“选择已有的磁盘”(这个已有的磁盘就是刚才上一个虚拟机创建出来的新磁盘)),只会在vmk配置文件里自动添加如下信息:
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "E:\VMDISK\RACDATA.vmdk"
而如下信息,还是得手动添加的:
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
才能完成创建共享磁盘的整个过程。
注意:最好采用先图形界面添加共享磁盘后再在vmk配置文件里添加一些信息的方法,比较可靠。因为例如笔者自己的虚拟机上装上的操作系统是win 2008 server,用通过图形界面来添加磁盘时,在vmk配置文件里的scsi1.virtualDev = "lsisas1068",而非scsi1.virtualDev= "lsilogic"。笔者改为scsi1.virtualDev = "lsilogic"启动虚拟机后,操作系统竟然出现重装系统的界面。这个说明scsi1.virtualDev 的值与虚拟机安装的操作系统有关。
下面解释下面语句的意思:
scsi1.present = "TRUE" //打开 scsi1上的使用
scsi1.virtualDev = "lsilogic" //磁盘控制器设置成lsilogic
scsi1.sharedBus = "virtual" //将scsi1总线设置为共享
这段是打开 scsi1总线上的使用,并且设置成virtual, controller设置成lsilogic 。
disk.locking = "false" //否则,启动虚拟机操作系统时会提示磁盘被锁定
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
这段是对vmware使用共享硬盘的方式进行定义。
如何测试共享存储是否成功?
只要在一个节点上对共享存储的某块磁盘进行分区操作,则在另一个节点上就可以立刻看到。或者反过来,将共享存储上的某一个分区删除,另一个节点也可以立马看到。这个就可以说明共享存储的设置是正确的。但是不是说在一个节点上新建了文件放在共享存储上,另外一个节点就能立马看到的,除非比如在windows系统下进入磁盘管理,对共享的磁盘进行脱机再联机的操作,才可以看到刚才另一个节点上新建的文件。
注意:在windows系统下,只要进入“磁盘管理”界面就可查看磁盘分区的情况;在linux下,用命令fdisk -l即可查看。
VMWare WorkStation 是可以使用共享磁盘的,至于启动提示Clustering is not Supported for VMWare WorkStation,完全可以忽略之。
版权声明:本文为博主原创文章,未经博主允许不得转载。 |
|