libvirt: monolithic vs modular

libvirt(d)のドキュメントなどを少し読んでます.

もともとlibvirtdは,1つのデーモンで何でもこなすようになっていたようですが,最近では,機能別にモジュール化したデーモンを使う方向に移行しているそうです.

QEMUをhypervisorとするときの担当daemonは,virtqemudだということです.Gentoo(AMD64)の/usr/sbinを覗くと,

ls -l /usr/sbin/virt*
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtinterfaced
-rwxr-xr-x 1 root root  81272 Feb  7 09:09 /usr/sbin/virtlockd
-rwxr-xr-x 1 root root  81080 Feb  7 09:09 /usr/sbin/virtlogd
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtnetworkd
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtnodedevd
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtnwfilterd
-rwxr-xr-x 1 root root 486616 Feb  7 09:09 /usr/sbin/virtproxyd
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtqemud
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtsecretd
-rwxr-xr-x 1 root root 482520 Feb  7 09:09 /usr/sbin/virtstoraged

てな具合です.一方,macOSでは,

ls -l /opt/local/sbin/virt*
-rwxr-xr-x 1 root admin 79152 8 4 2020 /opt/local/sbin/virtlockd
-rwxr-xr-x 1 root admin 80424 8 4 2020 /opt/local/sbin/virtlogd
-rwxr-xr-x 1 root admin 439400 8 4 2020 /opt/local/sbin/virtproxyd
-rwxr-xr-x 1 root admin 434832 8 4 2020 /opt/local/sbin/virtsecretd
-rwxr-xr-x 1 root admin 434832 8 4 2020 /opt/local/sbin/virtstoraged
-rwxr-xr-x 1 root admin 434832 8 4 2020 /opt/local/sbin/virtvboxd

です.virtqemudやvirtnetworkdなどがありません.当然,同時にbuildされた,monolithicなlibvirtdにも,virtqemudなどの機能は含まれていないと想像できます.

macOSで,KVMが機能しないのは解りますが,QEMUも動かないんでしょうか.かつて,Qという,QEMUのアプリがありましたからそうではないと思います.が,MacPortsの中身がさっぱり解らないので,お手上げです.

VirtualBoxは削除

ちなみに,VirtualBoxで動くGentooは,あいかわらずSegfault乱発で,まともに動いてくれないので,削除しました.

MacでQEMUは難航

MacPortsもなんにも知らないで使ってきたのですが,GentooのUSEflagに似たような,Variantというのがあるのを知りました.

MacPortsでは,理由は知りませんが,Apple謹製のXQuartzに変えて,MacPortsによるXorgの移植品を使う方向に切り替えつつあるようです(当社調べ).

で,どうも,Virt-Managerに関連したソフトの一つが,もはやXQuartzをサポートせず,Xorgのみに対応しているようです.そこで,

/opt/local/etc/macports/variants.conf

に,なんやかんや書くようなのですが,どうしたわけか,記憶と実態とが違っているので,中身を掲載するのはやめます(あとで,はっきり理由がわかったら掲載します).

で,なんやかんや書いて,virt-managerまでbuildできて動くのですが,libvirtdを動かしているにもかかわらず,virt-managerで接続しようとしても,繋がりません.

macOSで,virsh uriをroot権限で実行すると,

virsh uri
error: failed to connect to the hypervisor
error: internal error: Failed to create vbox driver object.

という具合にエラーになります.Gentooの実マシンで同様にvirsh uriを実行すると,

virsh uri
qemu:///system

と,教科書通りに出ます.

virsh -Vは,macOSでは,

virsh -V
Virsh command line tool of libvirt 6.6.0
See web site at https://libvirt.org/

Compiled with support for:
Hypervisors: VMware VirtualBox ESX Test
Networking: Remote
Storage: Dir
Miscellaneous: Daemon Secrets Debug Readline

となり,一方Gentooの実マシンは,

virsh -V
Virsh command line tool of libvirt 6.8.0
See web site at https://libvirt.org/

