การย้อนกลับสแนปช็อต VM: อะไรถูกกู้คืนและอะไรไม่
สแนปช็อตของ VM กู้คืนสถานะดิสก์และหน่วยความจำของเกสต์ ไม่ใช่การกระทำของบัญชีระยะไกล สำเนาไฟล์ที่แชร์ หรือบันทึกที่เก็บไว้ที่อื่น กำหนดขอบเขตของการย้อนกลับก่อน
จุดตรวจสอบจะนำส่วนหนึ่งของเกสต์กลับไปและปล่อยให้ระบบอื่นทุกอยู่อย่างเดิม สิ่งที่ออกจากเกสต์ไป — ข้อความที่ถูกส่งแล้ว ไฟล์ที่ถูกคัดลอกไปยังโฮสต์ การกระทำบัญชีที่เว็บไซต์ยอมรับ — เป็นของระบบที่รับมันไว้ ไม่ใช่ของจุดตรวจสอบ การย้อนกลับมีขอบเขตภายในที่กำหนดไว้ และการเรียกมันว่าการลบทำให้แผนกู้คืนกลายเป็นข้อความเท็จ ตารางด้านล่างคือรายการตรวจสอบว่าการกู้คืนไปถึงอะไรจริง
เดสก์ท็อปกลับมา แต่เซสชันระยะไกลไม่กลับมา
ข้อร้องเรียนปกติมาในภายหลัง เครื่องเสมือนบูตในสถานะของสัปดาห์ที่แล้ว ประวัติเบราว์เซอร์หายไป และบริการที่ผู้ใช้ลงชื่อเข้าใช้ยังคงแสดงเซสชันว่าใช้งานอยู่ ไม่มีอะไรเสีย สองระบบไม่เคยอยู่ในธุรกรรมเดียวกัน
| Where the effect landed | Who owns undoing it | How you verify it is gone |
|---|---|---|
| Guest virtual disk | The hypervisor, through the checkpoint you restore | The disk state matches the checkpoint's timestamp |
| Guest memory | Only a checkpoint type that saved memory | The guest resumes or cold-boots, as that type dictates |
| Host share or clipboard | The owner of that host path | The copied file is absent at its destination |
| Remote account or session | The service that accepted the action | The session list shows nothing active for that account |
| Mail or message queue | The mail system that delivered it | The message is gone from the recipient's mailbox, not from the guest |
ความไม่สอดคล้องนั้นคือบทเรียน จุดตรวจสอบกู้คืนสิ่งที่ไฮเปอร์ไวเซอร์ติดตาม คือฮาร์ดแวร์เสมือนของเกสต์และหน่วยความจำของมันตามชนิดของสแนปช็อต มันไม่ได้ติดตามตารางเซสชันของเว็บแอปพลิเคชัน คิวการส่งของเซิร์ฟเวอร์อีเมล หรือโฟลเดอร์ดาวน์โหลดของเพื่อนร่วมงาน อ่านชนิดก่อนกู้คืน เพราะชนิดเป็นตัวกำหนดว่าการกู้คืนจะนำอะไรกลับมาได้บ้าง
สิ่งที่ไฮเปอร์ไวเซอร์บันทึกไว้จริง
เอกสาร Hyper-V ของ Microsoft แยกจุดตรวจสอบมาตรฐานซึ่งจับหน่วยความจำพร้อมกับดิสก์เสมือน ออกจากจุดตรวจสอบสำหรับงานผลิตซึ่งใช้กลไกที่สอดคล้องกับข้อมูลและข้ามหน่วยความจำ จุดตรวจสอบมาตรฐานกลับไปทำงานต่อจากคำสั่งที่เกสต์กำลังประมวลผล ส่วนจุดตรวจสอบสำหรับงานผลิตจะบูตจากดิสก์ที่สอดคล้องแทน ความต่างนี้กำหนดว่าการกู้คืนจะคืนโปรเซสที่กำลังทำงานหรือการเริ่มต้นที่สะอาด อย่าย้ายพฤติกรรมของไฮเปอร์ไวเซอร์ตัวหนึ่งไปยังอีกตัว เพราะคำศัพท์และกลไกความสอดคล้องต่างกันในแต่ละผลิตภัณฑ์
Microsoft ยังเตือนว่าจุดตรวจสอบไม่ใช่ข้อมูลสำรอง และคำเตือนนั้นสำคัญ กลุ่มจุดตรวจสอบบนไดรฟ์เดียวกันใช้ชะตากรรมร่วมกับไดรฟ์นั้น จึงป้องกันการเปลี่ยนแปลงที่ไม่ดี ไม่ใช่ป้องกันโฮสต์ที่สูญหาย
ไฟล์ที่อยู่นอกดิสก์ของเกสต์
โฟลเดอร์ที่แชร์คือระบบไฟล์ของโฮสต์ที่นำเสนอให้เกสต์ และการย้อนกลับเกสต์ไม่ได้ย้อนกลับโฟลเดอร์นั้น หากผู้ใช้ดาวน์โหลดไฟล์ภายในเกสต์และคัดลอกออกมาผ่านเส้นทางที่แชร์ สำเนาที่สองนั้นมีวงจรชีวิตของมันเองและมีเจ้าของของมันเอง การกู้คืนเกสต์จะลบสำเนาแรกและทิ้งสำเนาที่สองไว้ตรงที่ที่วางไว้
ถามว่าใครเป็นเจ้าของแต่ละเส้นทางก่อนสัญญาว่าจะย้อนกลับ การแชร์ของโฮสต์ การถ่ายโอนผ่านคลิปบอร์ด และการอัปโหลดไปยังดิสก์บนคลาวด์เป็นสามปลายทาง และมีเพียงอย่างแรกเท่านั้นที่อาจอยู่ข้างที่เก็บของไฮเปอร์ไวเซอร์
ที่ใดที่ต้องลบสำเนาจริง ๆ ให้ลบที่ปลายทางของมันและบันทึกขั้นตอนนั้นแยกไว้ แผนกู้คืนที่ระบุเพียงสแนปช็อตนั้นไม่สมบูรณ์ในแบบที่ไม่มีใครสังเกตจนกว่าจะพบสำเนา ความระมัดระวังเดียวกันใช้กับบันทึกที่โฮสต์เขียนขณะที่เกสต์ทำงาน
บัญชีที่ไฮเปอร์ไวเซอร์ไม่เคยเห็น
ทุกสิ่งที่บริการยอมรับจากเกสต์เป็นบันทึกของบริการ ไม่ใช่ของเกสต์ ไฮเปอร์ไวเซอร์ไม่เคยเห็นธุรกรรมนั้น จึงย้อนกลับไม่ได้ การเปลี่ยนรหัสผ่าน การซื้อ ข้อความที่เผยแพร่ และการเรียก API ล้วนคงอยู่ในระบบที่ประมวลผลมัน การกู้คืนอิมเมจดิสก์ไปไม่ถึงระบบนั้น
สถานะของเบราว์เซอร์ทำให้ความไม่สอดคล้องเป็นรูปธรรม เกสต์ที่กู้คืนอาจเก็บคุกกี้เก่าสำหรับบริการที่ได้เปลี่ยนเซสชันไปแล้ว ผู้ใช้จึงดูเหมือนลงชื่อเข้าใช้และถูกปฏิเสธอย่างเงียบ ๆ หรือดูเหมือนลงชื่อออกในขณะที่บริการยังถือว่าเซสชันใช้ได้ การเพิกถอนเซสชันที่บริการคือการดำเนินการเดียวที่ยุติมัน
สิ่งที่การกู้คืนย้อนกลับไม่ได้
จุดตรวจสอบมีประโยชน์สำหรับการทดสอบที่ได้รับอนุมัติหรือการทดลองตั้งค่าที่เข้าใจขอบเขตแล้ว มันคือการย้อนกลับภายในสำหรับสถานะภายใน เป็นคำสัญญาที่แคบกว่าที่ฟังดู และไม่ใช่หลักฐานว่าโฮสต์ ไฮเปอร์ไวเซอร์ หรือระบบภายนอกใด ๆ ยังคงสะอาด VPN เปลี่ยนเส้นทางที่แพ็กเก็ตใช้ แต่ไม่ได้ทำให้ซอฟต์แวร์ในเกสต์ปลอดภัยต่อการเรียกใช้ สองข้อกล่าวหานั้นแยกกัน และมีเพียงข้อเดียวที่เกี่ยวกับอุโมงค์
$cp = Get-VMSnapshot -VMName lab-desktop -Name baseline
Get-VMHardDiskDrive -VMSnapshot $cp | Select-Object ControllerType, ControllerNumber, ControllerLocation, Path
บรรทัดแรกแปลงจุดตรวจสอบเป็นออบเจกต์ และบรรทัดที่สองระบุดิสก์ที่มันครอบคลุม ซึ่งตอบคำถามเรื่องขอบเขตด้วยหลักฐานแทนความจำ หมุนและเพิกถอนความลับที่ถูกเปิดเผยที่บริการซึ่งเป็นเจ้าของ สถานที่ที่มีโค้ดอันตรายที่รู้จักเกี่ยวข้อง ให้ใช้สภาพแวดล้อมการสอบสวนที่ได้รับอนุญาตและกระบวนการตอบสนองขององค์กร แทนที่จะถือว่าสแนปช็อตทำให้การเรียกใช้ปลอดภัย
จดสามสิ่งก่อนการกู้คืน คือสถานะเกสต์ใดที่คุณนำกลับ ระบบภายนอกใดที่ยังถือผลลัพธ์อยู่ และจุดใดที่คุณจะเชื่อถือหลังจากนั้น แผนนั้นเป็นข้อกล่าวอ้างที่แข็งแรงกว่าเครื่องที่ดูคุ้นเคยอีกครั้ง เก็บไว้กับตั๋วเพื่อให้การกู้คืนครั้งต่อไปเริ่มจากรายการเดียวกัน