129 期 - 微軟最新軟體定義儲存,公有雲端立馬實作S2D



網管人雜誌

本文刊載於 網管人雜誌第 129 期 - 2016 年 10 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。






文章目錄

前言
S2D 簡介
          S2D 支援的部署模式
          S2D 硬體需求
S2D in Azure實戰演練
          建立用於 S2D 的 vNet 虛擬網路
          建立用於 S2D 的儲存體帳戶
          建立 S2D 環境 DC 網域控制站
          建立 S2D-Node 成員伺服器
          建立 S2D 容錯移轉叢集
          啟用 Storage Spaces Direct 機制
          建立 vDisk 及 Volume
          建立 SOFS 檔案分享資源
結語





前言

在上個月(9/26 ~ 9/30)時,微軟在 Ignite 2016 年度技術大會上正式發佈 Windows Server 2016,以及 System Center 2016 產品。在玲瑯滿目的眾多新功能當中,相信不少 IT 人員對於「軟體定義儲存(Software-Defined Storage,SDS)」技術的部分應該越越欲試,它是由 Windows Server 2012 R2 當中的「Storage Space」技術演化而來,並且在 Windows Server vNext 開發時期時稱之為「Storage Spaces Shared Nothing」,在 Windows Server 2016當中則正式稱為「Storage Spaces Direct(S2D)」。

圖 1、Storage Spaces Direct 運作架構示意圖

但是,企業或組織的 IT 管理人員可能苦無手邊沒有相關硬體資源可以進行測試而苦惱。本文,將實作演練透過 Microsoft Azure 公有雲環境,輕鬆建立 S2D 運作環境,讓 IT 管理人員無須準備任何硬體伺服器,即可實作微軟最新一代軟體定義儲存技術 S2D。





S2D 簡介

簡單來說,最新 Windows Server 2016 當中的 S2D 軟體定義儲存技術,與舊版 Windows Server 2012 R2 的 Storage Spaces 技術,最大不同在於它可以將多台硬體伺服器的「本機硬碟(Local Disk)」串聯後整合成一個巨大的儲存資源池。

圖 2、S2D軟體定義儲存技術支援本機硬碟運作架構示意圖



S2D 支援的部署模式

那麼我們來看看 S2D 軟體定義儲存技術支援哪些部署模式,以避免往後實作時發生觀念混亂的情況。在 S2D 技術中支援兩種部署模式:

  • 超融合式(Hyper-Converged)。
  • 分類(Disaggregated)。


倘若,企業或組織希望採用「超融合式(Hyper-Converged)」部署模式,也就是將「運算(Compute)、儲存(Storage)、網路(Network)」等資源,全部都「整合」在一起並將 Hyper-V 及 S2D 技術都運作在「同一個」容錯移轉叢集環境中。那麼,屆時 VM 虛擬主機應該直接運作在 CSV 叢集共用磁碟,而非運作在 SOFS(Sacle-Out File Server)共享路徑,同時也能省去針對檔案伺服器存取及權限的部份進行組態設定,這樣的部署方式適合用於「中小型」規模的運作架構。

圖 3、S2D 超融合式部署模式運作示意圖

如果,企業或組織採用「分類(Disaggregated)」部署模式的話,那麼將會把「運算(Compute)、儲存(Storage)、網路(Network)」等資源「分開」管理,也就是將 Hyper-V 及 S2D 技術都運作在「不同」的容錯移轉叢集環境中,這樣的部署方式則適合用於「中大型」規模的運作架構。

圖 4、S2D 分類部署模式運作示意圖

請注意,在 Microsoft Azure 公有雲環境上,Windows Server 2016 主機「不支援」啟用 Hyper-V 伺服器角色。因此,在 Microsoft Azure 公有雲環境中的 S2D 軟體定義儲存技術,只能建立及使用 SOFS 檔案共享機制。



S2D 硬體需求

倘若,企業或組織的 IT 管理人員,希望在內部資料中心建置 S2D 軟體定義儲存技術的話。下列便是建立 S2D 軟體定義儲存技術時,建議採用的硬體規格及需求清單:

  • 叢集節點: 最少必須由 2 台叢集節點組成,最多支援至 16 台叢集節點。
  • CPU / Memory: 每台叢集節點,建議至少採用 Dual-Socket CPU(Intel Xeon E5 v3 Family)及 128 GB 記憶體。
  • 硬碟控制器: 每台叢集節點,必須採用 SATA Connected 或 SAS HBA Connected 硬碟控制器,不支援採用內建的 ACHI Controller 硬碟控制器,或是 RAID Controller 磁碟陣列卡。
  • 硬碟數量: 每台叢集節點,最少應該使用 2 顆 SSD 固態硬碟及 4 顆機械式硬碟,並且採用下列搭配方式: 
          NVMe + SAS 或 SATA SSD。
          NVMe + SAS 或 SATA HDD。
          SAS 或 SATA SSD + SAS 或 SATA HDD。
  • 網路卡: 每台叢集節點,最少應具備 1 Port 10GbE 網路卡,並且必須支援 RDMA 特色功能(RoCE、iWARP),目前支援的網路卡廠商有 Mellanox(CX3-Pro)、Chelsio(T5)、Avago/Emulex(Skyhawk)……等。





