วิธีที่เร็วที่สุดที่จะรวมภาพรวมใน VirtualBox?


48

ฉันมี vdi ที่มีสแน็ปช็อตจำนวนมากที่นำมาจากมัน - บอกว่า 50 หรือ 70 สแน็ปช็อต ฉันต้องการมีหนึ่ง vdi ธรรมดาที่มีสถานะปัจจุบัน สแน็ปช็อตเหล่านี้ใช้พื้นที่ดิสก์มากเกินไปและไม่ต้องการเป็นสแน็ปช็อต

ฉันรู้ว่าถ้าฉันโทร

VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing

ฉันจะได้รับสิ่งที่ฉันต้องการ แต่ใช้เวลานานมาก (มากกว่า 5 ชั่วโมงสำหรับฮาร์ดแวร์ของฉันและขนาดดิสก์เริ่มต้น 16G)

และแน่นอนฉันลองVBoxManage snapshot deleteและมันแปลก: ไม่ทำงานบนเครื่องที่หยุดทำงานสามารถล้มเหลวในการใช้งานเครื่องและเมื่อมันล้มเหลวอีกครั้งมันจะล้มเหลวในการโทรตามมาทั้งหมด

มีวิธีการทำ vdi ธรรมดาจากจำนวน snapshots - เร็วกว่า?

$ VBoxManage --version
3.2.14r75509

(ถามในServerFaultแต่ตัดสินใจว่าสถานที่นี้เหมาะสมกว่าสำหรับคำถามนี้)


คำสั่งที่คุณใช้คือคำสั่งที่คุณต้องการใช้นั่นไม่ใช่วิธีที่เร็วกว่า
Ramhound

แล้วการส่งออก VM ทั้งหมดล่ะ vdi ของมันจะมีสิ่งที่ฉันต้องการหรือไม่?
Andrey Regentov

คุณควรลอง ในที่สุดวิธีการอื่น ๆ ก็ยังคงต้องใช้เวลาสักครู่เนื่องจากขนาดของเครื่องเสมือน
Ramhound

คำตอบ:


53

พบทางออก มันง่ายเหมือนขั้นตอนสุดท้ายจากคำสั่งที่ฉันเขียนที่นี่ กล่าวคือ

VBoxManage clonehd fullpath/{uuid-of-last-snapshot}.vdi thedisk-full.vdi

ดังนั้นฉันควรโคลนเฉพาะสแน็ปช็อตสุดท้ายไม่ใช่สแน็ปช็อตทุกครั้งจากเชน และมันก็เร็วขึ้นหลายร้อยเปอร์เซ็นต์

สามารถพบ uuid ได้จาก VBoxManage list hdds | grep VmName | tail

ใน GUI (บน Windows) เลือก VM เลือกSnapshotsจากด้านบนขวาคลิกขวาที่ snapshot ที่คุณต้องการเลือกClone ...และเลือกFull Cloneในกล่องโต้ตอบ


ขอบคุณ แต่มันไม่ทำงานในการตั้งค่าของฉันมันบอกว่าภาพจะมีอยู่แล้ว คุณลืม - มีอยู่หรือไม่?
Andy

3
หากคุณมีแฟ้มบนดิสก์แล้วกรุณาเปลี่ยนชื่อครั้งแรกในคำสั่งเพื่อสิ่งที่ต้องการthedisk-full.vdi thedisk-full-new.vdi
Andrey Regentov

fullpath จำเป็นต้องเป็นอันที่ลงทะเบียนใน VirtualBox แน่นอน ลิงก์สัญลักษณ์ไม่ทำงานเนื่องจาก VBox ต้องค้นหาภาพรวมทั้งหมด
Andy

ไม่แน่ใจว่าหางทำอะไรคุณหมายถึง " tail -1"?
eckes

1
ใน VirtualBox 5 clonehdเลิกใช้แล้วและทิ้งไว้เพื่อความเข้ากันได้แบบย้อนหลังให้ใช้clonemediumแทน
George Sovetov

22

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

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

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

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


ในฐานะของ VirtualBox 6.0.8 ยังคงใช้งานได้
Paul Sturm

3

คุณสามารถลองส่งออกไปยังOVFแล้วนำเข้าไฟล์ที่สร้างขึ้นกลับมา

ตามที่อธิบายไว้ที่นี่ :

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

ดังนั้นคุณจะมีการโคลน VM ด้วยสถานะปัจจุบันโดยไม่มีสแนปชอตอื่น


ฉันถามเกี่ยวกับ vdis เพราะไม่สามารถส่งออกเครื่องได้ - มันเสีย (ไม่สามารถเข้าถึงได้หลังจากรีบูตโฮสต์) และสิ่งที่ฉันมีก็คือ VDIs - ดิสก์และสแน็ปช็อตประมาณห้าสิบรายการ
Andrey Regentov

