概述
创建每个 RAC 群集时,必须为该群集执行一次以下过程:在 vSAN 数据存储上配置 Oracle RAC 群集。 此过程需要执行以下步骤:
- 创建虚拟机存储策略,以将其应用到用作集群共享存储的虚拟磁盘。
- 以快速置零模式创建共享虚拟磁盘。
- 将共享磁盘附加到一个或多个虚拟机
- 使用 ESXi 命令行,为虚拟机和磁盘启用多写入器模式。
- 当前版本的 vSphere Web Client 缺少所需的配置选项。 这要求在相关 ESXi 主机上使用 CLI。
- 将虚拟机存储策略应用到共享磁盘。
警告: 继续操作之前,所有将成为 Oracle RAC 节点的虚拟机都必须处于关闭电源状态。
创建虚拟机存储策略
根据虚拟机的设计规范,您需要定义虚拟机存储策略以将其应用到 RAC 共享磁盘。 创建类似于下图的存储策略:
注意:
- 在本示例中,我们将虚拟机存储策略命名为“RAC”
- 对象空间预留: 100%,此设置会在磁盘上预先分配所有对象的组件。
- 允许的故障数: 默认设置是 1,可在另一个 vSAN 节点上提供镜像副本。 此设置可对主机/硬件组件故障提供 RAID 1 保护。 如对话框所示,这样将在 vSAN 数据存储上占用两倍的存储空间。
- 每个对象的磁盘带数: 默认 vSAN 策略为 1。 请为此策略选择所需的磁盘带宽度。 这与 RAID 0 相似。 在本示例中,我们使用值 2。
将存储控制器添加到 Oracle RAC 虚拟机
注意: 在每个 Oracle RAC 虚拟机上,创建类型相同并处于相同位置(SCSI 地址)的控制器。
- 在 vSphere Web Client 中右键单击虚拟机,然后选择编辑设置。
- 在后续窗口的底部,从新设备: 下拉菜单中选择 SCSI 控制器,然后单击添加。
- 展开新的 SCSI 控制器条目。
- 使总线共享模式保持为“无”,然后选择所需的类型(LSI Parallel、LSI SAS 或 Paravirtual)。
注意: 一般建议将准虚拟控制器类型用于 RAC 共享磁盘。
- 单击确定
- 对其余 RAC 虚拟机重复以上过程。
创建快速置零磁盘 (PowerCLI)
在当前版本中,vSphere Web Client 无法在 vSAN 数据存储上创建快速置零磁盘。 虽然 vSAN 数据存储支持快速置零磁盘,但目前未在 vSphere Web Client 中提供此功能。 要适应当前版本中的此限制,我们必须使用 PowerCLI 或 ESXi 命令行来创建快速置零磁盘。 本节概述了用于创建磁盘的 PowerCLI 方法,并指明这是首选方法。
- 启动 PowerCLI 并使用 Connect-VIServer 连接到 vCenter。
有关 PowerCLI 约定和登录等的更多指导,请参见 VMware vSphere PowerCLI Documentation。
- 使用以下格式的 New-HardDisk cmdlet 创建新硬盘:
New-HardDisk -VM -CapacityGB -Datastore -StorageFormat EagerZeroedThick -Controller -Persistence IndependentPersistent
例如,要在附加到数据存储“vsanDatastore”上的“SCSI Controller 1”的“RAC_0”虚拟机上创建一个大小为 10 GB 的磁盘,请使用以下命令:
New-HardDisk -VM “RAC_0” -CapacityGB 10 -Datastore “vsanDatastore” -StorageFormat EagerZeroedThick -Controller “SCSI Controller 1” -Persistence IndependentPersistent
The name of the storage controller will match the name of the device we added to the VMs in the previous section.
- 对要创建的其余共享磁盘重复以上过程。
创建快速置零磁盘(ESXi 命令行)
使用最新版本的 vSphere Web Client 时,无法在 vSAN 数据存储上创建快速置零磁盘。虽然 vSAN 数据存储支持快速置零磁盘,但目前未在 vSphere Web Client 中提供此功能。要适应当前版本中的此限制,我们必须使用 PowerCLI 或 ESXi 命令行来创建快速置零磁盘。本节概述了用于创建磁盘的 ESXi 命令行方法。
注意: 您必须启用对主机的本地 ESXi shell 或 SSH 访问并以特权 (root) 用户身份登录才能完成以下过程。
- 导航到 Oracle RAC 群集中第一个虚拟机的目录:
cd /vmfs/volumes//
例如:
cd /vmfs/volumes/vsanDatastore/RAC_0
- 使用以下 vmkfstools 命令创建要共享的快速置零厚置备虚拟磁盘:
vmkfstools -c -W vsan -d eagerzeroedthick `pwd`/
例如:
vmkfstools -c 12G –W vsan –d eagerzeroedthick `pwd`/RAC_0_1.vmdk
- 对要创建的所有共享磁盘重复步骤 2。
将共享磁盘添加到一个或多个虚拟机
创建快速置零磁盘之后,必须使用 vSphere Web Client 或 PowerCLI 将其添加到其余 RAC 虚拟机。
注意:虚拟磁盘应添加到每个虚拟机上的相同 SCSI 位置。如果某个磁盘位于一个虚拟机上的位置 1:0,则在 RAC 群集中,该磁盘应位于所有虚拟机上的位置 1:0。
使用 vSphere Web Client
要使用 vSphere Web Client 将共享磁盘添加到一个或多个虚拟机,请执行以下操作:
- 右键单击相应的虚拟机,然后选择编辑设置。
- 从新设备下拉菜单中选择现有硬盘,然后单击添加。
- 导航到适当的目录,然后选择所需的磁盘。
- 单击确定。
- 展开新硬盘条目,然后适当地修改虚拟设备节点。
- 在共享下拉菜单中,选择多写入器选项。
注意:该选项只在 vSphere Web Client 6.0 Update 1 及更高级版本中才可用。对于 6.0 GA (没有任何更新),则需要手动编辑,操作步骤请见下文“使用 ESXi shell 为虚拟机和磁盘启用多写入器模式”部分。
- 将磁盘模式更改为独立持久。
- 单击确定以保存更改。
- 对其余虚拟机和共享磁盘重复以上过程。
使用 PowerCLI
- 启动 PowerCLI 并使用 Connect-VIServer 连接到 vCenter Server。
- 使用以下格式的 New-HardDisk cmdlet 添加现有磁盘:
New-HardDisk -VM -DiskPath “[] /” -Controller -Persistence IndependentPersistent
例如:要将文件夹“RAC_0”中的数据存储“vsanDatastore”上的磁盘“RAC_0_1.vmdk”添加到虚拟机“RAC_1”并将其附加到“SCSI Controller 1”,请使用以下命令:
New-HardDisk -VM RAC_1 -DiskPath “[vsanDatastore] RAC_0/RAC_0_1.vmdk” -Controller “SCSI Controller 1” -Persistence IndependentPersistent
- 对其余虚拟机和共享磁盘重复以上过程。
使用 ESXi shell 为虚拟机和磁盘启用多写入器模式
无法通过 6.0 Update 1 以前的 vSphere Web Client 版本添加多写入器标记。如果未安装 vSphere 6.0 Update 1 或更高版本,请使用 ESXi shell 在适用的虚拟机和磁盘上启用多写入器模式。
注意:由于此过程涉及修改和加载虚拟机配置,因此建议向同一个 ESXi 主机注册所有 RAC 虚拟机以进行这些更改,从而不必登录到多个主机。进行这些更改后,虚拟机可以分布到整个 vSphere 群集。
- 要为特定磁盘启用 SCSI 总线共享,请运行以下命令:
echo ‘scsi:.sharing = “multi-writer”’ >>
例如:要为 vsanDatastore 数据存储上的RAC_0虚拟机的 SCSI 设备 1:0 启用多写入器,请运行以下命令:
echo ‘scsi1:0.sharing = “multi-writer”’ >> /vmfs/volumes/vsanDatastore/RAC_0/RAC_0.vmx
- 为所有适用的磁盘和虚拟机完成步骤 2,并适当地修改 SCSI 位置。 例如,要共享四个磁盘,我们应将以下条目全部添加到 VMX 文件:
scsi1:0.sharing = "multi-writer"
scsi1:1.sharing = "multi-writer"
scsi1:2.sharing = "multi-writer"
scsi1:3.sharing = "multi-writer"
- 刷新虚拟机配置以应用更改。
请使用以下命令:
- 使用以下命令确定要刷新的虚拟机:
vim-cmd vmsvc/getallvms |grep -iVM_name
例如,要列出所有向主机注册的名称包含RAC的虚拟机,请运行以下命令:
vim-cmd vmsvc/getallvms |grep -i RAC
输出将显示虚拟机注册,并在最左端的列中显示 VMID。VMID 是一个简单的整数编号。
- 刷新配置:
vim-cmd vmsvc/reloadVMID
如果其中一个 RAC 虚拟机的 VMID 是24,请运行以下命令:
vim-cmd vmsvc/reload 24
- 重新加载所有适用的虚拟机。
将虚拟机存储策略应用到共享磁盘。
创建磁盘并将其添加到所有虚拟机之后,必须应用为 RAC 共享磁盘创建的存储策略。该策略必须应用到所有 RAC 虚拟机上所有适用的磁盘。
- 在 vSphere Web Client 中,右键单击虚拟机,然后选择编辑设置。
- 展开相应的硬盘条目。
- 从下拉列表中选择所需的虚拟机存储策略。
- 验证磁盘模式是否为独立持久。
- 单击确定。
- 对所有适用的虚拟机和磁盘重复以上过程。
注意: 如果要在以后将其他存储策略应用到 RAC 共享磁盘,您必须对所有共享磁盘
以及所有共享该磁盘的虚拟机执行策略更改。