您是否曾經需要為災難恢復(DR)解決方案批次恢復Citrix Xen虛擬機器,或者只是為了測試備份是否正常工作?HTG解釋瞭如何使用xenphoenix(一個免費的bash指令碼)進行VM恢復。
圖片來源:Ryan McCurdy via Compfight cc
正如我們在“如何使用Xen pocalypse免費備份Citrix Xen VMs”中提到的,Citrix Xen的優點之一是它的許多特性都是免費的。也就是說,如果您想要“自動VM保護和恢復”功能,就必須開始為“Advance”許可證付費。再次強調,這並不是說我們HTG不重視真正的備份解決方案的價值,而是如果您的預算很緊,已經從虛擬機器監控程式中獲取了虛擬機器映像,並且需要一種自動化“測試還原”/“DR重新整理”過程的方法,那麼在進行備份之前,您可能會發現Xen Phoenix是一個非常合理的解決方案預算承諾。
“用例”:您有幾個需要恢復的vm。在“Xen Center”中使用右鍵單擊匯入可以正常工作,但是您希望此過程自動並按計劃進行。這個Bash指令碼使用“XE”命令來執行其職責。XE是Xen命令列介面(CLI),自動等效於在“Xen中心”中發出“右鍵單擊”。我們將從Cron呼叫指令碼,它將提供“排程”部分。在最簡單的形式中,還原流是:
*可以完全禁用deleteallvms行為並支援異常(見下文)。
讓我們開始吧:)
XenPhoenix可以使用常規git方法從github免費獲得。也就是說,如果你還不精通git,你可以透過這個連結獲取zip檔案。由於指令碼需要在一個Xen伺服器上執行,因此應該在那裡提取它,以便保留執行許可權。
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip unzip master
雖然上面的方法可行,但是建議您使用GIT方法,這樣您就可以從將來的更新中受益。
我們需要配置從何處獲取VM匯出。
在Citrix Xen中隨機瀏覽時,我發現儲存庫(SRs)可以在“/var/run/sr mount/%UUID%”下使用,其中UUID是sr的唯一識別符號,可以從GUI獲得。
這意味著我們可以使用常規的“下一步->下一步->完成”嚮導將“裝載”建立到所需的備份位置,然後讓指令碼使用該路徑(這可能會影響從命令列裝載,這超出了本指南的範圍)。
要建立新的“mount”,請右鍵單擊伺服器名稱並選擇newsr。
在本例中,我們將Xen指向Windows共享,因此選擇“Windows檔案共享(CIFS)”:
完成下一步->下一步->完成。
獲取SR的UUID
要獲得SR的UUID,只需在Xen中心單擊它的名稱並轉到“General”選項卡。
要複製UUID,只需右鍵單擊它並選擇“複製”。
有了這些資訊,您就可以編輯設定檔案了。
xenphoenix專案附帶了一個“設定”檔案模板。應編輯此模板以反映您的設定,並將其作為第一個引數傳遞給指令碼。
設定檔案指定以下內容:
此指令碼將設定檔案作為其第一個引數,並將任何其他引數作為要搜尋的“V形符號”(用空格分隔)。符號是“字串”,它支援正則表示式,這些正則表示式至少表示VM匯出所需檔名的一部分。
也就是說,在最簡單的形式中,對Xen phoenix的呼叫如下所示:
./Xen-phoenix.sh settings.cfg DevTools
在上面的情況下,我們在儲存指令碼的目錄中&設定檔案和指令碼將查詢的“Chevron”是“DevTools”。這將導致匯入名為“DevTools”字串的匯出目錄中的所有檔案。
更復雜的示例可以如下所示:
./Xen-phoenix.sh settings.cfg [Aa][Dd] [Bb][iI] [Dd]ev[Tt]ools
其中,在上述示例中,將匯入包含單詞“devtools”拼寫為大寫“D”和“T”或非大寫字母的檔案,以及包含或不包含大寫字母的“AD”和“BI”的檔案。
如上所述,我們將使用Cron來安排執行。在我們進入配置之前,強烈建議您在Xen伺服器上配置已經安裝的SSMTP包。雖然這是一個可選步驟,但這樣做會給您一個“反衝洗”收集器。擁有這樣一個“反衝洗收集器”可能會提醒您指令碼無法完成的事情。
透過發出以下命令進入cron的編輯模式:
crontab -e
如果您已按照上述說明進行操作,並且希望新增週日01:31(凌晨1:31)的定時備份,請輸入以下內容:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa][Dd] DB [Bb][iI] [Dd]ev[Tt]ools
假設您的指令碼和設定檔案都在“/root/Xen phoenix master/”下,上述內容是正確的。
我們以前寫過sendmail perl程式,所以這裡不需要重複。可以說,它在Linux上的工作方式與在Windows上的工作方式相同。
雖然啟用電子郵件是可選的,但強烈建議這樣做,因為這樣指令碼將能夠:
下載到Xen伺服器並解壓縮。
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz
請注意將其提取到的位置。設定檔案需要它。
Xen Phoenix從它的祖先(Xen Pocalypse)獲取一個頁面,並允許您使用控制標記從系統範圍的刪除中精確地排除VM。為此,您需要定義一個新的“自定義欄位”。
為此,請開啟伺服器甚至虛擬機器的屬性。在導航窗格中,選擇“自定義欄位”。
如果這是您第一次定義“自定義欄位”(如上面的示例所示),那麼您將沒有“Phoenix\u keeper”欄位來輸入資料,因此需要建立它。為此,在彈出的對話方塊中單擊“編輯自定義欄位”,然後單擊“新增…”
建立一個名為“Phoenix\u keeper”的“文字”型別欄位。
注意:自定義欄位的名稱已被“硬編碼”到指令碼中,因此不能偏離上面的拼寫,除非同時更改相關程式碼。
建立欄位後,您應該看到:
關上窗戶。您現在應該有“鳳凰守護者”欄位來填充,如下圖所示。
現在,您所要做的就是用一個註釋填充這個欄位(任何註釋都可以),這將導致Xen phoenix在刪除時跳過它。
雖然我花了很多精力使指令碼儘可能簡單易用,儘可能簡單,但“世界是一個更大的實驗室”。下面的資訊可以幫助你確定你的麻煩的來源。
登入中
所有“日誌記錄”都由執行syslog機制中指令碼的Xen主機收集。當然,可以透過以下方式檢視:
less +F /var/log/messages
你要找的關鍵詞是“鳳凰城”。
注意:Citrix為其伺服器的syslog設定了兩(2)天保留策略。你可能想在驗屍時記住這一點。
除錯
如設定檔案段中所述,有一個指令用於啟用除錯。啟用除錯將導致指令碼向控制檯輸出詳細日誌記錄,並禁止它傳送電子郵件和實際執行匯入,除非還設定了相關標誌。可能的標誌在設定檔案模板中有註釋,它們使您能夠精確地定義要除錯的內容。
我希望你不需要任何除錯,你正在收穫我的勞動成果:)
想想所有的貧窮,仇恨和謊言,想象一下你所鄙視的一切的毀滅。慢慢地從灰燼中,鳳凰會升起…
...礎設施資源最佳化的相關術語。虛擬化是雲端計算概念中使用的一種技術。虛擬化是根據需求使用相同的硬體基礎架構來構建多個虛擬伺服器。例如,假設您需要一個Windows伺服器和一個Linux伺服器用於不同的用途,您可以使用虛...
... 但與在虛擬機器中執行作業系統不同,Qubes使用虛擬化來隔離應用程式。例如,web瀏覽器與檔案瀏覽器處於不同的環境中。這樣,如果漏洞被利用並在系統上執行命令,攻擊就會被遏制。 ...
... 無論您敏感工作的性質如何,您都將受益於這五種安全的Linux作業系統之一。 ...
... 差距並沒有持續太久。雖然Phoenix作業系統與Remix同時開發,但自從Remix被淘汰後,Phoenix已經成為Windows10修改後的Android模擬器環境的首選。我們有一個關於如何在Windows10系統上安裝Phoenix作業系統的教...
想做一臺安卓電腦嗎?這很簡單。基於Android-x86專案的Phoenix作業系統可以在臺式機(或膝上型電腦)上安裝Android。另一方面,它不會執行Chrome瀏覽器的完整版本(Chrome非常快)。畢竟,這是一個移動作業系統。 ...
...而這僅僅花了12年的時間才得以實現。這意味著人們堅持使用他們在2006年選擇的同一個PSN ID,最終將能夠把它改成更成熟的東西。 ...
... Phoenix OS不僅僅是一個模擬器,而是一個基於Android的完整作業系統。這給它帶來了一個優勢,因為Phoenix作業系統提供了比任何Android模擬器更好的效能。 ...