0

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


1
โดยทั่วไปแล้วเครือข่ายจะมีลำดับความสำคัญช้ากว่าอินเทอร์เฟซ HDD ภายในดังนั้นสิ่งนี้อาจไม่ทำให้กระบวนการเร็วขึ้น
Andrey Regentov

-2

บางคนมี LAN 10Gib / s ดังนั้นจึงสามารถถ่ายโอนได้มากกว่าหนึ่งกิกะไบต์ต่อวินาทีดังนั้นมันจึงไม่ใช่คอขวด

บางรุ่นมี LAN 1Gib / s ดังนั้นจึงสามารถถ่ายโอนได้มากกว่า 100 เมกะไบต์ต่อวินาทีดังนั้นจึงไม่ใช่คอขวด (ยกเว้นว่าคุณมี SSD ที่เร็วจริงๆ)

ดิสก์เชิงกลเมื่ออ่านและเขียนบนดิสก์เดียวกันในเวลาเดียวกัน (หรือมีการแยกส่วนมาก) ให้ลงไปเกือบ 20 เมกะไบต์ต่อวินาทีในขณะที่การอ่านที่ไม่ได้แยกส่วนเท่านั้นที่อ่านได้อย่างเดียว

คุณบอกว่า LAN ช้าลง แต่ไม่เกี่ยวกับ USB (2.0 ไม่พูดถึง 1.1 หรือ 1.0) ช้ากว่ามาก

สิ่งที่ฉันอยากจะแนะนำคือ: ใช้ USB 3.1 Gen2 Type C หรือ eSATA / SATA / SAS

แต่ allways: ใช้ดิสก์ที่เร็วพอที่สอง

และ allways: การโคลนไปยังดิสก์อื่นและการคัดลอกไฟล์กลับมานั้นเร็วกว่าการใช้ดิสก์เพียงแผ่นเดียวเว้นแต่เป็น SSD หรือฮาร์ดดิสก์ที่มีแขนแบบอิสระหลายหัว (สามารถอ่านและเขียนได้ในเวลาเดียวกันในสองไฟล์) สถานที่พื้นผิวแต่ละหัวมีแขนของตัวเองมีราคาแพงมากประมาณ> 9876 €)

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

ดังนั้นขั้นตอนในการคลายสถานะเก่าทั้งหมดในแผนผังไม่มีสแนปช็อตทรี:

  1. โคลนจากฮาร์ดดิสหนึ่งไปอีกอันหนึ่งหลีกเลี่ยงปัญหาคอขวด
  2. สร้างเครื่องใหม่เชื่อมต่อดิสก์นั้นตัดการเชื่อมต่อกำหนดค่าเป็นไม่สามารถแก้ไขได้
  3. ทดสอบการทำงาน (เนื่องจากไม่สามารถเปลี่ยนแปลงได้) คุณจะมีสถานะเหมือนกัน
  4. หากคุณไม่ต้องการให้ตัดการเชื่อมต่อให้เปลี่ยนกลับเป็นปกติ ฯลฯ
  5. ลบสแน็ปช็อตเครื่องเก่า (เรียกคืนก่อน)
  6. ลบเครื่องทดสอบชั่วคราว
  7. คัดลอกกลับไปยังดิสก์ดิสก์เสมือน
  8. แนบดิสก์ที่โคลน

แต่ allways มีอยู่ในใจภาพรวมอาจเป็นเหมือนต้นไม้เต็มโหนดเดียวสามารถมีลูกได้มากกว่าหนึ่งลูกเด็กแต่ละคนสามารถมีลูกได้มากกว่าหนึ่งคนเป็นต้น

ในการทำงานกับต้นไม้ของ snoapshots, allways คิดว่า DELETE เป็นการลบโหนดโดยไม่ติดโหนดที่เหลือ (เฉพาะสถานะนั้นเท่านั้น, แต่ไม่มีที่เหลือ, ไม่มีพาเรนต์และไม่มีลูกใดจะถูกรวบรวมข้อมูลในส่วนย่อยแรกทั้งหมด level childs กระบวนการที่ช้ามาก) และ RESTORE เป็นการทำลาย childs ทั้งหมดในทุกระดับย่อย (สูญเสียสถานะทั้งหมดหลังจากที่คุณกู้คืนสถานะแล้วมันจะลบไฟล์เท่านั้นดังนั้นกระบวนการที่รวดเร็วจริงๆเพียงไม่กี่วินาที)

นั่นคือ!

PD: ชื่อที่น่ากลัวที่ VBOX มอบให้กับการดำเนินการสองรายการนั้น (ลบเพียงหนึ่งโหนด = DELETE ลบโหนดลูกทั้งหมดในระดับย่อยทั้งหมด = RESTORE)


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