本文所提供的步驟可構成基本災難恢復計劃的核心,也可用於將系統服務遷移到新的引導設備或相同模型但完全不同的系統。註意,不支持將已安裝的軟件遷移到不同模型的系統。
如果想要下載軟件、加入論壇、閱讀類似本文的內容之外的其他技術方法精品文章,請成為 OTN 成員。無垃圾郵件!
過程概述
為根池及其關聯的數據集以及任何應遷移或恢復的其他 ZFS 池(如存儲重要第三方軟件或本地用戶帳戶數據的池)創建壹個 ZFS 存檔。
要備份和恢復整個系統,應對所有 ZFS 池及其數據集進行存檔,如 Oracle Solaris 管理:ZFS 文件系統 指南中所述,同時應對節點所提供服務所需的所有其他非根文件系統或數據進行存檔。這可確保所有配置詳細信息、第三方軟件和其他節點特定的元素(如本地用戶帳戶和數據)都將在恢復系統上恢復,且恢復到功能齊備的服務狀態。本文重點介紹根池。
創建存檔之後,可以將其保存在本地可移動介質(如 USB 驅動器)上,也可以通過網絡將其發送到文件服務器,以便稍後從該服務器進行檢索。當需要利用存檔時,可按照以下過程操作:
從 Oracle Solaris 11 安裝介質引導恢復系統,啟動具有超級用戶權限的 shell。
選擇和配置啟動磁盤設備並創建新的 ZFS 根池。
將存檔的 ZFS 數據集恢復到新池。
執行最終配置,然後重新啟動系統。
要求和註意事項
任何運行 Oracle Solaris 11 的主機都可以成為此過程的候選者。對於要恢復到新磁盤或系統的系統存檔,必須滿足以下要求:
存檔的系統和恢復系統必須是同壹模型且必須滿足 Oracle Solaris 11 的最低要求。
將容納新 ZFS 池的磁盤的總容量至少必須與存檔池中分配的空間相同(下面將提供更多詳細信息)。
存檔系統和恢復系統上都需要根訪問權限。
註意,存檔將包含位於所存檔 ZFS 數據集中的所有軟件和配置信息。這包括但不限於以下信息:
操作系統及相關配置和調優
所有引導環境 (BE) 和先前的 ZFS 快照
網絡配置,包括主機名、路由信息和名稱服務配置
所有本地安裝的軟件及本地存儲的相關數據
本地配置的用戶帳戶及本地用戶數據
區域及相關配置數據
這意味著大多數情況下,在完成以下概述的步驟之後,不需要其他配置操作。
存檔映像中不包含任何硬件特定的配置數據。如果要使用此過程移動到相同模型的全新系統,不會隨備份壹起轉移的特定於硬件的系統特征包括(但不限於)以下內容:
磁盤容量和配置(包括 ZFS 池配置)
內存容量和配置
硬件以太網地址
已安裝的硬件外圍設備
對於已安裝的硬件外圍設備,應特別註意,如果要恢復的系統利用直接連接的外部存儲或特殊的網絡硬件(如光纖通道或 InfiniBand 適配器),則需要在恢復系統上安裝這些設備以訪問該存儲。
第 1 階段:創建存檔
本部分介紹需要做的準備工作以及如何創建存檔。
準備
要準備恢復,需要記下要存檔的每個池的磁盤拓撲結構和 ZFS 池配置。同樣,在本文中將重點介紹根池。需要對恢復系統上的目標磁盤進行類似的配置,並且需要相應調整新 ZFS 池的大小。為每個池分配的大小(以下所示的 zpool list 輸出中的 ALLOC 列)至少需要確保有充足的空間來還原恢復系統上的數據集。
# zpool list
NAME ?SIZE ?ALLOC ? FREE ?CAP ?DEDUP ?HEALTH ?ALTROOT
rpool ?68G ?51.6G ?16.4G ?75% ?1.00x ?ONLINE ?-
如果有任何池的容量(如 CAP 列所示)超過 80%,最佳實踐表明應擴大該池以規劃容量。根據其他配置元素和工作量的不同,增加池中的空間余量還有益於性能。有關如何管理 ZFS 文件系統及相關性能的更多信息,請參閱 Oracle Solaris 管理:ZFS 文件系統。
為準備稍後的恢復,各種命令的輸出應保存到壹個文件,與存檔壹起保存以便恢復期間參考。清單 1 中所示命令只是最低建議,根據系統配置的不同,其他配置信息也可能有用。清單 1 中所示命令及示例輸出僅針對根池 (rpool)。
上述被存檔系統的信息以及恢復期間可能有用的任何其他信息均應放在壹個文件中,該文件與存檔文件壹起保存以便稍後在恢復期間使用。
也可以使用?Oracle?Explorer Data Collector 收集所有系統配置信息以供稍後參考。Oracle?Explorer Data Collector 及相關文檔可在?MyOracle?Support(需要支持合同和登錄)中找到。
有關 ZFS 管理和容量規劃的其他信息,請參閱?Oracle?Solaris?管理:ZFS 文件系統。
創建存檔
要對根池進行存檔並包括所有快照和 BE,可創建壹個 ZFS 復制流。首先,必須從池的頂級創建壹個遞歸快照。同樣,可以對需要存檔並傳給恢復主機的其他池進行存檔。
註意,rpool?是默認的根池名稱,但在任何給定系統上根池可能有不同的名稱。如果要對所有池和數據集進行存檔,這不是很重要。然而,如果只需要備份根文件系統或者只需要備份選定的壹組 BE,且不清楚它們駐留在哪個池上,可以使用?beadm list -d?命令來確定。此後,使用默認名稱?rpool?來引用根池。
以下命令創建根池的壹個名為?archive?的遞歸快照。還可以基於您需要的日期或您期望的任何其他描述性標簽選擇快照名稱。
# zfs snapshot -r rpool@archive
現在已創建遞歸快照,但應從中刪除交換和轉儲設備快照,因為它們可能不包含與系統遷移或恢復相關的任何數據。而且,刪除它們通常會顯著降低存檔的大小。
以下命令將刪除默認命名的交換和轉儲設備快照,雖然主機上可能部署了其他快照。
註:關於轉儲設備,盡管轉儲設備也有可能有數據尚未提取到?/var?數據集(以核心存檔的形式),但可能性不大。如果是這種情況,就應保存轉儲設備的內容,應在刪除轉儲設備快照之前將內容轉儲到文件系統。詳情參見?dumpadm(1M)。
# zfs destroy rpool/swap@archive
# zfs destroy rpool/dump@archive
要確定是否存在默認命名設備之外的其他設備,可使用?swap(1m) 和?dumpadm(1m) 分別列出交換和轉儲設備的名稱。
現在快照準備好了。下壹步是將其發送到文件進行存檔。如果要存檔多個 ZFS 池,每個池將有壹個快照,且每個快照將發送到自己的存檔文件。同樣,在本示例中,以下步驟重點放在創建根池的存檔。不過,可用同樣的方式對系統上的任何其他池進行存檔。
ZFS?send?命令以管道方式輸出到?gzip?命令,結果產生壹個壓縮文件,其中包含池快照的存檔。創建此存檔文件時,使用某個有助於稍後確定存檔內容的反映主機名、日期或其他描述性術語的唯壹命名方案是壹個好主意。
存檔文件可以本地保存以便稍後進行重定位,也可以創建在可移動介質上。註意,盡管使用了壓縮,本地或文件服務器上仍應有足夠的存儲空間供存檔使用。壹個好的經驗是有足夠的空間容納?zpool list?報告的?ALLOC?量的總和。
要在本地創建存檔文件,可使用以下命令。恢復映像文件名可以是任何有助於識別此存檔以便稍後使用的字符串。例如,通常選擇使用主機名加日期。
# zfs send -Rv rpool@archive | gzip > /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz
現在應將該存檔文件移動到文件服務器以便稍後檢索。
還可以選擇將存檔文件直接寫入掛載 NFS 的路徑,如下所示。
# zfs send -Rv rpool@archive | gzip > /net/FILESERVER/path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz
類似地,可以使用?ssh?以流方式將存檔文件發送到文件服務器。
# zfs send -Rv rpool@archive | gzip | ssh USER@FILESEVER "cat> /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz"
註意,使用這最後壹個選項通過網絡以流方式傳送存檔時,ssh?傳輸不支持任何暫停和恢復功能。因此,如果網絡連接中斷,需要重新啟動整個命令。
強烈建議在備份的文件系統上存儲存檔文件。
註意,恢復存檔已創建,現在可以刪除本地快照了。
# zfs destroy -r rpool@archive
第 2 階段:從存檔恢復
系統引導
只要需要執行系統恢復或系統遷移操作,就可以開始恢復階段。
首先,需要從?Oracle?Solaris?11?安裝介質引導恢復系統。用於引導恢復系統的安裝介質應與用於構建存檔的?Oracle?Solaris?11?的版本相同。例如,如果存檔是在?Oracle?Solaris?11?11/11?主機上創建的,則在此階段應使用?Oracle?Solaris?11?11/11?安裝介質。可以從 DVD、USB 設備或網絡引導恢復系統。註意,不是從此介質安裝系統,相反,此介質僅用於引導系統。引導之後,將在可以開始恢復過程的位置啟動 shell。
要從 DVD 或 USB 安裝介質引導,請插入介質並選擇相應的設備作為引導設備。使用 LiveCD,GNOME 桌面會話可用於恢復過程;壹旦桌面啟動,可啟動壹個終端窗口來執行此過程的其余部分。如果使用基於文本的介質,可選擇在 Text Installer 菜單出現時退出 shell。
Oracle?Solaris?自動安裝程序 (AI) 或 AI 介質的本地副本也可以用於引導系統。在 x86 主機上,選擇“Text Installer and command line”GRUB 菜單項將運行 Text Installer,可從菜單中選擇壹個 shell。
類似地,在 SPARC 主機上,引導 AI 介質(從本地或通過網絡)而不啟動自動安裝將允許您從 Text Installer 菜單選擇 shell。這可以通過在 SPARC 計算機上的引導提示符處調用以下引導命令來完成:
{0} ok boot net:dhcp
有關如何在?Oracle?Solaris?11?中引導系統的更多信息,請參閱系統管理指南:基本管理?中的?x86?和?SPARC?引導信息。
引導設備和根池準備
第壹步是配置新的引導磁盤設備。有關如何管理磁盤設備、如何確定引導設備以及如何更改默認引導設備(如有必要),請參閱?OracleSolaris?管理:設備和文件系統?指南以及系統管理指南:基本管理?中的?x86?和?SPARC?引導信息。
註意,如前面所引用的,可復制原來的磁盤布局,也可以使用不同的磁盤布局,只要采取以下步驟並將磁盤開始部分的空間預留給引導數據。此外,根池(或其他恢復目標池)不必與原始池大小相同。不過,新池的大小必須足以包含各自存檔文件中的所有數據(即與?zpool list?輸出中的?ALLOC?部分大小相等,如前所述)。
壹旦選擇了引導設備,就可以根據需要基於存檔系統上的初始磁盤配置對其進行配置。在此重申,所要求的是最終所創建的 ZFS 池的大小應足以存儲數據集,也就是?zpool list?的輸出中所顯示的?ALLOC?的數值。
format(1M) 命令用於根據需要配置磁盤分區和/或分片。對於引導設備,應使用 VTOC 標簽,默認配置為起始於柱 1 的全設備分片 0。作為創建存檔的壹部分保存的文件可以提供關於如何最好地配置引導設備的指導。
首先從?format?實用程序的菜單選擇所需的引導設備,如清單 2 所示。
完成之後,可以根據需要配置分片。清單 3 顯示設置全容量(或“全力”)分片 0 的示例,這是默認配置。該分片從柱 1 開始,以便在磁盤開頭部分為引導軟件留出空間。註意,根據系統架構、磁盤幾何及其他變量,分區表可能略有不同。
清單 3:設置全容量分片的示例
註意,如果存檔的系統的根池未使用默認名稱?rpool,在此應使用其實際名稱。盡管使用不同名稱的池也能成功完成恢復過程,但產生的 ZFS 文件系統可能會采取不同的掛載點,這可能會造成混亂。因此,應使用與存檔 ZFS 池相同的名稱創建恢復 ZFS 池。
此時還可以創建恢復存檔所需的任何其他 ZFS 池。註意,如果系統上的某個現有池已經使用期望的名稱,您需要另選其他名稱。有關如何創建 ZFS 池的更多信息,請參閱?Oracle?Solaris?管理:ZFS 文件系統?指南。
下壹步是從存檔文件恢復 ZFS 數據集。如果存檔存儲在可移動介質上,現在應連接和配置該介質以便可以訪問其中的文件。有關如何配置可移動介質的更多信息,請參閱?Oracle?Solaris?管理:設備和文件系統?指南。
壹旦可以從本地訪問存檔文件,就可以使用以下命令恢復數據集。
# gzcat /path/to/archive_myhost_20111011.zfs.gz | zfs receive -vF rpool
如果存檔文件存儲在聯網的文件服務器上,可以使用以下命令以流方式獲取存檔並恢復數據集。
# ssh USER@FILESERVER "cat /path/to/archive_myhost_20111011.zfs.gz" | gzip -d | zfs receive -vF rpool
如果該主機上存檔了要恢復的其他池,此時可以使用與以上所示相同的 ZFS 操作恢復這些池。有關如何恢復 ZFS 數據集的其他信息,請參閱?Oracle?Solaris?管理:ZFS 文件系統。
本過程的數據恢復部分現已完成。現在必須執行最後幾步來確保恢復系統將按照預期方式進行引導。
第 3 階段:配置和驗證
首先,必須創建要用於恢復後系統的交換和轉儲設備。註意,這裏使用的是默認命名的設備,因此無需其他管理任務(例如,使用swap(1m) 命令添加交換設備),因為這些設備已經在使用中並且配置成在引導時與該系統壹起運行。如果目標系統的內存配置與存檔的系統不同,交換和轉儲設備可能需要不同的大小,但名稱仍與先前的配置相同,因此,這些設備在恢復系統首次引導時會被正確配置。
應按照?Oracle?Solaris?管理:設備和文件系統?和?Oracle?Solaris?管理:ZFS 文件系統?指南中的建議調整交換和轉儲設備的大小,大體如下表所示。
壹旦激活,beadm list?輸出中 BE 的?Active?列將顯示?R,表示在重新啟動時處於活動狀態。這可以通過再次調用?beadm list?來確認。有關 BE 管理的其他信息,請參閱創建和管理?Oracle?Solaris?引導環境。
現在可以重新引導系統。除了任何物理拓撲結構、外圍設備更改和其他硬件相關更改之外,該系統應與存檔系統壹樣。軟件配置和數據以及恢復的任何輔助 ZFS 池應由存檔系統繼承而來,如上所述。應檢查和驗證網絡配置。如果系統是在新網絡上恢復的,或者自創建存檔之後與網絡有關的配置元素發生了更改,則可能需要某些修改。有關配置的更多信息,請參閱?Oracle?Solaris?管理指南。
總結
本文演示了可存檔和恢復已安裝和配置的?Oracle?Solaris?11?主機的壹組過程。這些過程可用作整個災難恢復計劃的組成部分,也可用於將Oracle?Solaris?11?系統上托管的業務服務遷移到另壹個引導設備或相同模型的完全不同的系統。
轉載