โฮมเพจ » ทำอย่างไร » วิธีคืนค่า Citrix-Xen VMs ฟรีด้วย Xen-Phoenix (Bash)

    วิธีคืนค่า Citrix-Xen VMs ฟรีด้วย Xen-Phoenix (Bash)

    คุณเคยต้องการกู้คืน Citrix-Xen VM ของคุณจำนวนมากเพื่อแก้ปัญหาการกู้คืนความเสียหาย (DR) หรือเพียงแค่ทดสอบว่าการสำรองข้อมูลของคุณใช้งานได้หรือไม่ HTG อธิบายวิธีใช้ Xen-Phoenix สคริปต์ทุบตีฟรีสำหรับการกู้คืน VM.

    เครดิตรูปภาพ: Ryan McCurdy ผ่าน Compfight cc

    เช่นเดียวกับที่เราได้กล่าวถึงใน“ วิธีการสำรองข้อมูล Citrix Xen VMs ฟรีกับ Xen-pocalypse” หนึ่งในสิ่งที่ดีใน Citrix Xen คือคุณสมบัติหลายอย่างของมันคือ ฟรี เสียค่าใช้จ่าย จากที่กล่าวมาหากคุณต้องการคุณสมบัติ“ การป้องกันและกู้คืนข้อมูลอัตโนมัติของ VM” คุณจะต้องเริ่มชำระเงินสำหรับใบอนุญาต“ Advance” อีกครั้งไม่ใช่ที่ HTG ของเรากำลังยกเลิกคุณค่าของโซลูชันการสำรองข้อมูลจริง แต่ถ้าคุณอยู่ในงบประมาณที่ จำกัด ได้รับอิมเมจ VM จากไฮเปอร์ไวเซอร์แล้วและต้องการวิธีในการทำให้ระบบอัตโนมัติของคุณ " ทดสอบขั้นตอนการคืนค่า” /” การรีเฟรช DR” คุณอาจพบว่า Xen-Phoenix เป็นโซลูชั่นที่เหมาะสมอย่างสมบูรณ์แบบก่อนที่คุณจะใช้งบประมาณ.

    ภาพรวม

    The“ use case”: คุณมี VM สองสามตัวที่ต้องการการกู้คืน การนำเข้าใน“ Xen Center” โดยใช้การคลิกขวานั้นใช้ได้ แต่คุณต้องการให้กระบวนการนี้เกิดขึ้นโดยอัตโนมัติและตามกำหนดเวลา สคริปต์ Bash นี้ใช้คำสั่ง“ XE” เพื่อทำหน้าที่ XE คืออินเตอร์เฟสบรรทัดคำสั่ง Xen (CLI) ซึ่งเทียบเท่ากับการออกคำสั่ง“ คลิกขวา” ใน“ Xen Center” โดยอัตโนมัติ เราจะเรียกสคริปต์จาก Cron ซึ่งจะให้ส่วน "การตั้งเวลา" ในรูปแบบที่ง่ายที่สุดโฟลว์การกู้คืนคือ:

    • ลบ * ทั้งหมด VMs ที่มีอยู่ก่อนหน้านี้บนเซิร์ฟเวอร์
    • นำเข้า VM จากไฟล์ในตำแหน่งสำรอง.
    • ตรวจสอบว่า VMs ทั้งหมดนั้นสามารถทำงานได้โดยการเปิดใช้งานพวกเขาทีละคนและมองหาการเต้นของหัวใจเครื่องมือแขก.
    • ปิด VMs เมื่อพบการเต้นของหัวใจหรือหมดเวลาใช้งานแล้ว.

    * การลบพฤติกรรม VM ทั้งหมดสามารถปิดการใช้งานได้อย่างสมบูรณ์และรองรับข้อยกเว้น (ดูด้านล่าง).

    ช่วยให้แคร็ก :)

    รับสคริปต์

    Xen-phoenix สามารถหาได้อย่างอิสระจาก gitub โดยใช้วิธี git ปกติ ด้วยที่กล่าวว่าหากคุณยังไม่เชี่ยวชาญในคอมไพล์คุณสามารถคว้าไฟล์ซิปด้วยลิงค์นี้ เนื่องจากสคริปต์ต้องการเรียกใช้บนเซิร์ฟเวอร์ Xen ของคุณคุณควรแตกไฟล์นั้นเพื่อให้สิทธิ์การดำเนินการนั้นถูกเก็บรักษาไว้.

    wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
    เปิดเครื่องรูดปริญญาโท

    แม้ว่าวิธีการข้างต้นจะได้ผลคุณควรใช้วิธี GIT เพื่อให้คุณได้รับประโยชน์จากการอัปเดตในอนาคต.

    สถานที่ส่งออก

    เราจำเป็นต้องกำหนดค่าว่าจะใช้การส่งออก VM จากที่ไหน.

    ในขณะที่สุ่มโผล่ใน Citrix Xen ฉันพบว่า Storage Repositories (SRs) พร้อมใช้งานภายใต้“ / var / run / sr-mount /% UUID%” โดยที่ UUID เป็นตัวระบุเฉพาะของ SR ซึ่งสามารถ ได้รับจาก GUI.

    ซึ่งหมายความว่าเราสามารถใช้ตัวช่วยสร้าง“ ถัดไป -> ถัดไป -> เสร็จสิ้น” ปกติเพื่อสร้าง“ การเชื่อมต่อ” ไปยังตำแหน่งการสำรองข้อมูลที่ต้องการจากนั้นให้สคริปต์ใช้เส้นทางนั้น (ตามที่กำหนดไว้เพื่อยุ่งกับการติดตั้งจากบรรทัดคำสั่ง เกินขอบเขตของคู่มือนี้).

    หากต้องการสร้าง“ mount” ใหม่ให้คลิกขวาที่ชื่อเซิร์ฟเวอร์และเลือก New SR.

    ในตัวอย่างนี้เราจะชี้ Xen ไปเป็น Windows share ดังนั้นเลือก“ Windows File Sharing (CIFS)”:

    ทำต่อไป -> ถัดไป -> เสร็จสิ้น.

    รับ UUID ของ SR

    ในการรับ UUID ของ SR เพียงคลิกที่ชื่อใน Xen Center แล้วไปที่แท็บ“ ทั่วไป”.

    ในการคัดลอก UUID เพียงคลิกขวาแล้วเลือก“ คัดลอก”.

    ด้วยข้อมูลนี้อยู่ในมือคุณพร้อมที่จะแก้ไขไฟล์การตั้งค่า.

    กำหนดค่าไฟล์การตั้งค่า

    โครงการ Xen-phoenix นั้นมาพร้อมกับเทมเพลตไฟล์“ settings” เทมเพลตนี้ควรได้รับการแก้ไขเพื่อแสดงการตั้งค่าของคุณและส่งผ่านเป็นอาร์กิวเมนต์แรกของสคริปต์.

    ไฟล์การตั้งค่ากำหนดสิ่งต่อไปนี้:

    • ตำแหน่งของการส่งออกแหล่งที่มา - หากคุณทำตามคำแนะนำจนถึงจุดนี้คุณจะต้องแทนที่% UUID% ด้วย SR ของตามที่ได้รับมาจากด้านบน.
    • ตำแหน่งของ SendEmail - หากคุณเลือกที่จะเปิดใช้งานอีเมลคุณจะต้องป้อนข้อมูลที่คุณได้สกัดไฟล์ปฏิบัติการ Perl ที่นี่.
    • Verifier - สิ่งนี้จะควบคุมขั้นตอนการยืนยันการโพสต์คืนค่า นี่เป็นการเปิดใช้งานตามค่าเริ่มต้นเนื่องจากไม่จำเป็นต้องใช้“ การกู้คืนระดับไฟล์” หมายความว่า VM ทำงานได้.
    • Server_prep - สิ่งนี้จะควบคุมการคืนค่าล่วงหน้า การลบ ของ VM ทั้งหมดบนเซิร์ฟเวอร์ DR สิ่งนี้ถูกเปิดใช้งานโดยค่าเริ่มต้นเนื่องจากถือว่าเซิร์ฟเวอร์ DR เป็นเซิร์ฟเวอร์เฉพาะสำหรับวัตถุประสงค์นี้ หากคุณต้องการ VM ที่ทำงานบนเซิร์ฟเวอร์นี้เพื่อไม่ให้ลบออกให้กำหนดค่าให้ยกเว้น หากพฤติกรรมนี้ไม่เหมาะกับสถานการณ์ของคุณเพียงปิดการใช้งานอย่างสมบูรณ์.
    • รายละเอียดอีเมล - อีกครั้งหากคุณเปิดใช้งานอีเมลคุณจะต้องกำหนดรายละเอียดเช่น: ถึง, จาก, ชื่อเซิร์ฟเวอร์ / IP & อื่น ๆ '.
    • แก้จุดบกพร่อง  - ค่าเริ่มต้นคือการปิดการดีบักด้วยค่า“ 0” (ศูนย์) คุณไม่จำเป็นต้องเปิดใช้ แต่ถ้าคุณทำข้อมูลเพิ่มเติมจะถูกบันทึกไว้ในส่วนการแก้ไขปัญหา.

    การกระทำ

    สคริปต์นี้ใช้ไฟล์การตั้งค่าเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์อื่น ๆ เป็น "เชฟรอน" เพื่อค้นหา (คั่นด้วยช่องว่าง) เชฟรอนเป็น "สตริง" ซึ่งรองรับการแสดงออกปกติซึ่งแสดงอย่างน้อยส่วนหนึ่งของชื่อไฟล์ที่ต้องการของการส่งออก VM.

    นั่นคือในรูปแบบที่ง่ายที่สุดคำร้องของ Xen-phoenix จะมีลักษณะดังนี้:

    ./Xen-phoenix.sh settings.cfg DevTools

    ในกรณีข้างต้นเราอยู่ในไดเรกทอรีที่เก็บสคริปต์ & ไฟล์การตั้งค่าและ "เชฟรอน" สคริปต์จะค้นหาคือ "DevTools" ซึ่งจะทำให้ไฟล์ทั้งหมดในไดเรกทอรีส่งออกมีสตริง“ DevTools” ในชื่อของพวกเขาที่จะนำเข้า.

    ตัวอย่างที่ซับซ้อนมากขึ้นสามารถมีลักษณะดังนี้:

    ./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools

    ในตัวอย่างด้านบนไฟล์ที่มีคำว่า "devtools" ที่สะกดด้วยตัวพิมพ์ใหญ่ "D" และ "T" หรือไฟล์ที่ไม่ใช่ตัวพิมพ์ใหญ่รวมถึง "AD" และ "BI" ที่มีหรือไม่มีตัวพิมพ์ใหญ่จะถูกนำเข้า.

    การกำหนด

    ดังที่กล่าวไว้ข้างต้นเราจะใช้ Cron เพื่อกำหนดการดำเนินการ ก่อนที่เราจะเข้าสู่การกำหนดค่ามันเป็น ขอแนะนำอย่างยิ่ง คุณกำหนดค่าแพ็คเกจ SSMTP ที่ติดตั้งไว้แล้วบนเซิร์ฟเวอร์ Xen ของคุณ ในขณะนี้เป็นขั้นตอนที่ไม่จำเป็นการทำเช่นนั้นจะให้ตัวสะสม“ ย้อนกลับ” การมี "ผู้สะสมย้อนกลับ" เช่นนี้อาจเตือนคุณถึงสิ่งที่สคริปต์ไม่สามารถทำได้.

    เข้าสู่โหมดแก้ไขของ 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 /”.

    รับ SendEmail (เป็นทางเลือก)

    เราเคยเขียนเกี่ยวกับโปรแกรม Perl Sendmail ในอดีตที่ผ่านมาดังนั้นจึงไม่จำเป็นต้องย้ำที่นี่ เพียงพอที่จะบอกว่ามันใช้งานได้เหมือนกันบน 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 จากการลบทั้งระบบโดยใช้ TAG ในการทำเช่นนี้คุณต้องกำหนด“ ฟิลด์ที่กำหนดเอง” ใหม่.

    ในการทำเช่นนี้ให้เปิดคุณสมบัติของเซิร์ฟเวอร์หรือแม้แต่ของ VM ในบานหน้าต่างนำทางเลือก“ ฟิลด์ที่กำหนดเอง”.

    หากนี่เป็นครั้งแรกที่คุณกำหนด "ฟิลด์ที่กำหนดเอง" (ดังตัวอย่างข้างต้น) คุณจะไม่มีฟิลด์“ Phoenix_keeper” เพื่อป้อนข้อมูลลงในดังนั้นคุณต้องสร้างมันขึ้นมา ในการทำเช่นนี้คลิกที่ "แก้ไขฟิลด์ที่กำหนดเอง" ในกล่องโต้ตอบที่ปรากฏขึ้นจากนั้นคลิกที่ "เพิ่ม ... "

    สร้างฟิลด์ประเภท "ข้อความ" ที่มีชื่อ“ Phoenix_keeper”.

    บันทึก: ชื่อของฟิลด์ที่กำหนดเองนั้นถูก "เข้ารหัสยาก" ในสคริปต์ดังนั้นคุณต้องไม่เบี่ยงเบนจากการสะกดข้างต้นเว้นแต่คุณจะเปลี่ยนรหัสที่เกี่ยวข้องเช่นกัน.

    เมื่อสร้างฟิลด์แล้วคุณจะเห็น:

    ปิดหน้าต่าง. ตอนนี้คุณควรจะมีช่อง“ Phoenix_keeper” ให้กรอกตามภาพด้านล่าง.

    ตอนนี้สิ่งที่คุณต้องทำคือเติมข้อมูลในฟิลด์นี้ด้วยคำพูด (คำพูดใด ๆ ที่จะทำ) ซึ่งจะทำให้ Xen-phoenix ข้ามเมื่อทำการลบ.

    การแก้ไขปัญหา

    ในขณะที่ฉันใช้ความพยายามอย่างมากในการทำให้สคริปต์ใช้งานง่ายและเข้าใจผิดได้มากที่สุด“ โลกเป็นห้องทดลองที่ใหญ่กว่า” ข้อมูลด้านล่างอาจช่วยให้คุณมั่นใจได้ว่าแหล่งที่มาของปัญหาของคุณคืออะไร.

    เข้าสู่ระบบ

    “ การบันทึก” ทั้งหมดจะถูกรวบรวมโดยโฮสต์ Xen ที่เรียกใช้สคริปต์ในกลไก syslog แน่นอนนี้สามารถดูได้ด้วย:

    น้อย + F / var / log / ข้อความ

    คุณกำลังมองหาคำสำคัญ“ Xen-Phoenix”.

    หมายเหตุ: Citrix ได้กำหนดนโยบายการเก็บรักษาสอง (2) วันสำหรับ syslog ของเซิร์ฟเวอร์ คุณอาจต้องการเก็บไว้ในใจสำหรับ postmortems.

    แก้จุดบกพร่อง

    ตามที่ระบุไว้ในส่วนของไฟล์การตั้งค่ามีคำสั่งให้เปิดใช้งานการดีบัก การเปิดใช้งานการดีบักจะทำให้สคริปต์ส่งออกการบันทึก verbose ไปที่คอนโซลและส่งออกจากการส่งอีเมลและดำเนินการนำเข้าจริงยกเว้นว่ามีการตั้งค่าสถานะที่เกี่ยวข้อง ธงที่เป็นไปได้จะถูกบันทึกไว้ในเทมเพลตไฟล์การตั้งค่าและช่วยให้คุณสามารถกำหนดสิ่งที่คุณต้องการดีบักอย่างละเอียด.

    มันเป็นความหวังของฉันที่คุณไม่ต้องการแก้จุดบกพร่องและคุณกำลังเก็บเกี่ยวผลของแรงงานของฉัน :)


    แค่คิดถึงความยากจนความเกลียดชังและการโกหกและลองนึกถึงการทำลายล้างทั้งหมดที่คุณดูถูก ต้นอินทผลัมจะเกิดขึ้นช้าๆจากเถ้าถ่าน ...