อิมเมจ QEMU QCOW2 (.qcow2)
QEMU มาตรฐานQEMU Copy-On-Write v2 (QCOW2) เป็นรูปแบบอิมเมจดิสก์ของ QEMU ซึ่ง QEMU และแพลตฟอร์มเวอร์ชวลไลเซชันบางตัวรองรับ มีฟีเจอร์อย่าง snapshot ไฟล์ backing และการบีบอัดที่เลือกใช้ได้
แปลง QCOW2 เป็น RAW
ตัวแปลงจาก QCOW2 เป็น RAW ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ QCOW2 โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ QCOW2 โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
51 46 49 FB 00 00 00 02 / 03การแสดงผลรูปแบบ ASCII: QFIû...
มาตรฐาน: QEMU QCOW2 Image Format Specification
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | ตารางจัดสรรคลัสเตอร์สองระดับ (ตาราง L1 และ L2) รองรับไฟล์ backing แบบ Copy-on-Write, สแนปช็อต และการเข้ารหัส |
| การบีบอัด | การบีบอัดระดับคลัสเตอร์ด้วย Zlib Deflate หรือ Zstandard (Zstd) |
| การจัดลำดับไบต์ | ส่วนหัวและออฟเซ็ตคลัสเตอร์แบบ Big-Endian |
| พื้นที่สี | ไม่เกี่ยวข้อง (ดิสก์เครื่องเสมือน) |
| ช่องสัญญาณและโครงสร้าง | พาร์ทิชันฮาร์ดไดรฟ์ ระบบไฟล์ และสแนปช็อต ณ จุดเวลาใดเวลาหนึ่งของเครื่องเสมือน |
| ขนาดสูงสุด | สูงสุด 2 Petabytes (รองรับแอดเดรสคลัสเตอร์ 64 บิต) |
| ความโปร่งใส | ไม่มี |
| การสตรีมและแบบโปรเกรสซีฟ | การแมปบล็อกแบบสุ่มที่รวดเร็วด้วย Copy-on-Write |
ตารางเปรียบเทียบทางเทคนิค: QCOW2 กับคู่แข่ง
| คุณลักษณะทางเทคนิค | QCOW2 (ปัจจุบัน) | RAW | VHD | VMDK |
|---|---|---|---|---|
| ระบบนิเวศการจำลองเสมือน | KVM / QEMU / Proxmox / OpenStack | ทางกายภาพโดยตรง / KVM | Microsoft Hyper-V / Azure | VMware ESXi / Workstation |
| การจัดสรรแบบบาง (Thin Provisioning) | การจัดสรรตามความต้องการของคลัสเตอร์แบบเนทีฟ | ไม่มี (จัดสรรเต็มจำนวน) | การจัดสรร VHD แบบไดนามิก | การจัดสรร VMDK แบบบาง |
| ไฟล์สำรอง (CoW) | รองรับโดยตรงเป็นความสามารถหลัก | ไม่มี | ดิสก์ที่เก็บเฉพาะส่วนต่าง | โคลนที่เชื่อมโยงกัน (Linked clones) |
| การบีบอัดภายใน | zlib และ Zstandard (Zstd) แบบเนทีฟ | ไม่มี | ไม่มี | สตรีมที่ปรับให้เหมาะสมกับการบีบอัด |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาดของ QEMU: 'qemu-system-x86_64: qcow2: Image is corrupt: cannot find refcount block' (อิมเมจเสียหาย: ไม่พบบล็อกตัวนับการอ้างอิง)
สาเหตุหลัก: การปิดโฮสต์ที่ไม่สะอาดทำให้การนับการอ้างอิงการจัดสรรคลัสเตอร์ถูกขัดจังหวะ
การกู้คืน: ซ่อมแซมการจัดสรรคลัสเตอร์โดยใช้คำสั่ง 'qemu-img check -r all broken.qcow2' หรือ File2File.app
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวแยกวิเคราะห์ QCOW2 ประเมินตารางออฟเซตคลัสเตอร์ซึ่งการอ้างอิงที่ผิดรูปแบบอาจทำให้หน่วยความจำโฮสต์ในไฮเปอร์ไวเซอร์เสียหายได้
เวกเตอร์การโจมตีที่ทราบ
- การเจาะทะลุไฮเปอร์ไวเซอร์ผ่านการเขียนคลัสเตอร์นอกขอบเขตในไดรฟ์บล็อก QEMU ที่มีความเสี่ยง
- ช่องโหว่การเข้าถึงพาธ (Path traversal) ในการอ้างอิงพาธไฟล์สำรอง
- การปฏิเสธการให้บริการผ่านห่วงโซ่อ้างอิงไฟล์สำรองที่เป็นวงกลม
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: จำกัดเส้นทางไฟล์สำรองและรันเครื่องเสมือนด้วยเนมสเปซผู้ใช้ที่ไม่มีสิทธิ์
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- การจัดสรรพื้นที่ตามการใช้งานจริง: ใช้พื้นที่ดิสก์เฉพาะคลัสเตอร์ที่มีการเขียนข้อมูลแล้วเท่านั้น
- ไฟล์ backing แบบ Copy-on-Write (CoW) ช่วยให้เครื่องเสมือนหลายเครื่องใช้ภาพฐานร่วมกันและจัดเก็บการเปลี่ยนแปลงแยกกัน การประหยัดพื้นที่ขึ้นอยู่กับเวิร์กโหลดและการตั้งค่า
- สแนปชอตภายใน: บันทึกสถานะเครื่องเสมือน ณ จุดเวลาใดเวลาหนึ่งโดยไม่ต้องหยุดอินสแตนซ์เสมือนที่กำลังทำงานอยู่
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- มีภาระงาน I/O สูงกว่าอุปกรณ์บล็อกดิบเล็กน้อยเนื่องจากการค้นหาตารางคลัสเตอร์แบบสองระดับ
- อาจเกิดการกระจายตัวของข้อมูลเมตา (fragmentation) หลังจากการเขียนแบบสุ่มหนักหน่วงเป็นเวลานาน
- ต้องใช้ qemu-img หรือเครื่องมือจำลองเสมือนเพื่อตรวจสอบหรือจัดการนอกระบบ Linux
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ลายเซ็นไฟล์ 4 ไบต์แรกคือ 0x51 0x46 0x49 0xFB ซึ่งแปลเป็น ASCII ว่า 'QFI' ตามด้วยไบต์ 0xFB (ย่อมาจาก 'QEMU File Image')
- QCOW2 ถูกสร้างขึ้นโดย Fabrice Bellard โปรแกรมเมอร์ชาวฝรั่งเศสผู้เป็นตำนาน ซึ่งเป็นผู้สร้าง FFmpeg, QEMU และ QuickJS ด้วย
- QCOW2 รองรับโดย QEMU และใช้กับแพลตฟอร์มอย่าง Proxmox VE และ OpenStack ได้ แต่รูปแบบจัดเก็บขึ้นอยู่กับการกำหนดค่า
คำถามทางเทคนิคที่พบบ่อย
ไฟล์ QCOW2 คืออะไร
ไฟล์ QCOW2 คืออิมเมจฮาร์ดไดรฟ์เสมือนที่ใช้โดยซอฟต์แวร์เสมือนจริงของ Linux เช่น QEMU และ KVM โดยมีความสามารถในการจัดสรรพื้นที่แบบ Thin Provisioning และสแนปชอตทันที
ฉันจะแปลง QCOW2 เป็น RAW หรือ VMDK ได้อย่างไร
คุณสามารถแปลงอิมเมจดิสก์ QCOW2 เป็นรูปแบบ RAW, VMDK หรือ VHD ได้โดยใช้ File2File.app หรือคำสั่ง 'qemu-img convert'
Copy-on-Write หมายถึงอะไร
Copy-on-Write หมายความว่าดิสก์จะบันทึกเฉพาะการเปลี่ยนแปลงที่เกิดขึ้นกับระบบเท่านั้น โดยอิมเมจฐานเดิมจะไม่ถูกแตะต้อง ช่วยให้ VM หลายร้อยรายการสามารถใช้เทมเพลตฐานเดียวกันร่วมกันได้
คู่การแปลงไฟล์ QCOW2 ที่เกี่ยวข้อง
การแปลงไฟล์ดิสก์เสมือน QEMU QCOW2 เป็นดิสก์อิมเมจ Raw จะลบชั้นห่อหุ้มแบบคัดลอกเมื่อเขียนออกเพื่อให้สามารถเข้าถึงดิสก์ระดับบล็อกแบบไม่บีบอัดได้
การแปลงอิมเมจดิสก์ Raw แบบไฟล์แบนเป็น QEMU QCOW2 ช่วยลดขนาดไฟล์สำรองข้อมูลลงอย่างมาก โดยเปิดใช้งานการเติบโตแบบไดนามิกและการบีบอัดข้อมูลอัจฉริยะ