Windows Server“8 (2012)”– 將伺服器應用程式儲存至 Windows 檔案共用中

在開發 Windows Server“8 (2012)”儲存功能的過程中,每當想到使用者即將能享用的功能以及這些背後出色的功能時,我都會情不自禁的露出笑容。無論您是使用針對區塊等級 (Block Level) 的儲存區域網路 (SAN),還是使用針對檔案等級 (File Level) 的儲存解決方案,我們都根據您的選擇對二種儲存類型投入了大量研發精力。在本篇部落格文章當中,我們將會重點介紹我們對針對檔案儲存的投入。我們的團隊互相合作針對整個儲存堆疊進行徹底的重建。從我們更新資料的方式從 儲存空間新一代檔案系統 (ReFS),一直到 SMB 協定和叢集共用磁碟區 (CSV) 中的功能改進,再到對啟用 SMI-S 儲存裝置的支援,Windows Server“8 (2012)”從根本上改變我們對儲存結構和解決方案的思考方式。簡單來說 Windows Server“8 (2012)”將用於儲存的營運成本降到最低,在某些情況下降低幅度非常明顯。如果您正在使用儲存設備應該停下手中的工作,花一點時間瞭解一下 Windows Server“8 (2012)”儲存功能,並重新思考之後的工作方式。

在本篇部落格文章當中,我們將會探討由 Windows Server“8 (2012)”達成一種新的應用情境:伺服器應用程式儲存至檔案共用當中。這是起因於一個非常簡單的問題:“為什麼伺服器應用程式不能利用我們的檔案伺服器?”經過專案經理、開發人員和測試人員的全力奮戰,將問題一點一滴的逐步拆解,終於設計出一套功能全面的儲存機制達成了此一應用情境。建議您 下載 RC 版本 並且親自體驗一下。

本篇部落格文章由檔案伺服器團隊的首席專案經理 Claus Joergensen 和 Jose Barreto 所撰寫。

–Cheers!Jeffrey

技術背景

Windows 檔案伺服器主要用於儲存使用者資料。典型的企業應用情境是使用者在此存放那些非共用資料以及團隊共用資料以進行協同合作。Windows Server“8 (2012)”檔案伺服器導入了能夠在 Windows 檔案共用上儲存即時資料的伺服器應用程式支援 (例如 Hyper-V™ 和 Microsoft SQL Server)。使用者可以使用儲存於 Windows 檔案共用上的 設定檔、VHD 檔案、快照檔案 來設定 Hyper-V 虛擬主機。如下圖中顯示儲存於 Windows 檔案共用 (UNC 路徑) 上的 VHD 檔案設定的VM 虛擬主機:

clip_image001

達成新式應用情境

在 Windows Server“8 (2012)”規劃過程當中,使用者對於能夠在 Windows 檔案共用上儲存伺服器應用程式資料的功能表現出濃厚的興趣。對於許多中小型企業管理人員來說,這是一種可以替代 SAN 儲存架構的另一種具備經濟效益的方式,因為他們可以利用 Ethernet 基礎網路架構,並且搭配使用業界標準的伺服器。同時在建立檔案共用時,由於不需要設定 Zone 及 LUN Mapping/Masking機制,因此管理人員能夠更輕鬆的管理檔案共用。除了具備經濟效益、更易於管理之外,儲存伺服器應用程式資料的功能還可以使大型環境管理者和主機代管供應商獲得更大的靈活性,可以在資料中心內轉移工作負載,並且無須重新組態儲存設定。如果資料儲存在 UNC 共用路徑當中,只要使用正確的管理認證,就可以從資料中心的任何位置存取該資料。

有了針對此一新式應用情境的支援,所有管理人員都多了一個儲存選項,並且可以根據自己的偏好、預算和所需功能從 光纖通道、iSCSI SAN、共用 SAS 儲存陣列或檔案共用中進行儲存方案的選擇。

啟用檔案共用功能以提供伺服器應用程式進行儲存

