如何使用xen pocalypse(bash)免費備份citrix xen vms

您是否曾經需要備份您的Citrix Xen虛擬機器(VM),但不想破壞銀行這樣做?HTG為您提供了xenpocalypse的bash指令碼。...

如何使用xen pocalypse(bash)免費備份citrix xen vms

您是否曾經需要備份您的Citrix Xen虛擬機器(VM),但不想破壞銀行這樣做?HTG為您提供了xenpocalypse的bash指令碼。

圖片由h.koppdelaney,卡在自定義和Hotfortech。

Citrix Xen的優點之一是它的許多特性都是免費的。也就是說,如果您想要“自動VM保護和恢復”功能,就必須開始為“Advance”許可證付費。即使這樣,您也只需支付磁碟級備份的費用,這對於許多型別的工作負載(如Active directory、資料庫等)是不夠的。要解決這一問題,您可能需要“實時記憶體快照和還原”,它可以儲存整個機器狀態,包括RAM的內容。不過,這一功能是“企業版”和“白金版”的一部分,後者甚至更貴。這並不是說我們HTG不重視真正備份軟體的價值,但是如果您的預算很緊,並且不介意備份操作的一些停機時間,那麼在您做出預算承諾之前,您可能會發現Xen pocalypse是一個非常合理的解決方案。

概述

“用例”:您有幾個需要備份的vm。使用右鍵單擊“Xen Center”中的“關閉VM並將其匯出為檔案”可以正常工作,但您希望此過程自動並按計劃進行。這個Bash指令碼使用“XE”命令來執行其職責。XE是Xen命令列介面(CLI),自動等效於在“Xen中心”中發出“右鍵單擊”。我們將從Cron呼叫指令碼,它將提供“排程”部分。在最簡單的形式中,備份流是:

  • 關閉目標VM。
  • 將VM作為檔案匯出到備份位置。
  • 如果VM在備份開始之前已開啟,則它將重新開啟。

讓我們開始吧:)

獲取指令碼

xenpocalypse可以使用常規git方法從github免費獲得。也就是說,如果你還不精通git,你可以透過這個連結獲取zip檔案。由於指令碼需要在一個Xen伺服器上執行,因此應該在那裡提取它,以便保留執行許可權。

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

雖然上面的方法可行,但是建議您使用GIT方法,這樣您就可以從將來的更新中受益。

獲取sendemail(可選)

我們以前寫過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

請注意將其提取到的位置。設定檔案需要它。

定義標記

Citrix Xen使您能夠為過濾功能配置“自定義欄位”。我們將建立欄位,然後用xenpocalypse使用的資訊填充它們。xenpocalypse識別3個控制標記,它們指定了備份標記的名稱和父子關係。如果不打算使用檔案輸入法,則必須至少建立backup tag name欄位。

為此,請開啟伺服器甚至虛擬機器的屬性。在導航窗格中,選擇“自定義欄位”。

如何使用xen pocalypse(bash)免費備份citrix xen vms

If this is the first time you define a relati***hip (as in the example above), you will not have any fields to input data into, so you need to create them. To do this, click on “Edit Custom Fields” in the dialog box that pops up, click on “Add…” 如何使用xen pocalypse(bash)免費備份citrix xen vms

建立三(3)“文字”型別欄位。一個叫做“BackupTAG”,另一個叫做“Parent”和“Children”。

注意:自定義欄位的名稱已經“硬編碼”到指令碼中,因此您不能偏離上面的拼寫,除非您也更改了相關程式碼。

建立完所有欄位後,您將看到:

如何使用xen pocalypse(bash)免費備份citrix xen vms

關閉窗戶。你呢現在應該有“BackupTAG”、“Parent”和“Children”欄位來填充,如下圖所示。

如何使用xen pocalypse(bash)免費備份citrix xen vms

現在,您所要做的就是指定哪些vm屬於哪個“BackupTAG”。例如,在開發指令碼的公司中,我們的vm將在星期四和星期五每週備份一次,我們的Atlassian產品vm的時間表以及一些僅每月備份一次的vm。因此,我們的概述如下:

如何使用xen pocalypse(bash)免費備份citrix xen vms

例如,“weekly fri”是我們輸入到“BackupTAG”“Custom欄位”中的文字。乾淨利落啊?:)

父母和子女(可選)

這個指令碼的真正優點在於它支援“父”到“子”的關係。也就是說,可以設定將在父級之前關閉和備份的“子”vm列表,並且這些子vm只有在父級完成備份並重新開啟後才能重新開啟。這在關閉父VM會導致子VM中的服務不可用的情況下非常有用。這種情況意味著子VM上的服務將兩次不可用,一次用於子VM的備份程序,一次用於父VM的備份程序。建立這種關係可以克服這個問題。

例如,我們所有的Atlassian VM都使用一個數據庫(DB)VM,它也被設定為備份。因此,透過注意dbvm是其他VM的“父級”,可以確保關機->備份->啟動的正確順序。

