ภาพรวมเครื่องเสมือนทำงานอย่างไร


16

หลังจากใช้ซอฟต์แวร์อิมเมจไดรฟ์มานานกว่าทศวรรษฉันพบว่าการใช้เครื่องเสมือนสามารถถ่ายภาพและเรียกคืนได้ภายในไม่กี่วินาทีในขณะที่ไดรฟ์ภาพมักใช้เวลาหลายชั่วโมง

ฉันสามารถสแน็ปช็อต VM ติดตั้งไปยังระบบปฏิบัติการอื่นจากนั้นทำการกู้คืนและอย่างใดอย่างน่าอัศจรรย์ภายในไม่กี่วินาที VM เก่าของฉันสำรองข้อมูลอย่างสมบูรณ์ในสภาพที่เคยเป็นมา

สิ่งนี้จะเกิดขึ้นได้อย่างไร? โฮสต์ VM ทำอะไรกับ VM ที่ทำให้เป็นไปได้จริง ๆ

คำตอบ:


16

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

มีสองการกระทำที่คุณสามารถทำได้ด้วยภาพสแนปชอตใหม่นี้:

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

ขั้นตอนทั้งหมดที่อธิบายไว้ข้างต้นสามารถใช้งานได้หลายสแนปชอต ในกรณีนั้นภาพต้นฉบับอาจเป็นหนึ่งสแนปชอตและสแนปชอตถัดไปอาจอ้างอิงบล็อกบนสแนปชอต (ครั้งแรก) นั้น วิธีนี้คุณสามารถมีภาพรวมมากมายที่คุณสามารถละทิ้งหรือผสานได้อย่างง่ายดาย


1
ทิ้งสแนปชอตเช่นเดียวกับขั้นตอนการลบภาพใด ๆ อาจช้ามากหากคุณเปิดใช้งานการล้างข้อมูลหลังจากลบ เป็นคุณลักษณะด้านความปลอดภัยในการล้างพื้นที่ที่ใช้โดยอิมเมจหรือสแน็ปช็อตที่สะอาดก่อนที่จะถูกปล่อยให้ใช้โดย VM อื่น ๆ มิฉะนั้นหากใช้การอ่านบล็อกระดับต่ำก็สามารถอ่านข้อมูลที่ VM ใช้ก่อนหน้านี้ได้ และโซลูชันเวอร์ช่วลไลเซชั่นใด ๆ ที่ไม่มีคุณสมบัตินี้มีข้อบกพร่องด้านความปลอดภัยขนาดใหญ่อยู่ในนั้น
dyasny

ฉันพยายามอธิบายสถานการณ์ของการสร้างสแน็ปช็อตหลาย ๆ ตัวและวิธีการเก็บรักษาสแน็ปช็อตแต่ละรายการไว้อย่างไร ดูคำอธิบายสั้น ๆ เกี่ยวกับการทำงานของสแนปชอตของ VMware: cubicrace.com/2012/02/…
Piyush Chordia

5

ด้วยภาพรวมซอฟต์แวร์การจำลองเสมือนของคุณต้องติดตามสี่สิ่ง: สถานะของ CPU, RAM, การกำหนดค่า (จำนวนการ์ดเครือข่ายใน VM?) และดิสก์ ฉันไม่สนใจสามสิ่งแรกเพราะพวกเขาไม่ใช่ข้อมูลจำนวนมากซอฟต์แวร์สามารถทำสำเนาโครงสร้างข้อมูลที่ค่อนข้างเล็กและเก็บไว้ในไฟล์ ดังนั้นจะเหลือเพียงภาพรวมของดิสก์ที่จะอธิบาย

