Load-Balancing

SAS 平衡與網路平衡

  • April 17, 2015

我想在 MS Windows Server 2012 R2 環境中配置文件伺服器,這將負載平衡流量

我有一個帶有 2 個 SAS 控制器的 SAS 磁碟陣列,它通過 4 個冗餘 SAS 多路徑連接到 2 個 Hyper-V 集群節點:

控制器1 <-> 節點1,控制器1 <-> 節點2

控制器2 <-> 節點1,控制器2 <-> 節點2

我不知道如果我不平衡網路,SAS 負載平衡是否會引起注意,這意味著網路上只有一台伺服器可以處理所有文件 I/O 請求。平衡網路似乎很複雜,因為我不想擁有 2 個具有相同數據副本的文件伺服器(磁碟陣列的 RAID 級別保證冗餘)。我想要的是將一堆數據拆分為兩個不相交的範圍,每個範圍都在單獨的文件伺服器上(每個虛擬伺服器在集群的一個節點上),這將充當單個伺服器或 SMB 共享。

使用者不知道伺服器 A 或 B 上有哪些數據,SMB 路徑應該類似於\\domain.com\home\usernameor\\domain.com\share\department並且家庭或部門應該分佈在兩台伺服器上(例如,第一台以“AP”開頭,其餘在第二台伺服器上的那些) )。

我有一個中央網路核心交換機,每個集群節點都有 5 GB/s 的聚合連結。網路的其餘部分連接到此交換機(每個接入交換機通過 2 GB/s 鏈路連接,客戶端通過 1 GB/s 鏈路連接)。

我的問題是:

  • 如果我不做網路負載平衡並保持 SAS 負載平衡,那麼 SAS 負載平衡會不會很明顯?
  • 是否有一些網路負載平衡集群技術可以實現上述結果?
  • 我知道有很多因素取決於具體情況(例如最大同時連接數或單獨的頻率,可能是短連接;讀取操作是否占主導地位等),但是我應該尊重任何一般的最佳實踐?
  • 不進行負載平衡並進行簡單管理的最簡單(也可能是最好的)方法不是嗎?

編輯:

非常感謝你!實際上,DFS 是我最先搜尋的想法之一,但我最終得到的結果是,我想要的 DFS 是不可能的。

玩了一段時間後,我有以下配置:

一個 DFS 命名空間 HOME,兩台文件伺服器都作為命名空間伺服器添加到其中,因此在每個伺服器上都有一個名為“home”的共享,物理上位於“C:\DFSRoots\home”下。在每台伺服器上還有一個名為“home$”的隱藏基本共享文件夾,物理上放置在磁碟陣列中。在第一台伺服器的隱藏共享中,我看到一半的 HOME 在其他 HOME 上。在(兩台伺服器的)家庭 DFS 共享中,我只看到連結(分發到隱藏共享),但看到所有 HOME。

當客戶端連接根 (\domain.com\root) 時,其中一個 DFS 命名空間伺服器會響應客戶端。在我的情況下,它始終是同一台伺服器,因為我只有一個站點。但沒關係,因為它只列出了 DFS 根目錄的內容。當客戶端導航到列出的連結之一時,DFS 建立與隱藏文件夾目標的連接,該目標是伺服器之一,因此完成了負載平衡。

此配置是否正確、最優?

最後一個問題是:SAS 通常比 LAN 快多少(例如 LACP 聚合的 5GB/s)?

你真的應該看看 Microsoft DFS 來做你所說的。

它提供了一種通過將所有內容集中在一個地方來抽像數據物理位置的方法。

因此,例如,您將擁有:

  1. 2 個集群節點(FSCL1、FSCL2)
  2. 2個集群文件服務(FS1、FS2),執行在上述節點上
  3. 2 個基於域的 DFS 命名空間(HOMES、SHARES),託管在上述節點上

每個文件服務可以有任意數量的共享,您只需根據需要在 DFS 中為它們創建連結。

這是我工作的地方的設置方式。這可能不是有史以來最好的事情,但它對我們來說非常實用。

