คุณคิดถูกต้องว่า.vdiไฟล์นั้นเป็นไฟล์อิมเมจดิสก์เสมือนและไฟล์เหล่านั้นถูกใช้โดยสแน็ปช็อต
เมื่อสร้างสแน็ปช็อต.vdiไฟล์ใหม่จะถูกสร้างขึ้นซึ่งมีการจัดเก็บส่วนต่างจากสแน็ปช็อต สิ่งนี้เรียกว่า "การจัดเก็บที่แตกต่าง"
ในทางเทคนิคสแนปชอตจะบันทึกสถานะ VM ทั้งหมดซึ่งรวมถึงไดรฟ์ที่แนบมาทั้งหมด แต่คนส่วนใหญ่ก็ใช้คำนี้เป็นคำพ้องความหมายสำหรับ "ภาพเดลต้า", "ภาพแตกต่าง" หรือ "ภาพรอง" เมื่อพูดถึงบทบาทของ VDI เดียว ในสแน็ปช็อตโซ่นอกเหนือจาก VDI พื้นฐาน แหล่ง
หลังจากถ่ายภาพสแนปชอตแล้ว VirtualBox จะสร้างฮาร์ดดิสก์ดิฟเฟอเรนเชียลสำหรับฮาร์ดไดรฟ์ปกติแต่ละตัวที่เชื่อมโยงกับเครื่องดังนั้นเมื่อสแนปชอตได้รับการกู้คืนเนื้อหาของฮาร์ดดิสก์เสมือนของเครื่องเสมือน ไฟล์ แหล่ง
คุณสามารถจินตนาการได้ว่าสิ่งนี้มีประโยชน์อย่างไรเมื่อคุณต้องการสร้าง "กิ่ง" หลายอันจากสแน็ปช็อตเดียว - VDI แต่ละสแน็ปช็อตจะมีเพียงความแตกต่างที่เพิ่มโดยสแนปชอตนั้นไม่ใช่สิ่งใดที่มีอยู่ในฐาน VDI ตัวอย่างเช่นพิจารณาดิสก์ฐาน (สแน็ปช็อต) ที่มีไฟล์ 50 GB และสแน็ปช็อตหลายลูกแต่ละไฟล์จะเพิ่มข้อมูลเฉพาะ 10 GB VDI ลูกแต่ละอันจะมีขนาดใหญ่เท่าที่จำเป็นในการจัดเก็บข้อมูล 10 GB ของพวกเขาแทนที่จะรวม 50 GB จากดิสก์ฐาน
หากคุณเปิด Virtual Media Manager ( File→ Virtual Media Managerบน Windows) คุณสามารถดูมุมมองแบบต้นไม้ของฮาร์ดไดรฟ์เสมือนของคุณได้ในแท็บ "ฮาร์ดไดรฟ์" ที่นี่คุณสามารถดูดิสก์และลูก ๆ ของพวกเขา คลิกที่ดิสก์จะแสดงข้อมูลของมัน
ตัวอย่างเช่นฉันมีดิสก์ที่มีข้อมูลแสดงอยู่:
Foo.vdi
ประเภท:
ตำแหน่งที่ตั้งปกติ
: C: \ VirtualBox VMs \ Foo \ Foo.vdi
รายละเอียดการจัดเก็บ: ที่เก็บข้อมูลที่จัดสรรแบบไดนามิก
แนบมากับ: Foo (บาร์)
ข้อมูลทายาทที่ไกลที่สุดของมันคือ:
{bbbbbbbbbbbb-bbbbbbbb-bbbbbbbbbbbb} .vdi
Type: ความแตกต่าง
ที่อยู่: C: \ VMs VirtualBox \ Foo \ Snapshots \ {bbbbbbbbbbbb-bbbbbbbb-bbbbbbbbbbbb} .vdi
รายละเอียดการเก็บรักษา: การจัดสรรแบบไดนามิกdifferencingการจัดเก็บข้อมูล
ที่แนบมาเพื่อ : ฟู
ในตัวอย่างนี้ "Foo" เป็นชื่อของ VM และ "Bar" เป็นชื่อของสแน็ปช็อตแรก "{bbbbbbbbbbbb-bbbbbbbb-bbbbbbbbbbbb}" เป็น UUID ของสุดท้ายดิสก์
.vboxไฟล์ของ VM มีเอกสาร XML ที่อธิบายถึง VM รวมถึงสแน็ปช็อตของมัน VirtualBoxโหนดมีMachineเด็กโหนดซึ่งสามารถมีSnapshotโหนด stateFileแอตทริบิวต์บนโหนดนี้ระบุ.savไฟล์ที่เกี่ยวข้องกับภาพรวมนี้ถ้าใด ๆ
.savไฟล์เป็นหลักการถ่ายโอนข้อมูลหน่วยความจำแม้ว่าข้อมูลการประมวลผลอื่น ๆ (เช่นการลงทะเบียน) อาจจะถูกเก็บไว้มากเกินไป ซอร์ส
แปลกเขาบอกว่า.savไฟล์ไม่มีส่วนเกี่ยวข้องกับสแนปชอตซึ่งไม่ถูกต้อง
.savไฟล์มีเสมอสมบูรณ์สถานะของผู้เข้าพักที่จุดหนึ่งในเวลา มันไม่ได้มีข้อมูลที่จัดเก็บไว้ในอุปกรณ์ภายนอกเช่นดิสก์เสมือน เมื่อสร้างสแน็ปช็อต.savไฟล์จะถูกสร้างขึ้นซึ่งมีสถานะ VM ซึ่งจำเป็นสำหรับการกู้คืนสถานะผู้เยี่ยมชมในเวลานั้นและสร้างดิสก์อิมเมจที่แตกต่างใหม่สำหรับแต่ละดิสก์เสมือน (ซึ่งไม่ได้แนบในโหมดพิเศษบางอย่างเพื่อป้องกัน) . จากนี้ไปคำขอการเขียนดิสก์ของแขกจะไปที่อิมเมจที่แตกต่างกัน เมื่อคุณกู้คืนสแน็ปช็อตอิมเมจที่แตกต่างจะถูกลบดังนั้นการเปลี่ยนแปลงทั้งหมดของดิสก์หลังจากที่สร้างสแนปชอตแล้วจะสูญหาย แหล่ง
หากต้องการตอบคำถามของคุณโดยตรง:
[... ] SAV ใช้สำหรับสถานะปัจจุบัน มันเป็นเรื่องจริงเหรอ?
เมื่อสถานะของเครื่องถูกบันทึกสถานะปัจจุบันณ เวลานั้นจะถูกบันทึกไว้ใน.savไฟล์
[... ] เราควรมีไฟล์ SAV เพียงไฟล์เดียว (เนื่องจากจะมีสถานะปัจจุบันเพียงสถานะเดียวสำหรับเครื่องเสมือน
แน่นอนว่ามีสถานะปัจจุบันเพียงสถานะเดียว แต่.savไฟล์ที่สร้างโดยสแน็ปช็อตมีสถานะก่อนหน้า
[... ] ฉันพบไฟล์ SAV (และ 2 VDI) 2 ไฟล์ เป็นเรื่องปกติหรือไม่ [... ]?
สแน็ปช็อตแสดงโดยแต่ละประเภทหรือไม่
นั่นเป็นเรื่องปกติ ฉันสมมติว่าเป็นไปได้ที่จะมีหลายสแนปชอตโดยไม่มี.savไฟล์หากสแน็ปช็อตถูกถ่ายในขณะที่ VM ไม่ได้ทำงานอยู่เนื่องจากไม่มีสถานะการดำเนินการ (ระเหย) ที่จะบันทึก หากเครื่องของคุณทำงานเมื่อคุณถ่ายภาพสแนปชอต.savไฟล์จะถูกสร้างขึ้น
แล้ว SAV กับ VDI นั้นแตกต่างกันอย่างไร?
.vdiไฟล์ดิสก์เสมือนที่มีการจัดเก็บข้อมูลแบบถาวร .savไฟล์ที่มีการถ่ายโอนข้อมูลของข้อมูลของรัฐระเหยซึ่งช่วยให้คุณสามารถดำเนินการต่อสถานะของเครื่องได้ ทั้งสองช่วยอำนวยความสะดวกในการกู้คืนสถานะ VM สมบูรณ์ซึ่งสร้างขึ้นผ่านสแน็ปช็อต
สามารถใช้ทั้งสองอย่างแยกกัน .savไฟล์จะถูกใช้เมื่อคุณปิด VM และบันทึกสถานะ .vdiไฟล์ยังสามารถใช้เป็นที่เก็บข้อมูลถาวรภายนอกขอบเขตของสแนปชอต