#Kubuntu20.10をiPXE iSCSIブート
標準のインストーラではiSCSI LUNを認識してくれず直接インストールできないようです。
一旦、KVMでiSCSIのLUNを物理ディスクと認識させて普通にインストールしたあと。
# apt install open-iscsi
# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.xxx
# vi /etc/iscsi/iscsi.initramfs
ISCSI_AUTO=true
# vi /etc/iscsi/iscsid.conf
node.startup = automatic #有効にする
# node.startup = manual #無効にする
# update-initramfs -u
あとは、iPXEで、
set initiator-iqn iqn.xxx
set root-path iscsi:xx.xx.xx.xx::::iqn.xxx
set keep-san 1
sanboot ${root-path}
exit
##(ここからが本題)
もともとKubuntu20.04をAMD B450+2000G上で動かしていました。そのときは上記でいけてました。
AMD B550+4000Gに買い換えたところ、、、
KVMゲストがオンボードのNICを認識しなくなりました。
Kubuntu20.10のKernel5.8だと直っているようだったので、バージョンアップしたところ、、、
initramfsでIPが降ってくる前に、iSCSIのrootボリュームをマウントしに行こうとして、
iscsistart initiator reported error (15 - session exists)
でBusyBoxに落ちちゃうようになりました。
うちの環境ではDHCPの反応が遅い(?)せいかな。
で、initramfs内のiSCSIスクリプトに適当にパッチをあててみたらうまく行きました。
# cp -rp /usr/share/initramfs-tools/scripts/local-top/iscsi /etc/initramfs-tools/scripts/local-top
# vi /etc/initramfs-tools/scripts/local-top/iscsi
:
if ! [ -e /run/initramfs/open-iscsi.interface ] ; then
:
fi
# ここから:追加(220行目あたり)
/usr/bin/ip link set ${DEVICE} up
busybox sleep 30 # 適当にsleepを入れる
# ここまで:追加
modprobe iscsi_tcp
modprobe crc32c
:
('21/01/24.追記、ここから)
Kernel5.8.0.40.44、にバージョンアップすると起動時エラーがでるように、、、
mdadm: error opening /dev/md?*: No such file or directory
RAID使っていないので除外すればいいだけのようです。
# vi /etc/mdadm/mdadm.conf i
:
# 末尾に追加
ARRAY <ignore> devices=/dev/sdX
('21/01/24.追記、ここまで)
# update-initramfs -u
これで行けるかも。
あまり情報なかったのでここに書いてみました。
##(20.10でのGPUパススルーバグ暫定回避策の話)
別記事にしようと思ったのですが、30分ほど待てといわれた。
これは調べたらすぐわかることなので、関連しているので一つにまとめてもいいかなと思いここへ。
5.8でKVMパススルーすると仮想マシンが起動しなかったです。
WARNING: CPU: 7 PID: 2524 at fs/eventfd.c:74 eventfd_signal+0x88/0xa0
バグのようです。https://bugzilla.kernel.org/show_bug.cgi?id=209253
暫定回避策も上記に書かれていますが、オプションを追加するだけ。
# virt-xml "machine_name" --edit --confirm --qemu-commandline '-global vfio-pci.x-no-vfio-ioeventfd=on'
<qemu:commandline>
<qemu:arg value='-global'/>
<qemu:arg value='vfio-pci.x-no-vfio-ioeventfd=on'/>
</qemu:commandline>
まだたまに落ちますが、、、