顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

網管人雜誌

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





文章目錄

前言
在 Hyper-V 虛擬化平台上運作 Unix-Like
什麼是 Hyper-V 整合服務?
Unix-Like虛擬主機整合服務
          CentOS 虛擬主機安裝整合服務
          FreeBSD 虛擬主機安裝整合服務
結語





前言

談到微軟作業系統,某些 IT 人員便認為在作業系統的部分一定是只有 Windows。雖然,Windows 偶爾有推出與開放源始碼整合的相關服務,但使用者通常仍覺得整合程度有限,但是這樣的狀況自從微軟 CEO Satya Nadella 上任並喊出 Microsoft Love Linux 之後便一一被打破,甚至最新推出的 Windows Server 2016 作業系統,還能夠原生執行 Container 容器技術。

同時,不光是地面上企業及組織的相關技術支援 Linux,就連微軟公有雲 Azure 也支援 Linux 作業系統的 VM 虛擬主機及相關服務,根據微軟的內部統計目前在 Azure 公有雲的 VM 虛擬主機工作負載當中,有 1/3 是運作 Linux 作業系統另外 2/3 才是運作 Windows 作業系統。

同時在 2016 年 3 月,微軟已經釋出 SQL Server on Linux 的封閉預覽測試版本,並宣佈預定於2017 年 Q2 將正式推出。屆時,在 Linux 作業系統中也可以安裝 Microsoft ODBC Driver for SQL Server,以便 Linux 作業系統能夠順利存取 SQL Server 資料庫服務。

圖 1、SQL Server on Linux 的封閉預覽測試版本

2016 年 4 月,微軟在 Build 開發者大會上正式宣佈,從 Windows 10(Build 14316)作業系統版本開始,將在 Windows 作業系統核心中加入子系統(Windows Subsystem for Linux),以便在 Windows 作業系統中能夠原生支援 Linux 使用者模式,這與舊有透過 Cygwin 模擬的方式完全不同。現在,你可以直接在 Windows 作業系統中原生執行 Ubuntu Bash、apt-get、git……等。

圖 2、運作 Ubuntu 原生 Bash 指令碼環境在 Windows 作業系統中

2016 年 8 月,微軟也宣佈自家的 PowerShell 指令碼工具正式 Open Sourced。現在,可以在多種 Linux 作業系統(例如,Ubuntu 14.04、Ubuntu 16.04、CentOS 7、OS X 10.11……等)中,直接透過 GitHub 下載安裝後運作 PowerShell 指令碼環境。

圖 3、在 CentOS 作業系統中運作 PowerShell 指令碼環境





在 Hyper-V 虛擬化平台上運作 Unix-Like

在 Hyper-V 虛擬化平台上運作 VM 虛擬主機,倘若客體作業系統採用 Windows 時相信 IT 管理人員應該不陌生,舉例來說,在 Windows Server 的部分支援 SBS 2011、2008 SP2、2008 R2、2012、2012 R2 以及最新版本的 Window Server 2016,至於 Desktop 的部分則支援 Vista SP2、7 SP1、8.1 及最新版本的 Windows 10。

那麼,倘若在 Hyper-V 虛擬化平台中要運作 Unix-Like 作業系統(例如,Linux 及 FreeBSD)時,哪些 Unix-Like 版本才有支援?倘若採用不支援的 Unix-Like 作業系統時是否無法運作在 Hyper-V 虛擬化平台上?Hyper-V 虛擬化平台能否運作 Unix(例如,AIX、HP-UX)或者是 Max OS X?

簡單歸納來說,Hyper-V 虛擬化平台無法運作 Unix 及 Max OS X。同時,當採用未支援的 Unix-Like 作業系統版本時,將會因為無法安裝「整合服務」(Integration Service),除了導致運作於 VM 虛擬主機當中的 Unix-Like 作業系統,無法針對相關虛擬硬體裝置安裝驅動程式與 Hyper-V 虛擬化平台進階功能整合之外,也將會影響 VM 虛擬主機的運作效能。

圖 4、Hyper-V 虛擬化平台是否能運作 Unix 及 Unix-Like 作業系統判斷流程示意圖





什麼是 Hyper-V 整合服務?

事實上,不管採用哪一種虛擬化平台都會需要幫其上運作的 VM 虛擬主機安裝適當的 Tools,以使其上運作的 VM 虛擬主機能夠與虛擬化平台進行最緊密的結合(例如,虛擬裝置驅動程式最佳化……等),舉例來說,倘若採用 VMware vSphere 虛擬化平台便需要幫 VM 虛擬主機安裝 VMware Tools,而 Citrix XenServer 虛擬化平台便需要幫 VM 虛擬主機安裝 Xen Tools。

在 Microsoft Hyper-V 虛擬化平台上,則是需要幫其上運作的 VM 虛擬主機安裝「整合服務」(Integration Services),安裝整合服務完畢後在驅動程式部份將會針對 IDE、SCSI、網路 、視訊 、滑鼠 …… 等方面進行最佳化,而在客體服務方面則會整合作業系統關閉(Shutdown)、時間同步化(Time Synchronization)、資料交換(Key/Value Exchange)、活動訊號(Heartbeat)、線上備份(Volume Shadow copy Service,VSS)……等機制,以期 VM 虛擬主機與 Microsoft Hyper-V 虛擬化平台不管是在效能運作上,或者是虛擬裝置驅動程式最佳化方面都能進行完美的結合。

圖 5、Hyper-V運作元件架構示意圖





Unix-Like 虛擬主機整合服務

倘若,您的 VM 虛擬主機安裝「Windows作業系統」的話,那麼在VM虛擬主機的Console視窗中可以直接執行插入整合服務安裝光碟的動作。當安裝「Linux 作業系統」如 RHEL / CentOS 時,Hyper-V 虛擬化平台雖然也支援「Emulated / Specific」2 種虛擬裝置,但是若需要發揮 Linux 作業系統最佳效能,建議您使用 Hyper-V Specific Devices 並配合安裝「LIS(Linux Integration Services)」,也就是專供 Linux 使用的整合服務映像檔並進行安裝才能達到效能最佳化。

專供 Linux 作業系統使用的 LIS 整合服務映像檔,目前最新版本為 4.1 您可至 Microsoft Download Center 下載「Linux Integration Services Version 4.1 for Hyper-V」,所下載整合服務映像檔名稱為「LinuxIC-4.1.2-2.iso」。

圖 6、下載專供 Linux 作業系統使用的 LIS 整合服務映像檔

LIS 4.1 for Hyper-V 整合服務,支援的 Linux 版本以 RHEL / CentOS 為例的話是 5.2 ~ 5.11、6.0 ~ 6.8、7.0 ~ 7.2,並且可以應用在多種Hyper-V虛擬化平台版本上,例如,Hyper-V 2.0(Windows Server 2008 R2)、Hyper-V 3.0(Windows 8 / 8.1 Pro、Windows Server 2012 / 2012 R2)以及最新的 Windows 10 和 Windows Server 2016。

最新的 LIS 4.1 版本中,除了原有整合服務的特色功能之外還支援下列 5 項新增功能:
  • Hyper-V Sockets。
  • 記憶體熱新增及移除。
  • SCSI WWN。
  • lsvmbus 指令。
  • 反安裝 LIS 整合服務指令碼。

