VMware vSphere 7.0版捨棄了傳統VMKlinux驅動轉換層,全面改用原生驅動程式,因此一些傳統驅動程式支援度上加減會造成一些衝擊。
▲左為VMware ESXi傳統驅動程式架構,中間會經過兩層轉譯。右為5.5版之後導入的原生驅動程式架構,以原生驅動程式來與硬體做溝通,可提升整體效能。而該架構自7.0版全面導入,捨棄左邊的架構
一些老型號的網路卡與磁碟控制卡(含HBA或RAID卡),就因為7.0版不再提供這些硬體原生驅動程式而導致無法支援。因此想要從6.x升級到7.0的用戶,得先得知自己的伺服器是否符合系統最低需求,以免一升級上去,發現許多硬體無法支援,影響整體運作,免得發生如下慘劇:網卡不能用就不能連外,陣列卡不能用就datastore 消失。
有關於VMware 各版本的I/O裝置相容性列表,可以到VMware Compatibility Guide 去搜尋,以當成升級參考標準。然而市面上硬體周邊很多,因此該列表也不一定完全沒問題。這次我們就測試老牌的陣列卡,來看看是否能從VMware ESXi 6.7升級到7.0,因為下列這些陣列卡在VMware官方標示為只支援到6.7 U3,實際上是否如此呢? 以下就來實測一下。
1. IBM ServeRAID M1115陣列卡 (等同LSI MegaRAID SAS 9223-8i,主晶片為LSI SAS 2008)
2. IBM ServeRAID M5014陣列卡 (等同LSI MegaRAID SAS 9260-8i,主晶片為LSI SAS 2108)
3. IBM ServeRAID M5110陣列卡 (等同LSI MegaRAID SAS 9270-8i,主晶片為LSI SAS 2208)
▲從VMware Compatibility Guide查詢,LSI SAS 2008 (SKINNY)、2108 (M5014)、2208 (Thunderbolt)等陣列卡,最高僅支援到ESXi 6.7 U3
▲本次測試的IBM ServeRAID老陣列卡家族,從左至右: M1115 (SAS 2008)、M5014 (SAS 2108)、M5110 (SAS 2208)、M5110 IT卡 (認成SAS 2308)。猜猜誰可以支援到VMware ESXi 7.0?
插播:老牌陣列卡IT/IR模式,該安裝成BIOS或UEFI模式?
在測試ESXi 7.0硬體相容性之前,我們先插播一下,介紹一下IBM ServeRAID M1115和其兄弟ServeRAID M1015控制卡 (等同LSI MegaRAID SAS 9220-8i,主晶片為LSI SAS 2008)。這些老介面卡都是採用LSI SAS 2008晶片,且出貨時韌體為IR (Integrated RAID)模式,就是硬體輔助之軟體RAID模式,支援RAID 0/1/10模式,另可買升級套件來支援到RAID 5。這張卡在IR模式下是可以用Legacy BIOS或UEFI模式來安裝作業系統的,只是其效能就僅限在6Gbps與硬碟本身的傳輸速度,有關於LSI SAS 2008的IR效能測試的部份,可以參考這篇。
▲LSI陣列卡的BIOS設定工具畫面,在韌體版本上可以看到是IR模式還是IT模式
除了IR模式,坊間還提供把此卡刷成IT (Initiator Target)模式,變成一般的HBA (Host Bus Adapter)或是SAS/SATA硬碟控制卡,以利安裝使用ZFS/BTRFS等為主的*nix作業系統。至於在韌體檔案的選擇方面,一般都挑LSI 9211-8i專用的P14 Firmware檔案。但刷成IT模式之後,因為缺少UEFI韌體驅動程式,因此在伺服器的BIOS設定中,記得要先關閉該卡所在之SLOT槽位的UEFI Driver載入功能,以免卡在BIOS無法順利開機 (必要時還得先拔卡,進BIOS關閉UEFI選項,再插回此卡,使用上較不方便)。當然在作業系統安裝時,也必須選擇安裝成Legacy BIOS模式 (無法使用UEFI模式),所以無法支援安裝在大於4GB以上的HDD或SSD。這點,在使用時得注意一下!
ESXi 7.0老牌陣列卡相容性測試
回到本文主題,要驗證老牌陣列卡是否能被ESXi 7.0支援,我們以IBM System x3550 M4伺服器主機,搭配32GB記憶體,以及Samsung NF1 PM983 SSD,來測試VMware ESXi 6.7與7.0對於M1115、M5014與M5110陣列卡的支援度。選擇IBM這台機器,主要是其UEFI/Legacy BIOS模式支援度非常完整,可獨立關閉不同SLOT槽位的OpROM載入模式,並可指定是要哪個裝置以哪種模式來開機,並可支援NVMe SSD,因此很適合拿來進行各種作業系統的測試。
▲ VMware ESXi 6.7 主機文字介面
▲ VMware ESXi 7.0主機文字介面
(1) M1115陣列卡 (基於LSI SAS 2008晶片):
以下先測試M1115陣列卡,這張卡是基於LSI SAS 2008晶片,可 支援8組SATA/SAS硬碟,並具備RAID 0/1/10等陣列模式。測試過程中,VMware ESXi 6.7其內建megaraid_sas驅動程式可輕鬆辨識到該硬體,因此也可以抓到硬碟陣列,正常運作的。
▲ VMware ESXi 6.7 下,M1115在硬體標籤內會被辨識成MegaRAID SAS SKINNY Controller
▲ VMware ESXi 6.7 下,M1115在儲存區的介面卡欄內會被掛入,驅動程式為 megaraid_sas
▲ VMware ESXi 6.7 下,M1115規劃好的RAID碟,也能正常掛載使用
從上面截圖可知,M1115 (或M1015)這類LSI SAS 2008的陣列卡/硬碟控制卡,在VMware ESXi 6.7下都可正常運作。
那麼ESXi 7.0呢? 由於7.0版已將 megaraid_sas 驅動程式移除,因此以下實測時,雖然有辨識到M1115陣列卡,但因為沒掛驅動程式,因此硬碟也抓不到。
▲ VMware ESXi 7.0 下,安裝程式會警告M1115 (Device VID/PID: 1000:0073)是無法支援的,至於CPU則是下一版才不支援(可以不理它)
▲ VMware ESXi 7.0 下,M1115在硬體標籤內會被辨識成ServeRAID M1115 SAS/SATA Controller
▲ VMware ESXi 7.0 下,M1115在儲存區的介面卡欄並沒有被偵測出來
▲ VMware ESXi 7.0 下,M1115規劃好的RAID碟,無法掛載進來使用
(2) M5014陣列卡 (基於LSI SAS 2108晶片):
接下來測試M5014陣列卡,這張卡是基於LSI SAS 2108晶片,同樣可支援8組SATA/SAS硬碟,並具備RAID 0/1/10等陣列模式。測試過程中,VMware ESXi 6.7其內建megaraid_sas驅動程式可輕鬆辨識到該硬體,因此也可以抓到硬碟陣列,正常運作的。
▲ VMware ESXi 6.7 下,M5014在硬體標籤內會被辨識成MegaRAID SAS GEN2 Controller
▲ VMware ESXi 6.7 下,M5014在儲存區的介面卡欄內會被掛入,驅動程式為 megaraid_sas
▲ VMware ESXi 6.7 下,M5014也可以抓到RAID碟,並可加入VMware的儲存池
從上面截圖可知,M5014 (或M5015)這類LSI SAS 2108的陣列卡/硬碟控制卡,在VMware ESXi 6.7下都可正常運作。
那麼ESXi 7.0呢? 由於7.0版已將 megaraid_sas 驅動程式移除,因此以下實測時,雖然有辨識到M5014陣列卡,但因為沒掛驅動程式,因此硬碟也抓不到。
▲ VMware ESXi 7.0 下,M5014在硬體標籤內會被辨識成MegaRAID SAS 2108 [Liberator]
▲ VMware ESXi 7.0 下,M5014在儲存區的介面卡欄並沒有被偵測出來
▲ VMware ESXi 7.0 下,M5014規劃好的RAID碟,無法掛載進來使用
(3) M5110陣列卡 (基於LSI SAS 2208晶片):
最後來看M5110陣列卡,則是基於LSI SAS 2208晶片,可支援8組SATA/SAS硬碟,並具備RAID 0/1/5/10/50等陣列模式,在ESXi 6.7下是完全可以支援的。
至於ESXi 7.0,由於VMware官方並沒將M5110陣列卡列在相容性列表上,但很有趣的是Dell PERC H710陣列卡也是基於LSI SAS 2208晶片,但有些型號就有列入7.0的相容性列表。有鑑於此,我們一樣來實測一下,看看M5110是否也能被ESXi 7.0支援d。
▲ VMware ESXi 7.0 下,安裝程式可以抓到M5110陣列卡所對應的HDD,因此可以順利安裝
▲ VMware ESXi 7.0 下,M5110在儲存區的介面卡欄內會被掛入,辨識成MegaRAID SAS Thunderbolt Controller,驅動程式為 lsi_mr3
▲ M5110規劃好Virtual Drive,在VMware ESXi 7.0 下可以納入儲存區,並新增至資料存放區以利VMware使用
實測結果,從上面截圖可知,M5110這類LSI SAS 2208的陣列卡,除了在VMware ESXi 6.7可正常運作外,實測在ESXi 7.0下也是可以的。其驅動程式採用lsi_mr3,且可正確辨識與運作。
額外測試部份,就是拿IBM M5110魔改成IT模式,刷入LSI 9207-8i的韌體,會辨識成LSI SAS 2308晶片,這張卡在VMWare 7.0則會掛入 lsi_msgpt2 驅動程式,並可以正常運作。然後IT卡比較不適合VMware環境使用,比較適合Linux或Proxmox VE這類環境使用。因此,這裡的測試結果僅供參考。
▲ 額外測試部份,在VMware ESXi 7.0 下,M5110 IT卡模式,可以掛入,並辨識成Avago (LSI) Logic Fusion-MPT 6GSAS SAS2308_2 PCI-Express卡,驅動程式為 lsi_msgpt2
拿ESXi 6.7給7.0用或修改VID/PID是否可行
那麼,M1115/1015或是M5014這種基於LSI SAS 2008/2108的老控制卡,是否可以透過「將6.7的megaraid_sas驅動程式封裝至7.0的ISO安裝檔」,讓ESXi 7.0也能啟用該卡來運作呢?經過我們實測,結果是:不行! 因為該驅動程式需要ESXi 6.7的vmkapi等dependencies資料庫,不管是用Online Patch方式或是整合到Offline Bundle後製作成ISO安裝的方式,都是不行的,所以裝舊版驅動程式這招無效!
▲ 嘗試以提取6.7內的megaraid_sas驅動程式,嘗試整合進7.0的Offline Bundle,並製作成安裝ISO檔的方法,會有以上警告,表示無法符合VMware ImageProfile的要求,由此可知這招行不通!
▲ 嘗試以這個改過的ESXi 7.0安裝ISO檔來安裝,結果所有磁碟控制卡都抓不到了,更慘! (上述只有偵測到USB外接HDD)
如果上述那招不行,那麼可否使用坊間修改lsi_mr3或lsi_msgpt2驅動程式裡面的PCI VID (Vendor ID)與PID (Product ID)以及Subvendor VID/PID的方法,來讓ESXi 7.0也能啟用這些老卡來運作呢?經過我們實測,結果還是:不行! 無法辨認到這些卡,這是因為新的Native驅動程式無法驅動傳統介面卡,因此不管是用Online Patch方式或是整合到Offline Bundle後製作成ISO安裝的方式,也都是行不通的,所以改VID/PID這招還是無效!
▲ 坊間有嘗試修改驅動程式所對應的硬體VID/PID方法,我們拿lsi_mr3驅動程式來修改mapping table
▲ 接著修改lsi_mr3.ids 的VID/PID String,然後將驅動程式封包起來,重開機。結果ESXi 7.0有顯示新的名字,但就是無法啟用
小結:使用ESXi 7.0前,建議先裝測試機實際驗證
VMware ESXi有提供升級安裝功能,不過在升級前,建議還是得先做好整機備份,或是另外安裝一台測試機,來實際驗證既有硬體周邊是否相容,這樣會比較省事。以這次M5110陣列卡的實測結果,是確定可以在ESXi 7.0下運作的,至於M1115/M1015控制卡,就最多只能在6.7下運作。當然用戶們可以找社群的vib驅動程式來嘗試啟用看看,例如網路卡部份,就有不少社群版驅動程式,可以搭配VMware ESXi使用。
▼本次老牌陣列卡搭配VMware 6.7/7.0相容性的測試結果
介面卡 |
IBM M5110 |
IBM M5110 (魔改) |
IBM M5014 |
IBM M1115 / M1015 |
主控制晶片 |
LSI SAS 2208 |
認成LSI SAS 2308 |
LSI SAS 2108 |
LSI SAS 2008 |
等同LSI卡 |
LSI 9270-8i |
LSI 9207-8i |
LSI 9260-8i |
LSI 9211-8i |
IT / IR Mode |
IR (HW RAID) RAID 0/1/5/10/50 |
IT
|
IR RAID 0/1/5/10/50 |
IR RAID 0/1/5 |
VMware ESXi支援 |
6.7 U3 / 7.0實測可 |
6.7 U3 / 7.0實測可 |
6.7 U3 |
6.7 U3 |
掛載VMware驅動 |
6.7: lsi_mr3 7.0: lsi_mr3 |
6.7: lsi_msgpt2 7.0: lsi_msgpt2 |
6.7: megaraid_sas 7.0: <no driver> |
6.7: mpt2sas 7.0: <no driver> |
BIOS/UEFI |
BIOS/UEFI |
BIOS/UEFI |
BIOS/UEFI |
BIOS/UEFI |
適用OS |
VMware/Windows |
Linux/PVE… etc… |
VMware/Windows |
VMware/Windows |
PCI VID/PID Subvendor ID |
ID=1000 005b subID=1014 040b |
ID=1000 0087 subID =1000 3020 |
ID=1000 0079 subID=1014 03c7 |
ID=1000 0072 subID=1000 3020 |
總之,這次我們實際測試老陣列卡在ESXi 7.0是否支援的結論,就是LSI 2208以後的晶片可支援,之前晶片不支援。 以上測試結果,提供給各用戶們參考!
OSSLab伺服器超市,軟體服務幫您搞到好!
那麼,若想要組一台超高C/P值、又能與VMware ESXi 7.0的伺服器主機,怎麼選比較好呢? 以下是我們OSSLab的推薦。
● OSSLab Super Server Market → https://osslab.tv/server-market-2201/
提供IBM x3550 M4與Dell R430兩款可支援VMware ESXi 7.0的伺服器主機,還有各式周邊配件,任您挑選。
● 買SSD送Server 「買小送大」活動 → https://osslab.tv/nf1-x3550-combo/
提供使用者「買SSD送Server」的特惠組合活動,等於買SSD就可以獲得一台伺服器,可支援到VMware ESXi 7.0。
OSSLab的伺服器超市,提供現點現組、價格透明的優勢,讓消費者組伺服器,就像去超市買東西一樣簡單。此外,在軟體方面,也可以選擇預裝各式作業系統,並幫用戶搞定各種相容性與驅動程式等問題,讓用戶買到後就可享受到開箱即用的體驗(OOBE),不須費心在上面繁雜的技術上,歡迎參觀選購。