รูปแบบภาพใดที่ดีกว่า raw หรือ qcow2 เพื่อใช้เป็นพื้นฐานสำหรับ VMs อื่น ๆ


25

ฉันใช้ baseimage และสร้าง VMs ขึ้นมามากมาย และตอนนี้ฉันอยากรู้ว่าอันไหนดีกว่า qcow2 หรือ raw เพื่อใช้เป็นฐาน ยิ่งไปกว่านั้นคุณช่วยบอกฉันได้ไหมว่ามีข้อได้เปรียบในการใช้งานฐานภาพนี้หรือไม่แทนที่จะลอกทั้งแผ่น ความเร็วอาจเป็นปัจจัยหนึ่ง แต่ในแง่ของประสิทธิภาพจะมีปัญหาในการใช้ baseimage หรือไม่แล้วสร้าง VMs โดยใช้ baseimage นั้น

แก้ไข 1:

ฉันทำการทดลองและได้รับ ป้อนคำอธิบายรูปภาพที่นี่ป้อนคำอธิบายรูปภาพที่นี่ป้อนคำอธิบายรูปภาพที่นี่

สิ่งแรกคือเมื่อทั้ง baseimage และ overlay เป็น qcow2 ที่สองเมื่อ baseimage ดิบ แต่การซ้อนทับคือ qcow2 และในกรณีที่สามฉันจะให้อิมเมจดิสก์ดิบแต่ละตัวแก่แต่ละ VM น่าแปลกที่กรณีสุดท้ายมีประสิทธิภาพมากกว่าเมื่อเทียบกับอีกสองคดี

การตั้งค่าการทดลอง: 
ระบบปฏิบัติการใน baseimage: Ubuntu Server 14.04 64 bit
โฮสต์ระบบปฏิบัติการ: Ubuntu 12.04 64 บิต
RAM: 8GB
หน่วยประมวลผล: Intel® Core ™ i5-4440 CPU @ 3.10GHz × 4 
ดิสก์: 500 GB 

บนแกน x: จำนวนของ VM ที่บูทพร้อมกัน เริ่มต้นจาก 1 และเพิ่มขึ้นไม่เกิน 15

บนแกน y: เวลาทั้งหมดในการบูตจำนวนเครื่อง "x"

จากกราฟดูเหมือนว่าการให้อิมเมจดิสก์แบบเต็มไปยัง VM นั้นมีประสิทธิภาพมากกว่าวิธีอื่น 2 วิธี

แก้ไข 2: ป้อนคำอธิบายรูปภาพที่นี่

นี่เป็นกรณีเมื่อเราให้ภาพอิมเมจดิบแก่ VM แต่ละรายการ หลังจากทำการล้างแคชนี่คือกราฟ มันเกือบจะคล้ายกับ raw baseimage + qcow overlay

ขอบคุณ


1
ฉันจะใช้ภาพฐานดิบและวางซ้อน QED แทน qcow2 QED เร็วกว่า qcow2 และมีโอกาสน้อยที่จะเกิดความเสียหายจากการออกแบบ
แมตต์

@ แมทโปรดแสดงความคิดเห็นกับคำถามที่แก้ไขแล้ว
AB

ความแตกต่างด้านประสิทธิภาพนั้นน่าสนใจ คุณลองกับ qed ได้ไหม? อาจเป็นปัญหาการช่วงชิง / ล็อกในการใช้ qcow2 ฉันเชื่อว่ามันมีปัญหาบางอย่างซึ่งเป็นสาเหตุที่พวกเขาคิดค้น qed
Matt

1
@Matt ฉันตรวจสอบด้วยการซ้อนทับดิบ baseimage-qed และการซ้อนทับดิบ baseimage-qcow2 แต่ qed ช้ากว่า qcow2 มากในการตั้งค่านี้
AB

คำตอบ:


18

สำหรับกรณีการใช้งานเฉพาะของคุณ (ภาพพื้นฐาน + การซ้อนทับ qcow2) ควรเลือกรูปแบบ RAW:

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

ตัวเลือกระหว่างอิมเมจพื้นฐาน + การซ้อนทับ qcow2 เทียบกับการทำสำเนาหลายชุดขึ้นอยู่กับความสำคัญของคุณ:

  1. เพื่อประสิทธิภาพที่สมบูรณ์ให้ใช้อิมเมจ RAW ที่ลดขนาดลง นี่เป็นข้อเสียของการไม่สนับสนุนสแนปชอตโดยในสภาพแวดล้อมส่วนใหญ่เป็นราคาที่สูงเกินไปที่จะจ่าย
  2. เพื่อความยืดหยุ่นและประหยัดพื้นที่ใช้ภาพพื้นฐาน RAW + ภาพซ้อนทับ Qcow2

อย่างไรก็ตามฉันพบว่าไฟล์ Qcow2 ค่อนข้างบอบบาง

