簡介
在如今競爭激烈的市場環境下,部署數據處理基礎設施不僅要能夠滿足您目前的技術需求,而且還要提供發展和變化的靈活性以適應您未來的戰略需求。在 2009 年 12 月,IBM 推出了 DB2 pureScale Feature for Enterprise Server Edition(DB2 pureScale Feature)。DB2 pureScale Feature 利用了基於 DB2 for z/OS 數據共享架構的雙主機(active-active)共享磁盤的數據庫實現。它在主機上使用了 DB2 數據庫業經證明的成熟技術來將雙主機共享磁盤技術帶到開放系統。
DB2 pureScale Feature 通過提供如下的關鍵特性滿足大多數客戶的需求:
幾乎無限的容量在 DB2 pureScale Feature 中可以按需添加和刪除成員,因而容量幾乎是無限的。DB2 pureScale Feature 可伸展至 128 個成員。它具有一個高效的中心化管理設施,能夠帶來非常高效的水平伸縮能力。 DB2 pureScale Feature 還利用了一種稱為 Remote Direct Memory Access (RDMA) 的技術來提供高效的節點內通信機制以進一步提高它的伸縮能力。應用程序的透明性運行於 DB2 pureScale 環境內的應用程序無需知曉群集內的其他成員或分區數據。DB2 pureScale Feature 會自動將應用程序路由到被認定為最為合適的那些成員。DB2 pureScale Feature 還提供了對其他數據庫提供商使用的語法的本機支持,這就使得那些應用程序可以經極少的修改或無需修改就能夠在 DB2 pureScale 環境運行。 持續的可用性DB2 pureScale Feature 提供了一種完全的雙主機配置,所以如果一個成員發生故障,那麼處理仍能在其余的活動成員處繼續。在故障期間,只有在故障成員上修改的數據會暫時不可用,直到這組數據的數據庫恢復完成為止,而這個恢復過程非常迅速。這一點是一種競爭優勢,因為在一些競爭的解決方案中,在數據庫恢復過程中,會發生整個系統的凍結。總擁有成本的減少DB2 pureScale 接口可以很輕松地處理集成到 DB2 pureScale Feature 內的組件的部署和維護。這有助於縮減用某些競爭技術進行部署和維護的陡峭的學習曲線。
DB2 pureScale Feature 提供了一種本地的高可用性解決方案,但是很多客戶還會需要一種災難恢復解決方案來滿足其業務的持續性要求。DB2 pureScale Feature 利用了遠程磁盤鏡像技術,用來處理數據庫復制產品。如果運行 DB2 pureScale 實例的整個主站點發生故障,那麼就可以利用遠端站點來使業務操作繼續下去。DB2 pureScale Feature 還能夠利用傳統的數據庫備份、還原以及前滾功能來提供災難恢復解決方案。
本文介紹了部署一個帶 IBM DS8700 存儲子系統的 Metro Mirror 磁盤鏡像解決方案所需要的步驟。磁盤鏡像也可用來自其他存儲供應商的磁盤鏡像技術部署。圖 1 顯示了一種典型的配置,其中的存儲被鏡像到一個 DB2 pureScale 災難恢復實例。
圖 1. 磁盤鏡像
IBM System Storage® DS8700 目前是 IBM DS8000® 產品線中最為先進的模型。DS8700 旨在用其優良的數據吞吐量以及面向數據持續可用性的設計支持要求最高的業務應用程序。DS8700 憑借其可伸縮性、新的存儲層優化以及廣泛的服務器支持可以滿足最為關鍵的業務應用程序的需求。
了解此解決方案的配置
本文中所展示的這個示例災難恢復解決方案中,在主站點有一個活動的 DB2 pureScale 實例。事務在主站點針對此數據庫運行,Metro Mirror 則同步地鏡像 DB2 pureScale Feature 數據並記錄到目標站點。如果在主站點發生完全故障,那麼目標站點上的 DB2 pureScale 實例就會被轉為在線以便在主站點不可用時處理應用程序請求。如果在主站點發生站點故障,那麼就會調用一個故障轉移以便事務可以在目標站點上針對此數據庫運行。
圖 2 顯示了在這個示例災難恢復配置內使用的配置的基本拓撲。
圖 2. 拓撲概覽
圖 2 顯示了如下信息:
在主站點和目標站點上創建同一個稱為 db2sdin1 的 DB2 實例。
每個站點上的 DB2 實例包含兩個成員及兩個 PowerHA pureScale 服務器(CF)。
在每個站點上各部署一個 DS8700 存儲子系統。
hdisk6 在 DB2 實例所有者的主目錄內存儲實例文件。這個磁盤並未 被跨站點鏡像。
hdisk7 為 DB2 pureScale 群集服務所用。這個磁盤未 被跨站點鏡像。
hdisk8 存儲與 DB2 數據庫相關的數據。在這個磁盤上創建的文件系統稱為 /db2fs/db2datafs。這個磁盤被跨站點鏡像。
hdisk9 存儲與 DB2 數據庫相關的事務日志。在這個磁盤上創建的文件系統稱為 /db2fs/db2logfs。這個磁盤被跨站點鏡像。
跨 hdisk8 和 hdisk9 還定義了一個存儲級的一致性組以確保發生任何故障都能在目標站點上看到數據的單時間點(single-point-in-time)副本。
圖 3 給出了這個示例場景中用到的這兩個存儲子系統的更多細節。
圖 3. 存儲子系統拓撲
部署帶 Metro Mirror 的 DB2 pureScale Feature
如下步驟解釋了如何部署帶 Metro Mirror 功能的 DB2 pureScale Feature 以便 hdisk8 和 hdisk9 可被從主站點鏡像到目標站點。
從 DS8700 命令行界面(dscli),使用 lspprcpath 命令確定邏輯子系統 FC 和邏輯子系統 FD 之間的路徑狀態,如清單 1 所示。
清單 1. 確定路徑狀態
DS8700A dscli> lspprcpath FC
DS8700A dscli> mkpprcpath -remotedev IBM.2107-75TF931
-remotewwnn 5005076309FFC676 -srclss FC -tgtlss FD
-consistgrp IO302:IO302
注意:之所以在 mkpprcpath 命令內使用了一致性組選項是為了確保跨所有被鏡像的磁盤有一個一致的單時間點副本。此輸出提供了輸入/輸出(IO)端口以及全球節點名 (WWNN) 以在兩個邏輯子系統之間建立一個路徑。
創建 Metro Mirror 對,如清單 2 所示。
清單 2. 創建 Metro Mirror 對
DS8700A dscli> mkpprc -remotedev IBM.2107-75TF931 -type mmir FC05-FC06:FD05-FD06
檢查 Metro Mirror 對的狀態,如清單 3 所示。
清單 3. 檢查 Metro Mirror 對
DS8700A dscli> lspprc -remotedev IBM.2107-75TF931 FC05-FC06:FD05-FD06
在主 站點上創建具有兩個 DB2 成員和兩個 PowerHA pureScale 服務器的 db2sdin1 實例。清單 4 顯示了如何使用命令行實現此目的,也可以從 DB2 圖形安裝完成相同的任務。
清單 4. 在主站點上創建 db2sdin1 實例
# db2icrt -d instance_shared_dev /dev/hdisk6 -tbdev
/dev/hdisk7 -m hosta:hosta-ib0 -cf hostc:hostc-ib0 - u
db2sdin1 db2sdin1
# db2iupdt -d -add -m hostb:hostb-ib0 db2sdin1
# db2iupdt -d -add -cf hostd:hostd-ib0 db2sdin1
在目標 站點上創建具有兩個 DB2 成員和兩個 PowerHA pureScale 服務器的 db2sdin1 實例,如清單 5 所示。
清單 5. 在目標站點創建 db2sdin1 實例
# db2icrt -d instance_shared_dev /dev/hdisk6
-tbdev /dev/hdisk7 -m hostw:hostw-ib0 -cf hosty:hosty-ib0 - u
db2sdin1 db2sdin1
# db2iupdt -d -add -m hostx:hostx-ib0 db2sdin1
# db2iupdt -d -add -cf hostz:hostz-ib0 db2sdin1
請注意在主站點上所做的任何 DB2 配置參數更改都必須手動應用於目標站點。而且,如果所需的文件沒有位於被鏡像的磁盤上,包括來自存儲過程創建的二進制文件,那麼必須將這些文件手動復制到目標站點。
在主站點創建 DB2 數據以及事務日志的文件系統,並將所有者改為此 DB2 實例的所有者,如清單 6 所示。
清單 6. 在主站點創建文件系統
# db2cluster -cfs -create -filesystem db2datafs -disk /dev/hdisk8
# db2cluster -cfs -create -filesystem db2logfs -disk /dev/hdisk9
# chown db2sdin1:db2adm /db2fs/db2datafs
# chown db2sdin1:db2adm /db2fs/db2logfs
為配置主站點和目標站點間的計算機的根配置無密碼的 rsh。
通過在主站點從 HostA 運行清單 7 內的代碼來同步主站點與目標站點之間的文件系統定義。這種同步只在文件系統定義改變時需要。
清單 7. 同步文件系統定義
> db2stop force
# /usr/lpp/mmfs/bin/mmshutdown -a
創建一個名為 remotenodefile 的文件,內含清單 8 所示的條目。
清單 8. 創建 remotenodefile
hostw
hostx
hosty
hostz
運行清單 9 內的命令來將文件系統定義從主站點導出到目標站點。
清單 9. 導出文件系統定義
# /usr/lpp/mmfs/bin/mmfsctl db2datafs syncFSconfig -n remotenodefile
# /usr/lpp/mmfs/bin/mmfsctl db2logfs syncFSconfig -n remotenodefile
通過從 HostW 運行清單 10 內的命令來驗證文件系統定義到目標站點的傳播。mmlsnsd 命令顯示了目標站點上現在已經有了對文件系統 db2datafs 和 db2logfs 的文件系統定義。驗證完成後,停止此文件系統。
清單 10. 驗證文件系統定義的傳播
# /usr/lpp/mmfs/bin/mmstartup -a
# /usr/lpp/mmfs/bin/mmlsnsd
# /usr/lpp/mmfs/bin/mmshutdown -a
在主站點上,應用程序工作負載現在可以針對此數據庫運行,並且 Metro Mirror 函數會自動將磁盤級別的更改鏡像到目標站點。
若主站點故障,就執行清單 11 內所示的磁盤故障轉換以便目標站點上的數據可被用來繼續進行目標站點上的數據庫處理。
清單 11. 執行磁盤故障轉換
DS8700B dscli> failoverpprc -remotedev IBM.2107-75TF921
-type mmir FD05-FD06:FC05-FC06
啟動目標站點的文件系統,如清單 12 所示。
清單 12. 啟動目標站點的文件系統
# /usr/lpp/mmfs/bin/mmstartup -a
當數據庫首次在目標站點上被訪問時,可以通過用戶 db2sdin1 制作此數據庫的目錄以便目標站點上的實例也可以看到它,如清單 13 所示。
清單 13. 數據庫目錄
> db2 catalog db sample on /db2fs/db2datafs
用 db2sdin1 用戶 ID 啟動目標站點上的 DB2,如清單 14 所示。
清單 14. 啟動目標站點上的 DB2
> db2start
目標站點上的數據庫現在已經完全可訪問並且包含所有在主站點上發生的更新。
當主站點恢復在線後,必須逆轉磁盤鏡像的方向以便主站點可再次成為用來處理的數據庫。
逆轉磁盤鏡像的方向以便目標站點上的磁盤可被鏡像到主站點上的磁盤,如清單 15 所示。
清單 15. 逆轉磁盤鏡像的方向
DS8700B dscli> mkpprcpath -remotedev IBM.2107-75TF921 -remotewwnn
5005076309FFC61A -srclss FD -tgtlss FC -consistgrp IO302:IO302
DS8700B dscli> failbackpprc -remotedev IBM.2107-75TF921 -type mmir
FD05-FD06:FC05-FC06
使用 lspprc 命令驗證主站點已恢復在線。
若想要重新集成此原始主站點作為數據處理的場所,可從 HostW 停止目標站點的 db2 實例和文件系統,如清單 16 所示。
清單 16. 停止 db2 實例和文件系統
> db2stop force
# /usr/lpp/mmfs/bin/mmshutdown -a
確保所有數據均在磁盤卷對之間同步,並且處於全雙工狀態,如清單 17 所示。
清單 17. 檢查同步了的數據
DS8700A dscli> lspprc -remotedev IBM.2107-75TF931 FC05-FC06:FD05-FD06
執行磁盤的故障轉移以便數據庫處理能夠在主站點繼續,如清單 18 所示。
清單 18. 執行到主站點的磁盤故障轉移
DS8700A dscli> failoverpprc -remotedev IBM.2107-75TF931
-type mmir FC05-FC06:FD05-FD06
從 HostA 啟動主站點的文件系統和 DB2 實例,如清單 19 所示。
清單 19. 啟動文件系統和實例
# /usr/lpp/mmfs/bin/mmstartup -a
> db2start
初始化磁盤故障恢復以便磁盤現在從主站點鏡像到目標站點,以防將來主站點有任何故障會發生,如 清單 20 所示。
清單 20. 初始化磁盤故障恢復
DS8700A dscli> mkpprcpath -remotedev IBM.2107-75TF931
-remotewwnn 5005076309FFC676 -srclss FC -tgtlss FD -consistgrp IO302:IO302
DS8700A dscli> failbackpprc -remotedev IBM.2107-75TF931
-type mmir FC05-FC06:FD05-FD06
提示:您可以利用 DB2 的自動客戶端重路由特性來在發生站點故障或重新集成時自動地跨站點重新連接應用程序。
結束語
DB2 pureScale Feature for Enterprise Server Edition 提供了一種數據庫解決方案,可滿足最為苛刻的用戶的需求。它針對高可用性設計,可實現在發生計劃內和計劃外的故障時,業務仍能持續。您可以部署一個災難恢復解決方案以使客戶在全站故障的不幸情況下仍能繼續運行其業務。DB2 pureScale Feature 與本文中所介紹的這個 DS8700 Metro Mirror 相結合就能提供一種彈性的解決方案,可滿足最為苛刻的客戶環境的高可用性及災難恢復要求。