QEMUでtapなブリッジネットワークをsystemd-networkdで使う

最初は上記URLのArchWikiの内容みたいにqemu-ifupやqemu-ifdownを使った方法でやっていたが、仮想マシンの起動と終了時にホストのネットワークが途切れるという問題が起こっていた。systemd-networkdで何とかしようと思ったが、どうもうまく行かなかったので、しばらくはArchWikiの様な方法で放置していたが、さっき調べ直して設定し直した。
そうしたら、ネットワークが途切れるという問題は解決した様だ。
/etc/systemd/network/*は次のようにした。
/etc/systemd/network/bridge.netdev

[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/bridge.network

[Match]
Name=br0

[Network]
DHCP=ipv4

[DHCP]
ClientIdentifier=mac

/etc/systemd/network/en.network

[Match]
Name=en*

[Network]
Bridge=br0

/etc/systemd/network/tap.netdev

[NetDev]
Name=tap0
Kind=tap

/etc/systemd/network/tap.network

[Match]
Name=tap*

[Network]
Bridge=br0

そして、qemuに渡す引数は次のような感じだ。

-netdev tap,ifname="tap0",id=mynet0,script=no,downscript=no \
-device virtio-net-pci,mac="(ランダムなMACアドレス)",netdev=mynet0

QEMUの仮想HDDにTrimやDiscardを送信出来るようにしたい

-drive file=windows10.raw,format=raw,if=virtio,discard=on
これではだめだった。

-drive file=windows10.raw,format=raw,if=none,discard=on,id=hda \
-device virtio-scsi-pci,id=scsi \
-device scsi-hd,drive=hda

こんな感じで、virtio-scsi-pciを使うと、トリムできるようになる。