我可以在 Solaris 上使用 virtualbox 和 zfs zvols 來虛擬化 Windows 和 Linux 嗎?

我可以在 Solaris 上使用 virtualbox 和 zfs zvols 來虛擬化 Windows 和 Linux 嗎?

我正在考慮在 Solaris 上使用 virtualbox(供家庭使用)建立一個系統來虛擬化 Windows Server 2016 和 CentOS 6,以便利用 zfs 的可靠性。

我計劃購買一塊帶有 1tb 內存的 DP ws/伺服器主機板,以及一堆 WD Red 驅動器。

我對允許 Windows VM 存取 GPU 資源也感興趣。在這種情況下這可能嗎?

是否可以託管使用 zfs zpool 或 vdev 的 Windows/Linux VM,而不是直接存取硬體進行檔案系統存取?

我實際上只需要 Windows 和 Linux 作業系統,但考慮使用 Solaris 主機只是為了獲得 zfs 的優勢及其與 virtualbox 的兼容性。

有沒有更好的方法來做到這一點,或者我選擇了最好的選擇?

無論這是最好的方法還是有更好的方法,您建議的任何方法都有哪些問題?

我的預算有限,如果有可用的免費軟體選項,我更願意把錢花在硬體上而不是軟體上。

我的另一個選擇是添加帶有 raid 6 的硬體 sas 適配器,並使用 Windows Server 2016 作為 virtualbox 和 linux 以及任何其他虛擬機器的主機,但 ntfs 不如 zfs 可靠...

編輯

我的目標是:

  1. 擁有一台物理機。

  2. 最大限度地減少因硬碟故障和其他檔案系統問題而導致資料遺失的可能性。

  3. 運行 Windows 2016 伺服器作業系統以及一些應用程序,例如 Exchange、sql server。這裡需要GPU

  4. 運行修改後的 CentOS 系統 (FreePBX)。

  5. 運行一些其他虛擬機,最好也有 GPU 支援。

  6. 補充並最終取代 Synology RS812+ 盒子。

  7. 最大限度地減少軟體支出,為我的預算提供更多/更好的硬體。

我正處於計劃階段,所以這個階段我可以考慮任何事情。

我對 Solaris 主機的想法是,整個檔案系統將是 zfs,因此比虛擬機來賓可能允許的更好的故障保護 - 除非我在某個地方誤解了某些內容。替代方案似乎會導致至少某些檔案系統變成非 zfs,可靠性較低。

答案1

我對允許 Windows VM 存取 GPU 資源也感興趣。在這種情況下這可能嗎?

要直接直通 PCIe 顯示卡,您將需要:

  • 兩個 PCIe 顯示卡(如果使用某些技巧,例如在啟動時透過腳本將卡片從虛擬機器管理程式系統移動到賓系統,則需要一個)
  • 支援 Intel VT-d 或 AMD Vi(以前稱為 IOMMU)的主機板
  • 支援它的管理程式軟體

看來不幸的是,Virtualbox目前不支援。如果這是一個硬性需求,您可能需要在 Linux 或 illumos、VMware ESXi 或 Microsoft Hyper-V 上使用 KVM,它們都支援它(儘管需要不同的設定工作)。

是否可以託管使用 zfs zpool 或 vdev 的 Windows/Linux VM,而不是直接存取硬體進行檔案系統存取?

對的,這是可能的。這裡有相關指令,摘自 Johannes Schlüter 的部落格文章:

# zfs create -V 10G tank/some_name
# chown your_user /dev/zvol/rdsk/tank/some_name
# VBoxManage internalcommands createrawvmdk \
  -filename /home/your_user/VBoxdisks/some_name.vmdk \
  -rawdisk /dev/zvol/rdsk/tank/some_name
# VBoxManage registerimage disk /home/your_user/VBoxdisks/some_name.vmdk

或者你可以使用康星透過 iSCSI 為 zvol 提供服務。

雖然這只會產生輕微的額外開銷,並且在本地情況下沒有直接優勢,但當您想要分散並例如添加另一個(冗餘)存儲伺服器或將存儲移動到單獨的盒子時,您可能會從中受益。

在您的具體情況下,我不會這樣做,但存在這個選項(也可以使用NFS 而不是iSCSI,但是當使用zvols 而不是檔案系統時,如果兩者都配置正確,則不會立即產生優勢) 。

