サーバーはDebianでいくことに

サーバーのdistroをGUIの動く64bit OSに切り替えるプロジェクト

Manjaroは,workstation (WS)としては優秀ですが,KVMのIPv6設定で苦戦するなど,システムいじり的に難航したこともあり,Debianで行くことにしました.

Raspberry Pi OSはDebian由来ですが,DebianそのものをRaspberry Piで動かすことができるとつい最近知りました.さっそく予備機扱いのRaspberry Pi 4 Model B 4GB RAM (RPi4 4GB)で試してみました.

DebianのサイトからダウンロードしたイメージにはGUIは含まれていません.いったん,apt update ; apt upgradeをした上で,kde-plasma-desktop, kde-full, fcitx5-mozcの順にインストールすると,Mozcで日本語入力できる,KDE Plasma Desktopが完成します.

kde-fullは,kde-plasma-desktopを含んでいるはずですが,先にkde-plasma-desktopをインストールした上で,kde-fullをインストールしないと,なんか変な状態になります.

また,fcitx5でなく,fcitxをインストールしてしまうと,removeしてからfcitx5-mozcをインストールしてもちゃんと機能してくれません.

こんなわけで,インストール過程では行きつ戻りつができないこともあり,新規にやり直して,ようやく4度目で思ったようなGUIのシステムができました.

その他のプジェクトの状況

Paspberry Pi 3 Model B(+)で監視カメラのストリーミング映像を見るプロジェクト

強制空冷式ケースの輸入に難航中.

仮想マシンのIPv6化プロジェクト

SLAAC, DHCPのどちらの方法でも仮想マシンがグローバルIPアドレスを取得できるようになりましたが,IPv6でインターネットに出られないまま進展なしです.

Wi-Fiルーターからデータが途絶する条件の絞り込み

その後データ途絶が発生していません.テレワークでクラウドを使うという一番Wi-Fiのヘビーユーザーの家族がいますが,仕事中にまた途絶しては困るので別のルーターからつなぐようにしたこともあって,トラブルが出にくいのかも知れません.トラブルが出ないならそれはそれでいいのですが.

仮想マシンのIPv6現状 (2) 6年前よりちょっと前進

ちょっとだけ進みました.仮想マシンが取得するIPv6のアドレスを,意図したとおりに,

  • IPv6のDHCPで与える
  • SLAACで降って来る形で与える

が可能になりました.仮想マシンがSLAACでIPv6のグローバルなIPアドレスを取得できたのは,今回が初めてではないかと思います.

なお,DHCPの場合は,Gentoo Wikiに書かれている通りでいいですが,SLAACで与えるには,IPv6の仮想インターフェース(virbr0など)をpreifxが64bitにしないとだめなようです(Gentoo Wikiの例では96bitにしている).

その “正しい” 方法は,libvirtのドキュメントに書かれているそのまんまです😥

あとは,ルーティングの問題ですが,DHCPにしても,SLAACにしても,アドレスを取得した仮想マシンのそのままのルーティングではなんにもできないようです.

それで手動でルーティングの設定を,ああでもないこうでもないといろいろ試していますが,今のところちっともうまく行っていません.

ホストのManjaroが,IPv6を転送しない設定(または仕様)なのかなと感じているほどです.

DHCPの場合は,prefix 96bit長でも大丈夫です.96bit長や,112bit長にしたほうがルーティングしやすいように思いますが,まだ,仮想マシンからインターネットにIPv6で出られないので,なんとも言えません.

仮想マシンのIPv6

そう,仮想マシンでIPv6が使えないというのは,3年前までのIPv6環境でも認識していました.

昨日1日,いろいろやってみましたが,その中で過去もこういうことをやってうまくいかなかったと思い出しました.しかし,BLOGや内部文書にも一切記述がありませんから,今回のようにまる1日かそれ以上費やしていろいろやったけど,成果が何も無いから記録も残さなかったようです.今回は,次回のため😓に,自分用の記録(データベースの1データ)として書いときます.

参考にしたのは,

です.この記事も見覚えがあるので,たぶん前回も参照したようです.

他も都度都度検索しましたが,やりたいことに直接結びつく情報はありませんでした.