要使伺服器應用程式能夠將即時資料儲存在檔案共用上,需要滿足二個要求。首先,伺服器角色或應用程式要能支援該功能。這包括在應用程式的安裝和管理工具中將其更新為支援 UNC 路徑 (例如 \\server\share\file.vhd),以及在此應用情境的使用情況中完全測試應用程式。Microsoft SQL Server 2008 R2 中提供了針對在 SMB 檔案共用中儲存 SQL 使用者資料庫的支援。Microsoft SQL Server 2012 更增加了對 SQL 系統資料庫以及將 SQL Server 設定為叢集的支援。正如 //BUILD 大會上所展示的那樣,Windows Server“8 (2012)”還增加在 SMB 檔案共用中儲存VM 虛擬主機檔案的支援。

此外,檔案伺服器本身也應該支援伺服器應用程式在檔案共用上儲存資料。在 Windows Server“8 (2012)”使用者互動活動當中,我們確定了以下幾項檔案伺服器要支援儲存伺服器應用程式所應滿足的首要條件:

連續可用性: 伺服器應用程式要求儲存空間要持續可用,並且一般情況下不處理 I/O 錯誤或檔案控制碼的意外關閉。這些事件類型可能會導致VM 虛擬主機當機(因為VM 虛擬主機無法再寫入到磁碟當中),或者導致資料庫離線事件。管理人員通常會部署硬體容錯機制(例如多片網路卡、多台網路交換機和 Windows 叢集設定)以降低硬體問題所造成的影響。儘管這種配置可以使檔案伺服器迅速從故障中復原,但是這種故障復原對於應用程式來說並非透明轉移,必須要將 VM 虛擬主機重新開機以及使資料庫復原成連線狀態。Windows Server“8 (2012)”檔案伺服器解決方案必須能夠快速並且透明的從網路或節點故障中復原,不需要管理人員介入就能避免停機事件發生。

效能 : 一些伺服器角色(例如 Hyper-V 和 SQL Server)對於儲存效能十分敏感,包括傳輸頻寬、延遲時間和 IOPS(每秒 I/O)。另外有一點非常重要的是,應該要將存取儲存時的 CPU 使用率保持在最低,以盡可能為應用程式提供更多的 CPU 使用率。最後,伺服器應用程式更傾向於採用與使用者端應用程式完全不同的存取模式。使用者端應用程式通常用於會完整讀取或寫入檔案的應用場合,伺服器端應用程式則更傾向於附加或更新現有資料。Windows Server“8 (2012)”檔案伺服器解決方案必須要能夠為伺服器應用程式,提供幾乎相當於具有多個 10 Gbps 乙太網路或 Infiniband 的儲存頻寬,其延遲時間、IOPS 和 CPU 使用率更應該要可以與光纖通道互相匹敵才行。

可擴充性 : Windows 檔案伺服器叢集的設定通常部署成 Active-Passive 組態,這種設定會至少保留一個節點不使用。其中一種解決方法是在一個叢集當中設定多台節點主機。這將使您可以使用叢集中的多台硬體。然而,這會增加管理負載,並且共用頻寬仍舊受到目前線上節點主機可用頻寬的限制。Windows Server“8 (2012)”檔案伺服器必須要能夠支援 Active-Active 組態,在這種設定中可以透過任何節點進行存取共用,以將最大可用頻寬提升到叢集節點數量的總合頻寬,並且簡化管理作業。

資料保護 : 另外一項重要功能是為資料建立應用程式一致的磁碟區陰影副本以用於備份目的,在 Windows Server中通常使用磁碟區陰影複製服務 (VSS) 達成。然而目前的 VSS 僅支援本機儲存區並不支援 UNC 路徑的檔案共用。而 Windows Server“8 (2012)”檔案伺服器解決方案必須要能夠與 VSS 完全整合支援應用程式一致的磁碟區陰影副本,並將對現有 VSS 請求程式、寫入程式和提供程式的影響降至最低。

很明顯的,這是一系列相當嚴格的要求。但是我們知道必須要解決所有問題,才能提供一個可靠、可用和可服務的檔案伺服器,進而為伺服器應用程式儲存提供最佳效能。

功能特色概述

在 Windows Server“8 (2012)”中提供對伺服器應用程式儲存的支援檔案共用,是產品團隊做出的一項重大決定。因此建置導入相關功能來確保檔案儲存能夠滿足或超過用於區塊等級儲存的要求,同時又不失去檔案儲存的輕鬆管理和經濟效益的優點。同時還需要導入新版本的 SMB 協定。這些新功能包括:

SMB 透明容錯移轉 (Transparent Failover) : 使管理人員能夠在叢集檔案伺服器上執行節點主機的硬體或軟體維護時,不會妨礙伺服器應用程式在這些檔案共用上的儲存資料。此外,如果叢集節點發生硬體或軟體故障時,此功能將使 SMB 使用者端以透明的方式重新連接到其他叢集節點,而不會妨礙伺服器應用程式在這些檔案共用上的儲存資料。無論故障發生時正在執行的操作是哪種類型,都可以達成此目的。對於針對區塊等級的儲存這等同於擁有多台控制器的儲存陣列設備。

SMB 多通道 (MultiChannel) :使您能夠同時使用多個連接和網路介面,主要有二大好處: 提高吞吐量 並且達成 容錯功能 。例如 您的 SMB 使用者端和伺服器上各有 4 個 10 GbE 介面,那麼您可以同時使用這些介面也就是合併 4 個 10 Gbps 網路介面卡有效達到 40 Gbps 的傳輸頻寬。如果其中一個網路介面卡或纜線出現故障,您的 SMB 使用者端將繼續使用其他未中斷的網路,只是整體傳輸頻寬會有所下降而以。最重要的是,您無需任何額外設定步驟便可達成此一效果。您只需要和平時一樣設定多個網路介面即可。

SMB 直接存取 (Direct) : 光纖通道儲存的一大優點是能夠具有低延遲、快速、高承載的資料傳輸。為了在檔案伺服器環境中達成類似功能,SMB 支援具有 RDMA 功能的網路介面卡,因此能在傳輸時達成 低延遲、低 CPU 使用率。當使用具有三種 RDMA 技術 (Infiniband、iWARP、RoCE)時,SMB 使用者端的 CPU 消耗非常低,這與光纖通道形成強烈的對比,並且能縮短 CPU 運算週期以供提供伺服器上的主要工作負載(例如 Hyper-V 或 SQL Server)使用。最棒的是,無須額外的 SMB 設定步驟即可檢測並運作這些網路介面。如果網路卡支援 RDMA 功能將會自動使用這些介面。

SMB 水平擴充 (Scale-Out) :籍由叢集共用磁碟區 (CSV v2.0),管理人員可以建立的檔案伺服器叢集中所有節點以直接 I/O 方式同時存取資料檔案的檔案共用。這也表示特定共用的最大檔案服務容量不再受單個叢集節點的容量限制,而是可以達到整個叢集的總合頻寬。此外, Active-Active 設定將使您可以透過移動檔案伺服器使用者端來平衡叢集節點之間的負載,並且不會出現任何服務中斷的情況。最後,SMB 水平擴充簡化叢集檔案伺服器和檔案共用管理作業。

支援 SMB 檔案共用的 VSS: 為了使伺服器應用程式資料建立應用程式一致的快照功能,對於資料備份作業來說非常重要。在 Windows 當中通常會使用磁碟區陰影複製服務 (VSS) 機制達成。對於針對 SMB 檔案共用的 VSS 擴充了 VSS 的基礎結構,現在可以支援儲存於遠端 SMB 檔案共用中的資料製作應用程式一致性的磁碟區陰影副本,達成備份和復原資料的目的。此外,SMB 檔案共用的 VSS 可以啟用備份應用程式,以直接從磁碟區陰影副本檔案中讀取備份資料,而無須在資料傳輸過程中涉及伺服器應用程式。由於此功能利用現有的 VSS 基礎架構,因此使用者可以輕鬆完成與現有 VSS 感知備份軟體和 VSS 感知應用程式(如 Hyper-V)的整合。

針對 SMB 共用的 PowerShell: 管理檔案共用時使用的是新的支援檔案伺服器叢集的 Windows 伺服器管理員 GUI(其中包括一些用於建立 SMB 共用的設定檔),或使用全新的 SMB Windows PowerShell Cmdlet,這些 Cmdlet 使用熟悉的 Windows PowerShell 基礎架構來運作命令列和腳本。這一整套新的 Windows PowerShell 3.0 Cmdlet 專門用於管理檔案共用、檔案共用權限、使用者端對應、伺服器設定和使用者端設定。還有豐富的 Cmdlet 用於 監控Session、開啟檔案、存取連接、網路介面和多通道連接。這些 Cmdlet 是使用 WMI v2 建立在針對標準的管理協定基礎之上,使開發人員可以在 Windows 和 Linux 上建立自動化解決方案,以用於檔案伺服器的設定和監控上。