在撰寫本文時,此函式有幾個注意事項:

  1. 具有這種關係的虛擬機器的名稱不能包含空格。您必須從VM名稱中刪除空格,因為它們將以空格分隔,如下例所示。
  2. 只能有一個家長。指定不止一個甚至沒有計劃,更不用說測試。

要建立此關係,請進入VM的屬性。如果這是一個“父母”,寫下他的孩子是誰,如果這是一個“孩子”,寫下他的父母是誰。例如:

如何使用xen pocalypse(bash)免費備份citrix xen vms

注意:不為子級指定父級可能會導致子級在其父級就緒之前啟動,並可能導致備份兩次。

檔案方法(可選)

出於歷史原因,xenpocalypse還支援將要備份的vm列表作為文字檔案。雖然“程式碼”仍然存在,但功能嚴重不如TAGs方法,因此不建議使用它。也就是說,如果出於某種原因您更喜歡使用list方法,那麼將應用以下限制:

  1. 虛擬機器的名稱不能包含任何空格或特殊字元。
  2. 每行只能有一個VM名稱。
  3. 不允許使用空行。

要生成列表,請從Xen中心複製VM的名稱,或在Xen主機上執行:

xe vm-list | grep name-label | awk '{ print $4 }' | sort

將上面的列表複製到常規文字檔案中。

備份位置

在Citrix Xen中隨機瀏覽時,我發現儲存庫(SRs)可以在“/var/run/sr mount/%UUID%”下使用,其中UUID是sr的唯一識別符號,可以從GUI獲得。

這意味著我們可以使用常規的“下一步->下一步->完成”嚮導來建立到所需備份位置的裝載,然後讓指令碼使用該路徑(就像從命令列裝載一樣),但是這樣做超出了本指南的範圍。

要建立新的“mount”,請右鍵單擊伺服器名稱並選擇newsr。

如何使用xen pocalypse(bash)免費備份citrix xen vms

在本例中,我們將Xen指向windows共享,因此選擇“windows檔案共享(CIFS)”:

如何使用xen pocalypse(bash)免費備份citrix xen vms

完成下一步->下一步->完成。

獲取SR的UUID

要獲得SR的UUID,只需在Xen中心單擊它的名稱並轉到“General”選項卡。

如何使用xen pocalypse(bash)免費備份citrix xen vms

要複製UUID,只需右鍵單擊它並選擇“copy”。

如何使用xen pocalypse(bash)免費備份citrix xen vms

有了這些資訊,您就可以編輯設定檔案了。

配置設定檔案。

xenpocalypse專案附帶了一個“設定”檔案模板。應編輯此模板以反映您的設定,並將其作為第一個引數傳遞給指令碼。設定檔案指定以下內容:

獲取要備份的vm的方法–預設方法是TAGs。您可以將此更改為檔案,但不建議這樣做。

備份目標的位置—如果您按照指南中的說明進行操作,只需將%UUID%替換為從上面獲得的SR即可。

sendmail的位置–如果您選擇啟用Email,則需要在此處輸入提取perl可執行檔案的位置。

電子郵件詳細資訊–同樣,如果已啟用電子郵件,則需要定義詳細資訊,例如:收件人、發件人、伺服器名/IP等。

壓縮–這在預設情況下設定為“否”,因為啟用它會生成較小的備份檔案,但也會導致備份過程執行相當長的時間。

檢查目標上的可用空間–這將使指令碼檢查進行VM備份不會導致備份位置的可用空間低於10GB。這樣做是為了確保備份最多的虛擬機器,而不是隻備份一個非常大的虛擬機器。計算是使用與VM相關聯的所有hd的總磁碟大小來完成的。

除錯–預設情況下,使用值“0”(零)關閉除錯。您不需要開啟它,但如果打開了,更多資訊將在故障排除部分中顯示。

執行/排程

在最簡單的形式中,Xen pocalypse的呼叫如下所示:

./Xen-backup.sh settings.cfg weekly-fri

在上面的例子中,我們在儲存指令碼和設定檔案的目錄中。指令碼將尋找的“標籤”是“每週星期五”。

如上所述,我們將使用Cron來安排執行。在我們進入配置之前,強烈建議您在Xen伺服器上配置已經安裝的SSMTP包。雖然這是一個可選步驟,但這樣做會給您一個反衝洗收集器。擁有這樣一個“反衝洗收集器”可能會提醒您指令碼無法做到的事情。

透過釋出以下命令進入cron的編輯:

crontab -e

如果您已按照上述說明進行操作,並且希望新增星期五18:01(下午6:01)的定時備份,請輸入以下內容:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

假設您的指令碼和設定檔案都在“/root/Xen pocalypse master/”下,上述內容是正確的。

故障排除

雖然我花了很多精力使指令碼儘可能簡單易用,儘可能簡單,但“世界是一個更大的實驗室”。下面的資訊可以幫助你確定你的麻煩的來源。

進展

您可能希望使用這一行程式碼快速“監視”所有正在進行的任務,看看它們是否真的在進行,或者它們是否真的被卡住了。

