Proxmox VE上のVMから実ディスクにアクセスする(ディスクパススルー)
参考にしたページ
https://kiyoka.moe/2020/08/04/proxmox-ve-hdd-attach-with-kvm/
背景
ラックマウントサーバを入手してとりあえずはArch Linuxを入れて遊んでいたがリソース余りまくりなのでProxmox VEを入れて色々試そうと思った.OSに認識されるディスクは/dev化にsda,sdb,sdcと3つある状態であった.必要な情報をsdaからsdbに移し,sdaにProxmox VEを入れ,その中にArch LinuxのVM(VMidは100)を立てた.今回の目的はこのArch LinuxのVMから直接sdb内に触れるようにすること.また,今回使用したDiskはSAS規格のものである.
ハードウェアパススルーではない.
設定
proxmox自体のシェルを ' pve # ' で,proxmox上の仮想マシン(今回はArch Linux)のシェルを ' vm # ' とする.
pve # ls /dev/disk/by-id
ata-hp_DVDROM_略
dm-name-pve-root
dm-uuid-LVM-略
lvm-pv-uuid-略
lvm-pv-uuid-略
scsi-3609999c2222c0aaaaaaaaaaaaaaaaaa
scsi-3609999c2222c0aaaaaaaaaaaaaaaaaa-part1
scsi-3609999c2222c0bbbbbbbbbbbbbbbbbb
scsi-3609999c2222c0bbbbbbbbbbbbbbbbbb-part1
scsi-3609999c2222c0dddddddddddddddddd
scsi-3609999c2222c0dddddddddddddddddd-part1
scsi-3609999c2222c0dddddddddddddddddd-part2
scsi-3609999c2222c0dddddddddddddddddd-part3
scsi-3609999c2222c0dddddddddddddddddd-part4
以下略
今回はSAS規格のHDDなのでscsiから始まるものがHDDである.SATAのHDDを使っている場合ataから始まる.part1等となっているのはディスクのパーティションである.そのためディスクそのものは無印のものである.part4まであるものはProxmoxのインストールディスクである(おそらく普通はpart3まで.個人的用途で4つにパーティションを区切っている).
今回scsi-3609999c2222c0aaaaaaaaaaaaaaaaaaをVMにマウントすることにする.
pve # cat /etc/pve/nodes/servername/qemu-server/100.conf|grep scsi
scsi0: Drive1:vm-100-disk-0,size=45G
scsi0は予約されているため
pve # qm set 100 -scsi1 /dev/disk/by-id/scsi-3609999c2222c0aaaaaaaaaaaaaaaaaa
構文としては
pve # qm set VMid -scsiX DiskNum
再度
pve # cat /etc/pve/nodes/servername/qemu-server/100.conf|grep scsi
を実行するとscsiが追加されているのが分かる.
あとはVMを再起動(おそらくrebootコマンドではなく一旦shutdownしてからProxmox VEのWeb管理画面で再度電源を入れないとダメ)してから
vm # ls /dev
でsdbやsdb1が表示されればOK
Windows等でうまくいくかは知らない
以上