- อุปกรณ์ RAW ช่วยให้ VM สามารถเข้าถึงดิสก์ทางกายภาพ พาร์ติชั่น วอลุ่ม LVM หรือ LUN ได้โดยตรง ลดขั้นตอนตัวกลาง และเพิ่มประสิทธิภาพการทำงาน
- ไฮเปอร์ไวเซอร์ เช่น VMware, Proxmox และ VirtualBox มีวิธีการทำงานกับไฟล์ RAW ที่แตกต่างกัน ได้แก่ RDM, การนำเข้าอิมเมจ และการแมปอุปกรณ์โดยตรง
- การใช้ RAW เป็นสิ่งสำคัญในสภาพแวดล้อมคลัสเตอร์, Oracle RAC, การตรวจสอบทางนิติวิทยาศาสตร์ และการย้ายระบบที่ซับซ้อน แต่จำเป็นต้องมีการจัดการอย่างระมัดระวังและการสำรองข้อมูลที่ดี
เมื่อทำงานกับระบบเวอร์ชวลไลเซชันขั้นสูง จะมีจุดหนึ่งที่อิมเมจดิสก์เสมือนทั่วไป (VDI, VMDK, QCOW2 ฯลฯ) ไม่เพียงพอ นั่นคือจุดที่อุปกรณ์ RAW ที่เชื่อมโยงโดยตรงกับเครื่องเสมือน เข้ามามีบทบาท เหมาะอย่างยิ่งสำหรับการเพิ่ม ประสิทธิภาพการจัดเก็บข้อมูลหรือการนำดิสก์และพาร์ติชั่นที่มีอยู่มาใช้ซ้ำโดยไม่ต้องคัดลอกไปยังรูปแบบอื่น
การกำหนดค่าประเภทนี้มีการใช้งานอย่างแพร่หลายในสภาพแวดล้อมต่างๆ เช่นVirtualBox, VMware และ Proxmox , คลัสเตอร์ Oracle RAC และห้องปฏิบัติการด้านนิติวิทยาศาสตร์แม้ว่าในตอนแรกอาจดูน่ากลัวเล็กน้อย แต่ถ้าคุณเข้าใจสิ่งที่คุณกำลังทำ คุณจะได้รับประโยชน์มากมายจากมัน ตลอดบทความนี้ เราจะมาดูรายละเอียดเกี่ยวกับวิธีการใช้อุปกรณ์ RAW ในเครื่องเสมือนบนไฮเปอร์ไวเซอร์ต่างๆ และสถานการณ์จริงข้อดีที่อุปกรณ์เหล่านี้มี และข้อควรระวังที่คุณควรปฏิบัติตามเพื่อหลีกเลี่ยงความเสียหายของข้อมูล
อุปกรณ์ RAW คืออะไร และเหตุใดจึงใช้ในเครื่องเสมือน
อุปกรณ์ RAW โดยพื้นฐานแล้วคือจุดเข้าถึงโดยตรงและต่อเนื่องไปยังดิสก์ทางกายภาพ พาร์ติชั่นเฉพาะ วอลุ่ม LVM หรือ LUN ที่นำเสนอจากอาร์เรย์ SAN นี่ไม่ใช่ไฟล์ดิสก์เสมือน แต่เป็นตัวอุปกรณ์เองที่ระบบปฏิบัติการโฮสต์มองเห็น
เมื่อทำงานกับดิสก์เสมือนมาตรฐาน ไฮเปอร์ไวเซอร์จะจัดเก็บข้อมูลในไฟล์ .vdi, .vmdk, .qcow2, .raw เป็นต้นภายในระบบไฟล์ (VMFS, ext4, XFS, ZFS เป็นต้น) อย่างไรก็ตาม สำหรับอุปกรณ์ RAW เครื่องเสมือนจะเข้าถึงบล็อกจัดเก็บข้อมูลพื้นฐานโดยตรง ไม่ว่าจะเป็นพาร์ติชันภายในเครื่อง วอลุ่ม LVM LUN iSCSI/Fibre Channel หรือไดรฟ์ดิสก์ทั้งหมดก็ตาม
แนวทางนี้มีข้อดีหลายประการ ได้แก่ลดค่าใช้จ่าย ในการดำเนินงาน เข้าถึง ฮาร์ดแวร์ ได้เกือบเหมือนของเดิม และสามารถนำดิสก์ที่มีอยู่แล้วมาใช้ซ้ำได้โดยไม่ต้องแปลงข้อมูล ในสภาพแวดล้อมแบบคลัสเตอร์ ยังช่วยให้เครื่องเสมือนหลายเครื่องสามารถเข้าถึง LUN เดียวกันและจัดการการเข้าถึงร่วมกันจากระบบปฏิบัติการของเครื่องเสมือนหรือซอฟต์แวร์คลัสเตอร์ได้อีกด้วย
อย่างไรก็ตาม การใช้ไดรฟ์ RAW ไม่ใช่เรื่องมหัศจรรย์: มันเกี่ยวข้องกับการสละสิทธิ์ (ขึ้นอยู่กับโหมด) คุณสมบัติบางอย่างของเลเยอร์เวอร์ชวลไลเซชันเช่นสแนปช็อต บางอย่าง หรือการโคลนที่ง่าย และต้องใช้ความระมัดระวังมากขึ้นเพื่อหลีกเลี่ยงการเขียนทับดิสก์ผิดตัว นั่นเป็นเหตุผลว่าทำไมการทำความเข้าใจอย่างถ่องแท้ว่าไฮเปอร์ไวเซอร์แต่ละตัวจัดการกับการแมปประเภทนี้อย่างไรจึงมีความสำคัญมาก
การใช้งานอุปกรณ์ RAW ใน VirtualBox