while [ -e /dev/null ]; do for VM in "$( xe task-list | grep uuid | awk '{print $5}' )" ; do  xe task-param-get  param-name=progress uuid=$VM ;sleep 1; done; done

要停止監視,請使用Ctrl+C來停止“while迴圈”。

登入中

所有“日誌記錄”都由執行syslog機制中指令碼的Xen主機收集。當然,可以透過以下方式檢視:

less +F /var/log/messages

你在找關鍵字“Xen pocalypse”。

注意:Citrix為其伺服器的syslog設定了兩(2)天保留策略。你可能想在驗屍時記住這一點。

除錯

如設定檔案段中所述,有一個指令用於啟用除錯。啟用除錯將導致指令碼將詳細日誌記錄輸出到控制檯,並禁止它傳送電子郵件和實際執行匯出,除非還設定了相關標誌。可能的標誌在設定檔案模板中有註釋,它們使您能夠精確地定義要除錯的內容。

我希望你不需要任何除錯,你正在收穫我的勞動成果:)


衝啊,夥計,你就要成為霸天虎的頭號人物了…

  • 發表於 2021-04-12 01:55
  • 閱讀 ( 24 )
  • 分類:網際網路

你可能感興趣的文章

雲端計算(cloud computing)和虛擬化(virtualization)的區別

...礎設施資源最佳化的相關術語。虛擬化是雲端計算概念中使用的一種技術。虛擬化是根據需求使用相同的硬體基礎架構來構建多個虛擬伺服器。例如,假設您需要一個Windows伺服器和一個Linux伺服器用於不同的用途,您可以使用虛...

  • 發佈於 2020-10-25 17:01
  • 閲讀 ( 51 )

qubes os 3.2:最安全的linux作業系統

... 但與在虛擬機器中執行作業系統不同,Qubes使用虛擬化來隔離應用程式。例如,web瀏覽器與檔案瀏覽器處於不同的環境中。這樣,如果漏洞被利用並在系統上執行命令,攻擊就會被遏制。 ...

  • 發佈於 2021-03-14 14:08
  • 閲讀 ( 48 )

適用於windows的最佳備份軟體

...喜歡的應用程式,讓它們都能按你想要的方式工作,那又如何呢? ...

  • 發佈於 2021-03-16 12:06
  • 閲讀 ( 49 )

谷歌照片與onedrive:最好的備份工具是什麼?

... 許多人(尤其是安卓)使用谷歌照片作為他們的照片備份應用程式。但它真的是最好的備份工具嗎?OneDrive也值得認真考慮嗎? ...

  • 發佈於 2021-03-19 10:19
  • 閲讀 ( 55 )

macrium reflect:免費windows備份工具評論

... 與其他備份工具相比,macrium如何反映免費? ...

  • 發佈於 2021-03-20 16:53
  • 閲讀 ( 40 )

linux下如何使用rclone備份google驅動

googledrive仍然沒有正式的Linux客戶端,但是您可以直接從命令列使用rclone實用程式備份到googledrive。我們教你怎麼做。 linux上的google drive在哪裡? 儘管2012年承諾Linux支援“很快就會到來”,但沒有跡象表明Google會為GoogleDrive生產...

  • 發佈於 2021-04-02 18:51
  • 閲讀 ( 53 )

如何在windows中訪問ubuntu bash檔案(以及bash中的windows系統驅動器)

...分大小寫,所以你需要“下載”而不是“下載” 相關:如何在Linux的Windows子系統中安裝可移動驅動器和網路位置 您還可以裝載外部驅動器和網路位置,以便從Linux環境中訪問更多檔案。 請注意,在訪問Windows系統檔案時,bashshel...

  • 發佈於 2021-04-06 16:05
  • 閲讀 ( 49 )

如何在virtualbox中轉換固定磁碟和動態磁碟

VirtualBox允許您在建立新的虛擬硬碟檔案時選擇動態分配的磁碟或固定大小的磁碟。動態分配的磁碟建立速度更快,並且可以擴充套件到更大的大小。固定大小的磁碟使用起來可能更快,但一旦填滿磁碟就不能再大了。如果您願...

  • 發佈於 2021-04-07 14:48
  • 閲讀 ( 125 )

什麼是虛擬機器管理程式?

...器。你可能每天都用一個,甚至都不知道。如果你現在不使用,你會在不久的將來。 hypervisor是存在於客戶作業系統之外的軟體,用於攔截髮送到計算機硬體的命令。術語“hypervisor”來自作業系統核心的不同級別;它以比“superv...

  • 發佈於 2021-04-09 01:56
  • 閲讀 ( 65 )

你如何找到一個安裝在房子裡一個未知位置的路由器?

...Beale(Flickr)提供。 問題 超級使用者讀者西蒙斯想知道如何找到一個路由器,之前已經設定在一個“未知”的位置在房子裡: I want to install a WLAN repeater in my father’s holiday house that he rents out to other people. My father is not that well-vers...

  • 發佈於 2021-04-09 17:51
  • 閲讀 ( 53 )
h3d1axzao29c28
h3d1axzao29c28

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