ทำไม VM snapshots ถึงส่งผลกระทบต่อประสิทธิภาพ?


27

ฉันอ่านหนึ่งในบทความ VMware KB ที่สแนปชอตจะส่งผลโดยตรงต่อประสิทธิภาพของ VM

แต่ทีมของฉันถามฉันว่าสแน็ปช็อตมีผลต่อประสิทธิภาพการทำงานอย่างไร

ฉันต้องการให้เหตุผลที่ชัดเจนแก่พวกเขาหลังแถลงการณ์ว่าสแนปชอตเป็นนักฆ่าประสิทธิภาพ

ทุกคนสามารถอธิบายทฤษฎีเล็กน้อยเกี่ยวกับสแน็ปช็อตที่ส่งผลต่อประสิทธิภาพได้อย่างไร เป็นเพราะอัตรา Disk I / O ของฮาร์ดดิสก์จะช้าหรือไม่


2
ไม่แน่ใจว่านี่เป็นบทความ KB ที่คุณอ่านหรือไม่ ฉันคิดว่าฉันจะเพิ่มเป็นข้อมูลอ้างอิง
Aaron Copley

คำตอบ:


28

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


2
คำอธิบายที่ดีที่สุด คุณไม่เพียง แต่เพิ่ม IOPS สองเท่าเท่านั้น แต่ยังมีโอเวอร์เฮดของ CPU ในการคำนวณความแตกต่างระดับบล็อก
Aaron Copley

3
หลังจากอ่านบทความนี้เชื่อมโยงโดย Aaron Copley ( kb.vmware.com/selfservice/microsites/ ...... ) ดูเหมือนว่าจะแย่กว่านั้น Snapshot ไม่ใช่ภาพที่แตกต่างเป็นบันทึกการเปลี่ยนแปลงดังนั้นหากคุณเขียนข้อมูลเดียวกันในสถานที่เดียวกัน 10 ครั้งสแนปชอตจะเพิ่มขนาดเป็น 10 คูณขนาดของข้อมูลที่คุณเขียน รูปภาพที่ต่างกันควรมีประสิทธิภาพมากกว่าเนื่องจากควรเขียนทับข้อมูลที่เขียนใหม่ในตำแหน่งเดียวกัน
สูงสุด

1
@zespri ปัญหาส่งผลกระทบต่อแพลตฟอร์มการจำลองเสมือนทั้งหมดโดยใช้เทคโนโลยีสแน็ปช็อตชนิดนี้รวมถึง Hyper-V
Ansgar Wiechers

1
นี่เป็นสิ่งที่ผิดธรรมดา ดูความคิดเห็นของ @Falcon Momot สำหรับคำตอบที่ถูกต้อง แม้แต่บทความที่เชื่อมโยงเพียงแค่ระบุดิสก์ "สามารถเรียกใช้พื้นที่" ซึ่งเป็นที่ชัดเจนเมื่อพื้นที่ที่เหลือก่อนที่จะถ่ายภาพที่มีขนาดเล็กกว่าดิสก์ snapshotted และ deltadisk ไม่มีพื้นที่เพียงพอที่จะขยาย
Daniel

2
@AnsgarWiechers คำตอบนี้ผิดแน่นอน บทความที่เชื่อมโยง ( kb.vmware.com/s/article/1015180 ) สถานะ "ดิสก์ลูกซึ่งสร้างด้วยสแน็ปช็อตคือดิสก์แบบกระจาย·ดิสก์แบบกระจายจะใช้กลไกการทำสำเนาเมื่อเขียน (COW) ซึ่งดิสก์เสมือนไม่มีข้อมูลอยู่ในสถานที่จนกว่าจะมีการคัดลอกโดยการเขียน" ติดตามโดย; "หากเครื่องเสมือนขาดสแนปชอตมันจะทำการเปลี่ยนแปลงกับดิสก์ลูกหรือดิสก์กระจายการดำเนินการเขียนที่ทำกับดิสก์นี้ยิ่งมีขนาดใหญ่ขึ้นก็จะเพิ่มขึ้นจนถึงขีด จำกัด สูงสุดของขนาดของดิสก์ฐานบวกกับ ค่าโสหุ้ยเล็กน้อย "
Steve365

5

เมื่อคุณสร้างสแน็ปช็อตบน VM สิ่งนี้จะสร้างเดลต้าดิสก์และระบบปฏิบัติการจะเขียนไปยังไฟล์นี้แทนที่จะเป็น VMDK ดั้งเดิม ไฟล์นี้เรียกว่า VM_Name-Delta.VMDK แต่หากระบบจำเป็นต้องอ้างถึงไฟล์ก่อนสแน็ปช็อตมันจะอ้างถึง VM_Name.VMDK เพิ่ม I / O ของการดำเนินการนี้ หากคุณใช้สแนปชอตหลายรายการคุณกำลังอ้างถึงไฟล์เดลต้าล่าสุดของสแน็ปช็อตสุดท้ายไม่ใช่ VMDK ดั้งเดิมซึ่งจะเป็นการเพิ่ม I / O

ตัวอย่าง.

OS ---> Snapshot (สร้างไฟล์ A) ---> (สร้างไฟล์ Snapshot B)

ถ้าฉันต้องการอ้างถึงไฟล์ A มันจะทำการค้นหาผ่าน 3 VMDK เพื่อค้นหาสิ่งนี้

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

ไฟล์จะถูกสร้างขึ้นซึ่งจะแสดงรายการไฟล์ทั้งหมดที่สร้างขึ้นในเวลาที่กระบวนการสแน็ปช็อต


2

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

ปัญหาประสิทธิภาพอีกประการหนึ่งของเรื่องนี้คือการอ่านจะต้องเรียงซ้อนกับสำเนาต้นฉบับหากสำเนาทำงานยังไม่มีข้อมูล (เพราะไม่มีการเปลี่ยนแปลงใด ๆ ที่จะทำให้เกิดสำเนา)

หากคุณต้องการสแน็ปช็อตเป็นการสำรอง แต่ไม่สามารถทนต่อประสิทธิภาพที่ลดลงได้ให้ลองพิจารณาการโคลน VM แทน


-2

จากค่าHigh co-stop (% CSTP) ที่เห็นระหว่างกิจกรรมสแนปชอตของเครื่องเสมือน :

เนื่องจากขนาดและจำนวนของสแน็ปช็อตบนเครื่องเสมือนเพิ่มขึ้นดังนั้นจำนวนของคำสั่งหน่วยเก็บที่ดำเนินการภายใน vmkernel สำหรับคำสั่งหน่วยเก็บข้อมูลแต่ละคำสั่งที่ออกโดยระบบเสมือนแขก guest OS การดำเนินการคำสั่งหน่วยเก็บข้อมูลหลายครั้งอาจจำเป็นต้องสำรวจโซ่สแน็ปช็อตทั้งหมดเพื่ออ่านบล็อกข้อมูลที่เหมาะสมที่สุด

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