S2D in Azure實戰演練

建立用於 S2D 的 vNet 虛擬網路

那麼,讓我們開始在 Microsoft Azure 公有雲建立 S2D 運作環境吧。登入 Microsoft Azure Portal 入口網站後,依序點選「新增 > 網路 > 虛擬網路」,請在選取部署模型下拉選單中選擇至「資源管理員」項目後按下建立鈕,在建立虛擬網路視窗中依序填入下列資訊後按下建立鈕:

  • 名稱: 請填入用於 S2D 運作環境的 vNet 虛擬網路名稱,本文實作環境為「EA-vNet-S2D」。
  • 位址空間: 請填入此 vNet 虛擬網路的 IP 位址空間,本文實作環境為「10.10.0.0/16」。
  • 子網路名稱: 請填入此 vNet 虛擬子網路的名稱,本文實作環境為「S2D-Node」。
  • 子網路位址範圍: 請填入此 vNet 虛擬子網路的 IP 位址空間,本文實作環境為「10.10.75.0/24」。
  • 訂用帳戶: 請選擇採用的 Azure 訂閱帳戶名稱。
  • 資源群組: 此 vNet 虛擬網路要加入新建的資源群組,或加入至現有的資源群組當中。本文實作環境為建立新的資源群組,並且名稱為「RG-S2D」。
  • 位置: 此 vNet 虛擬網路及資源群組所要部署的位置,本文實作環境挑選離台灣最近的資料中心「東亞」。

圖 5、建立資源群組及 vNet 虛擬網路



建立用於 S2D 的儲存體帳戶

順利建立用於 S2D 架構的虛擬網路環境後,接著建立用於 S2D 架構的儲存資源。請在 Azure Portal 入口網站中,依序點選「新增 > 資料+儲存體 > 儲存體帳戶」,在建立儲存體帳戶視窗中依序填入下列資訊後按下建立鈕:

  • 名稱: 請填入用於 S2D 運作環境的 Blob 儲存體帳戶名稱,本文實作環境為「eablobs2d」。
  • 部署模型: 請選擇 Blob 儲存體帳戶所採用的部署類型,本文實作環境搭配新式的 vNet 儲存網路,而非傳統的 vNet 虛擬網路。因此,選擇採用「資源管理員」部署類型。
  • 帳戶種類: 考量到後續此 Blob 儲存體帳戶,仍有可能整合 Blob、檔案、資料表與佇列,所以選擇採用「一般用途」帳戶種類。
  • 效能: 選擇此 Blob 儲存體帳戶的效能選項,考量屆時 Azure VM 虛擬主機運作效率,因此選擇採用「進階」效能選項。
  • 複寫: 選擇此 Blob 儲存體帳戶的複寫方式,預設情況下採用進階效能選擇的 Blob 儲存體帳戶,將自動採用「本地備援儲存體(LRS)」。
  • 訂用帳戶: 請選擇採用的 Azure 訂閱帳戶名稱。
  • 資源群組: 此 vNet 虛擬網路要加入新建的資源群組,或加入至現有的資源群組當中。本文實作環境採用剛才新建立的資源群組「RG-S2D」。
  • 位置: 此 vNet 虛擬網路及資源群組所要部署的位置,本文實作環境挑選離台灣最近的資料中心「東亞」。

圖 6、建立 Blob 儲存體帳戶



建立 S2D 環境 DC 網域控制站

