
我有一個帶有四個網路介面的 FreeNAS 伺服器。 iSCSI 流量透過其中兩個接口,每個接口在不同子網路中都有一個 IP 位址。例如:
igb0:192.168.10.1/24 igb1:192.168.11.1/24
三台 XenServer 主機只有一個專用於 iSCSI 流量的介面。因此,在示意圖中,儲存上有兩個接口,主機上總共有三個接口。
我的計劃是與主機實現高達 2Gbit 的連接,每個主機限制為 1Gbit。
問題始於不同的子網劃分。我不知道如何將兩個不同的 IP 位址放在 XenServer 主機上的相同網路介面上。 XenCenter 根本不允許我這樣做。另一個想法是使用不同的 VLAN 隔離此類流量。沒關係,但這似乎也不起作用。
編輯:不幸的是,LACP 無法按預期工作,FreeNAS 文件上有更多資訊:「LACP 和其他形式的鏈路聚合通常不能很好地與虛擬化解決方案配合使用。在虛擬化環境中,考慮透過創建來使用iSCSI MPIO iSCSI 門戶。
這就是為什麼我嘗試設定 MPIO,甚至使用 VLAN 和 hack 來實現 2Gbit/s 的儲存。
答案1
如果每台主機只有一個 iSCSI 接口,則您將無法透過此處描述的設定使用 MPIO。但是,您應該能夠將 FreeNAS 系統設定為使用連結聚合 (LACP),以便您可以同時為兩台主機提供服務,每台主機的容量均為 1Gb(FreeNAS 總共提供 2Gb)。查看 LACP(或為每個主機取得第二個 NIC),而不是 MPIO。
編輯:通常不建議將 LACP 用於虛擬化的原因是它不符合人們的預期。他們通常期望透過在主機上放置兩個網路卡並在儲存空間上放置兩個網路卡,可以將單一虛擬機器(甚至該主機上的多個虛擬機器)的儲存頻寬增加一倍。它不是這樣工作的,但 MPIO 在正確配置後可以這樣做。然而,這顯然不是您想要做的。如果我正確地閱讀了您最初的問題,您的儲存盒中有兩個 1Gb NIC,每個 XenServer 主機中有一個 1Gb NIC(至少用於儲存 - 讓我們暫時忽略其他網路連線)。您希望每個主機能夠同時飽和與儲存盒的連線。儲存盒上的 LACP 正是此處的正確解決方案(XenServer 主機上不需要 LACP,因為每個主機只有一個 NIC)。
如果您真的堅持要使用 MPIO 來實現這一點,這是可以完成的,但將是一個可怕的骯髒駭客行為。您基本上必須在每個主機上設定一個虛擬網路卡其他儲存網絡,然後告訴 XenServer 在 MPIO 配置中使用兩個 NIC。 XenCenter 當然不會讓您以這種方式配置它,因此您必須從命令列破解它。我不會告訴你如何做到這一點,因為它是錯誤的要做的事。當您進行任何配置更改時,它可能會崩潰,並且當您升級 XenServer 時,它幾乎肯定會崩潰。
信任社群:僅在儲存盒上設定 LACP,您將在這裡獲得您想要的東西。如果您需要類似的配置來解決問題,可以將其視為在 FreeNAS 盒子中安裝 2Gb NIC。 (當然,話雖如此,另一個解決方案是在 FreeNAS 盒子中添加一個 10Gb 網卡,並將其連接到主機所連接的交換機上的 10Gb 端口,但我猜你的交換機沒有上面有一個 10Gb 端口。)
答案2
將 LACP 用於 NFS。將 MPIO 用於 iSCSI。
如果您的虛擬機器管理程式主機沒有儲存介面冗餘,那是你應該把注意力集中在哪裡;沒有駭客,沒有廢話。在您的主機中新增額外的 NIC 並配置 MPIO。
答案3
LACP
連結綁定發生在乙太網路層 (L2),而不是 IP 層 (L3)。 LACP 協定涉及哈希,可以是 L2 哈希、L3 哈希甚至 L4 哈希(即查看 TCP/UDP 連接埠號碼),且此雜湊(根據設計)可防止單一會話跨越多個實體介面。因此,跨 LACP 與一個目標的單一 iSCSI 會話最多只能提供一個介面的速度。
MPIO
可以在給定 IP 位址上的單一發起方和單一目標之間開啟多個會話,如果該會話透過 LACP 綁定連接傳輸,那麼您可能有理由這樣做。遺憾的是,並非所有發起者和目標的組合都支持這一點。在我使用Citrix XenServer 6.2(可以免費下載的安裝程序,不是任何增強版本)進行的測試中,我的觀察是,當啟用多路徑IO 時,它會向它可以找到的每個IP 位址開啟一個會話。因此,如果您想要多個路徑,則需要在多個介面上設定多個 IP 位址。
較新版本的 Linux open-iscsi 有額外的功能,所以我猜 Xenserver 在某個階段也會獲得這個功能。