Windows-Server-2012-R2

使用 Hyper-V 共享 VHDX 進行文件共享

  • February 5, 2015

是否可以通過簡單地在連接到兩個 VM 的 CSV 上使用 Hyper-V Shared VHDX 來共享文件?

我正在我的環境中測試 SVHDX,但我無法讓它工作。我們已經設置了故障轉移集群和由 SAN over FC 支持的 CSV,我已將 SVHDX 放在 CSV 上並將該磁碟附加到兩個 VM。現在我在磁碟上出現了不一致,因為我在 VM1 上保存了一些文件,它們在 VM2 上不可見,並且 CHKDSK 正在報告錯誤。我什至可以在共享磁碟上創建同名文件。

是的。您不能在多台電腦之間共享文件系統,除非文件系統明確設計用於執行此操作。因為電腦記憶體元資訊並假設它們是所有者。

共享 VHDX 是塊共享,而不是文件共享。

現在有點題外話了,因為你遠不是第一個問這個問題的人。磁碟是塊設備。它通過響應“讀取塊 23971”和“寫入塊 1082”等命令來工作。文件系統是一種儲存映射到塊設備上的數據的方式。當您寫入文件時,文件系統程式碼會在磁碟上找到一些空閒塊,並將您的數據寫入其中。對於本次討論,也許更重要的是,它將其他數據寫入磁碟,記錄文件名、文件儲存在什麼塊中、誰有權訪問文件等。

如果兩台不同的機器使用同一個塊設備,他們需要協調他們的行動,否則他們會互相破壞,每個人都認為他們可以決定數據在磁碟上的位置以及如何記錄數據的位置。

因此,如果您想共享磁碟,最常見的方法是將其提供給一台電腦並讓該電腦擁有該磁碟,然後通過 NFS 或 SMB 等網路文件系統與其他人共享它。所有其他電腦都通過網路請求數據。文件伺服器擁有磁碟並對其進行管理。客戶端只能看到文件。所有者(文件伺服器)看到映射到塊的文件。

但是,在少數情況下,您希望兩台或多台電腦直接使用塊設備(磁碟)。為此,您需要將這兩台或多台電腦緊密連接在一起,以便它們能夠協調它們的動作。這稱為“形成集群”。然後你需要在磁碟上執行一個集群文件系統。在沒有任何第三方軟體的情況下執行 Windows 時,集群文件系統的唯一選擇是 CSVFS。在執行 Linux 或其他作業系統時,您還有其他一些選擇。

同樣,我的建議是為您的任務使用文件伺服器。但是共享 VHDX 的目的是允許 VM 集群執行集群文件系統。

當您想從兩個 VM 建構 SQL Server 集群時,這主要是有用的(當 Windows 是來賓時),以便 SQL 本身俱有高可用性。

或者,您可以使用共享 VHDX 建構多 VM Windows 文件伺服器集群。您可能會這樣做,因為您希望文件伺服器集群即使在其中一台物理主機當機時也可供其客戶端使用。

如果沒有共享 VHDX,如果環境中的一台物理主機當機,這個假設的 SQL 或文件伺服器集群將在一段時間內脫離網路。如果主機本身是集群的,則一旦發生故障,VM 將在另一個節點上重新啟動。但是從客戶的角度來看,會有一些停機時間。(使用 SQL Server,仍然會有一點停機時間,但客戶端可以管理它。使用文件伺服器集群,您可以讓客戶端,只要它們執行 SMB 3.0 或更高版本,體驗自動故障轉移並且不要斷開連接。)

引用自:https://serverfault.com/questions/665182