ก่อนอื่นสิ่งที่ VM เห็นว่าเป็นฮาร์ดดิสก์นั้นเป็นเพียงชุดของไฟล์ในระบบไฟล์โฮสต์ การทำเช่นภาพ, ซอฟแวร์เครื่องเสมือนใช้เวลาดิสก์ VM ของที่จุดหนึ่งในเวลาที่จะเก็บรักษามันเปิดแฟ้มดิสก์ใหม่ที่ว่างเปล่าและไม่ได้สำเนาเมื่อเขียนโครงการที่มีการเข้าถึงดิสก์ทุกที่ตามมา

สมมติว่าไฟล์ดิสก์ของคุณคือ BigVM.disk คุณสแนปชอตและตอนนี้ซอฟต์แวร์ VM ของคุณเปลี่ยนชื่อดิสก์เป็น BigVM-s1.disk จากนั้นสร้าง BigVM.disk ที่ว่างเปล่าใหม่ เมื่อ VM ของคุณกำลังทำงานคำขอการอ่านทั้งหมดจะดำเนินการผ่าน BigVM.disk หากไฟล์นั้นไม่มีรายการสำหรับส่วนของดิสก์ที่ VM ของคุณต้องการข้อมูลจาก BigVM-s1.disk จะถูกส่งคืน ในการเขียนข้อมูลจะถูกเขียนไปยัง BigVM.disk แทน BigVM-s1.disk อนาคตที่อ่านไปยังเซกเตอร์เดียวกันนั้นจะส่งคืนข้อมูลจาก BigVM.disk แทนสแนปชอตดั้งเดิมที่มีอยู่ใน BigVM-s1.disk BigVM-s1.disk มีสถานะฮาร์ดดิสก์ของ VM ของคุณในขณะที่สแน็ปช็อตในขณะที่ BigVM.disk มี diffs ทั้งหมดไปยังดิสก์ของคุณตั้งแต่สแน็ปช็อตนั้น

จะเกิดอะไรขึ้นเมื่อคุณเปลี่ยนกลับเป็นภาพรวมที่เก่ากว่า ซอฟต์แวร์ VM ทิ้งเนื้อหาของ BigVM.disk และเริ่มต้นใหม่ด้วย BigVM.disk ที่ว่างเปล่าใหม่ซึ่งยังคงชี้ไปที่ BigVM-s1.disk


2

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


1

อย่างน้อยที่สุดใน VMware snapshots สิ่งที่เกิดขึ้นคือ snapshot นั้นเป็นสัญญาณไปยัง VMX เพื่อเริ่มจุดตรวจสอบใหม่สำหรับการเขียนดิสก์และสถานะเครื่อง ขึ้นอยู่กับว่า VM ของคุณปิดหรือเปิดอยู่การกู้คืนสแน็ปช็อตสามารถทำได้เพียงแค่ทำให้ทุกอย่างที่เกิดขึ้นในอดีตผ่านจุดตรวจนั้น มิฉะนั้นดิสก์เซกเตอร์ของ VM ของคุณทั้งหมดจะกลายเป็นคัดลอกเมื่อเขียนซึ่งหมายความว่าเมื่อคุณทำการกู้คืนสแน็ปช็อตร้อนเพียงแค่ต้องเขียนเซกเตอร์ที่มีการเปลี่ยนแปลงอีกครั้งตั้งแต่คุณถ่ายสแน็ปช็อต นั่นเป็นเหตุผลที่มันเร็วกว่า


-1

การทำงานกับสแน็ปช็อต VMware และการอธิบายภายในนั้นดีที่สุด @ http://www.pcclm.com/2012/02/virtual-machine-snapshots-in-vmware.html


3
ยินดีต้อนรับสู่ ServerFault! แม้ว่าการเชื่อมโยงไปยังเอกสารอ้างอิงภายนอกได้รับการสนับสนุนเราคาดหวังว่าคำตอบแต่ละข้อจะสมบูรณ์แม้ว่าลิงก์ของคุณจะเสียในอนาคต คุณอาจต้องการแก้ไขคำตอบนี้และเพิ่มรายละเอียดเพิ่มเติม
Skyhawk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.