SMB 效能計數器 : 在應用程式伺服器世界裡,儲存效能和測量效能的能力都非常重要。在此前提之下,Windows Server“8 (2012)”導入了伺服器和使用者端效能計數器,使管理人員可以輕鬆查看檔案儲存的關鍵指標,包括 IOPS、延遲時間、佇列長度和吞吐量。這些計數器與您所熟悉的儲存效能計數器類似,使您可以輕鬆利用現有的 Windows Server 儲存效能相關的監控規則。

效能 : 效能也是 SMB 中需要重點關心的一個部份。除了達成預設啟用大型傳輸單元 (Large MTU) 之外,還需要執行大量工作來優化不同類型工作負載的效能,這些工作負載 I/O 有小有大,還會同時涉及循序存取和隨機存取。這些優化過程是在研究典型的端點到端點工作負載過程中所開發出來的,例如 線上交易處理、資料倉儲、私有雲中的虛擬 Web 伺服器、虛擬桌面基礎架構。正是這些研究帶來作業系統許多方面的功能改進。

我們來深入探討一下 SMB 透明容錯移轉機制。SMB 透明容錯移轉機制要求:

l 運作 Windows Server“8 (2012)” 容錯移轉叢集,至少要具備二個叢集節點,並且安裝設定檔案伺服器角色。最後該叢集必須要通過 “驗證設定精靈” 中的叢集驗證測試。

l 使用連續可用性屬性建立的檔案共用,該屬性是叢集檔案共用的預設組態設定。

l 存取叢集檔案共用的電腦必須是 Windows “8” Consumer Preview 或 Windows Server “8 (2012)”。

當 SMB 使用者端初次連接到檔案共用時,使用者端將會確定該檔案共用是否設定了連續可用性屬性。如果已經設定則表示該檔案共用是一個叢集檔案共用,支援 SMB 透明容錯移轉功能。當 SMB 使用者端隨後使用應用程式在檔案共用上開啟一個檔案時,它會請求一個永久檔案控制碼。當 SMB 伺服器收到使用永久控制碼開啟檔案的請求時,SMB 伺服器將會與復原金鑰過濾器進行互動,以將該檔案控制碼相關資訊,以及一個由 SMB 使用者端提供的唯一金鑰(復原金鑰)保存在儲存當中。當 SMB 使用者端遇到 SMB 伺服器發生容錯移轉時,在後續的復原操作中便會使用該復原金鑰來引用控制碼。以避免將資料寫入不穩定的快取記憶體所導致的資料遺失,並且在完全寫入狀態下始終會開啟永久檔案控制碼。

如果 SMB 使用者端所連接到的檔案伺服器叢集中節點主機發生故障,SMB 使用者端會嘗試重新連接到其他檔案伺服器叢集節點主機。一旦 SMB 使用者端成功重新連接到叢集中的另一台節點主機時,SMB 使用者端將開始使用復原金鑰執行復原的動作。當 SMB 伺服器收到復原金鑰時,它將會與復原金鑰過濾器進行互動,以將檔案控制碼復原到發生故障前的狀態,並且提供對可重複操作以及不可重複操作的端點到端點支援(SMB 使用者端、SMB 伺服器和復原金鑰過濾器)。SMB 使用者端電腦上運作的應用程式在此操作期間將不會發生任何故障或錯誤。從應用程式角度來看的話,似乎只是 I/O 操作出現了短暫的中斷而以並不影響運作。

