เพิ่มฟิสิคัลดิสก์ให้กับเครื่องเสมือน KVM


12

ฉันตั้งค่าไฟล์เซิร์ฟเวอร์ (nas4free) เป็นเครื่องเสมือน KVM บนระบบ Ubuntu Server 12.04

ฉันจะเพิ่มฮาร์ดไดรฟ์แบบฟิสิคอลลงใน VM โดยตรงเพื่อให้แขกสามารถใช้งาน (nas4free) แต่ไม่ใช่โฮสต์ได้อย่างไร

โดยเฉพาะฮาร์ดไดรฟ์ที่ฉันต้องการเมานคือ / dev / sda (ซึ่งไม่ได้ติดตั้งบนเซิร์ฟเวอร์ในปัจจุบัน)

จนถึงตอนนี้ฉันได้พบวิธีแก้ปัญหาสองข้อ แต่ฉันก็ยังไม่ได้ผล

สิ่งแรกคือจากความผิดพลาดของเซิร์ฟเวอร์ที่แนะนำให้ใช้ virt-manager ฉันยังไม่เข้าใจสิ่งนี้เพื่อใช้งานได้เพราะเมื่อฉันพยายามเลือกไดรฟ์ที่มีอยู่แล้ว สิ่งที่ดีที่สุดที่ฉันคาดเดาได้ว่าเป็นเพราะเหตุใดเพราะฉันใช้ virt-manager บน ssh และไม่ได้เชื่อมต่อเป็นรูท

ทางออกที่สองที่ฉันพบที่นี่คือเพียงเรียกใช้คำสั่ง (แก้ไขสำหรับระบบของฉัน)

qm set nas4free -virtio /dev/sda

แต่ดูเหมือนว่าจะต้องใช้ proxmox ซึ่งฉันไม่ได้ติดตั้งและดูเหมือนจะไม่อยู่ในที่เก็บเริ่มต้น?

ในที่สุดเมื่อแยกออกข้างต้นและฉันสามารถติดตั้งไดรฟ์โดยตรงกับ VM ทุกคนมีประสบการณ์ว่าควรติดตั้งไดรฟ์กับ VM เป็น scsi, ide หรือ virtio หรือไม่ (ฉันรู้ว่าแนะนำให้ใช้ virtio ในหน้า ServerFault ที่เชื่อมโยง แต่ฉันไม่เคยได้ยินมาก่อนตั้งแต่ตอนนี้ฉันใช้ VMWare เป็นหลัก)

ขอบคุณสำหรับความช่วยเหลือของคุณ!!!


1
เรียกใช้sudo virt-managerไม่จำเป็นต้องเชื่อมต่อเป็นรูท ไม่ทราบว่าใช้virtioงานได้กับอุปกรณ์ทางกายภาพหรือไม่ ...
ish

@izx ขอบคุณสำหรับคำตอบของคุณ! ควรสร้างความแตกต่างหรือไม่แม้ว่า virt-manager กำลังรันบนเดสก์ท็อปของฉันและไม่ใช่เซิร์ฟเวอร์
evan

คำตอบ:


11

แม้ว่าจะได้รับคำตอบนี้แทนที่จะใช้ / dev / sda คุณควรใช้ / dev / disk / by-id / ตำแหน่งที่คุณได้รับจาก

    ls -l /dev/disk/by-id

วิธีนี้จะครอบคลุมในกรณีที่ดิสก์เปลี่ยนจาก / dev / sda เป็น / dev / sdb


2
ปัจจุบันนี้เป็นคำตอบเดียว (ที่เคยมี) โพสต์ในคำถามนี้ มีข้อมูลบางอย่างในความคิดเห็นที่อาจช่วยได้ แต่เท่าที่ฉันสามารถบอกได้ว่ามันยังห่างไกลจากความจริงที่ว่าพวกเขาจะแก้ไขปัญหาได้ คุณอาจพิจารณาขยายสิ่งนี้เพื่อมอบโซลูชันที่สมบูรณ์ หากส่วนอื่น ๆ ของโซลูชันของคุณได้รับการคิดค้นโดยคนอื่นคุณสามารถอ้างอิงและเชื่อมโยงไปยังพวกเขาได้ ฉันสงสัยว่าizxจะรังเกียจ .. โดยเฉพาะอย่างยิ่งเป็น (เมื่อฉันแสดงความคิดเห็นในขณะนี้) izx ไม่ได้ลงนามในเว็บไซต์มานานกว่าหนึ่งปี
Eliah Kagan

ฉันใช้virsh attach-device domain XML-file...เพื่อแนบดิสก์ คุณสามารถใช้ disk-id ใน<source dev='/dev/...'/>องค์ประกอบได้หรือไม่
MrCalvin

8

ด้วยความต้องการแบบเดียวกันฉันพบสิ่งต่อไปนี้:

http://ronaldevers.nl/2012/10/14/adding-a-physical-disk-kvm-libvirt.html

(ข้อความทั้งหมดต่อไปนี้มาจากแหล่งข้อมูลด้านบน)

ไม่สามารถทำได้ด้วย virt-manager อันนั้นเอาฉันไปซักพักแล้ว เท่าที่ฉันสามารถบอกได้ virt-manager ทำงานกับพูลหน่วยเก็บข้อมูล คุณสามารถสร้างดิสก์ลงในพูลหน่วยเก็บข้อมูล แต่คุณไม่สามารถเพิ่มดิสก์ที่มีอยู่ลงใน VM ได้โดยตรง

โชคดีที่การแก้ไขนั้นง่าย: คุณเพิ่มดิสก์ลงในไฟล์ xml config ของโดเมนด้วยมือ ดังนั้นให้เปิด /etc/libvirt/qemu/.xml ในเครื่องมือแก้ไขที่คุณชื่นชอบและเพิ่มส่วนในส่วน:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/md/storage'/>
  <target dev='vdb' bus='virtio'/>
</disk>

สิ่งนี้จะทำให้โฮสต์ / dev / md / storage ของโฮสต์พร้อมใช้งานในฐานะแขก / dev / vdb หลังจากเปลี่ยนการกำหนดค่าโดเมนด้วยมือคุณต้องโหลดการกำหนดค่าใหม่ด้วยตนเอง ล็อกอินเข้าสู่โฮสต์ของคุณและออกคำสั่งนี้:

# virsh define /etc/libvirt/qemu/jetsetetser.xml
Domain jetser defined from /etc/libvirt/qemu/jetsetetser.xml

นี่เป็นแหล่งข้อมูลที่ดีพร้อมข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ vms ด้วย libvirt: https://help.ubuntu.com/community/KVM/Managing

ฉันขอแนะนำให้คุณทำตามคำแนะนำของ smccloud มันใช้งานได้เหมือนเสน่ห์สำหรับฉัน ระวังอย่าเมานไดรฟ์ข้อมูลใด ๆ ในไดรฟ์ทางกายภาพที่ใช้ในแขกของคุณหรือคุณจะสร้างความเสียหายอย่างรุนแรงต่อระบบไฟล์!


4
แทนที่จะvirsh define...ใช้คำแนะนำคือการใช้virsh edit <NAME>สิ่งนี้อนุญาตให้คุณแก้ไข XML ในเท็กซ์เอดิเตอร์ที่คุณโปรดปรานและให้การเปลี่ยนแปลงนั้นอัพเดต VM โดยอัตโนมัติ
นาธานออสมัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.