วิธีคืนค่า 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 ไปที่คอนโซลและส่งออกจากการส่งอีเมลและดำเนินการนำเข้าจริงยกเว้นว่ามีการตั้งค่าสถานะที่เกี่ยวข้อง ธงที่เป็นไปได้จะถูกบันทึกไว้ในเทมเพลตไฟล์การตั้งค่าและช่วยให้คุณสามารถกำหนดสิ่งที่คุณต้องการดีบักอย่างละเอียด.
มันเป็นความหวังของฉันที่คุณไม่ต้องการแก้จุดบกพร่องและคุณกำลังเก็บเกี่ยวผลของแรงงานของฉัน :)
แค่คิดถึงความยากจนความเกลียดชังและการโกหกและลองนึกถึงการทำลายล้างทั้งหมดที่คุณดูถูก ต้นอินทผลัมจะเกิดขึ้นช้าๆจากเถ้าถ่าน ...