SCSI 控制器及其他 VMware 控制器類型
儲存控制器用於將磁碟機連接至電腦。儲存控制器有不同的標準與類型,例如 IDE、SATA 和 SCSI 控制器。在虛擬機器中,虛擬儲存控制器負責將虛擬磁碟與實體磁碟連接至這些機器。 VMware 虛擬機器可選用多種儲存控制器來連接硬碟及 CD/DVD 光碟機。
每種儲存控制器各有其優點與限制,但這篇部落格文章主要聚焦於 SCSI 控制器。接著,我將比較 SCSI 控制器與 VMware vSphere 虛擬機器設定中可用的其他類型儲存控制器,以找出在特定情況下最適合的儲存控制器。
關於儲存控制器的基本資訊
當您建立 VMware vSphere 虛擬機器時,系統預設會在虛擬機器配置中建立至少一個虛擬儲存控制器。如果虛擬磁碟與 CD/DVD 光碟機連接至不同的儲存控制器,則建立虛擬機器後,您將擁有兩個儲存控制器。 您亦可在建立虛擬機器時,新增更多儲存控制器以連接磁碟機。
當您透過 VMware Host Client 或 VMware vSphere Client 在 ESXi 主機上建立虛擬機器,或在 VMware 工作站中建立時,系統會自動選取最佳的儲存控制器,以提供所選來賓作業系統最佳的效能。正如我們將看到的,這使得在虛擬機器建立精靈中選取適當的來賓作業系統成為一項非常重要的任務。
選取正確儲存控制器的重要性再怎麼強調都不為過。 較舊的作業系統可能不支援較新的儲存控制器類型。因此,在選擇最佳預設控制器時,應考量所選客體作業系統所包含的驅動程式。虛擬機器硬體相容性(VMware 硬體版本)與裝置類型(虛擬硬碟或 DVD-ROM)也是重要因素。較新的硬體版本支援更多儲存控制器。
在變更用於開機磁碟的儲存控制器之前,您應確保客體作業系統 (OS) 支援此控制器類型,且客體作業系統中已安裝適當的驅動程式。將儲存裝置連接至多個儲存控制器時,相較於將所有磁碟機連接至單一儲存控制器,輸入/輸出效能可獲得提升。因此,若虛擬機器 (VM) 使用多個 SCSI 控制器,建議將虛擬磁碟分散配置於這些 SCSI 控制器上,以獲得更佳的效能。
新增儲存控制器的另一種情況是,當連接至某個控制器的磁碟裝置數量超過其支援的上限時。在此情況下,新增控制器的操作方式便顯得至關重要。 部分控制器可透過"熱添加"特點加入虛擬機器配置;而其他類型的儲存控制器則需要執行"冷操作",也就是先關閉虛擬機器的電源。
虛擬機器上第一個儲存控制器的預設編號為 0。若新增第二個儲存控制器,則分配編號為 1,依此類推。後續的控制器將依序編號。 連接至儲存控制器的儲存裝置編號同樣從 0 開始。例如,若您的虛擬機器擁有一個儲存控制器,且此控制器連接了一個虛擬磁碟,則該磁碟編號為 (0:0)。若您在同一控制器上新增第二個虛擬磁碟,則編號為 (0:1)。若您將另一個虛擬磁碟連接至第二個儲存控制器,在此情況下,該磁碟的編號為 (1:1)。 連接節點的完整名稱與編號包含控制器介面以及控制器與磁碟的編號,例如 SCSI (0:0)、SCSI (1:3)、SATA (1:7)、IDE (0:0) 等。SCSI (z:7) 無法在控制器選項中指派,因為此編號已預留給虛擬裝置節點。
可用的 VMware 儲存控制器
目前市面上有多種儲存控制器可供選擇。適用於 VMware vSphere 虛擬機器的儲存控制器類型包括 SCSI、IDE、AHCI SATA 以及 NVM Express (NVMe)。
在 SCSI 控制器中,共有四種子類型:
- BusLogic Parallel
- LSI Logic Parallel
- LSI Logic SAS
- VMware Paravirtual SCSI
每台 VMware 虛擬機器最多支援四個 SCSI 控制器。單一 SCSI 控制器連接的裝置數量上限為 15 個。
BusLogic Parallel
此 VMware SCSI 控制器是首批為 VMware vSphere 虛擬機器進行模擬的儲存控制器類型之一。較舊的 Windows 版本預設即包含此控制器類型的驅動程式,因此可在虛擬機器配置中使用此控制器,於虛擬機器上安裝舊版 Windows(例如 Windows 2000)。該 BusLogic Parallel SCSI 控制器現已被視為舊式控制器。系統不支援磁碟容量超過 2 TB 的虛擬機器。驅動程式將佇列深度限制為 1,這會影響效能。若您需要更高的虛擬機器儲存效能,請考慮使用 LSI Logic 並行 SCSI 儲存控制器。
LSI Logic 平行
LSI Logic Parallel 前身為 LSI Logic SCSI 控制器。這是另一款自 VMware 虛擬化平台最初版本起便已提供的 VMware SCSI 儲存控制器。該 LSI Logic Parallel SCSI 控制器同樣經過模擬,並獲得眾多作業系統的支援,包括舊版作業系統,因為這些系統預設即包含此儲存控制器的驅動程式。這些驅動程式支援 32 的佇列深度,這使得此 VMware SCSI 控制器成為許多客體作業系統的常見選擇與預設選項。 LSI Logic Parallel 在建立 Windows Server 2003 虛擬機器時,此選項會預設被選中,因為此儲存控制器支援 SCSI2 指令,而 Windows Server 2003 亦支援此 SCSI 標準。
LSI Logic SAS
該 LSI Logic Parallel 儲存控制器演變為 LSI Logic SAS 控制器。自 Windows Server 2008 起,該 LSI Logic SAS 建立新虛擬機器時,預設會選取此控制器,因為 LSI Logic SAS 此控制器相容於 SCSI3 指令,且較新的 Windows 作業系統亦支援此新標準。在許多使用情境下,建議使用此 VMware SCSI 控制器。
相容性:ESXi 4.x 或更新版本。
VMware 半虛擬化 SCSI
與本篇部落格文章中先前所述的 VMware SCSI 控制器不同,此控制器具備虛擬化支援能力,並支援高吞吐量。相較於模擬的 VMware 儲存控制器,其 CPU 負載較低。目前尚無與之相當的實體硬體 VMware paravirtual SCSI 控制器(PVSCI),因此許多作業系統(主要是較舊的作業系統)無法直接支援此控制器。必須手動安裝驅動程式,才能讓作業系統與該 VMware paravirtual SCSI 控制器。採用此控制器是為了實現高 IOPS 效能(每秒輸入/輸出操作次數)。
若連接至某個的虛擬磁碟存在快照,則 paravirtual SCSI 若主機上的控制器出現問題,或記憶體分配過度,則在虛擬機器中使用此類儲存控制器時,效能可能會低於預期。
相容性:ESXi 4.x 或更新版本。支援 Windows Server 2003 或更新版本。
需要 H2
請注意,若在 VMware 虛擬機器已安裝客體作業系統的情況下變更儲存控制器,且客體作業系統上未安裝所需的驅動程式,可能會導致無法存取現有的虛擬磁碟。 VMware Tools 必須安裝在客機作業系統上,因為 VMware Tools 包含與 VMware paravirtual SCSI 控制器。
當您在虛擬機器上安裝 Windows,且系統磁碟連接至 VMware paravirtual SCSI 控制器,您可能需要在安裝過程中載入包含驅動程式的虛擬軟碟映像檔,並為該控制器選取驅動程式,以便 Windows 能偵測到安裝磁碟。
若要新增 VMware paravirtual 若要在虛擬機器配置中新增 SCSI 控制器,您可能需要新增其中一種受良好支援的 SCSI 控制器,例如 LSI logic 控制器、安裝 VMware Tools、關閉虛擬機器、新增 VMware paravirtual 將 SCSI 控制器新增至虛擬機器設定,最後將虛擬磁碟掛載至 VMware paravirtual SCSI 控制器(或將現有的儲存控制器類型變更為 paravirtual SCSI 控制器)。
AHCI SATA
此儲存控制器為新功能,自 VMware vSphere 5.5 搭配 Virtual Hardware 10 起便已提供。您可以透過 AHCI SATA 儲存控制器,將大量儲存裝置(包括大容量虛擬磁碟)連接至 VMware 虛擬機器。SATA 儲存控制器可用於作為開機磁碟,以啟動來賓作業系統 (OS)。 請確認您的作業系統支援 AHCI SATA 控制器。其效能不如 PVSCI 或 LSI Logic 控制器。對於對磁碟效能要求較高的應用程式,建議使用其他控制器。虛擬機器的 CD/DVD 光碟機通常預設使用 SATA 控制器。
相容性:ESXi 5.5 或更新版本的虛擬硬體相容性。每台虛擬機器最多支援四個 SATA 控制器。單一 SATA 控制器最多可連接 30 個儲存裝置(0-29)。
NVMe
NVM Express 或 NVMe(非揮發性記憶體)控制器是一種專為 SSD 儲存裝置設計的控制器。NVMe 協定適用於非磁性硬碟,旨在提供最佳效能與多佇列通訊功能。VMware vSphere 支援 NVMe 協定,您可在虛擬機器設定中新增 NVMe 儲存控制器。 最大佇列數為 65535,最大佇列深度為 64000。
需求:VMware vSphere 6.5 及 VM 硬體版本 13。客體作業系統必須支援 NVMe。最多支援四個 NVMe 控制器,且單一 NVMe 控制器可連接 15 個磁碟(0-14)。
IDE 儲存控制器
模擬的 IDE 儲存控制器是最早期的儲存控制器類型之一。每台虛擬機器最多可連接一個 IDE 控制器,並支援四個儲存裝置(兩個通道——主通道與副通道,每個通道各包含兩個裝置——主裝置與從裝置)。不支援磁碟熱插拔與調整大小。 若要編輯磁碟配置,您需要先關閉虛擬機器。IDE 控制器採用 ATAPI 介面。
您可以連接至虛擬機器的磁碟總數取決於控制器類型,詳見下表。
一般建議
針對從效能與相容性角度選配用於設定 VMware vSphere 虛擬機器的儲存控制器,有以下一般性建議。
若您不確定該為虛擬機器選用哪種 SCSI 控制器,請依照以下順序(優先順序)進行:
VMware Paravirtual (PVCSI)(若客體作業系統支援此功能)LSI Logic SAS(若客體作業系統支援此功能)LSI Logic ParallelBusLogic Parallel(如果其他方法都行不通的話)
若要變更開機磁碟的儲存控制器,必須確保儲存控制器驅動程式已安裝於開機模式中。若虛擬機器設定為使用 BIOS,您可能需要修改虛擬機器的設定及 BIOS 設定。若虛擬機器設定為使用 UEFI,變更開機磁碟儲存控制器的選項會更為靈活,且在大多數情況下無需進行額外設定。
請參閱相容性表格,以確認在變更虛擬機器儲存控制器設定後,客體作業系統是否仍能正常開機。
另請參閱有關虛擬機器及客體作業系統適用不同儲存控制器類型的通用建議表格。
VMware 儲存控制器的設定
既然我們已經熟悉 VMware vSphere 中可用的儲存控制器類型,接下來讓我們來看看如何在 VMware vSphere Client 中編輯儲存控制器設定。在我的範例中,有一台配備預設儲存控制器的虛擬機器,且該虛擬機器上已安裝 Ubuntu Linux。
該 Virtual machine.Configuration.Add or remove device 編輯虛擬機器儲存控制器設定需要特定權限。
開啟 VMware vSphere Client,前往 Hosts and Clusters,選取所需的主機,然後選取所需的虛擬機器。右鍵點擊該虛擬機器,並在彈出的選單中點選 Edit Settings. 您也可以點擊 Actions > Edit Settings.
變更控制器類型
在 Edit Settings 在視窗中,我看到我的虛擬機器使用 SCSI controller 0 而 SCSI 儲存控制器類型是 LSI Logic Parallel. 以下是 SATA controller 0,此功能用於將虛擬 CD/DVD 光碟機連接至虛擬機器。點擊 SCSI 控制器以展開選項,然後在 Change Type 在該行上,點擊下拉式選單以變更現有儲存控制器的類型。按下 OK 以儲存設定。請注意,虛擬機器和客體作業系統必須支援所選的控制器。若此儲存控制器已連接開機磁碟,此點尤為重要。
新增儲存控制器
若要在虛擬機器配置中新增一個儲存控制器,請在 Edit Settings 點擊視窗 Add New Device,並在彈出的選單中選取所需的控制器(在 Controllers (區段)。在我的範例中,我可以选择 NVMe 控制器、SATA 控制器或 SCSI 控制器。現在讓我們新增 SATA controller 至虛擬機器設定。
註: 若您想使用 USB 直通功能,並將實體 USB 裝置(例如 USB 硬碟或隨身碟)直接連接至虛擬機器,則應新增 USB 控制器(USB 裝置必須連接至主機的實體 USB 連接埠)。
SATA controller 1 已新增。最初,新控制器命名為 New SATA Controller. 點擊後 OK 要儲存虛擬機器設定時,SATA 儲存控制器名稱會儲存為 SATA controller 1.
將虛擬磁碟連接到儲存控制器
讓我們新增一個虛擬硬碟,並將此虛擬硬碟連接到 SATA 儲存控制器。在 Edit Settings 視窗,點擊 Add New Device > Hard Disk.
新硬碟現已顯示在虛擬機器設定中,但您需要設定虛擬磁碟選項,例如磁碟大小、 精簡式或完整式配置,以及位置,並在 Virtual Device Node 選項。如有需要,您也可以設定共用選項、磁碟模式及 IOPs 限制。點擊後 OK 要儲存設定,請 New Hard Disk 名稱已儲存為 Hard Disk 2.
若需將現有的虛擬磁碟連接到另一個儲存控制器,請遵循相同原則——開啟虛擬機器設定,展開磁碟設定,並編輯虛擬裝置節點選項。
如果我將新的虛擬硬碟連接到 SATA controller 0 連接 CD/DVD 光碟機的埠上,我可以选择 SATA (0:1)、SATA (0:2) 或其他 (0:x) 節點,但不能選擇 SATA (0:0),因為虛擬 DVD-ROM 已佔用 SATA (0:0)。如果我將一個新的虛擬磁碟連接至新的 SATA controller 1,然後我就可以選擇 SATA (1:0)、SATA (1:1) 以及此儲存控制器上的任何其他可用節點。
編輯 VMX 設定檔
您可以透過編輯 VMX 設定檔,來變更虛擬機器 (VM) 的 SCSI 控制器類型及其他儲存控制器類型。此方法是透過 VMware vSphere Client 圖形使用者介面 (GUI) 進行設定的替代方案,並可在命令列介面中使用。一般建議您使用 VMware vSphere Client,僅在特殊使用情境下才手動編輯 VMX 檔案。
在新增任何額外的儲存控制器和虛擬磁碟之前,讓我們先來探索這台 Ubuntu 虛擬機器的初始 VMX 設定檔。在下方的設定片段中,僅顯示與儲存設定相關的行。完整的設定檔還包含其他設定,但本文將略過這些內容,僅專注於儲存設定和儲存控制器。
config.version = "8"
virtualHW.version = "17"
vmci0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
scsi0.present = "TRUE"
sata0.present = "TRUE"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "blog-Ubuntu1.vmdk"
sched.scsi0:0.shares = "normal"
sched.scsi0:0.throughputCap = "off"
scsi0:0.present = "TRUE"
sata0:0.deviceType = "cdrom-raw"
sata0:0.clientDevice = "TRUE"
sata0:0.fileName = "emptyBackingString"
sata0:0.present = "TRUE"
displayName = "blog-Ubuntu1"
guestOS = "ubuntu-64"
最有趣的配置行是:
scsi0.virtualDev = "lsilogic" 是 LSI Logic Parallel 用於連接虛擬硬碟的 SCSI 控制器。
scsi0:0.deviceType = "scsi-hardDisk" 是連接至 SCSI (0:0) 的儲存裝置類型。
scsi0:0.fileName = "blog-Ubuntu1.vmdk" 是連接至節點 SCSI (0:0) 的虛擬磁碟檔案名稱。
在我新增第二個 SATA 儲存控制器以及連接至該 SATA 控制器的第二個虛擬磁碟後,VMX 設定檔中新增了以下幾行:
sata1.present = "TRUE"
sata1:0.fileName = "blog-Ubuntu1_1.vmdk"
sched.sata1:0.shares = "normal"
sched.sata1:0.throughputCap = "off"
sata1:0.present = "TRUE"
如果我們更改 LSI Logic Parallel SCSI 控制器連接至 LSI Logic SAS 在虛擬機器設定中,我們應編輯該行
scsi0.virtualDev = "lsilogic"
至
scsi0.virtualDev = "lsisas1068"
讓我們來看看與儲存控制器(包括 SCSI 控制器)相關的 VMX 配置參數。您可能需要根據您的虛擬機器配置,將 0、0:0 及其他 (x:x) 值修改為適當的數值。
scsi0.present = "" – 指定是否存在 SCSI 控制器 0(可能的值為 TRUE 或 FALSE).
scsi0:0.deviceType = "" 用於定義 SCSI ID。支援的值包括 "scsi-hardDisk", "PhysicalDrive0", "rawDisk", "scsi-passthru", "scsi-nonpassThru-rdm", "scsi-passthru", "scsi-passthruscsi-passThru-rdm".
scsi0:0.fileName = "diskname.vmdk" – 指定附加至已定義虛擬裝置節點(此處為 SCSI(0:0))之虛擬磁碟檔的檔名。若虛擬磁碟檔的位置與目錄相同,設定 "diskname.vmdk" 這樣就足夠了。如果虛擬磁碟檔案的位置在其他目錄中,您必須指定 VMDK 檔案的完整路徑。
sched.scsi0:0.throughputCap = "off" – 已停用頻寬與傳輸量限制。此參數的限制設定範例如下: sched.scsi0:0.throughputCap = 80IOPS, 10KIOps, 4GBps等等。
scsi0:0.present = "" – 用於判定 SCSI 儲存裝置是否存在。可設定為 TRUE 或 FALSE.
scsi0.virtualDev = "" – 定義 SCSI 控制器的類型。
此參數的所有支援值為 scsi0.virtualDev = "" 定義 SCSI 控制器類型的參數:
- buslogic – BusLogic SCSI
- lsilogic – LSI Logic SCSI
- lsisas1068 – LSI Logic SAS
- pvscsi – VMware Paravirtual SCSI
您可以使用本部落格文章中所述的流程,來編輯在 VMware 工作站 並使用 VMware Player,將儲存裝置連接到所需的儲存控制器。您也可以透過設定 VMware 家庭實驗室 在 vSphere 6.7 中以及 vSphere 7.
結論
VMware 儲存控制器用於將儲存裝置(例如虛擬磁碟)連接至虛擬機器。這篇部落格文章探討了各種虛擬儲存控制器類型,包括 SATA、IDE、NVMe 和 SCSI 儲存控制器,以及如何在 VMware vSphere 客戶端的使用者介面中設定這些控制器。 儲存系統的效能以及來賓作業系統能否正常運作,取決於是否選用了正確的控制器類型。預設情況下,VM 設定中會自動選用最佳的儲存控制器,但您隨時可以編輯 VM 設定,變更或新增其他類型的控制器。
請務必保護您的 VMware VM,並準時執行備份。建議採用 NAKIVO Backup & Replication,以保護您的虛擬機器及其他工作負載。