安裝整合服務後的Linux虛擬主機,將具備核心(Core)、網路(Networking)、儲存(Storage)、記憶體(Memory)、視訊(Video)、其它(Miscellaneous)……等特色功能或最佳化效能:

核心(Core)

  • 整合式關機: 透過此功能,在開啟的VM Console視窗中便能為客體作業系統執行關機的動作,而無須登入至客體作業系統手動進行關機。
  • 時間同步處理: 確保VM虛擬主機能夠與Hyper-V主機保持時間同步。
  • 準確時間: 整合 Windows Server 2016 準確時間功能,改善主應用程式與時間同步處理的精確度,能夠將時間誤差值縮短在 1 毫秒的範圍內。
  • 多處理器支援: 支援組態配置 VM 虛擬主機多顆 vCPU 虛擬處理器,達到真正使用 Hyper-V主機多顆 CPU 處理器進行 SMP 平行運算。
  • 活動訊號: 以便 Hyper-V 虛擬化平台能夠偵測及追蹤 VM 虛擬主機運作狀態。
  • 整合式滑鼠支援: 滑鼠功能將可正常運作於 VM 虛擬主機的 Console 視窗中,以及自動在Hyper-V 虛擬化平台中正常切換。
  • Hyper-V 特定儲存裝置: 使 VM 虛擬主機擁有高效能及最佳化的 IDE/SCSI 儲存介面卡,有效提升工作負載能力。
  • Hyper-V 特定網路裝置: 使 VM 虛擬主機擁有高效能及最佳化的 Network Controller 介面卡,有效提升工作負載能力。

網路(Networking)

  • Jumbo Frame: 可設定 MTU 數值大於 1500 bytes 以增加網路效能。
  • VLAN Tagging 及 Trunking: 支援單一 VLAN ID 或多個 VLAN ID Trunking 網路環境。
  • 即時遷移: 讓 VM 虛擬主機支援即時遷移(Live Migration)、無共用儲存即時遷移(Shared Nothing Live Migration)、Hyper-V複本(Hyper-V Replica)…… 等進階功能。
  • 靜態 IP 導入: 當 Hyper-V 主機執行複本容錯移轉之後,因為已經複寫 VM 虛擬主機靜態 IP 位址,所以能夠確保網路工作負載能在發生容錯移轉事件後無縫繼續運作。
  • vRSS 虛擬接收端調整: 將 VM 虛擬主機虛擬網路卡的工作負載,平均分散到 VM 虛擬主機中的多個 vCPU 虛擬處理器。
  • TCP 分割和總和檢查碼卸載: 在傳輸網路數據時,從 VM 虛擬主機的 vCPU 虛擬處理器到 Hyper-V 主機的 vSwitch 虛擬網路交換器之間,進行資料分割及總和檢查碼的動作。
  • LRO 大型接收卸載: 透過將多個封包彙總為更大的緩衝區,以便提升高網路頻寬流入的傳輸量,進而降低 CPU 運算資源的開銷。

儲存(Storage)

  • VHDX 調整大小: 系統管理員可以隨時因應需求,線上調整 VM 虛擬主機的 VHDX 磁碟空間。
  • vHBA 虛擬光纖通道: 讓 VM 虛擬主機能夠感知原生光纖通道裝置,進而支援及使用虛擬光纖通道功能。
  • VM 虛擬主機即時備份: 讓 VM 虛擬主機能夠在運作中的情況下進行備份作業。
  • TRIM: 當應用程式不再需要磁碟空間時,協助執行磁碟空間回收的動作。
  • SCSI WWN: Storvsc 驅動程式將會擷取連接埠和連接至 VM 虛擬主機的全球名稱(WWN),以便建立適當的 sysfs 檔案。

記憶體(Memory)

  • PAE 核心支援: 在 Linux 作業系統中透過 PAE 技術,可以讓 32 位元核心存取超過 4 GB 的記憶體位址空間。舉例來說,舊版的 RHEL 5.x 必須個別在核心中啟用 PAE 功能,而較新版的 RHEL 6.x 則核心已經預先啟用 PAE 功能。
  • MMIO: 協助 JeOS(Just Enough Operating Systems)與 Hyper-V 主機實體記憶體區塊進行對應的動作。
  • 記憶體熱新增及移除: 提供 VM 虛擬主機在運作狀態中,線上動態增加及移除記憶體空間的機制。
  • Ballooning: 活化 Hyper-V 主機記憶體空間,以便渡過記憶體空間暫時不足的因應機制。

視訊(Video)

  • 特定視訊裝置: 提供 VM 虛擬主機高效能及高解析的視訊介面卡,但是此裝置並不提供增強的工作階段模式及 RemoteFX 功能。

其它(Miscellaneous)

  • KVP(Key-Value Pair)Exchange: 取得 VM 虛擬主機在資料方面讀取(Read)/ 寫入(Write)等資訊。
  • NMI 非遮罩式插斷: 協助 VM 虛擬主機當中的客體作業系統,因為應用程式漏洞而發生的崩潰情況,再主機重新啟動後有機會分析導致系統發生崩潰的原因。
  • 客體與主機進行檔案複製: 透過客體服務讓 VM 虛擬主機與 Hyper-V 主機之間,在進行檔案複製作業時無須透過網路介面卡進行傳輸。
  • lsvmbus 指令: 透過此指令可以獲得 Vmbus 的相關資訊。
  • Hyper-V Sockets: 透過載入 Hyper-V Sockets 核心模組,讓 VM 虛擬主機與 Hyper-V 主機之間建立專屬的通訊通道。
  • PCI Passthrough: 將安裝於 Windows Server 2016 主機上的 PCI Express 裝置,例如,網路介面卡、GPU 顯示卡……等,以直接傳遞的方式指派給 VM 虛擬主機使用。

那麼在 Hyper-V 虛擬化平台上所運作的 Linux 作業系統,哪種發行套件及版本分別支援上述說明的功能呢,舉例來說,採用新版 CentOS 7.0 雖然核心中已經支援 Hyper-V 裝置最佳化,但是仍無法使用 vRSS 功能,必須要採用更新的 CentOS 7.1 或 7.2 版本才支援,在 Ubuntu Server 也是一樣的情況,你會發現 Ubuntu 12.04 並不支援 vRSS 功能,必須使用新版本的 Ubuntu 14.04、16.04 或 16.10 才支援。

為了避免不必要的篇幅,在此便不將 Hyper-V 虛擬化平台所支援 Linux 發行套件及版本其所對應的功能逐一說明,有興趣的讀者不妨直接瀏覽 Microsoft 官方網站查詢及核對所支援的特色功能項目:
圖 7、RHEL / CentOS 版本及特色功能對應表



CentOS 虛擬主機安裝整合服務

當管理人員為 VM 虛擬主機,安裝舊版 RHEL / CentOS「5.2 ~ 5.8、6.0 ~ 6.3(32 或 64 位元)」時,那麼必須要為 RHEL/CentOS 客體作業系統安裝「Linux Integration Services Version 4.1 for Hyper-V」整合服務。