Compiled with support for:
Hypervisors: QEMU/KVM VMware ESX Test
Networking: Remote Network Bridging Interface udev Nwfilter VirtualPort
Storage: Dir Filesystem SCSI
Miscellaneous: Daemon Nodedev Secrets Debug Readline

大きな違いは,MacPort (macOS)のほうは,HypervisorsにQEMUが含まれていないことでしょう.

これが,virsh uriでエラーになり,virt-managerが接続できない原因でしょう.

さて,どうしていいか,さっぱりわからない😥

いろいろ扱いにくいんでしょうね.知らんけど.

すでに花粉を感じてます

今日東京都が,花粉の飛散開始を発表したそうですが,場所の違いはあるとはいえ,同じ関東平野ですが,もう一週間くらい前から花粉を感じています.

一昨年の10月から舌下免疫療法を続けていて,スギ花粉は2シーズン目となります.昨年の一シーズン目よりも,早くきつく感じているので,舌下免疫療法を始める前に使用していた飲み薬のザイザルと,点鼻薬のエリザスの使用を何日か前から開始しています.

昨年のスギ花粉シーズンは,非常に楽だったようです.

今年は例年より少ないけれど昨年よりは飛散量が多いと予想されているので,舌下免疫療法だけで,飲み薬も点鼻薬も使用しない,というのは無理なのかもしれません.

2021年2月8日

やるきの出ない日

昨日は久しぶりに,というか,どのくらい久しぶりかも思い出せないのですが,全くやる気が出ない日でした.

日曜日はもともと庭仕事など,怪我をする可能性のあることはしないことにしていますが,それでも,パソコンいじりすらする気がしないレベルでした.

そう言えば,現役時代,出勤してもやる気が出ない日がけっこうあって,そういう日は,頭を使わなくてもできる仕事をこなし,それがなくなれば,仕事なのか仕事でないのかグレーゾーンのパソコンいじりをして,休み時間などに「本日は給料泥棒モード」などとSNSでつぶやいたりしていたものです.

今は,やる気が出ない日は何もしないでごろごろしていますが,何かこのまま二度とやる気が出ないまま一生を終えるのかななどという不安に襲われます.

しかし,実際はそんなことなくて,たいてい翌日には,特にはりきったり,気合いを入れなくても,わりとめんどうな作業をするのも苦ではなくなります.

だから,やる気が出ない日の自分に言いたいのは,「やる気がない日はあせらずにだらだらしていなさい」ということです.

Gentoo (36) あるアプリを特定の言語で走らせる

具体的には,virt-mangerを英語で走らせたいのです.

そもそも,コンピューターであれスマホであれ,アプリケーションのメニューやダイアログは英語で表示してほしいと常々感じています.英語版のMac OS 7に,GomTalkを使って日本語化して使った快適さが忘れられません.

日本語は必要だけど,それは,日本語のドキュメントが読み書きできる環境のみで十分です.十分というか私にとってはむしろ必要十分条件です

特に,トラブったときに,日本語のエラーメッセージが吐き出されても,なかなか解決のいとぐちにたどり着けません.

で,今取り組んでいるMacPortsのQEMU/virt-mangerの取り組みのリファレンス用に,Gentooで走っているvirt-managerをpureな英語環境で走らせたいのですが,日本語リソースを組み込んだまま完全な英語環境で走らせるのはGentoo初心者にはなかなかハードルが高くて,それならいっそ日本語なしのアプリを構築してしまえと,調べること数時間😥,ようやくわかりました.

lightdm, libvirtとvirt-mangerに,-linguas_ja というUSEflagを設定してbuildし直すことでできたようです.これも,Gentooの習熟者には簡単なことなのでしょうけど,見つけ出すのに苦労しました.それで,今後も同じことで悩むでしょうから書いてます.

System wideに-linguas_jaというわけには行かないので,/etc/portage/package.useの中に,アプリを指定してフラグを立てました.

FirefoxやThunderbirdも英語版(US)を使ってます.
というか,KDEかも.
たぶん,lightdmは関係な問思います.
どれだけのパッケージが再ビルドされるか計り知れないの😓