我們的命名空間託管在專用伺服器上,但這並不是真正的要求。這只是意味著我們在 DFS 共享和目標共享之間沒有名稱衝突。

在我們的文件伺服器(FS1、FS2 等)上,我們將掛載點用於數據卷,否則我們會執行字母(~28 個數據卷、~7 個掛載點根、實用程序捲和仲裁)。假設 FS1,有 2 個數據卷,我們會有這樣的東西:

磁碟

掛載點根:2GB 卷分配為X:\

數據卷 1:2TB,掛載為X:\FS1_VOL1

數據卷 2:2TB,掛載為X:\FS1_VOL2

共享

在每個數據卷上,所有共享(無論是組還是使用者)都有一個“基本”文件夾。

對於組共享:X:\FS1_VOL1\FS1_V1_SHAREX:\FS1_V2_VOL2\FS1_V2_SHARE

對於使用者共享:X:\FS1_VOL1\FS1_V1_HOMEX:\FS1_V2_VOL2\FS1_V2_HOME

然後將這些共享隱藏,以創建這 4 個共享:

\\FS1.example.com\FS1_V1_SHARE$
\\FS1.example.com\FS1_V2_SHARE$
\\FS1.example.com\FS1_V1_HOME$
\\FS1.example.com\FS1_V2_HOME$

在這些共享中,將根據需要存在任意數量的使用者或組文件夾。

\\FS1.example.com\FS1_V1_SHARE$\HR
\\FS1.example.com\FS1_V2_SHARE$\Engineering
\\FS1.example.com\FS1_V1_SHARE$\Finance
\\FS1.example.com\FS1_V2_SHARE$\ITOPS

\\FS1.example.com\FS1_V1_HOME$\John.Public
\\FS1.example.com\FS1_V2_HOME$\Barak.Obama
\\FS1.example.com\FS1_V1_HOME$\Stephen.Harper
\\FS1.example.com\FS1_V2_HOME$\Paul.Smith

DFS

這是負載平衡的所有“魔力”發生的地方。

如果您有很多共享/使用者,您可能希望在命名空間中創建一個文件夾結構。我們剛剛創建了 26 個頂級文件夾 AZ。

SHARE命名空間中,您將創建指向您的共享的連結,如下所示:

\\example.com\SHARE\H\HR           =&gt;  \\FS1.example.com\FS1_V1_SHARE$\HR
\\example.com\SHARE\E\Engineering  =&gt;  \\FS1.example.com\FS1_V2_SHARE$\Engineering
\\example.com\SHARE\F\Finance      =&gt;  \\FS1.example.com\FS1_V1_SHARE$\Finance
\\example.com\SHARE\I\ITOPS        =&gt;  \\FS1.example.com\FS1_V2_SHARE$\ITOPS

HOME命名空間看起來像這樣:

\\example.com\HOME\P\John.Public    =&gt;  \\FS1.example.com\FS1_V1_HOME$\John.Public
\\example.com\HOME\O\Barak.Obama    =&gt;  \\FS1.example.com\FS1_V2_HOME$\Barak.Obama
\\example.com\HOME\H\Stephen.Harper =&gt;  \\FS1.example.com\FS1_V1_HOME$\Stephen.Harper
\\example.com\HOME\S\Paul.Smith     =&gt;  \\FS1.example.com\FS1_V2_HOME$\Paul.Smith

當客戶端瀏覽到命名空間時,你是對的,他被放到了命名空間根伺服器之一上。給定的客戶端不會總是在同一個客戶端上結束,但他會將其記憶體一段時間,在此期間所有操作都發生在同一個系統上。記憶體持續時間可在 DFS 管理單元中配置。在我們的環境中,我們看到根伺服器之間的分佈非常平滑。 根伺服器 #1 根伺服器 #2

這就是它的要點。

這意味著您需要為每個共享/使用者創建 DFS 連結,但同時也為您的數據所在位置提供了無限的靈活性,同時讓它們看起來都在同一個地方。

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