在 vSphere 6.x vSAN 資料儲存上使用共享儲存的虛擬磁碟
概述
建立每個 RAC 群集時,必須為該群集執行一次以下過程:在 vSAN 資料儲存上配置 Oracle RAC 群集。 此過程需要執行以下步驟:
- 建立虛擬機器儲存策略,以將其應用到用作叢集共享儲存的虛擬磁碟。
- 以快速置零模式建立共享虛擬磁碟。
- 當前版本的 vSphere Web Client 缺少所需的配置選項。 這要求在 vSAN 群集中的相關 ESXi 主機上使用 CLI 或 PowerCLI。
注意: 使用 PowerCLI 可減少幾個步驟,因此建議採用此方法。
- 當前版本的 vSphere Web Client 缺少所需的配置選項。 這要求在 vSAN 群集中的相關 ESXi 主機上使用 CLI 或 PowerCLI。
- 將共享磁碟附加到一個或多個虛擬機器
- 使用 ESXi 命令列,為虛擬機器和磁碟啟用多寫入器模式。
- 當前版本的 vSphere Web Client 缺少所需的配置選項。 這要求在相關 ESXi 主機上使用 CLI。
- 將虛擬機器儲存策略應用到共享磁碟。
警告: 繼續操作之前,所有將成為 Oracle RAC 節點的虛擬機器都必須處於關閉電源狀態。
建立虛擬機器儲存策略
根據虛擬機器的設計規範,您需要定義虛擬機器儲存策略以將其應用到 RAC 共享磁碟。 建立類似於下圖的儲存策略:
注意:
- 在本示例中,我們將虛擬機器儲存策略命名為“RAC”
- 物件空間預留: 100%,此設定會在磁碟上預先分配所有物件的元件。
- 允許的故障數: 預設設定是 1,可在另一個 vSAN 節點上提供映象副本。 此設定可對主機/硬體元件故障提供 RAID 1 保護。 如對話方塊所示,這樣將在 vSAN 資料儲存上佔用兩倍的儲存空間。
- 每個物件的磁碟帶數: 預設 vSAN 策略為 1。 請為此策略選擇所需的磁碟頻寬度。 這與 RAID 0 相似。 在本示例中,我們使用值 2。
有關儲存策略配置選項的詳細資訊,請參見 VMware vSAN 文件。
將儲存控制器新增到 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 <VM name> -CapacityGB <size> -Datastore <VSAN datastore name> -StorageFormat EagerZeroedThick -Controller <controller name> -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/<vsan datastore>/<VM_Name>
例如:
cd /vmfs/volumes/vsanDatastore/RAC_0 - 使用以下 vmkfstools 命令建立要共享的快速置零厚置備虛擬磁碟:
vmkfstools -c <size> -W vsan -d eagerzeroedthick `pwd`/<vmdk-file-name>
例如:
vmkfstools -c 12G –W vsan –d eagerzeroedthick `pwd`/RAC_0_1.vmdk - 對要建立的所有共享磁碟重複步驟 2。
將共享磁碟新增到一個或多個虛擬機器 (vSphere Web Client)
建立快速置零磁碟後,您需要將其新增到其餘 RAC 虛擬機器。 您可以通過 vSphere Web Client 或 PowerCLI 執行此操作。 本節概述了 vSphere Web Client 方法。
虛擬磁碟應新增到每個虛擬機器上的相同 SCSI 位置。 如果某個磁碟位於一個虛擬機器上的位置 1:0,則在 RAC 群集中,該磁碟應位於所有虛擬機器上的位置 1:0。
- 右鍵單擊相應的虛擬機器,然後選擇編輯設定…。
- 在後續視窗中,從新裝置下拉選單中選擇現有硬碟,然後單擊新增。
- 導航到適當的目錄,然後選擇所需的磁碟。
- 單擊確定。
- 展開新硬碟條目,然後適當地修改虛擬裝置節點。
- 在共享下拉選單中,選擇多寫入器選項。
注意:該選項只在 vSphere Web Client 6.0 Update 1 及更高階版本中才可用。對於 6.0 GA (沒有任何更新),則需要手動編輯,操作步驟請見下文“使用 ESXi shell 為虛擬機器和磁碟啟用多寫入器模式”部分。 - 將磁碟模式更改為獨立持久。
- 單擊確定以儲存更改。
- 對其餘虛擬機器和共享磁碟重複以上過程。
將共享磁碟新增到一個或多個虛擬機器 (PowerCLI)
建立快速置零磁碟後,您需要將其新增到其餘 RAC 虛擬機器。 您可以通過 vSphere Web Client 或 PowerCLI 執行此操作。 本節概述了 PowerCLI 方法。
- 啟動 PowerCLI 並使用以下命令連線到 vCenter: Connect-VIServer。
- 使用以下格式的 New-HardDisk cmdlet 新增現有磁碟:
New-HardDisk -VM <VM Name> -DiskPath “[<datastore name>] <folder>/<disk file>” -Controller <controller name> -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<N>:<D>.sharing = “multi-writer”’ >> <path to VMX file>
例如:要為資料儲存“vSAN Datastore”上的虛擬機器“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 -i <VM name>
例如:要列出所有向主機註冊的名稱包含“RAC”的虛擬機器,請執行以下命令:
vim-cmd vmsvc/getallvms |grep -i RAC
生成的輸出將顯示虛擬機器註冊,並在最左端的列中顯示 VMID。 VMID 是一個簡單的整數編號。 - 重新整理配置以使更改生效:
vim-cmd vmsvc/reload <VMID>
例如: 如果其中一個 RAC 虛擬機器的 VMID 是“24”,則應使用以下命令:
vim-cmd vmsvc/reload 24 - 重新載入所有適用的虛擬機器。
將虛擬機器儲存策略應用到共享磁碟。
請注意,建立磁碟並將其新增到所有虛擬機器後,我們必須應用為 RAC 共享磁碟建立的儲存策略。 該策略必須應用到所有 RAC 虛擬機器上所有適用的磁碟。
- 在 vSphere Web Client 中,右鍵單擊虛擬機器,然後選擇編輯設定…。
- 展開相應的硬碟條目。
- 從下拉列表中選擇所需的虛擬機器儲存策略。
- 驗證磁碟模式是否為獨立持久。
- 單擊確定。
- 對所有適用的虛擬機器和磁碟重複以上過程。
注意: 如果要在以後將其他儲存策略應用到 RAC 共享磁碟,您必須對所有共享磁碟以及所有共享該磁碟的虛擬機器執行策略更改。