執行摘要
在當今競爭非常激烈的市場中,部署的數據處理架構不但要滿足當前的戰術需求,還要提供足夠的靈活性,能夠通過增長和變動適應未來的戰略需求。為了幫助降低管理成本、增加靈活性和簡化 DB2 for Linux, UNIX, and Windows 的存儲管理,需要選擇適當的文件系統,文件系統應該能夠提供動態的可伸縮的平台。IBM® General Parallel File System™ (GPFS™) 是一種強大的平台,可以在這個平台上構建這種關系數據庫架構。本文檔概述部署 GPFS 和 DB2 軟件的好處和最佳實踐,從而說明為什麼在使用 DB2 數據庫時 GPFS 是適合的文件系統。
簡介
IBM General Parallel File System™ (GPFS™) 文件系統是高性能的共享磁盤文件管理解決方案,它支持從兩台計算機直到數百個系統快速可靠地訪問相同的文件數據集。GPFS 文件系統與環境集成,它把各種服務器和存儲組件連接起來,提供企業文件數據的統一視圖。
結合使用 GPFS 文件系統和 DB2 for Linux, UNIX, and Windows 數據庫可以為高性能數據庫系統提供一個強大的平台。為 DB2 部署使用 GPFS 有以下好處:
增強可用性 – 可以使用 GPFS 的高級復制功能對單一站點或多個位置的數據進行鏡像。可以通過配置文件系統在發生磁盤或服務器故障時自動地保障可用性。
通過動態基礎設施提供靈活性 – 把 DB2 數據庫部署在 GPFS 上,就能夠輕松地把 DB2 數據部署到不同的機器上,而不需要跨存儲設備轉移數據或修改現有的文件系統。不需要為了訪問數據把數據復制到另一台機器上,只需把這台機器添加到 GPFS 集群中,就可以掛裝數據並從新機器訪問數據,不需要轉移任何數據。
連續的高性能 – GPFS 允許通過自動的數據重新平衡來擴展存儲,這對於應用程序是透明的。GPFS 還提供與 JFS2 等文件系統相當的性能。
提高操作效率 – GPFS 能夠簡化存儲管理,這有助於降低總擁有成本。前沿的文件系統技術(比如集成的基於策略的存儲管理)有助於自動化執行許多存儲管理任務。
IBM 已經使用 GPFS 文件系統優化了 DB2 9.7 ,開發了一套在 GPFS 上部署 DB2 時可以應用的最佳實踐。這些最佳實踐有助於讓在 GPFS 上運行的 DB2 數據庫實現最好的效果。
本文檔討論結合使用 GPFS 和 DB2 的好處,包括在 GPFS 上部署 DB2 數據庫的最佳實踐。
本文檔的目標讀者是負責部署 DB2 和 DB2 所在的系統的 IT 人員。本文檔假設讀者具備中等程度的 DB2 和 UNIX 系統管理知識。
本文檔中的示例基於安裝在 AIX® 6.1TL3 SP2 上的 DB2 9.7 和 GPFS 3.2.1.11 ,但是也適用於更高版本和其他受支持的平台。
為什麼要使用 GPFS ?
GPFS 交付可靠、卓越的性能
為數據庫選擇的文件系統必須具有非常出色的性能特征和可靠性。GPFS 文件系統的性能與本地文件系統相近,但是具備集群文件系統的靈活性和可伸縮性。IBM 通過測試證明了 GPFS 上的 DB2 的性能特征與本地文件系統相當。除了高性能之外,在使用 GPFS 時可以動態地添加主機和存儲,這樣就可以滿足不斷增長的處理需求。
GPFS 有助於降低總擁有成本
GPFS 文件系統易於部署和管理,可以提高硬件利用率,可以讓數據工作流更順暢,這些都可以提高操作效率。GPFS 提供標准的文件系統接口,環境中許多不同的應用程序都可以使用這個接口。大文件系統支持、存儲池和自動的文件管理讓用戶可以更好地利用現有硬件。滾動式更新以及對混合硬件和操作系統的支持讓用戶可以快速地集成新的服務器和存儲硬件,滿足不斷變化的需求和預算。
GPFS 存儲基礎設施有助於減少數據復制操作和數據處理時間,因為可以從多台機器直接訪問數據,這可以降低存儲成本和管理存儲空間所需的工作量。
GPFS 提供前沿技術
GPFS 提供一個全局名稱空間,這意味著可以從多台機器同時訪問數據,同時仍然保證數據完整性。這允許從環境中的任何機器靈活地訪問數據,就像數據在本地一樣。GPFS 提供比其他文件系統更前沿的技術,讓用戶能夠更好地滿足企業的需求。這些特性包括:
高性能的文件系統:
直接 I/O – 直接輸入 / 輸出讓 DB2 可以使用自己的內部緩沖區,繞過文件系統內的緩沖區。DB2 數據庫以這種模式使用 GPFS 就可以避免雙重緩沖,這會顯著提高性能。
寬條帶 – GPFS 把所有數據分成條帶並行寫入到存儲池中的所有磁盤上。這可以優化單一池的性能。
處理工作流優化 – 數據庫存儲可以與應用程序數據共享相同的名稱空間。當由多台機器負責不同的數據處理步驟時,這可以大大提高工作流的效率。所有主機都可以看到所有數據,所以在每個處理步驟之間不需要復制數據。
基於策略的存儲
存儲池 – 可以通過創建多個存儲池在單一文件系統中提供多種性能或可靠性水平。
邏輯管理容器 – 可以通過創建文件集把文件系統名稱空間劃分為邏輯容器,這可以簡化管理。
基於規則的文件管理 – 可以使用基於規則的策略根據文件屬性自動地確定文件的初始位置,透明地處理文件遷移。
GPFS 提供高級的高可用性特性
在當今競爭極其激烈的環境中,數據是關鍵的資產,必須確保連續的數據可用性。GPFS 提供的許多特性有助於實現可用性目標:
數據一致性
磁盤租賃協議 – 只有活躍的主機可以獲取磁盤租約來讀寫磁盤。如果這個主機發生故障,集群中的另一個主機等待授予的磁盤租約過期,然後對受影響的主機執行恢復。這個協議防止發生故障的主機修改數據,可以保證數據完整性,同時仍然提供非常快的故障恢復。
分布式鎖管理 – 不需要為從多個節點同時訪問文件操心;GPFS 有可靠的分布式鎖管理解決方案,能夠處理對單一文件系統或文件的數千個並發訪問。
快照和數據復制
文件系統快照 – 可以通過快照建立 GPFS 文件系統的特定時間點拷貝。可以非常快地部署數據的特定時間點拷貝,而使用的磁盤空間很少。
數據復制 – 在 GPFS 中,數據復制是基於軟件的,可以跨站點內的多個存儲陣列或跨 WAN 執行同步鏡像。數據復制提供額外的冗余,可以滿足任務關鍵數據的可用性需求。
備份和災難恢復 – 可以使用快照、復制和與 IBM Tivoli® Storage Manager 的集成實現備份和災難恢復。Tivoli Storage Manager 可以對 GPFS 文件系統進行集成的備份,從而進一步增強數據保護策略。
高可用性設計
快速的故障轉移 – GPFS 支持 SCSI-3 Persistent Reserve ,這可以減少在發生主機故障時恢復數據操作所需的時間。在發生主機故障時,一旦檢測到故障,未發生故障的主機會停止故障主機的寫能力。通過立即“驅逐”故障主機,可以更快地在剩余的主機上繼續執行正常處理。
集成的集群管理 – 集群管理特性與 GPFS 軟件集成。不需要用單獨的集群軟件管理集群中的主機。
集群 quorum – 在 GPFS 中,大多數節點集和 tIE-breaker 磁盤的 quorum 選項都是可用的。Quorum 以可靠的方法決定主機什麼時候可以讀或寫文件系統,從而確保數據一致性。
DB2 和 GPFS 的使用模型
GPFS 可以在多個方面增強 DB2 數據庫環境。下面討論其中一部分。
動態系統增長
假設您最初只部署單主機 DB2 。您很快意識到需要更多處理能力來支持應用程序,必須購買新的服務器。通過使用 GPFS ,可以在不停止數據庫的情況下把文件系統擴展到新機器。然後可以在新機器上配置 DB2 實例,讓它使用 GPFS 上存儲的數據庫,停止老機器上的 DB2 實例,然後啟動新機器上的 DB2 實例。最後,可以讓 DB2 客戶機訪問新機器,或者使用自動的客戶機重路由技術。
處理工作流優化
組織依靠數據分析來保持競爭優勢。組織希望減少處理數據和提供關鍵統計信息所花費的時間。
假設您有一個交易處理系統,它收集客戶的交易數據,由另一個環境執行提取、轉換和裝載 (ETL) 處理。當 ETL 處理完成時,把數據裝載到 DB2 數據倉庫中。通過結合使用 GPFS 和 DB2 可以把處理過程連接在一起,不需要在系統之間復制數據。
部署 GPFS 的最佳實踐
這些基本建議基於在 GPFS 文件系統上對 DB2 數據庫做的大量測試。這些提示有助於在功能和性能方面實現最好的效果。
GPFS 集群設計
利用 quorum 設計 – 對於最多 8 個節點的集群,把所有節點定義為 quorum 節點並使用 tiebreaker 磁盤。對於超過 8 個節點的集群,使用 quorum 節點(沒有 tIEbreaker 磁盤)。
確保通信帶寬足以支持多站點操作 – 可以在單一站點內或跨多個位置部署集群。如果需要跨站點復制數據,站點之間的通信帶寬和延遲必須能夠滿足應用程序的響應需求。
存儲配置
帶 tiebreaker 磁盤的 quorum – 在定義 tIEbreaker 磁盤時,可以使用文件系統中的任何網絡共享磁盤 (NSD) 。
存儲 RAID 級別 – 通常根據容量和可用性選擇 RAID 級別。在部署 DB2 數據庫時,通常使用 Raid 5 和 Raid 1+0 。
選擇支持 SCSI-3 PR 的存儲 - 為了優化故障轉移性能,應該使用支持 SCSI-3 協議 Persistent Reserve 特性的存儲服務器。在發生節點故障時,GPFS 使用 Persistent Reserve 提供快速的集群故障轉移。在 GPFS 中,使用帶 usePersistentReserve=yes 選項的 mmchconfig 命令啟用這個特性。
配置 GPFS 文件系統
在主要關注性能和可靠性的環境中,使用兩個 GPFS 文件系統 – 創建兩個 GPFS 文件系統,一個用於數據庫數據,另一個用於數據庫日志,這是因為數據和日志的訪問模式很不一樣。
在主要關注管理的簡便性的環境中,使用一個 GPFS 文件系統 – 使用一個 GPFS 文件系統可以最小化管理費用。單一文件系統與 DB2 自動存儲的組合讓用戶可以動態地添加存儲容量,甚至是添加主機,而不需要創建另一個文件系統。
使用 1 MB 的塊大小 - 讓 GPFS 文件系統使用 1 MB 的塊大小。更大的塊可以提高使用頁面池的效率。
GPFS 調優參數
使用直接 I/O (DIO) - DB2 9.7 可以直接使用 GPFS 中的直接 I/O 。從 9.7 版開始,所有 DB2 文件(包括活躍的日志文件)都用 DIO 打開。這可以加快磁盤訪問,避免在 DB2 和文件系統緩存中雙重緩沖數據。在這種模式下,DB2 選擇需要訪問的文件和應該放在緩存中的數據。與以 DIO 模式掛裝整個文件系統相比,允許 DB2 使用 DIO 打開文件更合適。
啟用更高的並發度 – 建議把 GPFS 的 worker1Threads 參數值從默認的 40 提高到 256 。這個參數控制 GPFS 文件系統上並發文件操作的最大數量。prefetchThreads 參數值和 worker1Threads 參數值的和必須小於 550 。
增加文件系統緩存 - GPFS 頁面池用於緩存用戶數據、文件系統元數據和其他內部數據。建議增加頁面池大小,把 pagepool 參數值從默認的 64 MB 提高到至少 256 MB 。頁面池固定在內存中,所以要確保系統上有足夠的空閒內存,否則這一修改會導致系統分頁,會對總體性能產生負面影響。
修改 GPFS 配置參數
使用 mmchconfig 命令修改這些 GPFS 配置參數。例如,要想通過設置 pagepool 參數把頁面池大小改為 256 MB ,應該執行以下命令:mmchconfig pagepool=256m
可以使用 mmlsconfig 命令查看當前值。mmlsconfig 的輸出只顯示設置為非默認值的參數。
要想讓這些修改生效,必須先卸載 GPFS 文件系統,然後重新啟動 GPFS 守護進程。
配置示例
下面是一組命令示例,演示如何按照本文檔中描述的最佳實踐部署 GPFS 。這裡給出的所有 GPFS 命令都在 /user/lpp/mmfs/bin 目錄中。
1. 在機器 db2server 上創建 GPFS 集群。
mmcrcluster – A – N db2server:manager-quorum – p db2server
2. 啟動 GPFS 集群:
mmstartup – a
3. 創建一個名為 nsd_mappng 的文件,它包含用來創建 GPFS 文件系統的磁盤列表 (LUNS) 。下面的示例使用 6 個磁盤分區。分隔空列的冒號表示使用的默認值。(關於文件格式的更多信息,參見 GPFS 文檔中對 mmcrnsd 命令的說明。)由用戶選擇網絡共享磁盤 (NSD) 名稱。
/dev/hdisk1:::::Data1:
/dev/hdisk2:::::Data2:
/dev/hdisk3:::::Data3:
/dev/hdisk4:::::Data4:
/dev/hdisk10:::::DBLog1:
/dev/hdisk11:::::DBLog2:
4. 使用剛才創建的 nsd_mapping 文件創建 GPFS 網絡共享磁盤:
mmcrnsd – F nsd_mapping
5. 停止 GPFS 集群並指定 tIEbreaker 磁盤:
mmshutdown – a
mmchconfig tIEbreaker=”Data1;Data2;Data3”
6. 根據 DB2 on GPFS 最佳實踐設置 GPFS 配置參數:
mmchconfig worker1Threads=256
mmchconfig pagepool=256M
mmchconfig usePersistentReserve=yes
7. 啟動 GPFS 集群:
mmstartup -a
8. 為數據和日志各創建一個 GPFS 文件系統,使用 1 MB 的塊大小:
mmcrfs – T /db2data db2data Data1,Data2,Data3,Data4 – B 1M
mmcrfs – T /db2log db2log DBLog1,DBLog2 – B 1M
確認掛裝點 /db2data 和 /db2log 已經創建了。
9. 掛裝 GPFS 文件系統:
mmmount db2data -a mmmount db2log -a
結束語
靈活的存儲管理是下一代動態數據中心的關鍵。下一代動態數據中心通過優化硬件利用率和降低管理成本提供經濟有效性,可以在需要時把數據處理和存儲基礎設施部署到需要的地方。通過結合使用 GPFS 的高級存儲管理和 DB2 for Linux, UNIX, and Windows 的水平伸縮架構,可以實現非常適合下一代動態數據中心的優秀解決方案。
附錄 A – 把數據轉移到 GPFS
在文件系統之間轉移數據有許多種方法。本附錄介紹把 DB2 數據從給定的文件系統轉移到 GPFS 的一些機制。可以使用多種方法把現有的數據轉移到新的 GPFS 文件系統,包括:
數據庫備份和恢復
跨文件系統的表空間重新平衡並結合使用 db2relocatedb 工具
操作系統 copy 命令
DB2 High Availability Disaster and Recovery (HADR) 特性