ฉันใช้ Debian Wheezy Beta 4 กับระบบแขกที่ใช้ KVM ซึ่งใช้ระบบปฏิบัติการเดียวกัน ฉันใช้ LibVirt เพื่อจัดการระบบเสมือน

สิ่งที่ฉันต้องการทำคือแนบอุปกรณ์บล็อกที่ใช้ LVM กับระบบแขกที่ทำงานอยู่ผ่าน Virtio หากฉันจะกำหนดค่าผ่านvirsh edit [MACHINE]มันจะมีลักษณะดังนี้:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/volume_group/logical_volume'/>
  <target dev='vdb' bus='virtio'/>
</disk>

ฉันพยายามหาวิธีทำสิ่งนี้ด้วยvirsh attach-disk. จนถึงตอนนี้ฉันพบสิ่งต่อไปนี้:

virsh attach-disk guest /dev/volume_group/logical_volume vdb --driver qemu --type raw --cache none --persistent

ฉันจะระบุฟิลด์busของเป้าหมายและไดรเวอร์ได้ioอย่างไร ฉันต้องการตัวเลือกเหล่านี้ให้ตรงตามที่ระบุใน XML ทุกประการ

answer

ฉันพบวิธีการระบุตัวเลือกบรรทัดคำสั่งที่ค่อนข้างจำกัด ลองใช้การattach-deviceดำเนินการและระบุการกำหนดค่าดิสก์ในไฟล์ XML

virsh # attach-device [MACHINE] /tmp/new-disk.xml

ด้วยnew-disk.xmlไฟล์ที่มีห้าบรรทัดที่คุณจะเพิ่มโดยใช้edit.

เพิ่ม--persistentเพื่อให้อัปเดตข้อกำหนด XML ของเครื่องของคุณ

อัปเดต

ตรวจสอบให้แน่ใจว่าได้โหลดโมดูลเคอร์เนล hotplug ในแขกก่อนที่จะเพิ่มอุปกรณ์:

modprobe acpiphp
modprobe pci_hotplug

จากนั้นคุณควรเห็นเคอร์เนลส่งข้อความดีบักในdmesgเช่นนี้:

[  321.946440] virtio-pci 0000:00:06.0: using default PCI settings
[...]
[  321.952782]  vdb: vdb1 vdb2

วันนี้ virsh(1) มีตัวเลือกบรรทัดคำสั่งทั้งหมด คุณสามารถเรียกใช้เช่น:

sudo virsh attach-disk \
           --domain guestname \
           --source /dev/volume_group/logical_volume \
           --target vdb \
           --driver qemu \
           --subdriver raw \
           --cache none \
           --io native \
           --targetbus virtio \
           --config \
           --live

virsh attach-disk --help แสดงมันทั้งหมด