สำหรับไฮเปอร์ไวเซอร์ KVM ของการผลิตของฉันโดยทั่วไปฉันใช้การตั้งค่าที่แตกต่างกันสองแบบ:

  1. โดยที่ประสิทธิภาพคือ # 1 ฉันใช้ไดรฟ์ข้อมูล LVM ที่ต่อกับเครื่องเสมือนโดยตรงและฉันใช้ความสามารถของสแนปชอต LVM ในการสำรองข้อมูลที่สอดคล้องกัน
  2. ที่ฉันสามารถเสียสละประสิทธิภาพบางอย่างเพื่อความยืดหยุ่นที่เพิ่มขึ้นฉันใช้ LVV Thin Provisioned Volume + XFS + RAW ภาพเดี่ยวขนาดใหญ่

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

การอ้างอิงบางส่วน:
ความช้าของ KVM I / O ใน
ประสิทธิภาพการจัดเก็บRHEL 6 KVM และการตั้งค่า Qcow2 ล่วงหน้าบน RHEL 6.1 และ Fedora 16
KVM ประสิทธิภาพการจัดเก็บข้อมูลและการตั้งค่าแคชบน Red Hat Enterprise Linux 6.2
LVM อธิบายปริมาณน้อย


ตามที่ระบุไว้ข้างต้น: รูปภาพ RAW แต่ละภาพจะเร็วขึ้นเนื่องจากไม่มีเลเยอร์ทางอ้อม โปรดจำไว้ว่าคุณกำลังถ่ายภาพสแนปชอต (ที่ระดับภาพ) และประสิทธิภาพของพื้นที่ นอกจากนี้ฉันยังรู้สึกว่าผลลัพธ์ที่สามของคุณเบ้โดยโฮสต์แคช เพื่อให้แน่ใจว่าทำซ้ำการทดสอบทั้งหมดของคุณที่ออก "ซิงค์; echo 3> / proc / sys / vm / drop_caches" ระหว่างการทดสอบแต่ละครั้ง
shodanshok

ที่จริงฉันก็คิดเหมือนกัน แต่ฉันก็คิดว่าในกรณีของการใช้งานจริงก็จะเป็นไปตามกระแสเดียวกัน
AB

ไม่ได้จริงๆ: ในสภาพแวดล้อมการทดสอบนี้คุณเพียงแค่บูตเครื่องเสมือนโดยไม่ต้องใช้ ในกรณีจริงหลังจากการบูทเครื่องเสมือนจริงจะถูกใช้งานสร้างมลพิษให้กับแคช โดยทั่วไปจะดีที่สุดในการเปรียบเทียบกับกรณีการใช้งานที่เหมาะสม
shodanshok

คุณมีความคิดว่าทำไมแคชไม่ได้มีบทบาทมากมายในกราฟ 1 และกราฟ 2 เช่น Qcow2 base-image + Qcow2 overlay และ Raw base-image + Qcow2 overlay
AB

6

โปรดได้รับคำแนะนำ .... ถ้าคุณใช้งาน linux คุณสามารถใช้งานrawและรับผลประโยชน์qcow2เท่ากันทุกขนาด

... หากระบบไฟล์ของคุณรองรับรู (ตัวอย่างเช่นใน ext2 หรือ ext3 บน Linux หรือ NTFS บน Windows) ดังนั้นเฉพาะภาคที่เขียนจะสำรองพื้นที่

https://docs.fedoraproject.org/en-US/Fedora/18/html/Virtualization_Administration_Guide/sect-Virtualization-Tips_and_tricks-Using_qemu_img.html

raw รูปแบบอิมเมจดิสก์ดิบ (ค่าเริ่มต้น) นี่อาจเป็นรูปแบบไฟล์ที่เร็วที่สุด หากระบบไฟล์ของคุณรองรับรู (ตัวอย่างเช่นใน ext2 หรือ ext3 บน Linux หรือ NTFS บน Windows) ดังนั้นเฉพาะภาคที่เขียนจะสำรองพื้นที่ ใช้ข้อมูล qemu-img เพื่อรับขนาดจริงที่ใช้โดยอิมเมจหรือ ls -ls บน Unix / Linux


จุดดี! แต่ดูเหมือนว่าในการสำรอง / คัดลอก / การบีบอัดขนาดทั้งหมดของไฟล์ภาพดิบจะถูกใช้ ไฟล์ raw 20GB เท่านั้นที่จัดสรร 4MB บนดิสก์ถูกซิปไปที่ 20MB
MrCalvin

นี่เป็นเรื่องใหม่สำหรับฉันอย่างสมบูรณ์ ฉันมี VM ใน Proxmox VE พร้อมดิสก์เสมือน 30 GB ... และฉันเห็นได้ว่าดิสก์มีขนาดในระบบไฟล์โฮสต์ แต่ระบบไฟล์โฮสต์มีการใช้งานเกินกว่าที่กำหนดทั้งหมด 10 GB ตอนนี้นั่นคือเหตุผลที่ฉันกำลังมองหา
cljk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.