其它較新版本 RHEL / CentOS「5.9 ~ 5.11、6.4 ~ 6.8、7.0 ~ 7.2(32 或 64 位元)」,因為官方已經直接在該版本的 Linux 核心當中,直接內嵌 Hyper-V 相關虛擬裝置驅動程式。

因此,當 VM 虛擬主機安裝這些新版本的 RHEL/CentOS 客體作業系統版本後,其實可以無須再額外安裝 LIS 4.1 整合服務。除非,你希望使用 LIS 4.1 整合服務所提供的新增功能,例如,在預設情況下 CentOS 7.2 版本內建的整合服務,並未支援 SCSI WWN、lsvmbus 指令、Hyper-V Sockets 等功能。

那麼,當我們為 VM 虛擬主機安裝新版 CentOS 7.2 客體作業系統後,登入 CentOS 客體作業系統鍵入相關指令「uname -a、cat /etc/redhat-release、cat /var/log/dmesg | grep Vmbus」,便可以看到目前採用的 Linux 核心版本為「3.10.0-327.e17.x86_64」,採用的 CentOS 版本為「7.2.1511」,至於 Hyper-V 整合服務所使用的 hv_vmbus 版本則為「3.0」

圖 8、CentOS 7.2 客體作業系統版本資訊,以及內建的 Hyper-V LIS 整合服務資訊

接著,我們從 Hyper-V 虛擬化平台方面,透過 Hyper-V 管理員來驗證此台 VM 虛擬主機是否真的已經支援整合服務了。首先,點選安裝 CentOS 7.2 的 VM 虛擬主機後,在下方 Hyper-V 管理員「摘要」頁籤中,可以看到活動訊號欄位的顯示結果為「良好(無應用程式資料)」,表示 Hyper-V 虛擬化平台可以正確偵測到VM虛擬主機運作狀態。

切換到「記憶體」頁籤後,您可以看到記憶體需求及記憶體狀態欄位為「1036 MB、確定」,表示 Hyper-V 虛擬化平台的動態記憶體功能,與目前 CentOS 客體作業系統已經順利協同運作了。
請注意! 倘若採用舊版 Windows Server 2012 虛擬化平台版本的話,則「尚未」支援 Linux 作業系統動態記憶體功能,必須採用 Windows Server 2012 R2 或新版 Windows Server 2016 虛擬化平台版本,才正式支援動態記憶體功能。

切換到「網路功能」頁籤中,你會看到在狀態欄位的部分顯示結果為「良好(VMQ 作用中)」,表示 CentOS 客體作業系統已經採用內建的整合服務,為 VM 虛擬主機所指派使用的虛擬網路介面卡,安裝好虛擬網路卡驅動程式並進行裝置最佳化的動作。

圖 9、新版 CentOS 7.2 已經內建 LIS 整合服務

倘若,你希望測試新版 LIS 4.1 整合服務中 lsvmbus 指令及 Hyper-V Sockets 功能的話,那麼便需要為 CentOS 7.2 安裝 LIS 4.1 整合服務。請為 VM 虛擬主機掛載剛才下載的 Linux Integration Services Version 4.1 for Hyper-V 整合服務映像檔 LinuxIC-4.1.2-2.iso,準備為 CentOS 7.2 作業系統安裝整合服務。

圖 10、為 VM 虛擬主機掛載 LIS 整合服務映像檔

順利掛載 LIS 整合服務映像檔之後,回到 CentOS 7.2 虛擬主機 Console 畫面,請依序鍵入指令「mount /dev/cdrom /media、cd /media/CentOS72、./install.sh」,執行掛載光碟機資源、切換到適合安裝的整合服務 CentOS 版本路徑、安裝整合服務等動作。

圖 11、為 CentOS 7.2 安裝新版 LIS 4.1 整合服務

當新版 LIS 4.1 整合服務安裝完畢後,請將 CentOS 7.2 客體作業系統重新啟動並卸載 LIS 整合服務映像檔。當 CentOS 7.2 客體作業系統重新啟動完畢後,便可以透過「/sbin/modinfo hv_vmbus」指令查看 hv_vmbus 版本,可以從指令執行結果中看到已經採用最新「4.1.2-2」版本。此外,如同剛才所說明的我們可以使用新版 LIS 4.1 整合服務中的「lsvmbus」指令,來查看相關虛擬裝置的 Vmbus ID 資訊。

圖 12、確認 CentOS 客體作業系統,是否採用最新的 hv_vmbs 4.1.2-2 版本
目前有個已知問題值得注意,倘若安裝 CentOS 客體作業系統的 VM 虛擬主機有啟用「安全開機」功能的話,那麼在安裝新版 LIS 4.1 整合服務後必須將安全開機功能「停用」,否則將會發現 CentOS 客體作業系統無法正常啟動或啟動後直接進入安全模式。



FreeBSD 虛擬主機安裝整合服務

雖然,FreeBSD 也是 Unix-Like 作業系統,但是 FreeBSD 的系統核心與 Linux 完全不同。同樣的,微軟官方也採用與 LIS 整合服務同樣的方式,讓運作於 Hyper-V 虛擬化平台中的 FreeBSD 虛擬主機,能夠支援及使用 Hyper-V Specific Devices 高效能虛擬裝置機制,此機制稱之為「BIS(BSD Integration Services)」

圖 13、微軟開發人員協同 FreeBSD 團隊開發 BIS 整合服務,讓系統核心支援 Hyper-V 虛擬化平台

倘若運作舊版 FreeBSD 8.4、9.1 ~ 9.3 的話,必須透過 FreeBSD Ports 套件管理機制,安裝「/head/emulators/hyperv-is」套件即可。在 2012 年 5 月 10 日時,Microsoft TechNet Blog發表一篇 FreeBSD Support on Windows Server Hyper-V 文章,內容便說明 Microsoft 以及合作夥伴 NetApp、Citrix 將在 BSDCan 2012 大會上,正式發表 FreeBSD 核心支援 Hyper-V 虛擬裝置驅動程式。

因此,倘若採用的是 FreeBSD 10.x 或最新版本的 FreeBSD 11,因為在 FreeBSD 核心中已經支援 BIS 整合服務,所以便無須再透過 FreeBSD Ports 套件管理機制進行安裝作業。
請注意,目前 Hyper-V 虛擬化平台中的 FreeBSD,仍無法採用「第二世代」格式的 VM 虛擬主機,同時 BIS 整合服務功能性的部分與 LIS 整合服務相較之下較少,舉例來說,動態記憶體功能尚未完全支援運作。

同樣的,在建立第一世代格式的 VM 虛擬主機並安裝最新版本 FreeBSD 11 之後,我們可以切換到 Hyper-V 管理員視窗中,確認 FreeBSD 虛擬主機的 BIS 整合服務是否順利運作。首先,切換到「摘要」頁籤中,可以看到活動訊號欄位的顯示結果為「良好(無應用程式資料)」,表示Hyper-V虛擬化平台可以正確偵測到VM虛擬主機運作狀態。

