內容提要
本文描述了在 IBM System p 上部署 IBM DB2 Version 9 產品的最佳實踐。當你在 System p 平台上運行 DB2 產品,選擇合適的混合虛擬功能和它們的配置達到商業目標,同時提高 IT 資源的利用率是一個很大的挑戰。可以達到的商業目的是減少管理、電力、冷卻、或者室內面積成本、鞏固數據庫服務器。例如通過優化 DB2 產品性能來增加資源利用率、增加處理器利用率、分享系統資源、在不重啟的情況下使用動態資源分配,以及使用工作負載管理。
本文描述了 System p 的主要虛擬化技術,關注選擇的邏輯分區類型,磁盤 I/O,和網絡接口,都是工作負載管理。以下簡要描述的主要考慮因素,在本文中討論了在這方面的主要考慮以及它們如何能夠讓你的業務受益。
邏輯分區類型
由於基於預測的活動高峰值,大多數硬件系統嚴重的利用率不足,今天的企業不斷面臨的挑戰是使系統處理器的平均使用率更高以最大化投資回報率(ROI)。企業能高效鞏固多個數據庫共存在不同的物理服務器,或者在單台物理機器上共享處理器分區上的專用分區。這共享了處理器資源,平衡了高峰和平均操作情況下的處理器請求,降低總的擁有成本(TCO)。可以為每一個處理器分區分配服務質量來保證在較低優先級的工作負載可以獲得最優基礎資源時,更為重要的工作負載在需要的時候總能得到處理器資源。在不同的共享處理器分區處理測試和生產應用程序,也能有助於提高測試結果質量像測試環境如實的模擬生產環境。
磁盤 I/O 類型
對於創建多個共享分區的能力,如果給每個邏輯分區分配一個專用的 I/O 槽(每個分區有分數的權利)這可能耗盡這台機器的所有物理槽。同樣,在很多有多個數據庫都是邏輯分區的生產環境,在多個應用程序之間 I/O 性能需求變化非常明顯。在這種情況下,虛擬 I/O 服務器(ViOS)在多個應用程序間啟用共享磁盤適配器和 I/O 資源,以優化整個存儲架構的利用和滿足各種性能需求來最大化 ROI。ViOS 功能也提供額外的附加能力,像動態分區遷移(Live Partition Mobility)- 一個 POWER6 處理器家族的功能 – 允許沒有任何應用程序停機時間的情況下把一個正在運行分區從一個 POWER6 服務器移動到另為個 POWER6 服務器,結果就是更好的系統利用率,提高了應用程序的可用性和節約了能源。
網絡類型
類似於已經提到過的共享存儲的理由,ViOS 同樣管理共享網絡適配器,也在一個系統中多個分區間共享網絡帶寬。這同時最大化了系統資源利用率和 ROI。
在工作負載管理上的考慮
該類型的工作負載管理能力有 System p 虛擬技術,這對於企業管理客戶關系(CRM)或在正常時間的強化 CPU 批量作業的工作負載和高峰時間的事務系統的 CPU 活動非常重要。這些能力同樣適用於類似零售的行業,它們通常在一年中某些特定的日子對數據系統要求常高,像在感恩節後的第一天或者聖誕節後第一天,比起其他日子。有效的工作負載管理最大化了系統資源利用率和 ROI,同時降低了 TCO。
在把它們在你生產系統中實施之前,在你的測試系統中實驗這些最佳實踐指導。
介紹
虛擬化是一個廣義的概念包含一批服務器部署和管理功能。根據定義,虛擬化是用於抽象一個系統資源的物理特征的技術,與其它系統、應用程序、或者用戶與這些資源的互動。
虛擬化非常有用,因為你可以用它讓一個物理資源被看作多個邏輯資源,或者多個物理資源被看作一個邏輯資源;例如,一個處理器內核可以被看作多個虛擬處理器,或者為了增加可用存儲空間的使用率多個存儲設備可以統一到一個邏輯池中。因此虛擬化讓服務器的部署和利用更加富有彈性。你也可以通過虛擬化來鞏固服務器以減少管理成本、電源、和面積。作為附加的好處,你能使用虛擬化明顯的增加服務器利用率並提高整體性能效率。
這個 DB2 最佳實踐文章描述了如何選擇正確的 System p 虛擬化功能和配置組合來幫助你達到你所期望的商業目標(除非另有說明,DB2 版本 9 包括了 DB2 版本 9.1 和 DB2 版本 9.4)。
本文在一下范圍提供了指導:
了解在一個虛擬環境中 DB2 性能和擴展性
在 System p 上使用高級 Power 虛擬化
通過考慮下面兩個主要因素來為你的 DB2 環境選擇正確的虛擬化方法:
邏輯分區類型
磁盤 I/O 類型
網絡類型
工作負載管理
計劃和評估
作為其他的虛擬技術,如 VMware ESX 和 Windows Hypervisor,在以後變得可以利用,本文將擴展合並最佳實踐以適用於它們。需要提醒的是,在本文中出現的概念和技術主要適用於 Systme p 平台。
DB2 9 和 System p 虛擬化概要
System p 虛擬化技術在硬件和固件上提供了豐富的虛擬化功能實施。這些功能范圍從簡單的資源隔離到一組最先進和強大的功能,包括服務器資源分區,自動化動態資源重分配和工作復雜度管理。IBM System p 家族服務器已經在多個 IBM POWER 處理器家族中的多款處理器和多個支持的操作系統上逐步提供了虛擬化的功能。現在 System p 平台擁有成熟、完善的服務器虛擬化功能。
不像傳統的宿主環境,操作系統實例控制了服務器的所有的硬件資源(例如,處理器,內存,和 I/O 設備),虛擬化,以它的基本形式,允許服務器資源分區(邏輯分區)。虛擬化是由於一個被稱為 IBM POWER Hypervisor(PHYP)的層而成為可能的,PHYP 向共享處理器分區的操作系統提供了一個系統硬件資源的抽象的視圖。
虛擬化功能,比如 IBM Micro-Partitioning、虛擬 I/O(VIO)、還有虛擬以太網,通過提供價值的方法,例如資源共享、工作負載管理、和不需要操作系統實例重啟的動態資源分配(動態邏輯分區),VIO 讓你只需要少量命令來完成存儲分區和共享 。在分區環境中運行,VIO 也可以通過提供一個集中的焦點來減少存儲管理開銷。DB2 產品與 VIO 工作不需要任何額外的包或者驅動安裝。
System p 硬件支持 IBM AIX,IBM i,SuSE Linux Enterprise Server(SLES),和 Red Hat Enterprise Linux(RHEL) 操作系統。本文主要集中在 AIX 操作系統,但是你能把相同的指導微調或者直接擴展到其他支持的基於 POWER 處理器操作系統。
DB2 9 數據服務器是 IBM 提供的增長最快的旗艦級數據庫。它裝備了主機動態資源認識,自動化功能像自調整內存管理(STMM)和增強的自動存儲,它們極大的減少了在調整和維護方面的管理開銷。這些功能使 DB2 產品可以很好的匹配虛擬化環境,使它能夠利用 System p 虛擬化技術。
DB2 產品在 System p 虛擬化環境中無縫的工作。DB2 識別並對任何 LPAR 事件做出反應,比如運行時更改技術按和物理內存資源的主機分區。STMM 功能自動化地判斷並重新分配 DB2 堆內存以應對分區內的內存和工作負載情況的動態改變。
你能從‘參考資源’部分的列表中的很多網站中獲得額外信息。
虛擬化術語和概念
這個章節主要描述了虛擬化組件和功能並提供虛擬化環境的快速參考。讀者如果熟悉虛擬化術語和概念,可以略過這一節。
術語
描述
邏輯分區(LPAR)或分區
一個邏輯分區是一個隔離的計算域,有自己資源(處理器、內存、和 I/O接口)和操作系統實例。受支持的操作系統包括 AIX,Linux(RedHat,SLES),he IBM i操作系統。每個 LPAR能運行不同類型、版本或級別的操作系統。例如,在一個 LPAR中可以運行 AIX5L v5.2,第二個 LPAR能運行 AIX5L 5.3 TL06,第三個 LPAR能運行 AIX 6,第四個 LPAR能運行 Linux操作系統。
除了處理器和內存資源,每個 LPAR需要有它自己的根磁盤,網絡接口和存儲。這有一個方法可以通過虛擬 I/O來簡化並共享網絡和存儲適配器,在後面會後更多細節。
有兩種類型的 LPARs:
專用的處理器
共享處理器(使用 IBM微分區功能)
動態邏輯分區(DLPAR)或動態重配置虛擬以太網
共享以太網適配器(SEA)
虛擬存儲
虛擬以太網。不需要額外的硬件或電纜,在一個運行 AIX、Linux、以及其他的操作系統上的多個分區間上,一個虛擬的 LAN(VLAN)能實現高速虛擬以太網通訊路徑。你可以動態創建虛擬的以太網段,並限定一個 VLAN段的訪問來達到安全和通訊隔離需求。一個虛擬以太網有相同的特性像高速帶寬、物理以太網絡和支持多個網絡協議,比如 IPv4、IPv6、和 ICMP。PHYP提供了這個功能。
虛擬 I/O服務器(VIOS)。這是一個專用分區,它向分區客戶端提供了虛擬的 I/O資源。VIOS擁有物理適配器。你能通過把它分配給多個分區客戶端來共享一個物理適配,這最小化了你每個客戶端所需要的物理適配器的數目。因此,VIOS能通過減少網絡和磁盤適配器的需求來降低成本。ViOS提供了兩個主要的功能:
一個虛擬以太網橋。共享一台適配器(SEA)設在 ViOS 作為內部虛擬和外部物理網絡的兩層橋接。SEA 使分區和系統外部的通訊在沒有專門物理 I/O 槽和物理網絡虛擬器的情況下和客戶端分區相連。
一個虛擬 SCSI適配器。是一個虛擬接口,物理存儲(在這種情況下的設備支持)和邏輯卷(在這種情況下的邏輯卷支持),你從虛擬 I/O 分區創建和導出在客戶端分區作為 SCSI 磁盤展現。
ViOS 需要 APV 功能
選擇虛擬化功能
現在你已經熟悉了 System p 虛擬化概念,考慮如何在 DB2 環境中應用將虛擬化。關於虛擬化環境你必須做出四個主要決定:
邏輯分區類型:專用或者共享處理器分區
磁盤 I/O類型:本地連接的 I/O或者虛擬 I/O
網絡類型: 物理或者虛擬
工作負載管理設置
某些情況下,後來再改變決定非常容易。例如,把分區類型從專用分區改成共享處理器分區非常簡單。然而,在虛擬 I/O 和本地連接 I/O 之間切換磁盤 I/O 類型,則需要數據備份和恢復。因此,一個生產系統在上線之前需要有周密的計劃。
注意共享處理器分區和 ViOS 功能不是標准虛擬化的一部分。這些功能是 APV 功能。
接下來的章節顯示你如何才能把 System p 的主要虛擬化技術應用到你 DB2 環境中,以建立一個全面的 IT 架構能長期滿足你所期望的商業目標。基本的假設是有在每個邏輯分區有一個單獨的 DB2 產品實例運行,並且每個實例有一個數據庫。最佳的結果、最佳實踐、和這個章節的其他信息應該讓你做判斷的過程更容易。要用圖形來展示這個結果,參考在“更多閱讀”列表中的“DB2 和 System p 虛擬化”白皮書。
如果沒有其他提示,接下來討論的是, 分區意思指的是 System p 邏輯分區(LPAR)。不要把這個稱呼同一個 DB2 數據庫分區功能(DPF)創建的數據庫分區混淆了。
邏輯分區類型
關於是否使用專用共享處理器這個問題,對於一個特定工作負載和系統環境的正確的邏輯分區類型有大量的因素需要考慮,比如性能、整個系統利用率等,並要考慮多個工作負載共存在一個服務器上,以提高電源使用和冷卻效率。下面的子章節針對這些因素。
分區類型:專用處理器和共享處理器的比較
對 DB2 產品使用一個共享處理器分區。這種分區類型提供了很多好處,包括靈活性和更好的處理器利用率。
理論上來說,由於底層處理器和內存的關系,在某些條件下一個專門的分區應該提供最佳的性能。然而,最近這被確認在實際情況中並不正確。這部分的測試結果顯示對於下面的測試系統(詳細系統描述請查看附錄)在專用和共享處理器分區之間沒有明顯的性能差異。表 1 是對這個測試環境的總結。
表 1. DB2 和 System p 虛擬化測試環境
分區數目
1
2
4
分區類型
Partition type
分區類型
Partition type
分區類型
專用
共享
專用
共享
專用
共享
處理能力
8
8.00
4
4.00
2
2.00
虛擬處理器
NA
8
NA
4
NA
2
數據庫大小
~200 GB
~100 GB
~50 GB
內存
128 GB
64 GB
32 GB
數據磁盤數目
192
96
48
I/O類型
本地連接
本地連接
本地連接
我們運行了 6 個性能測試:兩個性能測試分別在一個單分區上、兩個分區同時運行、和四個分區同時運行。我們對每一個分區類型和每一個分區都運行一次。分區類型的改變都是非破壞性的(沒有數據丟失);唯一的要求就是重啟分區。所有測試都使用本地連接 I/O,數據也在正確的規模。
結果顯示在這兩種類型的性能沒有明顯的不同。共享處理器分區的性能(也就是累計吞吐量)和專用處理器分區性能一樣。這種情況驗證了 PHYP 對共享處理器分區使用了非常有效的調度算法。對於這樣的共享處理器分區,PHYP 嘗試每次調度在同一個物理內核虛擬處理器上以保護處理器高速緩存親緣性,類似於專用處理器分區的功能。
線性擴展性
使用共享處理器分區,你能因此得到它在增加處理器利用率方面的好處。
當我們在考慮我們測試中的每個邏輯分區平均吞吐量的時候,我進行了一次有趣的觀察:對任何分區類型的分區擴展性沒有任何開銷。也就是 8 個專用處理器 LPAR(或者有 8.00 賦權能力和 8 顆虛擬處理器的共享處理器 LPAR)完成的工作總量是 4 處理器 LPAR(或有 4.00 賦權能力和 4 顆虛擬處理器的共享處理器 LPAR)的兩倍,相反它又是 2 處理器 LPAR(或有 2.00 賦權能力和兩個虛擬處理器的共享處理器 LPAR)。另外我們發現在專用處理器和共享處理器分區之間,每個 LPAR 的正常平均吞吐量沒有明顯區別。
通常的指導原則是不浪費分區中的處理器能力。這能通過對一個分區基於實施的虛擬處理器個數進行正確的評估來有效降低這個分區中閒置的處理器能力。這樣做能在系統層面內提高物理處理器的利用率。
因此,專用和共享處理器分區在擴展性和平均吞吐量上已經相等,使用共享處理器分區可以獲得提高處理器利用率的好處。
受限和非受限處理器分區
使用非受限共享處理器分區,在應付不可預知的工作量時非常有效。然而也要小心地使用它們:通過正確地設置它們非受限權重來設置分區優先級來管理工作負載。
共享處理器分區最大的特點是它能使用空閒處理器能力,加上它的授權能力。一個專用處理器分區在定義中設置了上限:那就是,它不能在分配的處理器上使用超過他授權能力,即使系統中有閒置的處理器能力也不能。如果使用正確,一個非受限共享處理器分區在處理高度動態和不可預知工作量時非常有效。非受限權重設置是用來在競爭非受限共享處理器分區間分配空閒共享能力。
例如,考慮一個由 DB2 服務器作為後端、IBM WebSphere 作為應用程序服務器的多層架構。它們都對它們自己在 System p 服務器上的非受限共享處理器分區做主。
由於它非受限全重設置得比 WebSphere 分區高,DB2 分區被分配了更高的優先級。在一個峰值需求范圍內,兩個服務器都超過了他們的授權能力並且被允許使用空閒共享的處理器能力(如果有的話)。然而,由於 DB2 有更高的非受限權重設置,他比 WebSphere 分區得到更多的空閒共享處理能力。
使用一個非受限共享處理器分區對動態、小粒度、和自動化的管理空閒處理器能力來應付一個虛擬環境中不可預知的工作負載。為了詳細了解類似工作負載管理解決方案,這裡提供了一個概念的證明,參考“工作負載管理”文章,在“更多閱讀”章節列出了這些文檔。
一個共享處理器分區中的虛擬處理器個數
為了最佳的平衡性能,設置虛擬處理器的個數不得高於每 1.00 授權能力兩顆虛擬處理器。
為了最大化整個系統的處理器利用率,把虛擬處理器的個數設到可以達到可用授權能力的值。
使用共享處理器分區需要設置合理的虛擬處理器的數目。虛擬處理器較低的配置數會導致浪費處理能力或者不能使用空閒共享處理周期(一個非受限分區的最大授權能力收到虛擬處理器個數的限制)。虛擬處理器配置數目過高沒有問題,因為在默認情況下 AIX 操作系統不會調度沒有使用的虛擬處理器(參見 AIX schedo命令和 vpm_xvcpus配置參數信息)。我們做了一個測試來測量虛擬處理器的折疊能力,這是一個機制負責調度分區請求的最小數目的虛擬處理器,變化一個共享處理器分區(在表 1 中,一共有 4 個分區)的虛擬處理器數目,這個分區有 1.85 個授權處理器能力。在第一次測試中我們運行 3 次,把虛擬處理器設置到達到授權能力 2 的個數,然後在後來的測試中我們設置更多的虛擬處理器個數。的確如我們所期望的,相對更高的虛擬處理器數目並沒有帶來任何對性能的負面影響。
對於在 DB2 環境中的受限分區而言,設置虛擬處理器的數目等於最高授權能力。對於非授權分區,設置虛擬處理器的個數在下面公式結果范圍內。
RVP = {round up (CEC + [UW/TUW] * FPC) , round up (CEC + FPC)}
RVP顯示虛擬處理器的最大范圍。
CEC是當前授權能力。
UW是共享處理器分區的非受限權重。默認值是 128,並且范圍是 0-255。
TUW是所有非受限共享處理器分區的非受限權重總量。
FPC是空閒共享能力(空閒未分配的處理器能力)。
例如,假設你有一個 16 核的 IBM POWER 570 系統。你創建一個有 4 顆處理器的專用處理器分區,而且你打算在剩下的 12 顆處理器上創建 6 個非受限共享處理器分區。你把非受限權重設為 128(默認值)。
為了運行 DB2 實例,假設你想創建了一個賦權能力是 2.5 非受限的處理器分區。請使用前面介紹的共識來判斷你需要為這個分區分配的虛擬處理器的個數范圍,如下面計算所顯示的。簡單來講,假設所有分區都是非受限並擁有相同的非受限權重。
RVP = { round up (2.5 + [128 / (128 *6)] * (12-2.5)) , round up (2.5 + (12-2.5))}
RVP = { round up (4.08) , round up (12)}
RVP = { 5 , 12 }
這未受限共享處理器分區公式計算了一個范圍值在分配恰當的虛處理器的時候以供選擇。這個范圍橫跨極端的工作負載目標:最佳平衡性能和最大整個系統處理器利用率。
一個一般的指導是基於你工作負載目標來設置虛擬處理器的數目。如果工作復雜相對穩定而性能是最重要的,使用較低的范圍值(5,在前面的例子)。如果最大化系統處理器使用率是最重要的,使用最大范圍值(12,前面的例子)。更大的范圍值確保有充足的處理器數來使用空閒共享處理能力。通常,最好的折中方案是把虛擬處理器的數目設置為計算出來的范圍的最低和最高值之間的某一個值,基於你在性能和處理器利用率某種程度的平衡需求。如果你遇到發生不可預知工作負載相對比較頻繁這種設置能帶來明顯的好處。它能從利用共享池中的處理器資源中得到好處。
其他的處理器類型考慮
對於專用處理器分區,處理器分配的增量是整個處理器。因此處理器能力空閒經常發生在專用處理器分區上。例如,一個有 3 顆處理器的專用分區運行的 DB2 系統使用了等價與 2.10 個處理器(也就是,vmsta 顯示 70% 分區利用率)結果導致浪費 0.90(30%)顆處理器能力。
在不重啟 AIX 操作系統或者 DB2 的情況下,改變專用分區處理器分配的唯一的辦法是使用 DLPAR 選項。比起接近即時授權能力改變,DLPAR 選項是相對比較慢(根據工作負載,要慢幾秒),它能在一個非受限共享處理器分區上運行。
之前的信息大多數是和 POWER6 之前的處理器相關。從 POWER6 處理器開始,就有選項來把未使用的處理能力從專用處理器分區貢獻出來。這個功能消除了在專用處理器分區內的空閒處理周期,進一步增強了 System p 提供的虛擬能力。
邏輯分區類型決策樹流程圖
基於功能性和非功能性的要求,下面決策樹流程圖指導你通過這個流程判斷為你的 DB2 環境邏輯分區類型。
圖 1. DB2 環境中的邏輯分區類型判斷樹
圖片看不清楚?請點擊這裡查看原圖(大圖)。
磁盤 I/O 類型
DB2 性能嚴重依賴於子系統的 I/O 性能。為了達到最佳的 I/O 吞吐量,尤其要注意數據庫表數據規劃。你選擇的 I/O 類型直接影響存儲設備的可管理性和擴展性。因此,它是考慮工作負載優先權和在各個 I/O 之間折衷的關鍵。你能在分區中選擇本地 I/O、虛擬 I/O,或兩個都是。
虛擬 I/O 實踐
你必須安裝並運行一個 ViOS 來使用虛擬磁盤 I/O。
虛擬 I/O 通過使用少量的物理資源來增強、服務多個分區,並能明顯減少在硬件和管理上的成本。
虛擬 I/O 對許多 DB2 環境都很有用。 例如,每個分區需要最少一個根磁盤。沒有虛擬 I/O, 分區的數目將受限於可用的 PCI 公共插槽,或者本地 I/O 設備的物理磁盤適配器,因為每個分區需要一個適配器來訪問磁盤。共享一個磁盤適配器的唯一辦法是使用虛擬 I/O 和邏輯卷管理器(LVM),它允許多個邏輯分區共享一個磁盤,即使節省適配器成本不是優先考慮的。
磁盤技術的發展增強了存儲的能力,磁盤大小和帶寬的比率隨著時間的推移越來越大,造成 DB2 環境中非常大的磁盤空空閒,一般來說,比起用磁盤空間,通過磁盤驅動個數來計算更好。
在使用整個磁盤存儲能力或在交錯的工作負載之間共享磁盤 I/O 帶寬的時候,磁盤共享可以非常有效。例如,白天在線事務處理(OLTP)工作負載和晚間的批量任務可以共享存儲系統的帶寬。
所有虛擬 I/O 請求都提交到了 ViOS,由它執行磁盤 I/O 操作並向分區直接返回數據(沒有虛擬 SCSI 情況下的雙倍緩沖)。
下面是一個額外虛擬 I/O 功能的簡要列表。更多虛擬 I/O 以及實現的信息參見 System p5 高級 POWER 虛擬化介紹和配置參考。
低成本,LVM 層存儲冗余與本地連接 I/O 設備和虛擬 I/O 設備的組合
支持雙重 ViOSs 來消除單點故障
SEA,或主適配器
快速內部分區連接,使用 VLAN
虛擬磁盤 I/O 擴展
VIOS 自己需要的資源非常有限,它的內存需求是固定的。ViOS 的主要處理器需求來自於磁盤 I/O 操作。
記住虛擬 I/O 啟動是一個特定分區,這個分區叫 VIOS。它運行一個特殊的操作系統 ViOS 來使用處理器和內存資源(類似正常的操作系統)。然而,它對處理器和內存需求是適度的,就算有非常高的 I/O 請求。
VIOS 在需要運行 ViOS 操作系統外沒有更多的內存需求,它也不需要內存來響應客戶端分區磁盤請求。這是因為虛擬 SCSI 是零內存復制操作:就是,書籍是直接復制到 LPAR 上的應用程序或客戶端文件系統空間
我們使用表 1 表述的相同環境進行測試,但是我們把了 I/O 類型從本地連接改成虛擬 I/O。表 2 總結了虛擬 I/O 測試環境。所有測試使用的設備為虛擬存儲。對於 DB2 存儲,我們使用數據庫管理表空間(DMS),並用 NO FILESYSTEM CHACHING 選項來創建。表中顯示了 VIOS 客戶端分區運行 DB2 產品的處理性能。測試使用了 8 個處理器:客戶端分區使用了 7.40 個處理器,剩下的 0.60 個處理器分配給 ViOS 分區。
表 2. DB2 和虛擬 I/O 測試環境
分區數
1
2
4
ViOS
分區類型
分區類型
分區類型
分區類型
共享
共享
共享
共享
授權能力
7.40
3.70
1.85
0.60
受限或非受限
非受限
非受限
非受限
非受限
虛擬處理器
8
4
2
1
數據庫大小
~200 GB
~100 GB
~50 GB
NA
內存
128 GB
64 GB
32 GB
512MB
磁盤數
192
96
48
NA
I/O類型
虛擬 I/O
虛擬 I/O
虛擬 I/O
NA
這個測試被設計來展示虛擬 I/O 的擴展能力以和 DB2 產品以及 System p 虛擬化解決方案總的擴展能力。在這個場景中,處理器和磁盤 I/O 的使用都基於虛擬化技術。
結果顯示虛擬 I/O 的在 VIOS 客戶端分區處理能力和當前 ViOS 客戶端分區的增長上市線性擴展的。虛擬 I/O 的使用也是客戶端分區類型無關的:就是說,虛擬 I/O 並不依賴於客戶端分區是專用分區還是共享處理器分區。
虛擬 I/O 和 ViOS 調優
把一個非受限共享處理器分區或者有最高非受限權重分區設置為 VIOS 分區類型,以使 ViOS 得到它需要的任何處理器能力。
在 DB2 產品上使用虛擬 I/O 你只需要做很少的調優。不過第一個也是最常見的問題是“ViOS 需要多少內存和處理器?”
VIOS 的內存需求並不明顯。因為一個來自客戶端分區的 I/O 請求對 VIOS 來說不需要內存,VIOS 的內存需求並不依賴於像 I/O 操作數目或客戶端分區數這樣的因素。我們在本文裡進行的所有測試使用的一個 ViOS 內存都是一個常量 512M。
VIOS 處理器需求也是不明顯的。雖然有非常高的磁盤操作,我們所有的測試結果顯示 VIOS 處理器使用大約在 0.55 個處理器。ViOS 處理器需求隨 I/O 操作次數增長。
在判斷處理器需求之後,就要考慮工作負載的最大和最小值,而不僅僅考慮平均值。
為了有幫助對 ViOS 進行正確的測量(能看到不可預知的工作負載)需要要使用下面的方法:
為了獲得相當數量的初始處理能力,設置 ViOS 分區類型為非受限共享處理器分區。
對工作負載的峰值運行一個測試,並記錄 VIOS 賦權能力利用率(使用 VIOS 的 viOStat 命令)。
給你記錄的高峰授權能力增加 10% 的額外能力利用率,並像 ViOS 賦權能力一樣使用總能力。
設置 ViOS 分區類型為高非受限權重的非授權共享處理器分區。
在基於 POWER6 處理器的服務器上使用一個有共享專用 ViOS 能力的專用處理器分區。一個基於 POWER6 服務器的新功能,可以共享專用能力。可以使專用處理器分區貢獻多余的處理器周期給專用處理器分區共享池,並因此提高整個系統的性能。那些貢獻了處理器周期的專用分區有使用這些周期的優先權;而共享只有當專用分區沒有使用它的全部資源的時候才發生。
經常監視 ViOS 處理器需求,尤其在 DB2 改變了 I/O 或者存儲特征,像緩沖池大小和表空間頁大小後。不同程度的改變 DB2 I/O 或存儲特征會對存儲系統帶來不同的壓力,也可能造成 ViOS 需要更多或更少處理器能力。
通常情況下,對任何分區而言一個虛擬處理器不能跨多個物理處理器:也就是,一個虛擬處理器不能使用超過一個物理處理器。對 VIOS 也是一樣。在這種情況下 VIOS 需要比當前的配置虛擬處理器數目更多授權能力,你可以通過使用 DLPAR 服務,分配一個額外的虛擬處理器給 ViOS 分區。
虛擬 I/O 客戶端分區通過使用虛擬 SCSI 適配器完成 I/O。和實際的物理適配器一樣,你能通過使用 AIX 5Lv5.3 TL05 或以後版本中的 queue_depth參數調來整虛擬 SCSI 適配器。請對虛擬 SCSI 客戶端分區適配器設置正確的 queue_depth值。為了在 VIOS 給一個物理適配器設置正確的 queue_depth 值,我們對在客戶端分區和 ViOS 中的多個虛擬 SCSI 適配器上進行測試(包括對 DB2 事務日志使用專用虛擬 SCSI 適配器以及每個表空間使用專用虛擬 SCSI 適配器),結果顯示使用一個虛擬適配器和多個虛擬適配器在性能上沒有區別。
網絡類型
虛擬 I/O 支持兩種類型的虛擬網絡結構。SEA(SEA 需要一個 ViOS),或者干線適配器這適合很多使用單個物理以太網適配器來連接公共網絡的客戶端分區。其他虛擬網絡接口類型叫做虛擬以太網,它提供了系統分區間的快速通信。例如,你可以使用虛擬以太網來提供系統分區間的快速連接。例如,你能使用虛擬以太網在 n 層工作負載、DB2 產品、和 WebSphere 應用服務器之間提供快速連接。虛擬以太網接口不需要物理適配器、電纜,甚至不需要 ViOS。虛擬以太網那個是 PHYP 提供服務並使用 PHYP 內存。
通常,高速、無損、在內存中的連接、通過虛擬網絡接口來使用客戶端分區處理器周期來進行網絡通訊會更快。但是,這兩種類型虛擬網絡接口都需要使用客戶端分區的處理器周期來進行網絡通訊。我們設計了下面的測試,對於已經在表 1 中勾畫出了使用測試環境的輪廓,比起客戶端工作負載產生器運行在同一個分區,我們在分區間進行交叉連接,這樣他們就像兩個分區和 4 跟分區情況下的多個客戶端工作負載產生器。我們從客戶端連接 DB2 服務器時使用任何一個物理千兆以太網適配器或一個虛擬以太網接口,並且我們計算了每個分區的吞吐量。
物理網卡和虛擬以太網接口在事務吞吐量方面沒有任何差別。注意,這個測試沒有涉及 ViOS,因為虛擬以太網不需要它。
工作負載管理設置
為了在不使其負擔過重的情況下降低管理 IT 設施的成本,工作負載管理涉及 了一個非常復雜的 IT 策略(用來處理工作負載需求的動態性質)。工作負載管理的關鍵是平衡工作負載並給高優先級的應用程序分配資源以達到服務層面協議(SLAs)
虛擬化提供了很多級別的工作負載管理功能。你能改變內存總量、非受限權重、賦權能力、和使用 DLPAR 服務動態使用的虛擬處理器數目,不需要重啟操作系統或 DB2 服務器。你可以通過 HMC 訪問 DLPAR 服務,要麼直接使用 WebSM,或者來自網絡任何一個地方的一個遠程 shell 調用。當你啟用了 DB2 STMM 功能與 DLPAR 服務,STMM 功能自動理性地改變內存使用並能調整 DB2 堆以最大化性能。更多關於 STMM 以及它帶來的好處信息請參見“最佳實踐:工作負載管理”。
另外,如前面提到的,一個非受限共享處理器分區能非常有效的處理高度動態或不可預知的工作負載。當這個運行 DB2 產品的分區的非受限權重設置高於其他分區時,這個分區具有在分配空閒處理器能力的最高優先權。
在剛剛提到的工作負載管理能力之外,IBM 提供了 IBM Tivoli Intelligent Orchestrator 工作流以提供和優化 IT 基礎設施。另外還提供了,IBM Enterprise Workload Management (EWLM), 一個端到端的 IT 資源優化解決方案。更多關於對 DB2 產品使用 EWLM 信息參見“工作負載管理”文章。
總結
建議和最佳實踐
邏輯分區類型選擇
使用共享處理器分區來增加處理器利用率並提供更多的彈性。如果工作負載不可預知,使用非受限共享處理器分區將非常有效。
為了最佳的平衡性能,虛擬處理器的數目不要高於每 1.00 授權能力 2 個虛擬處理器。不要改變 schedo 配置參數 vpm_xvcpus 的默認值為 0。
為了最大化整個系統的處理器利用率,把虛擬處理器的數目設置為授權能力可用值。可用的授權能力是當前分區的授權能力(CEC)和符合條件的空閒共享能力(FPC)的總和。
為了管理不可預知工作負載,通過把非受限權重設置高於其他分區來確定非授權共享處理器分區優先級。
通過 DLPAR 服務你可以改變內存總量、非受限權重、賦權能力、和虛擬處理器的數目。你能通過一些工作負載提供工具自動化這些設置,包括 Tivoli Intelligent Orchestrator。
磁盤 I/O 的類型選擇
虛擬 I/O 使其能有比物理槽和適配器多的分區。
一個虛擬 SCSI 客戶端適配器對於任何數目的磁盤 I/O 操作來說都足夠了。測試結果顯示僅使用一個虛擬適配器和使用多個虛擬適配器在性能上沒有任何區別。
虛擬 I/O 使用較少物理資源來固化、服務於多個分區並能明顯的降低硬件和管理成本。
要使用虛擬磁盤 I/O 你必須安裝並運行一個 VIOS。VIOS 本身需要的資源不多,內存的需求非常固定。ViOS 主要的處理器需求來自於磁盤 I/O 操作的個數。
給一個非受限共享處理器分區設置具有最高非受限權重的 VIOS 分區類型,ViOS 將因此而得到它所請求的任何處理器能力,甚至在不可預知的動態工作負載情況下也是如此。
虛擬網絡選擇
你可以使用 SEA 功能來在多個客戶端分區之間只共享一個物理網絡適配器。SEA 需要一個 ViOS 和最少一個物理以太網絡適配器來連接公網。
你能使用虛擬以太網絡適配器接口來高速、無損、可靠的進行分區見連接。虛擬以太網絡接口不需要物理網絡適配器、網線、也不需要 ViOS。
在事務中沒有發現在物理網絡接口和虛擬網絡接口之間在吞吐量上有任何不同。
工作負載管理設置
使用 DLPAR 服務可以在不需要重啟操作系統或 DB2 服務器的情況下動態改變內存總量、非受限權重、賦權能力、和虛擬處理器的個數。
使用一個非受限共享處理器分區以有效處理高度動態或不可預知的工作負載。給 DB2 運行的分區設置比其他分區更高的非受限權重。
System p 虛擬化提供了一批分區和管理功能,像 LPARs、DLPAR 服務、以及虛擬 I/O、在它之下你能試試 SEA、虛擬網絡、虛擬 SCSI、或 VLAN。共享處理器分區讓你能創建一個 LPAR 讓它只使用 0.10 個處理器。DLPAR 服務讓你能在運行時更改 LPAR 資源(處理器、內存、和 I/O 槽)而不需要重啟操作系統。
DB2 數據庫服務器的多功能性和可能的與 System p 虛擬功能的多種組合幫助 DB2 應用程序在很多情況下以最佳的方式運行。System p 虛擬化技術能配置為同時兼顧計算機系統和商業利益,這包括在低成本情況下的高性能、工作負載隔離、資源分區、最大化資源利用率、以及高可用性。這個技術降低總擁有成本(TCO)同時增強可擴充能力、可擴展性、可靠性、可用性和耐用性。
本文中最精華的一課我們已經通過我們自己的測試學習過了。這些最佳實踐為我們使用有 System p 虛擬化的 DB2 產品提供了一個非常好的起點。你可以利用它們幫助你避免常見的錯誤,並更好調整你的基礎架構以達到你 IT 環境和商業利益的目標。在把它們應用到你的生產系統中之前,請先驗證這些最佳實踐的適用性,建立一個底線並對多個虛擬化功能進行充分的測試。