如何在VMWare vCenter环境下实现共享存储

来源:互联网 发布:银行大数据 模型 编辑:程序博客网 时间:2024/05/17 06:16

题记

在很多情况下,我们都会应用到共享存储,例如我们安装Oracle RAC时候,我们的控制文件,数据文件,日志文件都存储在共享存储上面;在物理环境我们很容易实现这种需求,但是在虚拟化环境下,我们将如何实现呢?

接下来,我们就看看一个基于VMWare vCenter环境下如何实现共享存储。


环境需求

VMWare vSphere+vCenter 6.0


目标

实现共享存储


架构图



通过VMWare vCenter创建两个虚拟机,VM1(iportal),VM2(supermap_iportal810_ubuntu14.04_ESXI5.1),两个机器分别有一块本地磁盘,当然,我们可以再往VM1添加一个新的本地磁盘,但是如果我们什么都默认设置,该本次磁盘只能添加到一个虚拟机对象,而不能再挂载到两一个新的虚拟机对象,所以,如果我们希望实现共享存储,我们可以进行如下操作。


一、为VM1添加一个新的磁盘对象


在添加该磁盘,我们需要注意:

1、尽量该磁盘文件不要与虚拟机存储在同一路径下

2、磁盘设置为:“后置备置零”设置


a、厚置备延迟置零:
      默认的创建格式,创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,没有置零操作,当有IO操作时,需要等待清零操作完成后才能完成IO,
     即:分配好空间,执行写操作时才会按需要将其置零。

b、厚置备置零(thick):
      创建支持群集功能的厚磁盘。在创建时为虚拟磁盘分配所需的空间。并将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。
     即:分配好空间并置零操作,有IO的时无需等待任何操作直接执行。

c、精简置备(thin):
 精简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少。当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行清零操作,也就是说如果使用精简配置在有IO的时候需要:等待分配空间和清零,这两个步骤完成后才能进行操作,对于IO叫频繁的应用这样性能会有所下降,虽然节省了存储空间。


3、磁盘设置的通道与本地磁盘不在同一个通道上


默认添加的磁盘通道为SCSI(0:1),如上图所示,我们新添加的磁盘不在同一个通道上,所以我们选择(1:x)即可

4、磁盘设置为“独立”模式,设置为持久选项。


以上说明,在新添加的磁盘向导中都可以进行选择。


二、添加磁盘完毕之后,我们可以看到,选择主页——清单——数据存储和数据存储群集,默认我们的虚拟机存储在datastore1,我新添加的共享磁盘,存储在new2,我们可以选择“浏览此数据存储”查看物理文件信息



三、选择VM1(iportal )虚拟机,下载*.vmx文件

默认的信息包括:

.encoding = "UTF-8"config.version = "8"virtualHW.version = "9"nvram = "iportal.nvram"pciBridge0.present = "TRUE"svga.present = "TRUE"pciBridge4.present = "TRUE"pciBridge4.virtualDev = "pcieRootPort"pciBridge4.functions = "8"pciBridge5.present = "TRUE"pciBridge5.virtualDev = "pcieRootPort"pciBridge5.functions = "8"pciBridge6.present = "TRUE"pciBridge6.virtualDev = "pcieRootPort"pciBridge6.functions = "8"pciBridge7.present = "TRUE"pciBridge7.virtualDev = "pcieRootPort"pciBridge7.functions = "8"vmci0.present = "TRUE"hpet0.present = "TRUE"floppy0.present = "FALSE"memSize = "1024"powerType.suspend = "soft"usb.present = "TRUE"ehci.present = "TRUE"scsi0.virtualDev = "lsilogic"scsi0.present = "TRUE"ide1:0.startConnected = "FALSE"ide1:0.deviceType = "atapi-cdrom"ide1:0.fileName = "CD/DVD drive 0"ide1:0.present = "TRUE"mks.enable3d = "TRUE"ethernet0.virtualDev = "e1000"ethernet0.networkName = "VM Network"ethernet0.addressType = "vpx"ethernet0.generatedAddress = "00:50:56:bb:e3:b0"ethernet0.wakeOnPcktRcv = "FALSE"ethernet0.present = "TRUE"scsi0:0.deviceType = "scsi-hardDisk"scsi0:0.fileName = "iportal.vmdk"scsi0:0.present = "TRUE"displayName = "iportal"guestOS = "ubuntu-64"vcpu.hotadd = "TRUE"mem.hotadd = "TRUE"toolScripts.afterPowerOn = "TRUE"toolScripts.afterResume = "TRUE"toolScripts.beforeSuspend = "TRUE"toolScripts.beforePowerOff = "TRUE"tools.syncTime = "FALSE"uuid.bios = "42 3b 45 6c e8 da 22 f5-b0 e8 60 c1 20 ef 00 f2"vc.uuid = "50 3b 25 4e e2 26 44 89-f6 1b ba 14 06 23 8c 30"scsi1.virtualDev = "lsilogic"scsi1.present = "TRUE"scsi1:0.deviceType = "scsi-hardDisk"scsi1:0.fileName = "/vmfs/volumes/57eb5af7-f11fc744-5809-000c29dd753b/iportal/iportal.vmdk"scsi1:0.mode = "independent-persistent"scsi1:0.present = "TRUE"scsi1.sharedBus ="virtual"sched.scsi0:2.shares = "normal"sched.scsi0:2.throughputCap = "off"

我们需要添加对共享磁盘的信息

disk.locking="false"diskLib.dataCacheMaxSize = "0"diskLib.dataCacheMaxReadAheadSize ="0"diskLib.DataCacheMinReadAheadSize ="0"diskLib.dataCachePageSize ="4096"diskLib.maxUnsyncedWrites = "0"

四、同理,我们找到VM2的物理存储,将*.vmx下载,添加以上相关信息,由于VM2并没有添加新的磁盘,需要共享VM1上的新磁盘,所以,VM2需要添加如下信息:

scsi1.virtualDev = "lsilogic"scsi1.present = "TRUE"scsi1:0.deviceType = "scsi-hardDisk"scsi1:0.fileName = "/vmfs/volumes/57eb5af7-f11fc744-5809-000c29dd753b/iportal/iportal.vmdk"scsi1:0.mode = "independent-persistent"scsi1:0.present = "TRUE"scsi1.sharedBus ="virtual"sched.scsi0:2.shares = "normal"sched.scsi0:2.throughputCap = "off"disk.locking="false"diskLib.dataCacheMaxSize = "0"diskLib.dataCacheMaxReadAheadSize ="0"diskLib.DataCacheMinReadAheadSize ="0"diskLib.dataCachePageSize ="4096"diskLib.maxUnsyncedWrites = "0"

五、将两个vmx文件分别上传到相应的虚拟机文件里面


六、虽然VM2,没有手动添加新磁盘,但是经过修改后的vmx文件可以查看到VM2已经添加了共享磁盘的信息



七、在VM1启动之后,我们可以将新磁盘进行分区,建立文件系统,Mount操作,创建一个文件测试,VM2可以直接mount查看新创建的文件。



可能出现的错误:

如果新添加的磁盘通道未选择正确,可能出现,VM1启动成功,但是VM2启动报如下错误:

打开虚拟机 supermap_iportal810_ubuntu14.04_ESXi5.1 的电源时,会收到来自 ESX 主机的错误。
无法启动虚拟机。
模块 Disk 打开电源失败。 
无法打开磁盘“/vmfs/volumes/57eb5af7-f11fc744-5809-000c29dd753b/iportal/iportal.vmdk”或其所依赖的快照磁盘之一。 
未能锁定文件


在实际测试过程中,我发现,当我在VM1更新文件时,VM2并不能实时看到更新信息,需要重新umount和mount的操作才能看到。


如果VM2发现不了共享磁盘,建议重启OS。





0 0
原创粉丝点击