2024年01月07日

New(2024) ご自宅サーバー構築 その4

Docker を追加したら、二つの問題がKVM上のVMに発生した。

1. VM とホストシステムは通信できるが、他のシステムとの通信ができなくなった。
2. ホストシステムのネットワークI/FのRX Dropped カウンターが、ゆっくり時間と共に増えています。

VMと他のシステムの通信の問題は、
Docker がカーネルのパラメータを変更したようだ。
https://inoccu.com/blog/2018/05/17/161848.html
を参考に以下の二つのファィルを作成して、ホストシステムを再起動。
これで、解決。

RX のDrop の問題の解決策はまだ発見されず。
Docker + KVM の構成は、再考が必要そうだ。(私の技量が足りないとの意味で)


# cat /etc/udev/rules.d/99-bridge.rules
ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/lib/systemd/systemd-sysctl --prefix=/net/bridge"
# cat /etc/sysctl.d/bridge.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
posted by kuma SF-Z at 09:28| Comment(0) | ソフトウェア 修理/改修

2023年11月02日

New(2024) ご自宅サーバー構築 その3

https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2033957

virtiofs によるHostとGuestシステムでのファイル共有にはまる。
何か、最近実装が進んだみたいで、インターネット上の情報が一定しない。

1. GuestVM が停まっていることを確認
$ virsh list --all
2. GuestVMの設定の追加
virsh edit VM
<domain type='kvm'>
...
<memoryBacking>
<source type='memfd'/>
<access mode='shared'/>
</memoryBacking>
...
<devices>
...
<filesystem type='mount' accessmode='passthrough'>
<driver type='virtiofs' queue='1024'/>
<binary path='/usr/lib/qemu/virtiofsd' xattr='on'>
<cache mode='always'/>
<lock posix='on' flock='on'/>
</binary>
<source dir='/export'/>
<target dir='mytag'/>
</filesystem>
...
</devices>
<</domain>
3. GuestVMの始動
$ virsh start testvm
4. GuestVM上でファイルシステムのマウント
# mount -t virtiofs mytag /mnt
posted by kuma SF-Z at 00:00| Comment(0) | ソフトウェア 修理/改修

2023年11月01日

New(2024) ご自宅サーバー構築 その2

PCIカードのPass Though の設定で悩む。

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/virtualization_administration_guide/chap-guest_virtual_machine_device_configuration
https://www.si1230.com/?p=46840
https://www.osarusystem.com/misc/tv_server_with_kvm.html

1. パススルーするディバイスのVID(ベンダーID)とPID(プロダクトID)を確認する
# lspci -nnv
2.IOMMU をKernelにロードの指示をBoot時のオプションに付け加える。
2.1 設定ファイルの更新
# vi /etc/default/grub
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt vfio-pci.ids=VID:PID"
を追加
2.2 Grubの設定に反映。
# sudo update-grub
2.3 新しいオプションと共にシステムを立ち上げる。
# shutdown -r now
3. IOMMUがイネーブルされているか確認
# dmesg | grep IOMMU | grep enabled
[ 0.124024] DMAR: IOMMU enabled
4. パススルーするディバイスがVFIO管理下にあるか確認
# lspci -nnv -d VID:PID
Kernel driver in use: vfio-pci
5. VMの設定変更
5.1 カードのPCIアドレスを確認する
# virsh nodedev-dumpxml pci_0000_XX_YY_Z
<address domain='0x0000' bus='0xXX' slot='0xYY' function='0xz'/>
5.2 VMをシャットダウンする
# virsh shutdown VM ; virsh list --all
5.3 VMの設定ファィルの変更
# virsh edit VM
<devices></devices>の間に追加します。

<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0xXX' slot='0xYY' function='0x0Z'/>
</source>
</hostdev>
posted by kuma SF-Z at 01:39| Comment(0) | ソフトウェア 修理/改修