[iSCSI]在vSphere 5 做iSCSI port binding
發表於 : 2012-03-14 18:12:24
vSphere 4.1
http://vlife.pixnet.net/blog/post/26926176
vSphere 5
http://vprimer.com/2011/08/02/vsphere-5 ... a-welcome/
前幾天 Weithenn 來信詢問了一個關於 ESX/ESXi 的 iSCSI Multipathing 的問題,這個問題問的非常之好,現在企業使用 iSCSI SAN 的情況已經非常普遍,我想許多人也會想要做 iSCSI Multipathing,來達成負載平衡及備援路徑的目的。由於虛擬化環領域牽扯廣泛,大部分的人在實作這個部分的時候,配置上可能多多少少會產生一些疑惑。
究竟虛擬化環境要達成 iSCSI Multipathing,應該要怎麼去做呢?
在討論這個問題之前,我們先來釐清幾個比較容易造成混淆的部分 :
使用 NIC teaming / Link Aggregation 還是 MPIO?
使用 LACP 確實可以達成 iSCSI 多重路徑備援的故障切換需求,但因為是使用 ESX 的 IP based 負載平衡方式,如果你所要存取的 iSCSI target 只有一個 IP (TCP connection) 的話,那麼只會有一次的 hash (除非 active 實體網卡斷線),initiator 與 target 之間,永遠只會走同一條路徑,無法達到多重路徑同時存取的需求。所以 Link Aggregation 適合於特定的環境中使用,例如 outbound 目標是多 IP 的環境,才能顯現出它的效益。那麼 MPIO 呢? 它可以讓 iSCSI initiator 使用多個 session 登入 iSCSI target 存取,透過多個實體網路卡做到 failover、Round Robin。先天上而言,就是專門為 iSCSI Multipathing 所設計的。這並不意味 NIC teaming 就一定不能使用,非要 MPIO 不可,只是在 iSCSI 環境下,多重路徑存取一般而言 MPIO 較為適合,但 NFS 則採用 NIC teaming。
若在 vSphere 環境下,iSCSI initiator 配置 MPIO 應該是在 VM 的 OS level 去設定,或是在 ESX(i) level 設定?
視情況而定,基本上在 OS level 和 ESX(i) level 都可以實現 iSCSI MPIO 機制,但在虛擬化的架構下,其實在 ESX(i) host 去配置 MPIO 是比較恰當的。一來 OS 不用去新增多個 vNIC 來安裝 software initiator 與設定 MPIO,可避免多 VM 重複配置的功夫與損耗,二來由 ESX(i) 來掌控硬體資源,VM 可以不用去管多重路徑存取的問題。當然,還是得依公司環境的狀況需求而定。這篇文主要討論的,是 ESX(i) level 的 MPIO 配置。
在配置 ESX(i) MPIO 前,需要知道什麼?
Host 要 Create 2 個以上的 VMkernel port,讓 VMkernel 擁有2個以上的 vmkNICs 去 mapping 實體的網路卡,才能實現 MPIO。2 個 VMkernel port 可以在同個 vSwitch,也可以分開於不同的 vSwitch。同個 vSwtich 的話,多個實體網卡將自動成為 NIC teaming 機制,這時請勿再將 NIC teaming 設定成 Link Aggregation,並且應該於第一個 VMkernel port 的 PG 裡,將實體網路卡設定為只有一個是 active,另一實體網卡 (vmnic) 設定為 unused,再來,第二個 VMkernel port 的 PG 設定 vmnic 的 active / unused 為相反。總之,VMkernel port 與 vmnic 之間必須為一對一的 mapping。
以下是在vSphere 4.1配置 iSCSI multipathing 的主要步驟 :
1. 啟用 ESX(i) iSCSI software initiator。
2. 新增 VMkernel port 對應實體網路卡 (vmnic)。
3. 在 command line 輸入 : esxcli swiscsi nic add –n <VMkernel port_name> -d <vmhbaxx>
4. 再用 esxcli swiscsi nic list –d <vmhbaxx> 檢查是否有正確對應。
一般而言,儲存設備廠商皆有支援 VMware NMP,按照 Storage type 特性,PSP (path selection plugin) 的 fixed / MRU / Round Robin 應該都是可設定的。比較要注意的是,如果 VM 是配置成 MSCS 的話,那麼在 ESX 的 multipath 不要選 RR 的模式,避免發生存取問題。另外由於 vSphere 4 有了 PSA,如果想將 VMware NMP 替換成 storage vendor 所提供的 plugin,則細部調整與選項,請參考儲存設備廠商的建議。
http://vlife.pixnet.net/blog/post/26926176
vSphere 5
http://vprimer.com/2011/08/02/vsphere-5 ... a-welcome/
前幾天 Weithenn 來信詢問了一個關於 ESX/ESXi 的 iSCSI Multipathing 的問題,這個問題問的非常之好,現在企業使用 iSCSI SAN 的情況已經非常普遍,我想許多人也會想要做 iSCSI Multipathing,來達成負載平衡及備援路徑的目的。由於虛擬化環領域牽扯廣泛,大部分的人在實作這個部分的時候,配置上可能多多少少會產生一些疑惑。
究竟虛擬化環境要達成 iSCSI Multipathing,應該要怎麼去做呢?
在討論這個問題之前,我們先來釐清幾個比較容易造成混淆的部分 :
使用 NIC teaming / Link Aggregation 還是 MPIO?
使用 LACP 確實可以達成 iSCSI 多重路徑備援的故障切換需求,但因為是使用 ESX 的 IP based 負載平衡方式,如果你所要存取的 iSCSI target 只有一個 IP (TCP connection) 的話,那麼只會有一次的 hash (除非 active 實體網卡斷線),initiator 與 target 之間,永遠只會走同一條路徑,無法達到多重路徑同時存取的需求。所以 Link Aggregation 適合於特定的環境中使用,例如 outbound 目標是多 IP 的環境,才能顯現出它的效益。那麼 MPIO 呢? 它可以讓 iSCSI initiator 使用多個 session 登入 iSCSI target 存取,透過多個實體網路卡做到 failover、Round Robin。先天上而言,就是專門為 iSCSI Multipathing 所設計的。這並不意味 NIC teaming 就一定不能使用,非要 MPIO 不可,只是在 iSCSI 環境下,多重路徑存取一般而言 MPIO 較為適合,但 NFS 則採用 NIC teaming。
若在 vSphere 環境下,iSCSI initiator 配置 MPIO 應該是在 VM 的 OS level 去設定,或是在 ESX(i) level 設定?
視情況而定,基本上在 OS level 和 ESX(i) level 都可以實現 iSCSI MPIO 機制,但在虛擬化的架構下,其實在 ESX(i) host 去配置 MPIO 是比較恰當的。一來 OS 不用去新增多個 vNIC 來安裝 software initiator 與設定 MPIO,可避免多 VM 重複配置的功夫與損耗,二來由 ESX(i) 來掌控硬體資源,VM 可以不用去管多重路徑存取的問題。當然,還是得依公司環境的狀況需求而定。這篇文主要討論的,是 ESX(i) level 的 MPIO 配置。
在配置 ESX(i) MPIO 前,需要知道什麼?
Host 要 Create 2 個以上的 VMkernel port,讓 VMkernel 擁有2個以上的 vmkNICs 去 mapping 實體的網路卡,才能實現 MPIO。2 個 VMkernel port 可以在同個 vSwitch,也可以分開於不同的 vSwitch。同個 vSwtich 的話,多個實體網卡將自動成為 NIC teaming 機制,這時請勿再將 NIC teaming 設定成 Link Aggregation,並且應該於第一個 VMkernel port 的 PG 裡,將實體網路卡設定為只有一個是 active,另一實體網卡 (vmnic) 設定為 unused,再來,第二個 VMkernel port 的 PG 設定 vmnic 的 active / unused 為相反。總之,VMkernel port 與 vmnic 之間必須為一對一的 mapping。
以下是在vSphere 4.1配置 iSCSI multipathing 的主要步驟 :
1. 啟用 ESX(i) iSCSI software initiator。
2. 新增 VMkernel port 對應實體網路卡 (vmnic)。
3. 在 command line 輸入 : esxcli swiscsi nic add –n <VMkernel port_name> -d <vmhbaxx>
4. 再用 esxcli swiscsi nic list –d <vmhbaxx> 檢查是否有正確對應。
一般而言,儲存設備廠商皆有支援 VMware NMP,按照 Storage type 特性,PSP (path selection plugin) 的 fixed / MRU / Round Robin 應該都是可設定的。比較要注意的是,如果 VM 是配置成 MSCS 的話,那麼在 ESX 的 multipath 不要選 RR 的模式,避免發生存取問題。另外由於 vSphere 4 有了 PSA,如果想將 VMware NMP 替換成 storage vendor 所提供的 plugin,則細部調整與選項,請參考儲存設備廠商的建議。