Virtualbox, การรวมภาพรวมและดิสก์พื้นฐาน


9

ฉันมีเครื่องเสมือนที่มีประมาณ 30 ภาพรวมในสาขา พา ธ การพัฒนาปัจจุบันคือ 22 สแน็ปช็อตรวมกับดิสก์ฐาน ปริมาณของไฟล์ดูเหมือนจะมีผลกระทบกับ IO และแล็ปท็อป dev ที่ฉันใช้อยู่ (ไม่ทราบว่าเป็นปัญหาเรื่องประสิทธิภาพของโฮสต์ดิสก์ที่มีขนาดรวม 140GB มากกว่าเศษเล็กเศษน้อยหรือข้อเท็จจริงที่ว่ามันเป็น ส่วนที่ถูกกดถูกกระจายอยู่ทั่วไฟล์จำนวนมาก)

ฉันต้องการผสานสาขาการพัฒนาปัจจุบันของ snapshots ร่วมกับดิสก์ฐาน แต่ฉันไม่แน่ใจว่าคำสั่งต่อไปนี้จะให้ผลลัพธ์ที่ถูกต้อง ฉันไม่สามารถบูตดิสก์นี้ได้หลังจากกระบวนการเสร็จสมบูรณ์ (5-6 ชั่วโมง)

vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal

มีใครยืนยันได้ไหมว่านี่เป็นแนวทางที่ถูกต้องหรือไม่?


ในการเพิ่มข้อมูลข้อผิดพลาดที่ฉันได้รับไม่ใช่ข้อผิดพลาด VirtualBox แต่เกิดข้อผิดพลาดในการบูตจาก Windows มันต้องการเริ่มการซ่อมแซมการเริ่มต้น แต่เมื่อฉันไม่ทราบข้อผิดพลาดฉันไม่ทราบวิธีแก้ไข การเริ่มต้น Windows จะส่งผลให้เกิดการรอคอยนานและหน้าจอสีน้ำเงิน นี่เป็นสิ่งที่คาดหวังหรือฉันใช้วิธีที่ผิดเมื่อทำการโคลนดิสก์
Henrik

ฉันใช้ VBoxManage (บนโฮสต์ Windows แขกของ Ubuntu) ตามที่คุณแนะนำในคำถามของคุณและมันก็รวมภาพรวมลงในดิสก์อิมเมจออกเดียว
Chaulky

1
ใช่นี่เป็นวิธีการที่ถูกต้อง เป็นการดีกว่าที่จะระบุเฉพาะ UUID ต้นทางแทนที่จะเป็นชื่อไฟล์จากนั้นคุณมั่นใจว่า VBox จะสามารถแก้ไขสิ่งที่แนบมาได้
rustyx

คำตอบ:


7

สิ่งที่คุณต้องการทำคือจากกล่องโต้ตอบสแนปชอตเลือกสแนปชอตหลักของคุณที่คุณต้องการรวมสแน็ปช็อตทั้งหมดหลังจากนั้นเป็น VDI เดียว

จากคำอธิบายของคุณดูเหมือนว่านี่คือรากของต้นไม้

คลิกขวาและเลือก 'ลบภาพรวม'

สิ่งนี้จะทำในสิ่งที่คุณต้องการ --- มันจะรวมการเปลี่ยนแปลงทั้งหมดจากภาพรวมลูกทั้งหมดลงใน VDI เดียว

นอกจากนี้ - การโคลนอิมเมจดิสก์ที่อยู่ในสแน็ปช็อตล่าสุด - จะรวมดิสก์ที่แตกต่างกับพาเรนต์ของมัน (และพาเรนต์ต่อไปเรื่อย ๆ จนกว่าคุณจะได้ชนิดฮาร์ดดิสก์ 'ปกติ')

ฉันสงสัยว่า 'การลบสแนปชอต' รันคำสั่ง clonehd

ตรวจสอบการตั้งค่า VM ของคุณ (โดยเฉพาะการเปิดใช้งาน / ปิดใช้งาน IO APIC) และตรวจสอบให้แน่ใจว่าตรงกัน


ฉันเดาว่านี่เป็นวิธีเดียวที่จะทำเช่นนี้อย่างไรก็ตามมันเป็นคู่มือการใช้เวลานานและการคลิกหลายครั้งในรูปแบบของ GUI
Henrik

3

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

หรือคุณสามารถใช้สคริปต์vboxmerge.pyนี้เพื่อจัดการการรวมสำหรับคุณ จากจำนวนสแนปชอตที่คุณมีฉันคาดว่าวงจรการส่งออก / นำเข้าจะเร็วขึ้น