首先,請建立 1 台 Azure VM 虛擬主機(採用 Windows Server 2016 TP5 作業系統),以便擔任屆時 S2D 運作環境的 DC 網域控制站。請在 Azure Portal 入口網站中,依序點選「新增 > Marketplace > 虛擬機器 > Windows Server > Windows Server 2016 Technical Preview 5」,在選取部署模型下拉選單中選擇至「資源管理員」項目後按下建立鈕,在建立虛擬機器視窗中依序填入下列資訊後按下建立鈕:

  • 名稱: 請填入此台 Azure VM 虛擬主機的名稱,本文實作環境為「S2D-DC」。
  • VM disk type: 選擇此台 Azure VM 虛擬主機的磁碟種類,考量屆時 Azure VM 虛擬主機運作效率,因此選擇採用「高階(SSD)」選項。
  • 使用者名稱: 請鍵入此台 Azure VM 虛擬主機預設管理者帳號名稱,本文實作環境為「Weithenn」。
  • 密碼: 請鍵入此台 Azure VM 虛擬主機預設管理者密碼。
  • 確認密碼: 請再次鍵入此台 Azure VM 虛擬主機預設管理者密碼,以確認 2 次管理者密碼皆鍵入相同無誤。
  • 訂用帳戶: 請選擇採用的 Azure 訂閱帳戶名稱。
  • 資源群組: 此 vNet 虛擬網路要加入新建的資源群組,或加入至現有的資源群組當中。本文實作環境採用剛才新建立的資源群組「RG-S2D」。
  • 位置: 此 vNet 虛擬網路及資源群組所要部署的位置,本文實作環境挑選離台灣最近的資料中心「東亞」。

圖 7、建立 Azure VM 虛擬主機

請注意,本文在撰寫時 Azure 公有雲的 Makeplace 當中,仍僅提供 Windows Server 2016 TP5 技術預覽版本。因此,倘若你採用如同本文的建置方式,則建置好的 S2D 軟體定義儲存資源,應該僅使用於測試或研發環境而非線上營運環境。
接著,在選擇 VM 虛擬主機規模大小的視窗中,選擇此 VM 虛擬主機的運作規模。本文實作環境中選擇採用「DS1 標準」的 VM 虛擬主機規模後,請按下「選取」鈕。

圖 8、選擇 Azure VM 虛擬主機採用的規模大小

建立 Azure VM 虛擬主機的第 3 個步驟,選擇此台 VM 虛擬主機採用的儲存體帳戶、vNet 虛擬網路……等資訊,請依序選擇下列相關資訊後按下確定鈕:

  • 儲存體帳戶: 請選擇此台 Azure VM 虛擬主機採用的儲存體帳戶,本文實作環境選擇剛才建立的「eablobs2d」儲存體帳戶。
  • 虛擬網路: 請選擇此台 Azure VM 虛擬主機採用的 vNet 虛擬網路,本文實作環境為選擇剛才建立的「EA-vNet-S2D」虛擬網路。
  • 子網路: 請選擇此台 Azure VM 虛擬主機採用的 vNet 虛擬網路子網段,本文實作環境選擇剛才建立的「S2D-Node(10.10.75.0/24)」虛擬子網路。
  • 公用 IP 位址: 啟用此台 Azure VM 虛擬主機採用 Public IP 位址,以便屆時可由網際網路透過 RDP 遠端桌面連線進行管理,本文實作環境定義名稱為「S2D-DC-PIP」。
  • 網路安全性群組: 定義此台 Azure VM 虛擬主機的防火牆規則,預設情況下只會開啟「RDP(TCP / 3389)」防火牆輸入規則,本文實作環境定義名稱為「S2D-DC-NSG」。
  • 擴充功能: 選擇 Azure VM 虛擬主機是否安裝其它擴充功能,例如,Microsoft Antimalware。本文實作環境未選擇安裝任何擴充功能。
  • 可用性設定組: 在 Azure 公有雲環境中的 VM 虛擬主機,倘若需要可用性則需要建立可用性設定組。考量後續 S2D 運作環境的可用性,應該要建立 2 台 DC 網域控制站,因此建立名稱為「AS-S2D-DC」的可用性設定組。
  • 監控: 是否針對 VM 虛擬主機啟用監控機制,預設情況下便會為 VM 虛擬主機啟用監控機制。
  • 診斷儲存體帳戶: 將 Azure VM 虛擬主機的診斷資料寫入至儲存體帳戶中,本文實作環境定義名稱為「eablobs2ddiag」。

圖 9、組態設定 Azure VM 虛擬主機選擇性功能

在建立 Azure VM 虛擬主機的最後步驟中,確認相關資訊無誤後便可以按下確定鈕,執行建立 Azure VM 虛擬主機的動作。

圖 10、建立 Azure VM 虛擬主機

當 Azure 公有雲環境的 VM 虛擬主機部署完成後,便可以準備將這台單機 VM 虛擬主機提升為 DC 網域控制站。值得注意的是,與「內部部署(On-Premise)」DC 網域控制站不同的地方,需要建立「額外」的資料磁碟來儲存 AD 資料庫、記錄檔及 SYSVOL。請在 Azure Portal 管理介面中,依序點選「S2D-DC > 設定 > 磁碟 > 連結新項目」,在連結新磁碟視窗中依序填入及點選填入下列資訊後按下建立鈕:

  • 名稱: 請鍵入 S2D-DC 虛擬主機新增的資料磁碟名稱,本文實作環境為「S2D-DC-Database-Disk」。
  • 類型: 因為此資料磁碟僅用於儲存 AD 資料庫、記錄檔及 SYSVOL,因此採用預設的「標準」類型即可。
  • 大小: 此資料磁碟儲存空間大小,本文實作環境為「10 GiB」。
  • 位置: 指定將此新增的資料磁碟,存放至先前所建立的「eablobs2ddiag」Blob 儲存體當中。
  • 主機快取: 由於儲存 AD 資料庫、記錄檔及 SYSVOL 等資料,並不適合使用主機快取機制因此請選擇至「無」。

圖 11、為 S2D-DC 新增資料磁碟以便存放 AD 資料庫、記錄檔及 SYSVOL

完成建立及掛載空的資料磁碟後,便可以將該資料磁碟進行「初始化(Initialize)」及「格式化(New Volume)」的動作。值得注意的是,存放 AD 資料庫、記錄檔及 SYSVOL 的分割區,檔案系統必須採用「NTFS」才行,並不支援採用新式的「ReFS」檔案系統。
預設情況下,Windows Server 2016 主機掛載的資料磁碟,將會採用新式的「ReFS」檔案系統進行分割區格式化的動作。

最後,預設情況下 Azure VM 虛擬主機會採用「動態」IP 位址,但這樣可能會影響 DC 網域控制站的運作,因此請為 S2D-DC 虛擬主機設定採用「靜態」IP 位址。請依序點選「S2D-DC > 設定 > 網路介面 > IP configurations > ipconfig1」,在 ipconfig1 視窗中請在指派區由預設的動態選擇至「靜態」,然後按下儲存圖示即可。

圖 12、為 S2D-DC 虛擬主機指派使用固定 IP 位址

之後便可以如同內部部署方式,將 S2D-DC 虛擬主機提升為 DC 網域控制站(本文實作網域名稱為 s2d.weithenn.org)。值得注意的是,在提升成為 DC 網域控制站的過程中,記得將 AD 資料庫、記錄檔及 SYSVOL 的分割區指向至剛才新增的資料磁碟(本文實作環境為 F 槽)。

圖 13、將 AD 資料庫、記錄檔及 SYSVOL 指向至新增的資料磁碟 F 槽

當 S2D-DC 成功擔任 DC 網域控制站後,記得以網域管理員身分登入 S2D-DC 主機,然後開啟 DNS 管理員將預設的 Forwarders 設定刪除。然後,回到 Azure Portal 頁面中,為 S2D 使用的 vNet 虛擬網路指定採用的 DNS 伺服器。在本文實作環境中,為「EA-vNet-S2D」虛擬網路指定的 DNS 伺服器為「S2D-DC(10.10.75.4)」。

圖 14、為 vNet 虛擬網路指定使用的 DNS 伺服器 IP 位址



建立 S2D-Node 成員伺服器

在本文實作環境中,我們建立「3 台」S2D-Node 成員伺服器,分別命名為「S2D-Node01、S2D-Node02、S2D-Node03」。由於建立 S2D-Node 虛擬主機的操作步驟,與剛才建立 S2D-DC 虛擬主機大致相同因此便不再贅述。唯一不同的部分是每台 S2D-Node 成員伺服器,屆時將會新增「3 顆」資料磁碟,因此在 VM 虛擬主機規模大小視窗中,選擇採用「DS2標準」的運作規模。

順利部署 3 台 S2D-Node 成員伺服器後,請幫每台 S2D-Node 主機新增「3 顆」資料磁碟,並且加入剛才所建立的「s2d.weithenn.org」網域環境。

圖 15、將 3 台 S2D-Node 成員主機加入 s2d.weithenn.org 網域環境



建立 S2D 容錯移轉叢集

請使用伺服器管理,為 3 台 S2D-Node 成員主機安裝「容錯移轉叢集」伺服器功能,或使用 PowerShell 指令一次幫 3 台主機進行安裝伺服器功能的動作。

圖 16、使用 PowerShell 指令,快速幫 3 台 S2D-Node 成員主機安裝容錯移轉叢集伺服器功能

