首先介绍一下自己搭建的虚拟机Cluster环境,然后转载一篇建立共享磁盘的文章,这样会有一个更为系统性的认识。
第一步:在服务器上安装VMWare ESX 3.5 Update 4,在本地机器上安装VMWare Infrastructure Client 2.5。可以通过SSH和Client两种方式访问ESX Server。不过,用SSH方式访问ESX Server之前记得将/etc/ssh/sshd_config的PermitRootLogin的值修改为yes,然后重启ssh服务。
第二步:用Client在ESX Server上创建一台Linux虚拟机,安装Red Hat操作系统。然后,用Client在ESX Server上创建另外一台Linux虚拟机,通过vmkfstools命令clone出完全相同的Red Hat操作系统(网络配置另外设置)。
第三步:创建共享磁盘,将两台虚拟机变成共享磁盘的Cluster,底层共享服务由VMFS来提供。
下面就“转载”一篇关于共享磁盘的文章,内容比较详细。
一、前提
由于图形管理工具下没有提供创建共享盘柜的方法,所以,要从命令创建磁盘,就必须先打开可以进入命令行。进入命令行有两种办法:
1、从Infrastructure Client上选择进入维护模式,然后即可登陆;
2、使用远程SSH登陆。
二、创建共享磁盘
1、创建磁盘文件
使用petty等SSH工具,登陆到ESX 服务器上,使用下面的命令创建虚拟客户机使用的共享磁盘文件:
# cd /vmfs/volumes/49f5c866-a25fe688-2bff-003048c37402/
# mkdir sharedisk
# cd sharedisk
# vmkfstools -c 10240m -a lsilogic -d thick sharedisk.vmdk
这样就创建了一个10G大小的共享磁盘文件。
注意:如果要得到可共享的虚拟磁盘,磁盘属性必须是thick,而缺省的虚拟磁盘属性是thin,这就是在Client端创建的虚拟磁盘无法共享的原因。另外,RDM磁盘可以直接做共享磁盘。
2、加入到虚拟机中
使用Infrastructure Client,选择对应的虚拟客户机,编辑客户机属性,添加硬盘,选择“使用现有虚拟磁盘”;选择上面创建的磁盘文件;然后,注意选择SCSI“虚拟设备节点”与原本地磁盘不在同一个通道上。例如,本地磁盘使用SCSI 0:1,那就可以使用SCSI 1:0等,同选择“模式”为“独立”—“持久”的方式。在添加新的磁盘后,同时也会添加一个新的SCSI通道,修改其属性为“虚拟”的。
给参与构建集群的虚拟客户机进行一次相同的操作。
3、修改vmx设置文件
再次使用petty通过SSH登陆到ESX 服务器上,修改虚拟机的.vmx配置文件:
# cd Asianux_3.0
# vi Asianux_3.0.vmx
在最后,根据上面添加的控制器情况,修改或加入:
scsi1.present = "true"
scsi1.sharedBus = "virtual"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "scsi-hardDisk"
sched.scsi1:0.shares = "normal" disk.locking="false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
给参与构建集群的虚拟客户机进行一次相同的操作。
最后,启动相关的虚拟客户机,并对新增加的磁盘创建分区,或使用OCFS2、GFS等工作。
三、虚拟磁盘文件类型
VMWare为虚拟机文件存储提供了三种虚拟磁盘类型。不过你如何知道哪一种类型适合虚拟机?答案是不确定的,因为每种磁盘类型提供了不同的好处:例如第一种在初始磁盘写入过程中提供了更好的性能,第二种更安全,第三种在节省磁盘空间时是最佳选择。
ESX主要有三种主要的虚拟磁盘文件类型可用:thick、thin和raw。
1、Raw disk(原始磁盘)
原始磁盘指的是原始设备影射(RDM),可以让虚拟机在存储区域网络(SAN)上直接访问逻辑单元号(LUN)。这意味着虚拟机的磁盘数据文件不宿主在虚拟机文件系统(VMFS)卷上。相反,小型磁盘描述符文件是为VMFS卷上虚拟机工作目录里的虚拟磁盘而创建的。
RDM能配置成两种不同的模式:虚拟兼容模式或物理兼容模式。虚拟兼容模式虚拟影射的设备,一般来说对子操作系统是透明的。这种模式也提供了一些VMFS卷的优势,如创建快照的功能。物理兼容模式提供最小化的影射设备SCSI虚拟化,并且VMKernel直接传输几乎所有的SCSI命令到设备。
2、Thick disk(厚磁盘)
Thick disk——在创建的过程中分配给所有空间,在物理媒介上可能包括陈旧的数据。这些磁盘不×××全,因为它们的(组成磁盘的)磁盘块没有清除以前的数据。
Zeroed thick disk——在创建时分配给所有空间,也清除了以前的数据。由于使用了所有空间,数据是零,不过只是在第一次写入磁盘块是如此。当使用VMWare Infrastructure Client(VI Client)创建VMFS卷虚拟磁盘时,这是默认的磁盘类型。Zeroed thick disk也叫做lazy zeroed thick disk。由于磁盘在第一次写入时必须清空,这些类型的磁盘在第一次磁盘块写入时也有轻微的I/O性能瓶颈。
Eager zeroed thick disk——在创建时,分配给所有空间,在物理媒介上清除了以前的数据。另外,在创建磁盘时,与创建其他类型的磁盘相比较,所有数据都需要调到0,花费更多时间。这样的磁盘是最安全的,因为磁盘块已经清除了以前的数据,在第一次写入数据到磁盘块时有较好的性能。
3、Thin disk(薄磁盘)
随着磁盘写入块的创建,Thin disk开始很小,然后增长到预先设置的最大值。如果你创建了一台拥有10GB Thin disk的虚拟机,开始大小可能是1MB,随着时间推移,达到10GB的最大值。随着增长,Thin disk可能有轻微的性能损失,因为空间按需分配。同样,第一次对磁盘块的写入是0,这造成额外的性能损失。一旦磁盘增长,其块是0,不过thin disk与其他类型的磁盘表现差不多。
thin disk对保存VMFS卷上的磁盘空间是有用的,不过如果你不能控制其增长将会产生问题。thin disk通常是网络文件系统(NFS)数据存储的默认选择。不过是否使用它们由NFS服务器的分配策略决定,而不是VMWare ESX服务器。使用thin disk时,大概使用VI Client数据存储浏览器时,你只能看见一个磁盘的实际大小。如果使用不同的方法,如命令行ls命令,这个命令将显示磁盘的最大值而不是其目前大小。
4、2GBsparse
此外,有一个叫做2GBsparse的特殊格式。2GBsparse将磁盘分割成多个磁盘,每个磁盘的最大值是2GB。例如,有20GB磁盘空间的虚拟机可以划分为10个2GB的磁盘。VMWare Workstation和VMWare Server可以使用这种格式,不过除非你第一次输入thick或thin disk格式,否则不能在ESX主机上以这种格式启动虚拟机。这种格式有时用于将较大的VMWare ESX磁盘分解成较小的磁盘,利于复制到其他ESX主机或物理媒介,因此这样的磁盘能交付到任何地方。
四、决定使用哪种虚拟磁盘文件类型
因此你的虚拟机该使用何种磁盘?如果你关注VMFS上的磁盘空间,就使用thin disk。如果你关注安全,也想在初次磁盘写入时性能较好就使用eager zeroed thick disk。注意,一旦完成对新磁盘块的初次写入,所有类型的磁盘性能都一样。如果你在虚拟机里运行的应用是感知SAN的,并且需要直接访问SAN LUN,或如果你使用像Microsoft Clustering Server这样的需要两个虚拟机的集群解决方案访问相同的磁盘文件,就使用RDM。
1、创建虚拟磁盘
登录服务控制台并修改虚拟机目录。使用vmkfstools命令创建硬盘。在下面的例子中,我们使用命令
# vmkfstools –c <disk size> -d thin <disk file name>
2、在现有虚拟机里更改磁盘类型
如果你想更改现有的磁盘格式,必须使用vmkfstools命令。确保关闭虚拟机并且没有运行快照。以下是命令列表及其作用。
# vmkfstools –j <磁盘文件名>:
这个命令使thin disk增长到其最大值,并删除以前的数据,就把thin disk更改成eager zeroed thick disk。现有的数据仍然是完整的,这是由于只有新磁盘块是0开始或重定格式。
# vmkfstools –w <磁盘文件名>:
这个命令完全清除虚拟磁盘文件,所有现有的数据都将被删除。这个命令只能用于新创建的没有数据的虚拟磁盘。
# vmkfstools –i <原始磁盘文件名><目标磁盘文件名>-d thin:
这个命令转换现有的thick disk到其他thick disk。完成转换后,你必须移除现有磁盘,添加新磁盘并浏览目标磁盘文件。一旦确保虚拟机启动不出错,就能使用数据存储浏览器删除原始磁盘文件。注意,thick disk的大小能变化,可能与虚拟机使用的磁盘空间不匹配。如果写在操作系统里的数据突然被删除,ESX主机仍然认为使用了空间。
转载于:https://blog.51cto.com/csynine/324682