それで,1日取り組んだ結果として,上記の記事を元に,IPv6のDHCP設定をすれば,仮想マシンがglobalなIPv6アドレスを取得して,LAN内のグローバルなサーバーにIPv6接続できるが,LANの外にはIPv6接続できない,という状況までたどり着きました.

外に出られない原因は推測ですが,

  • KVM / QEMU / libvirt のバグ,または仕様(または設定の問題)
  • LAN内のIPv6のマネージメントの問題
  • Nuroお仕着せルーターの仕様または,バグ,または設定の問題

のいずれか,または複合した問題と考えられます.もちろん,いずれのケースでも筆者がIPv6を理解していないための設定の不具合の可能性があります.

上記のGentoo Wikiの記事どおりにしても,DHCPを使わないとIPv6のグローバルなアドレスが降ってこないあたりに,libvirtの問題があるようにも思います.

おまけ: 仮想マシンのホストが飛びました

夜,そろそろ終わりにしようかと思ったら,KVM / QEMU / libvirtを動かしている仮想マシンのホストが飛びました.キーボードの操作に無反応ですが,GUIはそのままで,しばらくするとシステムをモニターしていたgkrellmの表示が止まり,時計も動かなくなりました.

やむなくリセットボタンを押しましたが,UEFIが認識されず,このサブworkstation(WS)のメインOSであるManjaroがブートできなくなりました.

バックアップ用ディスクにメインのディスク(SSD)の別パーティションにインストールしてあるDebian (サブWSのサブOS)がブートできるようにしてあり,そちらからはブートできましたので,メインのSSDがハード的に故障したのではなさそうです.

また,Debianから飛んだManjaroのパーティションをfsckすると,エラーなしです😓

これも思い出しましたが,以前も仮想マシンいじりをしていたら,ディスクコントローラーがおかしなことになり,ソフト的にディスクを破壊したことがありました.

今日は,メインOSの復旧に費やしそうです.

仮想マシンもネットが速い

LinuxのKVM/QEMUはよくできた仮想マシン環境だと思います.仮想マシン(Manjaro AMD64のlibvirt / KVM / QEMUの環境)でiNoniusのスピードテストをすると,この結果です.ゲスト(仮想マシン)は,Ubuntu x86_64です.

一方,macOSのVMWare Fusionではこのスピードです.こちらもゲストはUbuntu X86_64です.

問題としては,どちらもIPv6に対応してない点です.これは,3年前までのIPv6環境でも認識していて,多少調べたり試したりしましたが,全く力及ばずでした.

Manjaro ARM でサーバー (1) 当面の方針

Slackware ARMはあきらめてManjaro ARMに移行する方針を定めましたが,その方針にそって,Manjaro ARMでサーバーを動かすためには,まずMariaDBをインストールというか,Slackware ARMで動かしている内容をクローニングしなければなりません.

しかし,Raspberry Pi (RPi)でいろいろやるのはスピードが遅いので大変ですから,ここは,Manjaro AMD64 (x86_64)でいろいろ試して,最善手・最短経路を見出してから,RPiへの移行を実践するのが良さそうです.

手順としては,システムやWordPressが送り出すeMailの配信関係の整備が必要なのでDovecotとPostfixをインストールして,最低限の設定をするのから着手しようかと思いましたが,Postfixはデータベースと連携するようなので,MariaDBが先のようです.

せっかくいい感じのworkstation (WS)に仕上げてきた,Manjaro AMD64をグシャグシャにするのも嫌なので,空いているSSDにクローニングして,そちらで試すことにします.

目標達成のための当面の手順は次のようになります.

  1. MariaDBのインストールと初期設定.
  2. MariaDBにメインサーバーのバイナリーデータをコピーして正常動作するか試す.
  3. うまく行けば,5へ.
  4. うまく行かない場合は,データベースごとにexport / importを繰り返してデータの移転をする
  5. Postfixをインストール(MySQLを使うオプション)
  6. 最低限の初期設定を行う.
  7. Dovecotをインストールして設定(Dovecotはいくつかのマシンにインストール&設定して使えているので問題はないと思う)
  8. Postfixのチューニング

ここまでうまく行ったら,Manjaro ARMの方で同じような設定を行うことにします.