2

นี่คือเทคนิค (ทดสอบบน VirtualBox 4.3.4) ที่ใช้คำสั่ง 'Clone' เพื่อรวมและกระชับสแนปชอตทั้งหมดให้กับ VM ใหม่ที่มีไฟล์ VDI ไฟล์เดียว:

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

  2. คลิกขวาที่ VM แล้วรันคำสั่ง 'Clone ... ':

    • ตั้งชื่อเป็นชื่อเดิมของ VM
    • ยอมรับค่าเริ่มต้นที่เหลืออยู่เช่นประเภทโคลน: 'เต็มโคลน'; ภาพรวม: 'สถานะเครื่องปัจจุบัน'
  3. ลบ VM เก่า (คลิกขวาบน VM และเรียกใช้คำสั่ง 'ลบ ... ')


0

หากโฮสต์ของคุณเป็น Windows หรือคุณสามารถเข้าถึงไฟล์ VHD จากหน้าต่างมีเคล็ดลับในการรวมการเปลี่ยนแปลงทั้งหมดเป็นผู้ปกครองผู้ปกครองระดับสูง ฯลฯ

มันใช้เครื่องมือ DiskPart และทั้งสองคำสั่ง:

select vdisk file="whatever your file is, with full path"

merge vdisk depth=#

โดยที่ # คือจำนวนระดับลำดับชั้นที่คุณต้องการย้าย 1 สำหรับผู้ปกครองหลัก dirent 2 สำหรับผู้ปกครองระดับสูง ฯลฯ

มันทำในสถานที่ใช้เวลาน้อยกว่าการโคลน ฯลฯ

โปรดจำไว้ว่าหลังจากการรวม VHD ระดับกลางทั้งหมดสามารถลบได้ (มันไม่ได้ลบออกสำหรับคุณ) และอย่าลืมแนบไฟล์ลงใน VirtualBox แม่ซึ่งคุณได้รวมไว้

ตัวอย่าง:

Disk3.vhd เป็นลูกของ Disk2.vhd, Disk2.vhd เป็นลูกของ Disk1.vhd

หากคุณต้องการบน Disk1.vhd การเปลี่ยนแปลงทั้งหมดของ Disk3.vhd เพียงใช้depth=2และเลือก Disk3.vhd หากคุณต้องการบน Disk1.vhd การเปลี่ยนแปลงทั้งหมดของ Disk2.vhd เพียงแค่ใช้การdepth=1เลือก Disk3.vhd

ยังจำได้ว่าไม่จำเป็นสำหรับ VirtualBox Snapshots ที่น่าเกลียดคุณสามารถใช้ DiskPart สร้างคำสั่ง vdisk เพื่อสร้างดิสก์ที่แตกต่างจากที่มีอยู่ (ที่อาจเป็นดิสก์ที่แตกต่างกัน ฯลฯ ) ก็สามารถสร้างต้นไม้ขนาดใหญ่ได้

สำหรับส่วนที่เหลือทั้งหมด: โปสเตอร์ใช้ VHD (ไม่ใช่ VDI) ดังนั้นจึงสามารถใช้เครื่องมือเนทีฟเช่น DiskPart และ Disk Managment เพื่อเข้าถึงดิสก์จากแขก (บนโฮสต์หากโฮสต์คือ Windows)

สำหรับคุณโปสเตอร์: อย่าลืมว่ามีแบ็กอัพเต็มรูปแบบก่อนทำการผสาน VirtualBox โคลนไม่ทำงานแทนที่ไฟล์จะสร้างไฟล์ใหม่ (คัดลอกเมื่อเขียน) แต่ DiskPart ผสานทำงานได้ในสถานที่ (ปรับเปลี่ยนไฟล์อย่าสร้าง อันใหม่)

หวังว่าจะสามารถให้ aproach ที่แตกต่างกันได้อีกเนื่องจาก VHD / VHDX ใช้งานอยู่ (ไม่ถูกต้องสำหรับ VMDK, VDI ฯลฯ สำหรับโฮสต์ Windows เท่านั้น)

หมายเหตุ: Windows 7 ขึ้นไป, XP และ Vista สามารถติดตั้ง VHD ด้วยเครื่องมือ M $ ภายนอกได้ แต่ DiskPart ไม่รองรับ VHD บน XP & Vista ... ทั้งหมดนี้ใช้ได้กับ Windows HOME editions (7 ขึ้นไป) ไม่จำเป็นต้องใช้ รุ่นเซิร์ฟเวอร์

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