切換到「記憶體」頁籤中,您可以看到記憶體需求及記憶體狀態欄位為「空白」,這是因為BIS 整合服務機制尚未支援 Hyper-V 虛擬化平台的動態記憶體功能所致。切換到「網路功能」頁籤中,你會看到在狀態欄位的部分顯示結果為「良好(VMQ 作用中)」,表示 FreeBSD 客體作業系統已經透過 BIS 整合服務,為 VM 虛擬主機所指派使用的虛擬網路介面卡,安裝好虛擬網路卡驅動程式並進行裝置最佳化的動作。

圖 14、新版 FreeBSD 11 已經內建 BIS 整合服務

順利登入 FreeBSD 11 系統後,可以發現系統已經順利辨識到網路介面卡(代號為 hn0),查看系統開機訊息可知 hn0 網路卡為「Hyper-V Network Interface」,也就是已經採用最佳化效能的 Hyper-V Specific Network Adapter,接著鍵入指令「ls /boot/kernel | grep hv」查看 FreeBSD 模組存放資料夾內容可知,協同 Hyper-V 虛擬化平台運作的相關模組檔案也已經存在。
倘若,VM 虛擬主機組態配置傳統網路介面卡時,將網路介面卡代號將為「de0」並模擬「Digital 21140A Fast Ethernet 100 Mbps」網路卡。
圖 15、順利辨識並載入 Hyper-V Specific Network 網路介面卡及相關模組

鍵入指令「dmesg | grep vmbus0」查詢 FreeBSD 開機訊息內容,你會看到 FreeBSD 透過內建的 BIS 整合服務,已經順利載入 Hyper-V 虛擬化平台協同運作的相關服務,例如,Heartbeat、KVP、Shutdown、Time Synch……等服務。

圖 16、FreeBSD 透過內建的 BIS 整合服務載入 Hyper-V 相關客體服務





結語

透過本文的說明及實作演練,當企業及組織的 IT 管理人員需要在 Hyper-V 虛擬化平台上運作 Unix-Like 作業系統時,便能夠正確為 Unix-Like 作業系統採用 LIS / BIS 整合服務,以便確保運作於 Hyper-V 虛擬化平台上的 Unix-Like 作業系統,能夠擁有最佳的工作負載及最大化的運作效能。

活動影片及講義 (2016/9/14 更新)

本次活動的錄影已經陸續上線,當天沒空參加的朋友可以補一下進度了。


此次活動另一個難忘的經驗,是接受由美國 Channel 9 團隊來訪並邀約採訪,與主持人全程英文隨性問答聊天 :)



活動簡介

Community Open Camp 由微軟 MVP 以及 Docker 、Laravel 台灣、R 、Python 等社群高手,即將於 2016 年 8 月 27 日星期六於中央研究院學術活動中心及人文社會科學館,帶給您一整天的實戰經驗分享。這次將由 22 位身經百戰的專家主講最熱門的技術議題與實戰的案例分享,包括從 Ansible 到 Docker、企業導入 Docker 經驗分享、給 PHP 開發者的 Visual Studio Code 指南、用 Python + Azure 做出你的聊天機器人、DevOps In OpenSource、利用微軟 IoT 打造專屬的環控機器人、Xamarin 跨平台原生 App 開發介紹,等等精彩的課程內容不但提升自己的技術競爭力,同時掌握最新的科技趨勢,歡迎您來參加 Community Open Camp


    活動資訊




    活動內容




    1、前言

    本文為採用 Dell EqualLogic PS6210XS 儲存設備,並搭配 IBM x3550 M4 主機安裝 CentOS 6.5 (x64),將測試 MPIO 及 LUN Hot-Extend 等功能。

    首先,了解一下 EqualLogic 相關術語的大致功能:

    • RAID6 Accelerate: 此為 Dell EqualLogic PS6210XS 儲存設備才能建立的 RAID Type,因為此機型才具備 SSD/SAS 混合硬碟的情境。
    • Group Name: 許多台 EqualLogic 儲存設備便能組成一個 Group,你可以定義 Group 名稱來區別。舉例來說,台北有多台 EqualLogic 儲存設備組成 Group,而高雄有多台 EqualLogic 儲存設備組成 Group,那麼屆時在進行 Replication 時便可以透過「Group Name」來達到識別的效果。
    • Group Management IP: 同樣的,多台 EqualLogic 儲存設備便能組成一個 Group 時,那麼便可以採用「Group Management IP」來達到 Portal 的效果,以達成統一集中管理的目的。
    • Group IP: 簡單來說,它就是 iSCSI Target 的 IP 位址。屆時,擔任 CentOS 主機 (擔任 iSCSI Initiator) 需要掛載 EqualLogic 儲存設備的儲存資源時,便是採用此 IP 位址進行存取。
    • Group Join Password: 當有 EqualLogic 儲存設備希望加入 Group 時,便需要此識別密碼來進行管控。
    • Member Name: 識別「每一台」EqualLogic 儲存設備之用。
    • Member Management IP: 「每一台」EqualLogic 儲存設備的管理用途 IP 位址。


    那麼此次實作環境當中,Dell EqualLogic PS6210XS 儲存設備與 10GbE Switch 的接法如下圖示,與一般傳統的 MPIO 接法有些許不同。

    首先,傳統的 MPIO 接法二台 10GbE Switch 並不會使用 LACP 的方式串連起來,第二個不同的是 PS6210XS 儲存設備第二片控制器的接法,正常的情況來講左邊的網路 Port (Ethernet0),應該會接左下角的 Switch0,但 Dell 的官方建議接法反而是接到右下角的 Switch 1 當中,最後不同的是傳統 MPIO 會該不同的網路卡給予不同的網段,但 Dell 的官方建議做法是「同一個網段」。



    文章目錄

    1、前言
    2、實作環境
    3、Dell EqualLogic PS6210XS 儲存設備
              步驟1. 初始化
              步驟2. 設定管理 IP 位址
              步驟3. 建立 RAID
              步驟4. 設定其它 IP 位址
              步驟5. 建立 Volume
    4、CentOS 6.5 主機
              步驟1. 安裝 Intel X520 10GbE 網卡驅動
              步驟2. 安裝 Dell HIT for Linux 套件
              步驟3. 掛載 iSCSI Target 儲存資源
              步驟4. 格式化及 Mount Point 掛載
              步驟5. 測試 MPIO 負載平衡及容錯備援機制
              步驟6. 測試 Volume Hot-Extend 機制
    5、更新 PS6210XS Firmware
    6、資料中心或機房電力維護
    7、I/O 效能測試
    8、參考
    9、Me FAQ
              Q1. HP Ethernet 10Gb 2-port 560SFP+ 網卡 MPIO 機制有問題?

    2、實作環境

    • Dell EqualLogic PS6210XS (SAS 400GB SSD *7、600GB 10K SAS *17)
    • HP ProLiant DL360 G9 (CentOS 6.5 x64)
    • Dell N4032F 10GbE Switch
    • IBM x3650 M4 (Intel Corporation Ethernet 10G 2P X520 Adapter)


    上述術語中,PS6210XS 儲存設備相關項目的設定值如下:

    • RAID Type: RAID-6 Accelerate
    • Group Name: LabGroup
    • Group Management IP: 10.10.10.150/24
    • Group IP: 10.10.99.10/24
    • Group Join Password: weithenn168
    • Controller Ethernet0 (eth0): 10.10.99.11/24
    • Controller Ethernet0 (eth1): 10.10.99.12/24
    • Member Name: member1
    • Member Management IP: 10.10.10.15/24


    3、Dell EqualLogic PS6210XS 儲存設備

    步驟1. 初始化

    Dell EqualLogic PS6210XS 儲存設備的初始化,請連接儲存設備的 Com Port 進行初始化的設定。

    PC/NB 端的 Com Port 設定如下:


    順利開啟 Console 並連接後,Dell EqualLogic PS6210XS 儲存設備預設的帳號及密碼為「grpadmin / grpadmin」,登入後首先會詢問是否要立即設定 Dell EqualLogic PS6210XS 儲存設備,鍵入「y」後繼續設定程序。接著會詢問是否要進行,儲存設備的網路功能初始化設定程序,請鍵入「yes」後繼續設定程序。


    此時,會詢問 Member Name 及網路介面(Ethernet0)的網路設定值,請依序填入相關網路資訊後即可行網路介面(Ethernet0)的初始化動作。請注意 !! Dell EqualLogic PS6210XS 儲存設備,此時的「網路介面(Ethernet0)」必須狀態為「Up」,也就是必須要先連接到 10GbE Switch 上,否則初始化的動作會發生失敗。接著,請填入 Group Name 此實作為「LabGroup」,以及 Group IP 位址此實作為「10.10.99.10」,填入完成後同樣要進行初始化的動作。


    下圖當中,便是在初始化 Ethernet0 網路介面時,並未連接到 10GbE Switch (狀態不是 Up),所以初始化網路介面的過程中會產生「Interface eth0 failed to connect to the network」的錯誤訊息。


    然後,系統會詢問說 Group Name 及 Group IP 不存在是否要建立,請鍵入二次「yes」即可完成 Dell EqualLogic PS6210XS 儲存設備的初始化動作了。


    完成初始化的動作之後,便會看到提示字元符號,而預設的群組名稱就是剛才初始化過程中所設定的 LabGroup。


    步驟2. 設定管理 IP 位址

    因為,此次實作環境是規劃採用 SFP+ 介面的 Ethernet0/1,所以我們以指令的方式先設定 「Member Management IP 位址」,若你的環境是採用 UTP介面的 Ethernet0/1 的話,那麼你已經可以開啟瀏覽器連接到 Dell EqualLogic PS6210XS 儲存設備的管理介面了。

    下列指令為,先顯示 Dell EqualLogic PS6210XS 儲存設備的網路介面資訊,接著指定管理介面(eth2)的 IP 位址,然後「啟用(up)」管理介面後,再次查看是否已經啟用完成。此時,PC/NB 主機若與 PS6210XS 儲存設備的管理介面同一個網段,應該已經可以 ping 到管理介面了。
    LabGroup> member select member1 show eths
    Name ifType          ifSpeed    Mtu  Ipaddress                     Status Errors DCB
    ---- --------------- ---------- ---- ----------------------------- ------ ------ ------
    eth0 ethernet-csmacd 10 Gbps    9000 10.10.99.11                   up     0
     off
    eth1 ethernet-csmacd 10 Mbps    1500                               down   0
     off
    eth2 ethernet-csmacd 10 Mbps    1500                               down   0
     off
    LabGroup> member select member1 eth select 2 ipaddress 10.10.10.15 netmask 255.255.255.0
    LabGroup> member select member1 eth select 2 up
    This port is for group management only. Make sure it is connected to a dedicated
     management network.
    Do you want to enable the management interface? (y/n) [n]y


    請注意 !! PS6210XS 儲存設備的管理介面,必須要跟 Ethernet0/1 網路介面的 IP 位址「不同網段」,否則會發生無法設定管理介面 IP 位址的情況。
    LabGroup> member select member1 eth select 2 ipaddress 10.10.99.15 netmask 255.255.255.0
    % Error - Management interface must not be on SAN subnet.


    順利為 PS6210XS 儲存設備設定好管理介面 IP 位址之後,便可以開啟瀏覽器輸入 IP 位址及登入的管理者帳號及密碼之後,便可以登入管理網頁。



    步驟3. 建立 RAID

    登入後,首先調整 PS6210XS 儲存設備的時區及時間。預設情況下,設備的 Time Zone 為 America / Network (GMT-5),調整為我們所在的時區「Asia / Taipei (GMT+8)」,設定設備的時區後必須先按下管理介面右上角的 儲存 圖示。接著,便可以在 Current group time 區塊中,按下「Change」鈕調整 PS6210XS 儲存設備的時間。


    請點選 Group > Members > member1,此時會偵測到這台 PS6210XS 儲存設備尚未建立 RAID,因此會自動彈出詢問視窗,請按下「是」鈕準備建立 RAID。


    預設情況下,在 Name 欄位直接顯示此台設備的 Member Name,你可以在 Description 欄位填入此台設備的描述,確後按下「Next」鈕繼續。


    因為這款 PS6210XS 儲存設備,是款硬碟類型混合的儲存設備擁有「SAS 400GB SSD *7、600GB 10K SAS *17」,所以預設採用「RAID6 (accelerated)」類型,它的建立方式是會將「SSD 固態硬碟」的部份建立 RAID6,然後將「SAS 機械式硬碟」也建立 RAID 6 (會有一顆硬碟擔任 Hot Sapre),最後再將二者的空間加總起來。


    確認相關組態設定無誤之後,便可以按下「Finish」鈕完成 RAID 的設定動作。


    建立 RAID 的動作完成後,切換到「Disks」頁籤,可以看到會有一顆 SAS HDD 機械式硬碟擔任「HotSpare」的任務。


    切回到「Status」頁籤後,會看到 Progress 欄位顯示目前 RAID 的建立進度。此頁面最下方可以看到,建立 RAID6 (Accelerated) 後總儲存空間為「SSD(RAID6) + SAS(RAID6、1 Hot-Sapre)」。



    步驟4. 設定其它 IP 位址

    切換至「Group > Members > member1 > Network」頁籤,點選「eth1 > Modify IP settings」項目,便可以準備針對 Ethernet1 網路介面設定 IP 位址。


    在彈出的視窗中輸入,此實作的 IP 位址資訊「10.10.99.12 / 255.255.255.0」,並勾選「Enable interface」的選項後,按下「OK」鈕即可。



    接著,切換至「Group Configuration > Advanced > Configure management network」,便可以設定「Group Management IP」,本次實作環境為設定至「10.10.10.150」。


    步驟5. 建立 Volume

    建立屆時讓 CentOS 主機掛載的 Volume 儲存空間,請切換至 Volumes 項目,然後依序點選「Volumes > Create volume」。


    在彈出的視窗當中輸入 Volume 名稱及描述文字,此實作 Volume 名稱為「vol1」,按下「Next」鈕繼續設定程序。


    在 Space 設定頁面中,指定給予的 Volume 儲存空間,此實作設定為「100 GB」且 Snapshot 比率為「10%」,按下「Next」鈕繼續設定程序。


    在 iSCSI access 頁面,指定 CentOS 主機的 eth4、eth5 介面的 IP 位址(此實作為 10.10.99.65、10.10.99.66),能夠存取此 Volume,按下「Next」鈕繼續設定程序。


    然後決定 Sector Size,此實作環境中採用預設的「512 bytes」即可,按下「Next」鈕繼續設定程序。


    最後,確認相關組態設定內容無誤之後,按下「Finish」鈕即可完成 Volume 的建立動作。



    4、CentOS 6.5 主機

    此次實作環境中,安裝作業系統為 CentOS 6.5 (x64),而實體伺服器的硬體方面有 4 Port 1Gbps  (eth0~eth3) 的網路卡Intel Corporation I350 Gigabit Network Connection,但我們著重在 MPIO 的部份。所以只會設定 eth0 有 IP 位址設定,而採用的 10GbE 網卡為 Intel Corporation Ethernet 10G 2P X520 Adapter,屆時便為「eth4、eth5」。


    步驟1. 安裝 Intel X520 10GbE 網卡驅動

    首先,會發現安裝 CentOS 6.5 (x64) 之後,並無法順利抓到 Intel X520 10GbE 網卡,所以鍵入「ifconfig」指令,只會看到 eth0 ~ eth3 實體伺服器內建的 1Gbps 網路卡而以。


    鍵入「lspci」指令,可以看到系統是能辨識到 1Gbps 及 10Gbps 網卡的,但 10Gbps 網卡卻無法順利運作。
    # lspci | grep -e I350 -e X520
    06:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
    06:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
    06:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
    06:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
    0c:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)
    0c:00.1 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)

    將驅動程式 (Intel_LAN_16.0.0_Linux_Binary_RPMs_A00.tar.gz) 上傳至 CentOS 主機後,安裝 Intel X520 10GbE 網卡驅動程式後,重新啟動主機。
    # tar zxvf Intel_LAN_16.0.0_Linux_Binary_RPMs_A00.tar.gz
    # cd Intel_LAN_16.0.0_Linux_Binary_RPMs_A00
    # cd RHEL6.5_KMOD
    # rpm -ivh kmod-ixgbe-3.21.2-1.x86_64.rpm
    Preparing...                ########################################### [100%]
       1:kmod-ixgbe             ########################################### [100%]
    # reboot

    安裝驅動程式並重新開機後,會發現鍵入 ifconfig 指令後,系統仍然無法顯示 eth4、eth5 網路介面,查看 system message 之後會發現錯誤訊息,其中有一段關鍵文字「failed to load because an unsupported SFP+ or QSFP module type was detected.」。
    # dmesg |grep ixgbe
    ixgbe 0000:0c:00.0: PCI INT A -> GSI 26 (level, low) -> IRQ 26
    ixgbe 0000:0c:00.0: setting latency timer to 64
    ixgbe: 0000:0c:00.0: ixgbe_check_options: FCoE Offload feature enabled
    ixgbe 0000:0c:00.0: failed to load because an unsupported SFP+ or QSFP module type was detected.
    ixgbe 0000:0c:00.0: Reload the driver after installing a supported module.
    ixgbe 0000:0c:00.0: PCI INT A disabled

    此問題的解法,只要在「/etc/modprobe.d/ixgbe.conf」設定檔當中,加入參數「options ixgbe allow_unsupported_sfp=1,1」後再重新開機即可解決。
    # cat /etc/modprobe.d/ixgbe.conf
     options ixgbe allow_unsupported_sfp=1,1
    # reboot

    重開機後 CentOS 便能順利使用 eth4、eth5 網路介面。
    # ethtool eth4
    Settings for eth4:
            Supported ports: [ FIBRE ]
            Supported link modes:   10000baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: No
            Advertised link modes:  10000baseT/Full
            Advertised pause frame use: No
            Advertised auto-negotiation: No
            Speed: Unknown!
            Duplex: Unknown! (255)
            Port: FIBRE
            PHYAD: 0
            Transceiver: external
            Auto-negotiation: off
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000007 (7)
                                   drv probe link
            Link detected: no

    接著,請設定 eth4、eth5 網路介面,採用此次實作環境中所規劃的 IP 位址「10.10.99.65、10.10.99.66」。
    # cat /etc/sysconfig/network-scripts/ifcfg-eth{4,5}
    DEVICE=eth4
    BOOTPROTO=static
    TYPE=Ethernet
    ONBOOT=yes
    IPADDR=10.10.99.65
    NETMASK=255.255.255.0
    NETWORK=10.10.99.0
    DEVICE=eth5
    BOOTPROTO=static
    TYPE=Ethernet
    ONBOOT=yes
    IPADDR=10.10.99.66
    NETMASK=255.255.255.0
    NETWORK=10.10.99.0


    步驟2. 安裝 Dell HIT for Linux 套件

    簡單來說,Dell HIT(Host Integration Tools) 便是針對 MPIO 設定的部份,能夠與 Dell EqualLogic PS6210XS 儲存設備的 MPIO 在傳輸上達到最佳化,那麼 Dell HIT for Linux 套件具備的特色功能如下:

    • EqualLogic iSCSI Multipathing: 自動管理 iSCSI Session 同時增強 I/O (有效減少 intra-group I/O forwarding)。
    • EqualLogic Configuration Utility: 使用 eqlconfig 來協助你設定 MPIO。
    • EqualLogic Host Performance and Configuration Tuning Suite: 使用 eqltune 來幫助你調校 Linux 效能 Verifies that an optimal set of tuning parameters are set for the Linux system to enhance performance and usability。
    • Auto-Snapshot Manager/Linux Edition (ASM/LE): 讓屆時 EqualLogic 的快照功能,能夠支援 Linux,進行 Point-in-time Copies of EqualLogic Volumes。
    • Remote Setup Wizard Command Line Interface: 使用 rswcli 來幫助你用指令設定 MPIO。
    • EqualLogic Log Gathering Facility: 使用 eqllog 收集 System Logs。
    • EqualLogic Volume Rethinning Facility: 使用 eqlvolume 管理 Thin-Provisioned Volumes。


    此次實作環境中所採用版本為 HIT 1.3 版本,它支援的作業系統版本以及 PS6210XS 儲存設備的 Firmware 版本如下所示:
    • Red Hat Enterprise Linux (RHEL):  5.9, 5.10, 6.4, and 6.5 (x86/x64)
    • SUSE Linux Enterprise Server (SLES):  11 SP2 and SP3  (x86/x64)
    • Oracle Linux with Unbreakable Enterprise Kernel release 5.10 (UEK2) and 6.5 (UEK2 and UEK3 x86_64 only)
    • Support for PS Series version 7.0 firmware

    至於 CentOS 主機與 10GbE Switch 及 PS6210XS 儲存設備之間,線路接法的示意圖如下:

    此外,Dell EqualLogic HIT/Linux MPIO 套件包含二個運作元件:

    • ehcmd (EqualLogic Host Connection Manager daemon): 監控 iSCSI Session,並協助設定 PS Group,會在背景運作。它是採用 Open-iSCSI 管理工具(iscsiadm) 來進行 新增、修改、刪除、最佳化 iSCSI Session 作業。
    • dm-switch (Kernel Module): 整合 Device Mapper Target to Multipath Devices,負責 Route I/O 最佳化的部份。


    將 Dell HIT for Linux 安裝套件映像檔 (equallogic-host-tools-1.3.0-2.iso),上傳至 CentOS 主機後便可以進行安裝作業。
    # mkdir -p /media/iso
    # mount -o loop equallogic-host-tools-1.3.0-2.iso /media/iso
    # df -h
    Filesystem                               Size  Used Avail Use% Mounted on
    /dev/sda3                                 50G  524M   47G   2% /
    tmpfs                                    142G   72K  142G   1% /dev/shm
    /dev/sda1                               1022M  264K 1022M   1% /boot/efi
    /dev/sda6                                250G  188M  237G   1% /home
    /dev/sda2                                 99G  2.3G   92G   3% /usr
    /dev/sda4                                 50G  405M   47G   1% /var
    /root/equallogic-host-tools-1.3.0-2.iso   43M   43M     0 100% /media/iso
    # /media/iso/install --nogpgcheck
    Dell EqualLogic install script version 1.3.0 Build 388434
    Copyright (c) 2010-2014 Dell Inc.
    =============================================================
    Beginning install of Dell EqualLogic Host Integration Tools
    =============================================================
    Detected compatible pre-compiled kernel module packages:
      /media/iso/packages/el6/x86_64/kmod-dell-dm-switch-1.3.0-0.x86_64.rpm
    Displaying the End User License Agreement..
    DELL END USER LICENSE AGREEMENT Ver. 1.3 TYPE-A SOFTWARE
    THIS IS A LEGAL AGREEMENT BETWEEN YOU (EITHER AN INDIVIDUAL OR AN ENTITY) AND
    DELL PRODUCTS L.P. OR DELL GLOBAL B.V. (SINGAPORE BRANCH), ON BEHALF OF DELL
    INC. AND ITS WORLDWIDE SUBSIDIARIES AND AFFILIATES (COLLECTIVELY, "Dell" OR
    "DELL"), WHICH GOVERNS YOUR USE OF THE SOFTWARE. THE SOFTWARE SHALL MEAN
    ...略...
    Press <Space> to view the next page, or 'q' to quit viewing the EULA (1/17)q


    此時,如果 CentOS 可以順利對外 (此例為 eth0) 的話,即可顯示安裝相關套件的內容。


    若 CentOS 主機對外網路不通的情況下,則會出現如下錯誤訊息
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
    14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
    Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
    Install failed: The following packages are not present:
      equallogic-host-tools-1.3.0-2.el6
      kmod-dell-dm-switch-1.3.0-0
    Aborting configuration, installation didn't finish successfully.


    相關套件安裝完畢後,開始進行 MPIO 設定動作,此時會顯示這台 CentOS 主機的所有網路介面,請選擇屆時專用於 MPIO 儲存傳輸的網段,此實作環境為「10.10.99.0/24」,因此請鍵入「2」後繼續設定作業。



    接著,詢問是否要進行 HIT for Linux 的優化設定,採用預設值「Fix」即可,完成 HIT for Linux 套件的安裝以及 MPIO 設定。



    步驟3. 掛載 iSCSI Target 儲存資源

    安裝 HIT for Linux 套件及 MPIO 設定後,接著準備進行掛載 Dell EqualLogic PS6210XS 儲存設備資源,也就是剛才建立 100GB Volume。根據系統提示安裝套件完畢後先執行 equallogic 指令,以及「ehcmcli status」指令確認運作狀態。此時,因為尚未掛載任何 Volume,所以只會看到網路介面卡的 IP 位址及 MAC 資訊。


    接著輸入指令「rswcli --mpio-include --network=10.10.99.0 --mask=255.255.255.0」,明確指定 MPIO 的網段,然後再輸入「rswcli --mpio-list --io」指令確認。
    # rswcli --mpio-include --network=10.10.99.0 --mask=255.255.255.0
    Processing mpio-include command...
    Adding '10.10.99.0 - 255.255.255.0' to include list
    No change made. '10.10.99.0 - 255.255.255.0' is already included.
    Discovered Adapters:
    eth0: 192.168.11.133    (Excluded)
    eth4: 10.10.99.65       (Included)
    eth5: 10.10.99.66       (Included)

    The mpio-include command succeeded.
    # rswcli --mpio-list --io
    Processing mpio-list command...
    Discovered Adapters:
    eth4: 10.10.99.65       (Included)
    eth5: 10.10.99.66       (Included)
    The mpio-list command succeeded.



    預設情況下,採用的 MPIO 演算法為 LQD(Least Queue Depth)。但是,此次的實作環境當中,經過測試後採用「RR(Round Robin)」演算法較佳,因此執行指令進行調整。
    # rswcli --mpio-parameters --dlb RR
    Processing mpio-parameters command...

    MPIO Parameters:
    Max sessions per volume slice: 2
    Max sessions per entire volume: 6
    Minimum adapter speed: 1000
    Default load balancing policy configuration: Round Robin (RR)
    IOs Per Path: 16
    Use MPIO for snapshots: Yes
    Internet Protocol: IPv4
    The mpio-parameters command succeeded.
    New load-balancing policies will take effect on existing multipath devices in several seconds.
    Warning: No IPv4 discovery portals configured. Add the array IPv4 group IP as a discovery portal in the iSCSI Initiator.


    執行上述指令後,將演算法改為 Round Robin 的方式,同時你也可以確認「/etc/equallogic/eql.conf」設定檔內容是否已經變更了。
    # grep LoadBalanceType /etc/equallogic/eql.conf
    LoadBalanceType = round-robin


    掛載 Volume 之前,先確認可以與 Dell EqualLogic Group IP (10.10.99.10) 溝通無誤。
    # ping -I eth4 -c10 10.10.99.10
    # ping -I eth5 -c10 10.10.99.10


    確認 CentOS 主機的 MPIO 網卡,都能順利與 Dell EqualLogic Group IP (10.10.99.10) 溝通後,便可以進行 iSCSI Target 儲存資源的掛載動作。其中,第二行指令加上「--login-at-boot」參數表示下次啟動時順便自動掛載。
    # iscsiadm -m discoverydb -p 10.10.99.10 -t st -o new -D
    10.10.99.10:3260,1 iqn.2001-05.com.equallogic:0-fe83b6-c087ec8e8-0450000003154fd6-vol1
    10.10.99.10:3260,1 iqn.2001-05.com.equallogic:0-fe83b6-c087ec8e8-0450000003154fd6-vol1
    # ehcmcli login --target vol1 --portal 10.10.99.10 --login-at-boot
    Looking up volume by name (vol1)
      Found: iqn.2001-05.com.equallogic:0-fe83b6-c087ec8e8-0450000003154fd6-vol1 (10.10.99.10)
    Login succeeded.  Device to mount:
    /dev/eql/vol1
    # iscsiadm -m discoverydb
    10.10.99.10:3260 via sendtargets


    掛載儲存空間完畢後,可以再次確認目前的運作狀態。此時,便可以看到 Volume List 區塊中有相關資訊了,或是在 Web 管理介面也可以看到相關資訊。




    步驟4. 格式化及 Mount Point 掛載

    完成 iSCSI Target 儲存資源的掛載動作後,在進行儲存空間格式化及掛載的動作之前,再次確認 CentOS 主機的 eth4、eth5 介面,能夠順利與 PS6210XS 儲存設備的 Group IP (10.10.99.10) 順利溝通。
    # ping -I eth4 -c5 10.10.99.10
    # ping -I eth5 -c5 10.10.99.10


    CentOS 主機便可以將其儲存空間進行格式化為 Ext4 檔案系統的動作後,掛載至目前的系統當中。
    # mkdir -p /vol1
    # mkfs.ext4 /dev/eql/vol1
    # mount /dev/eql/vol1 /vol1
    # df -h
    Filesystem                                                Size  Used Avail Use% Mounted on
    /dev/sda3                                                  50G  526M   47G   2% /
    tmpfs                                                     142G   68K  142G   1% /dev/shm
    /dev/sda1                                                1022M  264K 1022M   1% /boot/efi
    /dev/sda6                                                 250G  188M  237G   1% /home
    /dev/sda2                                                  99G  2.3G   92G   3% /usr
    /dev/sda4                                                  50G  408M   47G   1% /var
    /root/equallogic-host-tools-1.3.0-2.iso                    43M   43M     0 100% /media/iso
    /dev/mapper/eql-0-fe83b6-c087ec8e8-0450000003154fd6-vol1   99G  188M   94G   1% /vol1
    # grep vol1 /etc/fstab
    /dev/eql/vol1           /vol1                   ext4    defaults        0 0



    此時,再次查看 CentOS 主機 MPIO 機制與 PS6210XS 儲存設備的連線狀態。




    步驟5. 測試 MPIO 負載平衡及容錯備援機制

    可以安裝 bwm-ng 套件,以便稍後方便觀察 CentOS 網路卡的傳輸情況。
    # rpm -ivh bwm-ng-0.5-2.el6.rf.x86_64.rpm
    warning: bwm-ng-0.5-2.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    Preparing...                ########################################### [100%]
       1:bwm-ng                 ########################################### [100%]


    接著,我們在 /vol1 掛載點下,建立一個簡單產生檔案的迴圈 Shell Script,以便稍後可以測試 MPIO 的負載平衡及容錯機制。
    # cd /vol1/
    # cat mpio-test.sh
    #!/bin/sh
    x=1
    y=10000
    while [ $x -le $y ]
       do
           dd if=/dev/zero of=test-$x bs=1M count=1 conv=fdatasync
           x=`expr $x + 1`
       done
    # chmod 755 mpio-test.sh


    執行這個產生檔案的迴圈 Shell Script 之後,可以看到「eth4、eth5」二張網路卡介面同時傳輸,也就是達成 MPIO 平時 負載平衡 流量的機制。如果,將其中一片網路卡連線拔除的話,會發現另一片連線中的網路會繼續傳輸,達成 容錯備援 機制。當然,如果再將網路連線復原的話,會發現系統又自動負載平衡流量。



    當然,如果是 PS6210XS 儲存設備的 Ethernet0/1 故障,或是整個 Controller 故障的情況呢?
    當 Active Controller 上 Ethernet0/1 其中一個 Port 故障時,那麼 Standby Controller 會接手一個介面,舉例來說,Active Controller Ethernet0 故障,那麼會變成 Standby Controller Eethernet0 及 Active Controller Ethernet1 同時運作。

    步驟6. 測試 Volume Hot-Extend 機制

    測試完 MPIO 效能之後,接著來測試 Volume Hot-Extend 的功能,也就是線上擴充儲存資源,我們可以看到目前 CentOS 所掛載的 Volume 為「100 GB」。


    請先切換到 Dell EqualLogic 管理介面,依序點選「Volumes > vol1 > Modify settings > Space」,可以看到目前為 100GB 空間。接著,直接改變儲存空間為「150 GB」,並確認 Volume Size 已經變成 150 GB。




    完成 PS6210XS 儲存設備的空間設定後,必須等待大約 1 分鐘左右 CentOS 便能感知到,你以在 CentOS 主機端利用「fdisk -l」指令來確認空間是否已經感知到,確認後便可以使用「resize2fs」指令來線上擴充掛載點儲存空間。


    5、更新 PS6210XS Firmware

    我們可以透過 Web 管理介面,來更新 PS6210XS 儲存設備 Firmware 版本,可以利用指令用在 Web 管理介面了解目前的 Firmware 版本。此實作環境中,目前 Firmware 版本為「7.0.5」,我們會更新至目前最新版本「7.1.4」。


    接著,登入 Web 管理介面,依序點選「Group Configuration > Updates > Update firmware」,然後彈出驗證確認視窗,請輸入管理者密碼即可。


    然後,選擇最新 Firmware 版本檔案「kit_64_V7.1.4-R405872_2573139742.tgz」後,準備進行更新作業。更新作業完後,便會提醒必須重新啟動儲存設備。







    更新的程序是,先將 Standby Controller 更新成最新版本 Firmware,然後切換接手成為 Active Controller,然後再把原本的 Active Controller (變成 Standby Controller) 更新。更新作業完成後,便可以看到已經變成最新版本 Firmware。



    6、資料中心或機房電力維護

    如果,遇到資料中心或機房需要進行電力維護,請先將前端的 CentOS 主機卸載儲存資源後關機,最後再把 PS6210XS 儲存設備關機即可。屆時,電力維護完成後,先把 PS6210XS 儲存設備開機,最後前端 CentOS 主機便會自動掛載儲存資源。


    7、I/O 效能測試

    使用 IOmeter 簡單測試一下,這台 PS6210XS 儲存設備的 I/O 效能,其中測試檔案大小為「32 GB」,而 OutStanding I/O 則為「1、2、4、8、16、32」,至於測試項目如下:

    • 4KB – Random – 67% Read – 33% Write
    • 8KB – Random – 67% Read – 33% Write
    • 64KB – Random – 67% Read – 33% Write
    • 64KB – Sequential – 100% Read – 0% Write
    • 64KB – Sequential – 0% Read – 100% Write










    8、參考



    9、Me FAQ

    Q1. HP Ethernet 10Gb 2-port 560SFP+ 網卡 MPIO 機制有問題?

    Error Message:
    實體伺服器為 HP DL360 G9,所安裝的 10GbE 網卡為 HP Ethernet 10Gb 2-port 560SFP+ Adapter Driver,當安裝 HIT for Linux 之後,在測試 MPIO 機制時,並不會 eth4、eth5 同時運作,而是「非常緩慢」的在二個介面之間進行資料讀寫的動作?

    Ans:
    因為,此台主機安裝 CentOS 6.5 (x64) 作業系統之後,預設情況下便能抓到 10GbE 網卡 (此時驅動程式版本為 3.15),後續至下載最新驅程版本再安裝後即可解決此問題。 HP 支援中心 - HP Ethernet 10Gb 2-port 560SFP+ Adapter 的驅動程式與軟體。下載的驅動程式檔案為「kmod-hp-ixgbe-3.22.0.2-10.rhel6u5.x86_64.rpm」版本為 3.22