ด้วยภาพรวมซอฟต์แวร์การจำลองเสมือนของคุณต้องติดตามสี่สิ่ง: สถานะของ 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