非常重要的一點是,在容錯移轉期間應該要將 I/O 中斷次數降到最低。由於 SMB 是在 TCP/IP 的基礎上運作,SMB 使用者端通常會依賴 TCP 逾時來確定檔案伺服器叢集節點主機是否發生了故障。但是,依賴 TCP 逾時會導致相當長時間的 I/O 中斷,因為每次逾時通常都需要大約 20 秒才會判定。SMB 見證服務建立用於從計畫外故障中快速復原,使 SMB 使用者端不必等待 TCP 逾時才判定。SMB 見證是隨著容錯移轉叢集功能自動安裝的一項新服務。當 SMB 使用者端初次連接到某個檔案伺服器叢集節點主機時,SMB 使用者端會通知運作在同一台電腦上的 SMB 見證使用者端。SMB 見證使用者端會從運作在檔案伺服器叢集節點上的 SMB 見證服務獲取叢集成員清單。SMB 見證使用者端會選舉出一個不同的叢集成員,並向該叢集成員上的 SMB 見證服務發佈一個註冊請求。

如果該檔案伺服器叢集節點上發生計畫外的故障狀況,那麼另一個叢集成員上的 SMB 見證服務便會收到叢集服務的通知。SMB 見證服務也會通知 SMB 見證使用者端告知該檔案伺服器叢集節點主機已經發生了故障。因此在收到 SMB 見證通知之後,SMB 使用者端會立即開始重新連接到其他台檔案伺服器叢集節點主機上,以提高從計畫之外的故障狀況快速復原。

部署模式

在規劃 Windows Server“8 (2012)”時,從端點到端點的角度來看,伺服器應用程式的檔案儲存中需要重點關心的二大方面是針對 SMB 應用的 Hyper-V 和 SQL Server。

例如 如果使用 Hyper-V,則 Hyper-V 的單獨設定和叢集設定目前都已經完全支援 SMB 檔案儲存。事實上,現在完全可以使用檔案共用作為 Shared Storage來建置 Hyper-V 叢集。

對於檔案伺服器設定,有三種主要的部署模式:

clip_image002

儘管單台叢集節點檔案伺服器或單台檔案伺服器並不具有高可用性,但它能夠提供最經濟的檔案伺服器解決方案。Hyper-V 提供額外的共用儲存靈活性,使您能夠使用此一解決方案來建立叢集 Hyper-V 節點(儘管整體解決方案無法稱得上高度可用)。但是與 Block Level 儲存設備相比時,這相當於一台單一控制器的 Block Level 儲存陣列。

雙節點檔案伺服器將有希望成為最常用的檔案伺服器建置標準,它能夠以很低的成本提供連續可用性(透過 SMB 透明容錯移轉機制)。透過使用 SCSI (SAS) 硬碟儲存(JBOD 或 SAS 儲存陣列),這一類的解決方案可以擴充到數百顆硬碟。透過與少數 Hyper-V 伺服器和網路交換機配對,此一解決方案可以用於為私有雲解決方案建立機架大小的儲存空間。這相當於一台雙控制器的 Block Level 儲存陣列。

第三種選項中,為採用數量眾多的檔案伺服器以光纖通道作為共用儲存,因此允許進行更大型的設定。此種類的檔案伺服器叢集可以利用 SMB 水平擴充和 SMB DriectAccess等功能來建立共用儲存基礎結構,進而服務數十個甚至數百個 Hyper-V 節點主機。如果使用 10 GbE 或 InfiniBand 將 Hyper-V 節點主機與檔案伺服器互相連接,那麼與光纖通道解決方案相比將能有不遜色的效能表現並且大大節省成本。

結語

對於出現的在檔案伺服器上的儲存伺服器應用程式資料的新機會,我們感到激動萬分。事實上,我們從最早的一批使用者那裡收到了非常積極的意見反應,在這些部署上述應用情境和功能的使用者當中,有來自內部的使用者也有外部使用者。他們分享了我們對於為解決方案所提供的易用性、可管理性、可擴充性和高效能的滿腔熱血。

如果您想要瞭解更多詳細資訊,可以參考我們在 2011 年 9 月 //Build/ 大會期間所發佈的一系列文件。這些展示文件可從 此處 下載,此外我們還錄製了長達幾個小時的影片來提供更多詳細資訊。我們希望您能觀看這些影片。下面是與本部落格文章相關的 Windows Server“8 (2012)”主要課程列表:

希望您同樣能抱著和我們整理列表時,用一樣愉快的心情觀看這些影片…

本部落格文章由 Windows 檔案伺服器團隊的首席專案經理 Claus Joergensen 和 Jose Barreto 所撰寫。