接著,請開啟容錯移轉叢集管理員建立 S2D 容錯移轉叢集,或使用 PowerShell 指令快速建立 S2D 容錯移轉叢集。本文實作環境中,指定 S2D 容錯移轉叢集名稱為「S2D-Cluster」,而容錯移轉集的固定 IP 位址為「10.10.75.10」。

圖 17、使用 PowerShell 指令,建立 S2D 容錯移轉叢集

順利建立 S2D 容錯移轉叢集後,便可以開啟容錯移轉叢集管理員確認相關運作狀態是否正常,例如,叢集核心資源是否正確進行組態設定作業,並且運作狀態為「線上(Online)」。

圖 18、確認 S2D 容錯移轉叢集運作狀態正確無誤





啟用 Storage Spaces Direct 機制

在啟用 S2D(Storage Spaces Direct)機制之前,先確認是否可以看到加入 S2D 叢集中所有 S2D-Node 主機的磁碟數量。舉例來說,本文實作環境中每台 S2D-Node 叢集節點掛載 3 顆磁碟,因此應該看到總數「9 顆」磁碟才正確。請使用 PowerShell 指令「Get-PhysicalDisk」,確認 S2D 叢集中磁碟總數量。

圖 19、使用 PowerShell 指令確認 S2D 叢集中磁碟總數量

因為,此 S2D 軟體定義儲存運作環境為 Azure 公有雲的 VM 虛擬主機,所以磁碟的「媒體類型(MediaType)」判定為「UnSpecified」,因此在我們建立 S2D 機制時,執行的 PowerShell 指令「Enable-ClusterS2D」必須加上額外參數處理,例如,停用 S2D 的快取模式及略過自動組態設定機制。

圖 20、執行 PowerShell 指令 Enable-ClusterS2D 建立 S2D 軟體定義儲存環境

因為在剛才執行 Enable-ClusterS2D 指令時,我們略過自動組態設定機制,所以必須手動執行「New-StoragePool」指令,建立 S2D 的 Storage Pool 部分。也就是將 3 台 S2D-Node 共 9 顆磁碟串聯成 1 個大的儲存資源池。

圖 21、執行 PowerShell 指令建立 S2D Storage Pool

順利建立好 S2D Storage Pool 之後,我們就可以處理剛才磁碟 MediaType 的問題了。請執行 PowerShell 指令「Get-StorageSubsystem」,將剛才磁碟 MediaType 判斷為 UnSpecified 的部分,手動指定為「HDD」。

圖 22、手動指定磁碟的 MediaType 為 HDD



建立 vDisk 及 Volume

現在,我們可以放心在 S2D 叢集運作環境中,分別建立具備 2 份鏡像資料(2-Way Mirror),以及 3 份鏡像資料(3-Way Mirror)的 vDisk 及 Volume。在下列執行的 PowerShell 指令「New-Volume」中,我們將會分別建立名稱為「2Way-vDisk」以及「3Way-vDisk」的 S2D 叢集共用磁碟,同時這個 S2D Volume 將會採用最新的「ReFS」檔案系統。

圖 23、建立 2 份及 3 份鏡像資料的 vDisk 及 Volume

建立 2 份鏡像資料的 vDisk 倘若指派的空間為 10 GB,那麼實際佔用的儲存空間將為 20 GB,建立 3 份鏡像資料的 vDisk 則佔用的儲存空間為 30 GB。鏡像資料將由 S2D 機制的演算法進行管理,實際上使用以及看到的儲存空間仍為 10 GB

順利建立 2 份及 3 份鏡像資料的 vDisk 及 Volume 之後,在容錯移轉叢集管理員中當然也可以順利看到 Storage Disk 等相關資訊。

圖 24、透過容錯移轉叢集管理員管理介面,查看 S2D Storage Disk 資訊



建立 SOFS 檔案分享資源

最後,請為 3 台 S2D-Node 叢集節點主機安裝「檔案伺服器」角色,並且新增高可用性檔案伺服器角色,在本文實作環境中名稱為「S2D-SOFS」。接著,便可以新增 SOFS 檔案分享資源並且設定資料夾的存取權限,在本文實作環境中建立的分享資料夾名稱為「Share」,組態設定完畢後便可以開啟檔案總管,嘗試放入測試檔案至 S2D 所建立的 SOFS 分享資料夾。

圖 25、測試能否順利放入測試檔案至 S2D 所建立的 SOFS 分享資料夾





結語

透過本文的說明及實作演練,即使手邊沒有相關硬體資源可供利用的 IT 管理人員,也可以透過 Microsoft Azure 公有雲,輕鬆建立及測試微軟新一代 S2D 軟體定義儲存技術。