有沒有更好的方法來做到這一點,或者我選擇了最好的選擇?

  • 如果你想使用 Virtualbox,這就是我會做的
  • 如果您對虛擬機器管理程式比較靈活,可以看看 SmartOS(專為託管虛擬機器而建置的小型幾乎無狀態的伺服器作業系統中的 ZFS、Zone 和 KVM)
  • 如果您需要顯示卡的PCIe 直通,您可能需要使用Linux+KVM、ESXi 或Hyper-V 作為虛擬機管理程序,虛擬化Solaris/illumos 儲存虛擬機,將磁碟直通到它,並透過NFS 或iSCSI 將它們傳回到伺服器。這也稱為一體式儲存裝置 (AiO),我建議閱讀有關該概念的內容gea 的優秀手冊(請參閱頂部連結的 PDF)。聽起來很複雜,但一旦設置完畢,就會出奇的簡單和靈活,因為您可以隨時將其從虛擬網絡擴展到物理網絡,可以照常更換硬件,整個方法是分層的。它有一些缺點,但我只會在您感興趣的情況下才會討論它們,因為它們是相當小眾的。

關於您的編輯:

  1. 擁有一台物理機。
  2. 最大限度地減少因硬碟故障和其他檔案系統問題而導致資料遺失的可能性。
  3. 運行 Windows 2016 伺服器作業系統以及一些應用程序,例如 Exchange、sql server。這裡需要GPU
  4. 運行修改後的 CentOS 系統 (FreePBX)。
  5. 運行一些其他虛擬機,最好也有 GPU 支援。
  6. 補充並最終取代 Synology RS812+ 盒子。
  7. 最大限度地減少軟體支出,為我的預算提供更多/更好的硬體。

從廣義上講,您有兩種可能的一體化設定選項 - 儲存本身虛擬化(如我連結的 napp-it 自述文件中)或虛擬機器管理程式上的儲存。我將它們稱為 A 和 B,以便根據您的觀點進行比較。

  1. A和B是平等的,因為兩者都在同一台實體機器上。
  2. A 和 B 幾乎相等,因為兩個系統都可以使用 ZFS。使用 A,您可以自由選擇儲存作業系統(Solaris、illumos、Linux、BSD),使用 B,您必須選擇支援 ZFS 和 PCIe VGA 直通的作業系統(目前只有 Linux 和 FreeBSD)。這也會影響您對虛擬機器管理程式的選擇(ESXi、Hyper-V、帶有 A 的 KVM,以及僅帶有 B 的 KVM)。
  3. A 和 B 相等。但請注意,單一 GPU 只能傳遞給單一正在執行的 VM,該 VM 完全佔用了它。切換 GPU 需要關閉受影響的虛擬機器。如果您需要共享 GPU 支持,您的選擇很有限:Nvidia Tesla/Grid(非常昂貴)或新的 Intel Skylake 共享 GPU(不是很強大,仍處於實驗階段,請參閱KVMGT 演示)。
  4. 這兩種情況都沒有問題,因為虛擬 VGA 卡就夠了。
  5. 請參閱第 3 點,根據 VM 的數量,可以購買多張卡或單一 Grid 卡,或等到 KVM 中的所有卡正確實現共用。
  6. 這兩種情況都支援使用 iSCSI 和 NFS 進行內部和外部(即真實網路)使用,這取決於您的管理偏好。而且兩者都可以使用 NAS/SAN 的儲存(假設從資料表來看,我自己沒有該系統)。
  7. 無論您如何選擇,所有軟體都可以在沒有任何許可成本的情況下運行,當然Windows Server 加上所需的CAL(但可以用samba4 替換)和Solaris(可以用OmniOS、OpenIndiana 或SmartOS 等illumos 發行版替換)除外。網格解決方案可能有額外的許可成本,我沒有研究它,因為硬體本身非常昂貴,對於這些情況沒有用處。

因此,這很大程度上取決於偏好:

  • 如果您熟悉 Linux 管理(包括 ZoL)和 KVM 設定(可能有點棘手,取決於硬體和發行版),如果您選擇解決方案 B,則可以繞過額外的儲存 VM 和小型 SSD/HDD 的需求。
  • 另一方面,如果您想從全方位的選項中進行選擇,並針對每種情況使用最佳系統,您可能會受益於解決方案A 的靈活性(儘管此處可能會產生輕微的內部網路開銷) 。

相關內容