以往 DBA 對資料庫依賴何種儲存鮮有話語權:只需要求特定大小空間,儲存管理員即提供。如今 DBA 必須考慮使用何種儲存——儲存不再只是「儲存」,有高速、低速、中速之分,各適用不同用途。挑戰在於決定資料放置位置以獲得最佳投資報酬率(ROI)。本文探討如何建立分層方法使用 IBM DB2 for z/OS 儲存,實現「正確時間從正確位置獲取正確資料」,達到效能優化與降低總擁有成本(TCO)雙重目標。
DB2 DBA 從未面臨如此多價格與效能各異的儲存選擇。高端固態硬碟(SSD)支援隨機 I/O 每秒 5,000 次操作(IOPS),適合 I/O 密集型應用,但昂貴。另一端 Serial ATA (SATA) 硬碟容量達 2TB 但僅約 75 IOPS,適合循序工作負載,隨機 I/O 表現不佳。兩極間為纖維通道 (FC) 硬碟,多年來是企業儲存陣列中堅,合理回應時間(<5ms)下交付 180 IOPS,速度/回應似達瓶頸。
獨立設備只是方程式一部分。所有硬碉按交付效能價值比在企業儲存陣列排列。RAID 10(條帶鏡像)效能最佳但比 RAID-5 昂貴;RAID-5(條帶單奇偶)某些效能優於 RAID-6(條帶雙奇偶),但 RAID-6 資料遺失保護更好。定義儲存層相對簡單:高成本高效能為黃金層,依序為白銀層、青銅層。
在層上放置正確資料不簡單。從核心參數切入:資料庫是否業務關鍵?效能需求?可用性需求?單一 DB2 系統中非所有資料相同,或許單資料庫分層可行。甚至生產資料中某些表極少訪問,另些持續訪問。訪問配置檔隨時間變化(圖 1:資料存取模式從建立到部署,描述為資訊生命週期)。

需考慮 I/O 特性:隨機還是循序?讀還是寫?讀寫比率?I/O 大小?搞清工作負載才能做最適分層選擇。
不同時刻與儲存角度看,工作負載強度不同。類型也影響最優部署層。所有 I/O 不同!寫操作:企業儲存陣列緩存入站寫操作立即回應通道端/設備端確認(DASD 快速寫),隨後降級至實體儲存。DB2 緩衝池寫操作通常與交易工作負載非同步,優先級低於同步讀。循序讀工作負載(如表空間掃描):DB2 執行預取(非同步預讀 I/O),儲存陣列偵測循序動作亦預取至緩存,磁碟進入流模式。流模式下轉動磁碟不遜於 SSD。對此類 DB2 工作負載,黃金層或許非最佳選擇,移至黃金層不改善效能反佔用寶貴空間。選擇正確層可能不直觀,經驗性測量有助優化部署。
最佳方法:分析表空間資源管理工具(RMF)儀器決定 I/O 特性。尋找適合 SSD 資料時,檢查系統管理工具(SMF)42 子型態 6 記錄(顯示高 DISCONNECT 時間表空間)。高 DISC 時間指標 DB2 同步讀操作儲存控制緩存中頁面未命中。區間內高平均 DISCK 時間資料集通常為 SSD 遷移候選。但最高遺失率資料集常為最大資料集(難輕易放入儲存緩存)。需理解「遺失密度」:每 TB 表空間儲存有多少緩存遺失。可用 DCOLLECTK 與 SMF 記錄經電子表格計算。SMF 報告其他十進制標示 I/O 最少資料集,為青銅層候選(特別若資料集大)。
基本規則歸納:
理想狀態儲存機制與資料庫自動合作識別最佳層並遷移資料——但尚未達到。目前可用 IBM Data Facility Storage Management Subsystem (DFSMS) 部署初級手動分層。構建含相似效能特性容量的儲存群組,配合 Automatic Class Selection (ACS) 與儲存類設定,導引 DB2 表空間至最適層。
三大限制:1) 資料集放置控制發生在配置時間(建立時),不考慮資料生命週期;資料不再頻繁訪問變為低層候選時如何辦?2) 假設預知表空間效能需求;若不知需求且誤放錯層怎麼移動?3) 或許僅部分表空間「熱」,其餘「冷」,應存在多層。
當表空間擁有持續確定效能需求,可採靜態分層技術或 DFSMS。目標匹配儲存層、效能與資料 I/O 特性。圖 2 描述簡單靜態分層方案(SMS 儲存群組實現)。實際上因資料存取模式易變性,分層模式非如此簡單。

多種方法無需影響資料庫可用性透明移動資料:
DB2 for z/OS 分層儲存無疑改善 ROI 與效能優化,但對 DBA 管理策略是負擔。DBA 需智能儲存系統,依用戶策略設定在資料庫環境自動執行,優化表空間層級(或更細粒度)資料放置。同時,熟悉所要求/分配的儲存特性並考慮最佳用法,是良好實踐與潛在獲利點。