โดยค่าเริ่มต้น VirtualBox จะสร้างเครื่องเสมือนในไฟล์ดิสก์ เช่น .vdi หรือ .vmdk สำหรับคำแนะนำเกี่ยวกับวิธีการจัดการเรื่องนี้ โปรดดูที่ คำสั่งและตัวอย่างของ VirtualBoxอย่างไรก็ตาม มันยังอนุญาตให้คุณใช้ดิสก์แบบดิบได้ เช่น ดิสก์ทั้งหมด พาร์ติชันเฉพาะ หรือวอลุ่ม LVM ซึ่งมีประโยชน์มากหากคุณต้องการให้เครื่องเสมือนทำงานบนดิสก์ที่กำหนดค่าไว้ล่วงหน้า หรือหากคุณต้องการประสิทธิภาพสูงสุดโดยไม่ต้องผ่านเลเยอร์ไฟล์
แนวคิดนี้เรียบง่าย: แทนที่จะสร้างดิสก์เสมือนใหม่คุณบอก VirtualBox ให้ "ห่อหุ้ม" อุปกรณ์จริงและนำเสนอให้กับเครื่องเสมือนราวกับว่าเป็นดิสก์อีกตัวหนึ่ง การห่อหุ้มนี้ทำได้โดยใช้ไฟล์คำอธิบายขนาดเล็กที่ชี้ไปยังอุปกรณ์ RAW จริง (ตัวอย่างเช่น /dev/sdb หรือ /dev/mapper/vgdatos-lvvm1)
วิธีการนี้ยังมีประโยชน์ในกรณีที่คุณมีระบบปฏิบัติการที่ติดตั้งไว้ล่วงหน้าบนดิสก์จริงหรือ LVM และต้องการบูตระบบนั้นภายในVM ของ VirtualBox โดยคงโครงสร้างเดิมไว้หรือเมื่อคุณต้องการใช้พาร์ติชันเฉพาะสำหรับการทดสอบโดยไม่ส่งผลกระทบต่อส่วนที่เหลือของดิสก์
นอกจากนี้ VirtualBox ยังช่วยให้คุณทำงานกับไฟล์ RAW ได้อีกวิธีหนึ่ง คือ การใช้ เครื่องมือ VBoxManageเพื่อแปลงอิมเมจจากไฮเปอร์ไวเซอร์อื่นๆ ไปเป็นไฟล์ RAW ซึ่งมักพบเห็นได้บ่อยในสถานการณ์การวิเคราะห์ทางนิติวิทยาศาสตร์ ที่การมีไฟล์ดัมพ์ประเภท dd ที่มีไบต์ทั้งหมดของดิสก์ต้นฉบับนั้นมีความสำคัญ
แปลงดิสก์ VMDK เป็นรูปแบบ RAW ด้วย VBoxManage
สถานการณ์ที่พบได้บ่อยมากคือการได้รับเครื่องเสมือน VMware ในรูปแบบ VMDK และต้องการวิเคราะห์ดิสก์นั้นด้วยเครื่องมือทางนิติวิทยาศาสตร์ เช่นFTK, Autopsy หรือเครื่องมือที่คล้ายกันในกรณีเหล่านี้ โดยปกติแล้ววิธีที่ดีที่สุดคือการแปลงอิมเมจเป็นไฟล์ RAW ธรรมดา (เช่น dd) แทนที่จะทำงานโดยตรงกับไฟล์ VMDK
VirtualBox มี คำสั่ง `VBoxManage clonehd`ซึ่งช่วยให้คุณสามารถโคลนและฟอร์แมตดิสก์ใหม่ได้ คำสั่งทั่วไปในการแปลงจาก VMDK เป็น RAW จะมีลักษณะดังนี้:
VBoxManage clonehd source_file.vmdk destination_file.dd –format raw
ขอแนะนำให้ใช้พาธแบบสัมบูรณ์เพื่อหลีกเลี่ยงปัญหา โดยเฉพาะอย่างยิ่งหากคุณกำลังทำงานกับดิสก์และไดเร็กทอรีหลายแห่ง ในระหว่างการแปลงVBoxManage จะสแกนบล็อกทั้งหมดของ VMDKและคัดลอกไปยังไฟล์ RAW ใหม่โดยถูกต้อง หาก VMDK เป็นแบบไดนามิก โปรดจำไว้ว่าภาพ RAW ที่ได้อาจใช้พื้นที่บนระบบไฟล์ปลายทางมากกว่าเดิมอย่างมาก
สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าคุณมีพื้นที่ว่างเพียงพอในไดรฟ์ที่จะใช้บันทึกไฟล์ RAW มิฉะนั้นคุณอาจพบข้อผิดพลาดระหว่างการแปลง เมื่อกระบวนการเสร็จสมบูรณ์ คุณจะได้ไฟล์ในรูปแบบ dd มาตรฐาน ซึ่งคุณสามารถนำไปใช้งานในโปรแกรมวิเคราะห์ต่างๆ หรือแม้แต่แมปจากไฮเปอร์ไวเซอร์อื่นๆ ได้อย่างง่ายดาย
การแมปอุปกรณ์ดิบ (Raw Device Mapping หรือ RDM) ใน VMware vSphere/ESXi
ในระบบนิเวศของ VMware วิธีดั้งเดิมในการให้เครื่องเสมือนเข้าถึง LUN ทางกายภาพโดยตรงคือการใช้Raw Device Mapping (RDM)เทคนิคนี้ใช้เป็นหลักเมื่อทำงานกับอุปกรณ์จัดเก็บข้อมูล iSCSI หรือ Fibre Channel และคุณต้องการให้เครื่องเสมือนมองเห็นวอลุ่มราวกับว่ามันเชื่อมต่อโดยตรงกับระบบ
แทนที่จะสร้างดิสก์เสมือนภายในดาต้าสโตร์ VMFS นั้น RDM จะสร้างไฟล์แมปปิ้งพิเศษบนวอลุ่ม VMFSซึ่งทำหน้าที่เป็นลิงก์สัญลักษณ์ไปยัง LUN ทางกายภาพ จากมุมมองของ VM ไฟล์นี้จะปรากฏเป็นดิสก์อีกตัวหนึ่ง แต่ในความเป็นจริง การเข้าถึงจะถูกเปลี่ยนเส้นทางไปยังอุปกรณ์จัดเก็บข้อมูลแบบดิบ (raw storage device)
วิธีการนี้ช่วยให้คุณคงข้อดีบางประการของ VMFS ไว้ได้ (เช่น การจัดการแบบรวมศูนย์และการควบคุมสิทธิ์บางส่วน) ในขณะที่การอ่าน/เขียนข้อมูลลงดิสก์จะดำเนินการโดยตรงกับ LUNวิธีนี้มีประโยชน์อย่างยิ่งในสภาพแวดล้อมแบบคลัสเตอร์ที่เครื่องเสมือนหลายเครื่องใช้พื้นที่จัดเก็บข้อมูลร่วมกันและต้องการให้ระบบของเครื่องเสมือนจัดการการล็อก หรือสำหรับแอปพลิเคชันที่ต้องการการควบคุม SCSI ที่ละเอียดมาก
เมื่อคุณกำหนดค่า RDM นั้น VMware จะให้คุณเลือกได้ระหว่างสองโหมด ได้แก่โหมดความเข้ากันได้เสมือน (Virtual Compatibility Mode) และโหมดความเข้ากันได้ทางกายภาพ (Physical Compatibility Mode ) การเลือกของคุณจะกำหนดว่าคุณยังสามารถใช้คุณสมบัติใดของ VMware ได้บ้าง และ VM จะสามารถเข้าถึงอุปกรณ์จัดเก็บข้อมูลได้ในระดับใด
โหมดความเข้ากันได้: เสมือนจริงเทียบกับทางกายภาพ
โหมดความเข้ากันได้เสมือน (Virtual compatibility mode)ทำให้RDM ทำงานจากมุมมองของ VMware เกือบเหมือนไฟล์ดิสก์เสมือนทั่วไป ซึ่งหมายความว่าคุณยังคงสามารถใช้คุณสมบัติต่างๆ เช่นสแนปช็อต VMได้ แม้ว่าพื้นที่จัดเก็บข้อมูลพื้นฐานจะเป็น LUN แบบดิบก็ตาม นี่เป็นทางเลือกที่ดีเมื่อคุณต้องการความเรียบง่ายและคุณสมบัติการจัดการบางอย่าง แต่ไม่ต้องการเข้าถึง SCSI ระดับต่ำ
ในทางกลับกัน โหมดความเข้ากัน ได้ทางกายภาพ (Physical compatibility mode ) ช่วยให้เครื่องเสมือน (VM) สามารถเข้าถึงอุปกรณ์ SCSI ได้โดยตรง ตัวเลือกนี้เหมาะสมสำหรับ แอปพลิเคชันที่ต้องการคำสั่ง SCSI ขั้นสูงหรือการจัดการมัลติพาธด้วยตนเอง และสำหรับสถานการณ์คลัสเตอร์บางอย่างที่ระบบปฏิบัติการของเครื่องเสมือนจัดการการควบคุมระดับเสียงทั้งหมด
อย่างไรก็ตาม ในโหมดความเข้ากันได้ทางกายภาพ คุณจะสูญเสียความมหัศจรรย์บางอย่างของการจำลองเสมือนไป: การดำเนินการสร้างสแนปช็อตและการโคลนบางประเภทอาจไม่สามารถใช้งานได้หรืออาจทำงานไม่เหมือนเดิม เนื่องจาก VMware แทรกแซงระหว่าง VM กับดิสก์ให้น้อยที่สุดเท่าที่จะเป็นไปได้
ขั้นตอนทั่วไปในการสร้าง RDM ใน VMware
ขั้นตอน การสร้าง RDM ในไคลเอ็นต์ vSphereโดยทั่วไปจะคล้ายกับดังต่อไปนี้ ขั้นแรก บนเครื่องเสมือนเครื่องใดเครื่องหนึ่งที่จะใช้ LUN แบบดิบ:
1. เลือก VM แล้วป้อน “แก้ไขการตั้งค่า” จากเมนูบริบท
2. แทป เพิ่ม > ฮาร์ดดิสก์ เพื่อเพิ่มดิสก์ใหม่
3. เลือกตัวเลือก แผนที่ SAN LUN หรือเทียบเท่า
4. เลือก LUN ทางกายภาพที่คุณต้องการแมปจากหน้าจอแสดงผล
5. ระบุว่าคุณต้องการบันทึกไฟล์การแมปปิ้งไว้ในดาต้าสโตร์ VMFS ใด
6. เลือก ทางกายภาพหรือเสมือนจริง ในโหมดความเข้ากันได้ ดังที่ได้กล่าวไว้ก่อนหน้านี้
7. จะมีการสร้างคอนโทรลเลอร์ SCSI ใหม่สำหรับดิสก์ RDM โดยเลือกตัวเลือกหนึ่ง โหนดอุปกรณ์เสมือนใหม่ (ตัวอย่างเช่น SCSI 3:0) ซึ่งแตกต่างจากพอร์ตของดิสก์หลักของ VM
ในเครื่องเสมือนอื่นๆ ที่จะใช้ LUN ร่วมกันนั้น ขั้นตอนจะคล้ายกัน แต่มีข้อแตกต่างที่สำคัญอย่างหนึ่งคือแทนที่จะสร้าง RDM ใหม่จะใช้ RDM ที่มีอยู่แล้วในดาต้าสโตร์แทน
ในเครื่องเสมือนเพิ่มเติมเหล่านี้:
1. เปิดอีกครั้ง แก้ไขการตั้งค่า ในเครื่องเสมือน (VM)
2. แทป เพิ่ม > ฮาร์ดดิสก์.
3. เลือกตัวเลือก ใช้ดิสก์ที่มีอยู่แล้ว เพื่อนำไฟล์ RDM ที่สร้างไว้แล้วมาใช้ซ้ำ
4. เลือกไฟล์แมปปิ้งเดียวกันกับในขั้นตอนแรก
5. กำหนดค่าคอนโทรลเลอร์ SCSI และโหนดอุปกรณ์ใหม่ให้เหมือนกับใน VM เครื่องแรก โดยคำนึงถึงคำแนะนำของ VMware สำหรับคลัสเตอร์ด้วย
ด้วยวิธีนี้ เครื่องเสมือนหลายเครื่องสามารถเข้าถึง LUN เดียวกันในรูปแบบดิบได้โดยปล่อยให้ระบบปฏิบัติการของเครื่องเสมือนหรือซอฟต์แวร์คลัสเตอร์เป็นตัวควบคุมการทำงานพร้อมกันและการเข้าถึงพร้อมกัน
อิมเมจดิสก์ Proxmox VE และ RAW สำหรับเครื่องเสมือน
Proxmox VE เป็นแพลตฟอร์มเวอร์ชวลไลเซชันแบบโอเพนซอร์สที่ครอบคลุม ซึ่งช่วยให้คุณจัดการทั้งเครื่องเสมือน KVM และคอนเทนเนอร์ LXC ได้ ข้อดีที่สำคัญอย่างหนึ่งคือความยืดหยุ่นในการจัดการดิสก์ดิบไม่ว่าจะเป็นการสร้างดิสก์ใหม่ตั้งแต่เริ่มต้น หรือการนำเข้าจากสภาพแวดล้อมอื่น ๆ และเชื่อมโยงกับเครื่องเสมือนที่มีอยู่แล้ว
ในบริบทนี้ ดิสก์ RAW คือไฟล์ที่ประกอบด้วยสำเนาไบต์ต่อไบต์ของดิสก์หรือพาร์ติชั่นจริงมันไม่มีการบีบอัดหรือคุณสมบัติเพิ่มเติมใดๆ มันเพียงแค่บรรจุไบต์ทั้งหมดของอุปกรณ์ตามลำดับ ด้วยเหตุนี้ มันจึงเป็นรูปแบบที่เข้ากันได้ดีและสะดวกสำหรับการย้ายเครื่องเสมือนระหว่างไฮเปอร์ไวเซอร์หรือการกู้คืนข้อมูลสำรองโดยมีการเปลี่ยนแปลงน้อยที่สุด
ใน Proxmox คุณสามารถสร้างอิมเมจ RAW ของตนเองได้ด้วยเครื่องมือต่างๆ เช่นvmdebootstrapและยังสามารถนำเข้าไฟล์ RAW ที่สร้างไว้ล่วงหน้า (เช่น ไฟล์ dd dump, ไฟล์ที่แปลงมาจาก VBoxManage หรือไฟล์ที่ได้จากไฮเปอร์ไวเซอร์อื่นๆ) และทำการเมานต์เป็นดิสก์ในเครื่องเสมือนได้อีกด้วย
สร้างอิมเมจดิสก์แบบ RAW ด้วย vmdebootstrap
วิธีที่ใช้งานได้จริงมากในการเตรียมอิมเมจ RAW สำหรับ Proxmox คือการใช้ ยูทิลิตี้ vmdebootstrapซึ่งจะสร้างระบบพื้นฐานภายในไฟล์อิมเมจโดยอัตโนมัติ เครื่องมือนี้จัดการการแบ่งพาร์ติชั่น การฟอร์แมตการติดตั้งระบบ การกำหนดค่า GRUB และการเพิ่มแพ็กเกจพื้นฐานบางอย่าง
ตัวอย่างคำสั่งทั่วไปในการสร้างภาพ RAW โดยไม่ต้องตั้งค่าอะไรมาก อาจมีตัวเลือกต่างๆ เช่น:
vmdebootstrap –verbose –size 10GiB –serial-console –grub –no-extlinux –package openssh-server –package avahi-daemon –package qemu-guest-agent –hostname vm600 –enable-dhcp –customize=./copy_pub_ssh.sh –sparse –image vm600.raw
ในคำสั่งประเภทนี้ คุณจะกำหนดพารามิเตอร์ต่างๆ เช่นขนาดดิสก์ แพ็กเกจที่จะติดตั้ง ชื่อโฮสต์ VM หรือการเปิดใช้งานคอนโซลแบบอนุกรมเมื่อเสร็จสิ้น คุณจะได้ไฟล์ vm600.raw ที่มี ระบบ Linux ที่ใช้งานได้อย่างสมบูรณ์ พร้อมที่จะนำเข้าสู่ Proxmox เป็นดิสก์ VM
สร้างเครื่องเสมือนและเชื่อมโยงดิสก์ RAW ใน Proxmox
ขั้นตอนต่อไปคือการสร้างเครื่องเสมือนเปล่าใน Proxmox แล้วนำเข้าไฟล์ RAW ไปยังพื้นที่จัดเก็บข้อมูลที่กำหนดค่าไว้ ในการสร้างเครื่องเสมือน คุณสามารถใช้ คำสั่ง `qm create`โดยกำหนดรหัสเครื่องเสมือน อินเทอร์เฟซเครือข่าย และประเภทตัวควบคุมดิสก์
qm create 600 –net0 virtio,bridge=vmbr0 –name vm600 –serial0 socket –bootdisk scsi0 –scsihw virtio-scsi-pci –ostype l26
ตัวอย่างเช่น ในที่นี้เรากำหนดให้ VM มี ID 600 ใช้ VirtIO สำหรับเครือข่ายโดยใช้บริดจ์ vmbr0 บูตจาก scsi0 โดยใช้คอนโทรลเลอร์ virtio-scsi-pciและระบบปฏิบัติการเป็น Linux รุ่นใหม่ (l26)
ขั้นตอนต่อไป เราจะนำเข้าภาพ RAW ลงในพื้นที่จัดเก็บข้อมูลของ Proxmox โดยใช้คำสั่ง qm importdisk :
qm importdisk 600 vm600.raw pvedir
ในคำสั่งนี้ 600 คือ ID ของ VM, vm600.raw คือพาธไปยังไฟล์อิมเมจ และ pvedir คือชื่อพื้นที่จัดเก็บข้อมูลที่กำหนดไว้ใน Proxmox (คุณสามารถตรวจสอบได้ด้วยคำสั่ง pvesm status) เมื่อการนำเข้าเสร็จสมบูรณ์ คุณจะเห็นดิสก์แสดงเป็น unused0 หรือคล้ายกันในการตั้งค่า VM
เพื่อให้ VM สามารถใช้งานดิสก์นั้นได้จริง จำเป็นต้องเชื่อมต่อดิสก์นั้นกับคอนโทรลเลอร์เช่น SCSI:
qm set 600 –scsi0 pvedir:600/vm-600-disk-1.raw
ดังนั้น ดิสก์ RAW ที่นำเข้าจึงเชื่อมโยงกับอุปกรณ์ scsi0 ของ VM จากนั้นก็เริ่มเครื่องด้วยคำสั่ง`qm start 600`และทำการตั้งค่าให้เสร็จสมบูรณ์จากคอนโซล เหมือนกับที่คุณทำกับ VM อื่นๆ ทั่วไป
อัปโหลดและนำเข้าภาพ RAW ขนาดใหญ่ไปยัง Proxmox
เมื่อทำงานกับไฟล์ RAW ขนาดใหญ่ การอัปโหลดไฟล์เหล่านั้นไปยัง Proxmox ผ่านทางเว็บอินเทอร์เฟซอาจทำได้ไม่สะดวกหรือเป็นไปไม่ได้ ในกรณีเช่นนี้ แนะนำให้ใช้scp, rsync หรือเครื่องมือที่คล้ายกันเพื่อคัดลอกอิมเมจไปยังโหนด Proxmox หรือพื้นที่จัดเก็บข้อมูลที่ใช้ร่วมกันก่อนที่จะเรียกใช้คำสั่ง `qm importdisk`
เมื่อไฟล์อยู่บนโฮสต์แล้ว ขั้นตอนจะคล้ายกับที่อธิบายไว้ข้างต้น คือสร้างหรือเลือก VM นำเข้าดิสก์ RAW ไปยังพื้นที่จัดเก็บข้อมูล และเชื่อมโยงเป็นอุปกรณ์ (scsi0, sata0 เป็นต้น) โดยกำหนดประเภทคอนโทรลเลอร์ที่เหมาะสมตามระบบปฏิบัติการของเครื่องเสมือน
วิธีการเดียวกันนี้ใช้ได้กับการย้าย VM จากแพลตฟอร์มอื่น ๆ ด้วยเช่นกัน กล่าวคือ คุณต้องแปลงดิสก์เป็น RAW (หากยังไม่ได้ทำ) คัดลอกไปยังโหนด Proxmox นำเข้าด้วยคำสั่ง qm importdisk และสุดท้ายปรับการตั้งค่า VM ( ไดรเวอร์ เครือข่าย ตัวควบคุม ลำดับการบูต ฯลฯ) จนกว่าจะใช้งานได้อย่างถูกต้อง
การสำรองข้อมูล VM ด้วยดิสก์ RAW ใน Proxmox
เมื่อทำงานกับอิมเมจดิสก์ RAW ใน Proxmox คุณไม่ควรลืมเรื่องการสำรองข้อมูลและการกู้คืนระบบนอกเหนือจากการสำรองข้อมูลในตัวของ Proxmox แล้ว ยังมีโซลูชันจากผู้ให้บริการภายนอก เช่น Vinchin Backup & Recovery ที่ผสานรวมเข้ากับไฮเปอร์ไวเซอร์และช่วยให้สามารถจัดการการสำรองข้อมูลขั้นสูงได้
Vinchin นำเสนอโซลูชันการสำรองข้อมูลที่ออกแบบมาโดยเฉพาะสำหรับสภาพแวดล้อมเสมือนจริง รวมถึงProxmox VEโดยรองรับการสำรองข้อมูลแบบเต็มและแบบเพิ่มทีละส่วนของเครื่องเสมือน ตลอดจนการกู้คืนแบบละเอียดหรือแบบเต็ม ซึ่งมีประโยชน์อย่างยิ่งเมื่อทำงานกับเครื่องเสมือนที่บูตจากอิมเมจ RAW ที่นำเข้า, LVM หรือ ZFSเนื่องจากเครื่องมือนี้จะจัดการกระบวนการทั้งหมดโดยที่คุณไม่ต้องจัดการกับรูปแบบต่างๆ เหล่านั้น
ขั้นตอนการทำงานโดยทั่วไปนั้นง่ายมาก: คุณเลือก VM ที่ต้องการปกป้อง กำหนดปลายทางสำหรับการสำรองข้อมูลเลือกนโยบาย (ความถี่ ประเภทการสำรองข้อมูล ระยะเวลาการเก็บรักษา ฯลฯ) และเรียกใช้งาน การทำงานมีเป้าหมายเพื่อให้ในกรณีที่ฮาร์ดแวร์ล้มเหลวหรือดิสก์เสียหายคุณสามารถกู้คืนเครื่องทั้งหมดได้อย่างรวดเร็วไม่ว่าจะบนโหนดเดียวกันหรือบนโฮสต์ Proxmox อื่น
นอกจากนี้ Vinchin มักเสนอช่วงทดลองใช้งานฟรีทำให้คุณสามารถประเมินการทำงานร่วมกับโครงสร้างพื้นฐานของคุณก่อนที่จะตัดสินใจใช้งานอย่างเต็มรูปแบบ ในสภาพแวดล้อมที่ความพร้อมใช้งานมีความสำคัญ การรวม Proxmox เข้ากับโซลูชันการสำรองข้อมูลที่แข็งแกร่งจึงเป็นสิ่งที่จำเป็นอย่างยิ่ง โดยเฉพาะอย่างยิ่งเมื่อทำงานกับดิสก์ RAW ที่จัดเก็บข้อมูลที่มีความละเอียดอ่อนสูง
อุปกรณ์ RAW สำหรับ Oracle RAC บน Linux
ในสภาพแวดล้อมฐานข้อมูล Oracle RAC การจัดการพื้นที่จัดเก็บข้อมูลร่วมกันเป็นประเด็นที่ละเอียดอ่อนมาโดยตลอด แม้ว่าระบบปฏิบัติการ Linux ส่วนใหญ่จะมีLogical Volume Manager (LVM) แต่ก็ไม่ใช่ทุกระบบที่จะรองรับ LVM แบบคลัสเตอร์ในลักษณะที่ Oracle พิจารณาว่าเหมาะสมสำหรับ RAC ดังนั้น ในอดีต อุปกรณ์ RAW เฉพาะจึงมักถูกใช้สำหรับส่วนประกอบที่สำคัญ
ในการตั้งค่าสภาพแวดล้อมประเภทนี้ จะต้องติดตั้ง ดิสก์ที่ใช้ร่วมกันซึ่งมองเห็นได้จากทุกโหนดก่อน(ตัวอย่างเช่น ดิสก์ที่นำเสนอโดยอาร์เรย์จัดเก็บข้อมูลให้กับเซิร์ฟเวอร์ทางกายภาพหลายเครื่องหรือ VM) เมื่อระบบรู้จักดิสก์แล้ว หากจำเป็น ระบบจะรีสตาร์ท และระบุชื่ออุปกรณ์โดยใช้เครื่องมือต่างๆ เช่น:
/sbin/fdisk -l
โดยใช้fdisk (หรือเครื่องมือสมัยใหม่อื่นๆ เช่น parted) คุณสามารถสร้างพาร์ติชันที่เหมาะสมบนแต่ละดิสก์ได้: คุณแสดงรายการตารางพาร์ติชันด้วยคำสั่ง p สร้างพาร์ติชันใหม่ด้วยคำสั่ง n และบันทึกการเปลี่ยนแปลงด้วยคำสั่ง w พาร์ติชันแต่ละพาร์ติชันเหล่านี้จะถูกเชื่อมโยงกับอุปกรณ์ raw เฉพาะใน ภายหลัง
การเชื่อมโยงพาร์ติชั่นกับอุปกรณ์ RAW ใน Linux
ขั้นตอนต่อไปคือการตรวจสอบว่ามีอุปกรณ์ดิบ (raw devices) อยู่ในระบบแล้ว หรือ ไม่ สามารถทำได้โดยใช้คำสั่งต่อไปนี้:
/usr/bin/raw -qa
อุปกรณ์ RAW แบบดั้งเดิมใช้รูปแบบการตั้งชื่อแบบ/dev/raw/rawnโดยที่ n เป็นจำนวนเต็ม อุปกรณ์แต่ละตัวสามารถเชื่อมโยงกับพาร์ติชั่นดิสก์ได้ เพื่อให้ Oracle (หรือแอปพลิเคชันอื่นๆ) สามารถทำงานกับชื่อที่เสถียรเดียวกันได้เสมอ
การเชื่อมโยงจะถูกกำหนดไว้ในไฟล์การกำหนดค่า/etc/sysconfig/rawdevicesโดยเพิ่มบรรทัดหนึ่งบรรทัดสำหรับแต่ละพาร์ติชันที่สร้างขึ้น ตัวอย่างเช่น:
/dev/raw/raw1 /dev/sda1
ในไฟล์นี้ ต้องระมัดระวังในการใช้อุปกรณ์ดิบที่ยังไม่ได้ใช้งานเพื่อหลีกเลี่ยงข้อขัดแย้ง เมื่อกำหนดความสัมพันธ์แล้ว เจ้าของ กลุ่ม และสิทธิ์การเข้าถึงจะถูกปรับตามการใช้งานที่ต้องการของแต่ละอุปกรณ์
สำหรับอุปกรณ์ RAW ที่ใช้สำหรับOracle Cluster Registry (OCR)นั้น โดยทั่วไปจะมีการเรียกใช้คำสั่งต่างๆ ดังต่อไปนี้:
chown ราก:dba /dev/raw/rawn
chmod 640 /dev/raw/rawn
สำหรับอุปกรณ์ RAW ที่เหลือซึ่งจะใช้เป็นที่เก็บไฟล์ข้อมูลหรือ ไฟล์ ฐานข้อมูลจะมีการปรับสิทธิ์การเข้าถึงสำหรับผู้ใช้และกลุ่มของ Oracle ดังนี้:
chown oracle:oinstall /dev/raw/rawn
chmod 660 /dev/raw/rawn
หลังจากนั้น การผูกค่าที่กำหนดไว้ใน rawdevices จะถูกนำไปใช้โดยการดำเนินการดังต่อไปนี้:
/sbin/service rawdevices restart
ดังนั้น พาร์ติชั่นทางกายภาพแต่ละพาร์ติชั่นจึงเชื่อมโยงกับอุปกรณ์ดิบที่เกี่ยวข้องซึ่งพร้อมใช้งานสำหรับ Oracle RAC หรือแอปพลิเคชันอื่นใดที่ต้องการใช้งาน
ไฟล์ข้อมูลดิบสำหรับการแมปอุปกรณ์สำหรับ DBCA
เพื่อให้ตัวช่วยกำหนดค่าฐานข้อมูล (DBCA) สามารถระบุได้อย่างถูกต้องว่าอุปกรณ์ RAW ใดตรงกับประเภทไฟล์ข้อมูลแต่ละประเภท จึงเป็นเรื่องปกติที่จะสร้างไฟล์แมปปิ้งกระบวนการโดยทั่วไปจะเป็นดังนี้:
1. สร้างโฟลเดอร์ย่อยภายใต้ ORACLE_BASE ตัวอย่างเช่น:
mkdir -p $ORACLE_BASE/oradata/dbname
2. ปรับแต่งเจ้าของและสิทธิ์การเข้าถึง:
chown -R oracle:oinstall $ORACLE_BASE/oradata
chmod -R 775 $ORACLE_BASE/oradata
ภายในไดเร็กทอรี dbname จะมีการสร้าง ไฟล์ dbname_raw.confซึ่งมีบรรทัดที่ระบุว่าอุปกรณ์ raw ใดตรงกับ tablespace หรือไฟล์สำคัญแต่ละไฟล์ ตัวอย่างเช่น:
SYSTEM=/dev/raw/raw1
SYSAUX=/dev/raw/raw2
TEMP=/dev/raw/raw3
สุดท้ายนี้ ตัวแปรสภาพแวดล้อม DBCA_RAW_CONFIGจะถูกตั้งค่าให้ชี้ไปยังไฟล์นั้น เพื่อให้ DBCA สามารถอ่านไฟล์ดังกล่าวในระหว่างการสร้างฐานข้อมูล และกำหนดส่วนประกอบแต่ละส่วนให้กับอุปกรณ์ RAW ที่ถูกต้องได้
อุปกรณ์และพาร์ติชั่น RAW ใน SUSE Linux Micro ที่ใช้ Combustion
SUSE Linux Micro ซึ่งออกแบบมาสำหรับการใช้งานแบบไม่สามารถเปลี่ยนแปลงได้และแบบคอนเทนเนอร์ มักจะถูกแจกจ่ายในรูปแบบอิมเมจ RAW พร้อมรูปแบบการแบ่งพาร์ติชันเริ่มต้น เมื่อคุณต้องการปรับแต่งรูปแบบนั้น ย้ายไดเร็กทอรีอย่างเช่น /home ไปยังดิสก์อื่น หรือเพิ่มพาร์ติชันใหม่ Combustion ซึ่งเป็นระบบการกำหนดค่าการบูตครั้งแรก จะเข้ามามีบทบาท
Combustion ใช้ไฟล์ชื่อ`script`ซึ่งประกอบด้วยคำสั่งที่จะถูกเรียกใช้ในเชลล์ `transactional-update` ระหว่างการบูตครั้งแรก ผ่านสคริปต์นี้ คุณสามารถสร้างพาร์ติชันเพิ่มเติม แก้ไข `initramfs` กำหนดผู้ใช้ กำหนดค่าเครือข่าย เพิ่ม คีย์ SSHติดตั้งแพ็กเกจ และอื่นๆ ได้โดยไม่ต้องแก้ไขระบบด้วยตนเองหลังจากติดตั้งเสร็จ
ในภาพเหล่านี้ /etc ถูกเมานต์โดยใช้overlayFSโดยเลเยอร์บนสุดจะอยู่ที่ ตัวอย่างเช่น /var/lib/overlay/1/etc/ ซับโวลุ่มที่เมานต์โดยค่าเริ่มต้นจะถูกรู้จักโดยตัวเลือกต่างๆ เช่น x-initrd.mount ใน /etc/fstab หากคุณต้องการแก้ไขไฟล์ในซับโวลุ่มที่ไม่ได้เมานต์โดยค่าเริ่มต้นคุณต้องประกาศให้เมานต์ซับโวลุ่มนั้นก่อนในระหว่างการบูต
ในการกำหนดค่าเครือข่ายเมื่อบูตเครื่องครั้งแรก Combustion อนุญาตให้คุณเพิ่มคำสั่งที่ส่งพารามิเตอร์`rd.neednet=1`ไปยัง `dracut` ซึ่งจะบังคับให้มีการกำหนดค่าเครือข่าย (โดยปกติผ่าน DHCP) ในระหว่าง `initramfs` หากคุณต้องการการกำหนดค่าเครือข่ายแบบคงที่ คุณจะต้องใช้ส่วนการเปลี่ยนแปลงใน `initramfs` เพื่อเขียนไฟล์ NetworkManager ของคุณเองหรือไฟล์ที่คล้ายกัน
ตัวอย่างการทำงานกับพาร์ติชั่นและ /home ใน SUSE Linux Micro
สถานการณ์ทั่วไปคือการย้ายเนื้อหาของ/home ไปยังพาร์ติชันอื่นเช่น ดิสก์ตัวที่สองอย่าง /dev/vdb ในสคริปต์ Combustion คุณสามารถกำหนดรูปแบบการแบ่งพาร์ติชัน GPT ใหม่โดยใช้พาร์ติชันเดียวสำหรับ /dev/vdb ด้วยคำสั่ง sfdisk จากนั้นฟอร์แมตพาร์ติชันนั้นด้วย Btrfs หรือระบบไฟล์ที่คุณเลือก
เนื่องจากคำสั่ง sfdisk อาจใช้เวลานาน จึงควรเพิ่มคำสั่ง sleep สั้นๆหลังจากเรียกใช้คำสั่ง เพื่อให้แน่ใจว่าตารางพาร์ติชั่นถูกเขียนอย่างสมบูรณ์ก่อนที่จะดำเนินการต่อด้วยสคริปต์ จากนั้น ฟอร์แมตพาร์ติชั่นใหม่ สร้างจุดเชื่อมต่อใหม่ ย้ายเนื้อหาใดๆ ใน /home ไปยังตำแหน่งใหม่ และปรับแต่ง /etc/fstab
กระบวนการนี้เกี่ยวข้องกับการลบรายการ /home เก่าออกจาก/etc/fstab (ถ้ามีอยู่) และสร้างรายการใหม่ที่ชี้ไปยังอุปกรณ์ใหม่ ด้วยวิธีนี้ ในการบูตครั้งถัดไป ระบบจะทำการเมานต์พาร์ติชันที่สร้างขึ้นใหม่โดยอัตโนมัติเป็น /home โดยปล่อยให้ส่วนที่เหลือของอิมเมจ RAW ยังคงมีการแบ่งพาร์ติชันแบบเดิม
นอกจากนี้ Combustion ยังใช้สำหรับงานสำคัญอื่นๆ อีก เช่นการกำหนดผู้ใช้ที่ไม่ใช่ root (ตัวอย่างเช่น สำหรับบริการต่างๆ เช่น Cockpit) การตั้งรหัสผ่าน root โดยใช้แฮชที่สร้างด้วย openssl passwd -6 การเพิ่มคีย์ SSH สาธารณะไปยังไดเร็กทอรี ~/.ssh/authorized_keys การเปิดใช้งานบริการ (systemctl enable) และแม้กระทั่งการติดตั้งแพ็กเกจเพิ่มเติม เช่น vim ในระหว่างการบูตครั้งแรก
ในทุกกรณี แนะนำให้ตรวจสอบให้แน่ใจว่ากระบวนการทั้งหมดที่เริ่มทำงานในพื้นหลัง (เช่น tee หรือกระบวนการที่คล้ายกัน) เสร็จสิ้นก่อนที่การทำงานของสคริปต์จะสิ้นสุดลง โดยการเพิ่มคำสั่งในตอนท้ายเพื่อรอให้กระบวนการเหล่านั้นเสร็จสิ้น เพื่อหลีกเลี่ยงการกำหนดค่าที่ไม่สมบูรณ์
การกู้คืนเครื่องเสมือนจากดิสก์ RAW ที่มีอยู่
สถานการณ์ทั่วไปในสภาพแวดล้อมเวอร์ชวลไลเซชันคือดิสก์ RAW หรือ LVM ยังคงใช้งานได้ แต่การกำหนดค่า VM สูญหายตัวอย่างเช่น สถานการณ์นี้อาจเกิดขึ้นเมื่อดิสก์ที่โฮสต์ไฮเปอร์ไวเซอร์ (เช่นSSDใน Proxmox) ล้มเหลว แต่พื้นที่จัดเก็บข้อมูลที่เก็บดิสก์ VM อยู่ (อาร์เรย์ RAID หลายดิสก์) ยังคงใช้งานได้
ในสถานการณ์เช่นนี้ หลังจากติดตั้งไฮเปอร์ไวเซอร์ (เช่น Proxmox) ใหม่บน SSD ตัวใหม่แล้ว สิ่งแรกที่ต้องทำคือตรวจสอบว่าระบบตรวจพบ RAID หรือวอลุ่มจัดเก็บข้อมูลโดยอัตโนมัติหรือไม่หากระบบตรวจพบ RAID และคุณสามารถแสดงรายการวอลุ่มหรือไฟล์ดิสก์ RAW ได้ แสดงว่าคุณมาถูกทางแล้ว ข้อมูลยังคงอยู่ คุณเพียงแค่ต้องเชื่อมต่อข้อมูลเหล่านั้นกับ VM ใหม่เท่านั้น
สิ่งที่หลายคนมองข้ามในกรณีเหล่านี้คือตัวเลือก "มหัศจรรย์" ที่จะ"ลงทะเบียน VM ทั้งหมดใหม่"จากดิสก์เหล่านั้น ขึ้นอยู่กับระบบ อาจไม่มีปุ่มโดยตรงเช่นนั้น และคุณอาจต้องสร้างเครื่องเสมือนใหม่ด้วยตนเองและแนบดิสก์ RAW หรือ LVM แต่ละตัวเข้ากับ VM ที่เกี่ยวข้อง
เคล็ดลับคือการกำหนดพารามิเตอร์ใน VM ใหม่ให้คล้ายกับของเดิม เช่น ประเภท BIOS/UEFI เดียวกัน ตัวควบคุมดิสก์เดียวกัน (SCSI, VirtIO, SATA…) การกำหนดค่าเครือข่ายที่คล้ายกัน เป็นต้น จากนั้น แทนที่จะสร้างดิสก์ใหม่ให้ชี้ไปยังวอลุ่ม RAW หรือ LVM ที่มีอยู่แล้วหากระบบปฏิบัติการบนดิสก์ไม่ได้รับความเสียหาย VM ก็จะสามารถบูตได้ราวกับไม่มีอะไรเกิดขึ้น
หลักการเดียวกันนี้ใช้ได้กับไฮเปอร์ไวเซอร์อื่นๆ ด้วยเช่นกัน: หากคุณสูญเสียโฮสต์ของคลัสเตอร์ แต่ยังคงมีวอลุ่ม LVM หรือ LUN ที่มีดิสก์ดิบอยู่ คุณสามารถลงทะเบียนใหม่หรือสร้าง VM ขึ้นใหม่และนำอุปกรณ์เหล่านั้นกลับมาใช้เป็นดิสก์ได้โดยตรงโดยไม่จำเป็นต้องกู้คืนข้อมูลสำรองทั้งหมด (ถึงแม้ว่าการสำรองข้อมูลไว้เสมอจะเป็นสิ่งที่ควรทำในกรณีที่เกิดปัญหาขึ้น)
การใช้ภาพ RAW ในการวิเคราะห์ทางนิติวิทยาศาสตร์และการย้ายระบบระหว่างไฮเปอร์ไวเซอร์
ในด้านนิติวิทยาศาสตร์และการตรวจสอบความปลอดภัย เป็นเรื่องปกติมากที่จะได้รับเครื่องเสมือนแบบสมบูรณ์ในรูปแบบ VMwareเพื่อทำการวิเคราะห์ หากเครื่องมือหลักของคุณไม่ใช่ VMware หรือหากคุณต้องการตรวจสอบข้อมูลด้วยชุดโปรแกรมทางนิติวิทยาศาสตร์เฉพาะทาง การทำงานกับไฟล์ RAW มักจะสะดวกกว่าการทำงานกับไฟล์ VMDK มาก
ดังที่เราได้กล่าวไปแล้ว วิธีแก้ปัญหาที่ได้ผลคือการใช้ VirtualBox และเครื่องมือ VBoxManage ในการแปลงไฟล์ VMDK ให้เป็นไฟล์ dd/RAWหลังจากแปลงเสร็จแล้ว คุณสามารถเมานต์ไฟล์นี้เพื่ออ่านจาก Linux เปิดด้วยเครื่องมือวิเคราะห์ หรือแม้กระทั่งใช้เป็นดิสก์ในไฮเปอร์ไวเซอร์อื่นๆ ที่รองรับไฟล์ RAW ได้
สิ่งสำคัญที่ควรจำไว้คือ เมื่อดิสก์ต้นฉบับเป็นแบบไดนามิก ไฟล์ RAW ที่ได้จะใช้พื้นที่ดิสก์สูงสุดไม่ใช่พื้นที่ที่ใช้งานจริง ดังนั้น หากไฟล์ VMDK แทนดิสก์ขนาด 500 GB ไฟล์ RAW ก็จะใช้พื้นที่ประมาณ 500 GB แม้ว่าจะใช้พื้นที่ภายในเพียง 50 GB ก็ตาม ด้วยเหตุนี้ การวางแผนพื้นที่ดิสก์ปลายทางอย่างรอบคอบก่อนการแปลงจึงมีความสำคัญมาก
ข้อดีคือ เมื่อคุณได้ไฟล์ RAW มาแล้ว ตัวเลือกก็จะเพิ่มมากขึ้น คุณสามารถใช้มันเป็นแหล่งข้อมูลสำหรับการย้ายข้อมูลไปยัง Proxmoxโดยการนำเข้าด้วยคำสั่ง qm importdisk วิเคราะห์ข้อมูลทีละบิตเพื่อหาหลักฐาน หรือแม้แต่เขียนแก้ไขข้อมูลลงไปอีกครั้งหากคุณกำลังทำการทดสอบในห้องปฏิบัติการ
การใช้ไฟล์ RAW และอิมเมจในเครื่องเสมือน (Virtual Machine) เปิดโอกาสมากมาย เช่นการเข้าถึง LUN โดยตรงสำหรับคลัสเตอร์ การใช้ดิสก์ที่มีอยู่แล้ว การย้ายข้อมูลข้ามแพลตฟอร์ม การวิเคราะห์ทางนิติวิทยาศาสตร์ และการปรับแต่งระบบขั้นสูงอย่างไรก็ตาม จำเป็นต้องใช้ความระมัดระวัง การบันทึกประเภทอุปกรณ์อย่างละเอียด และการสำรองข้อมูลที่เชื่อถือได้ เนื่องจากไม่มีระบบป้องกันความปลอดภัยมากเท่ากับไฟล์ดิสก์เสมือนแบบง่ายๆ ที่คุณสามารถคัดลอกและวางได้
นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน
