いろいろあって、今まで録画サーバは FreeBSD 12.3-RELEASE を使っていたのだが、そろそろEOLになっちゃうので、13.1 にアップグレードすることに。
で、なにも考えずに更新かけてもよかったのだが、録画サーバなので録画できなくなったら困る。ということで、まずは 12.3 の上の bhyve に 13.1 をインストールして
少なくとも pt3 のドライバが make できるか試してみることにした。
結果から書くと、一行だけソースを変更すれば make は通り、実際に動くことも確認できました。
以下、その記録。
書いておかないと忘れちゃうからね。
***** 注 意 *****
作者の方も指摘している通り、まだいろいろ作業中で、重大な変更があるかもしれません。
また、FreeBSD をサーバに使うのは推奨環境ではありません。
くれぐれも作者の方に文句を言わないこと。
足元が濡れていて滑ります。ころんでも泣かない人だけどうぞ。
ということで、入院中もテレビを見るのに大活躍してくれたKonomiTVですが、
最新版の master はいろいろと機能が追加されていて、面白そうだったので最新にアップデートしてみることにしました。
そのうえで、いろいろ試してみて気が付いた点などを書いていきます。
例によって例のごとく、サーバは FreeBSD で qjail で環境を作ります。
FreeBSD は推奨環境ではありませんが、どうにかこうにか動かすことはできます。
また、最新の KonomiTV は https 化必須なので、事前に自ドメインのワイルドカード証明書を取ってあるものとします。
はまりポイントは3つです。
1. lo0 に 127.0.0.77 を割り当てる
2. Letsencrypt で dns 認証で証明書を取っておく。独自ドメインを持っていることが前提。
3. python3 で pip がみつからない問題の解決。
以下に順を追って説明します。example.org は自ドメインに置き換えてください。
みんな大好きzfs(断言
ということで、うちの二大サーバのベースのファイルシステムは zfs を採用しています。
ファイルサーバに至ってはFreeBSD 8.0 のころから継ぎ足し継ぎ足しで、ローリングアップデートして
HDDの交換をして使い続けているわけですが、今までFSが原因でファイルをロストしたことがないので
ものすごく信頼して使っています。(バックアップは重要)
ということで、お仕事関係の税務処理とか、請求書発行システムとか、いろいろ重要なのも動いている
のですが、そのマシンに、以前、zil とl2arc として mvme の ディスクを追加して、さらなる高速化を
求めていました。その nvme のディスクが死にました。
zil が死ぬと、fs をマウントできません。そのため、zfs root のマシンでは、再起動かけてしまったら
コンソールで作業しないと、立ち上がってこないままになります。ちなみにうちのサーバは二台とも
モニターにつながっていませんので、いきなり詰みます。
でも大丈夫、FreeBSD にはシリアルコンソールという素敵な機能があって、シリアルポート経由で
あれこれできたりします。
ということで復旧方法。
何はともあれ、まず壊れた mvme を除去します。
次に、電源を入れてzfs がマウントできる CD とか、USBメモリから立ち上げます。
あとは zpool import -m -f してあげて、import できたら、zpool status して、
いなくなっている zil を remove してあげればおけおけ。
同様に、見えなくなってしまった l2arc も remove してあげましょう。
これであとは再起動すれば、通常の zfs root で立ち上がってきます。
めでたしめでたし。
というわけにはいかないのでした。
落穂ひろい。
その1,その2まで書いて、実はいろんなところで問題にぶち当たっていて、それに対してどうしたかっていうまとめ。
なんだろう、踏まなくてよい地雷を踏んでいる気がする。
ということで、つづき。
留守電機能を追加するために、voicemail を設定していきます。
厳密にいうと voicemail は留守電とは違うんだけど、運用でカバー。
以前より、自宅の電話はひかり電話を使っています。
これ、IP電話なので、普通にスマホと接続したり転送したりすることができます。
そのまま使っても別段問題ないのですが、せっかくなので asterisk とつないで遊んでみます。
テレビの録画に関しては、EPGStation がほぼ完ぺきな動きで、ここ何年か特に問題もなく暮らしてきたのですが、リアルタイムでの視聴は、いまだに TvTest を使っていました。
時々テストで VLC とか使ったり、最近の Mirakurun の IPTV 対応に喜んで、IPTVクライアントをいろいろ試してたりもしてたのですが、なんだかんだで最終的に TvTestに戻ってきてしまって「まあ動くからいいか」という感じだったのですが、
やっぱりだらだらソファーでごろ寝しながらタブレットでみたいよね。ということで、TVRemotePlus は気になっていたのですが、いかんせんWindows でしか動きませんでした。
ところが最近同じ作者の方が、Konomi という Python で動く同じようなソフトを公開し始めたので、さっそく試してみました。
https://github.com/tsukumijima/Konomi
お約束:
例によって例のごとく、FreeBSD 上の qjail 環境に jail を1つ立てて、その中で動かします。
Mirakurun は別の jail で動いています。
とりあえず、QSVエンコードは使える CPU ですが、今回は使いません。
当然のことながら、作者の推奨環境ではありませんので、動かなくても泣きません。
FreeBSDネイティブの docker はまだか。
まだです。
ということで、これに手をつけだすと沼にはまりそうな気がするので保留して、軽量 Linux ディストリであるところのAlpineLinuxをインストールして、その上で Docker を動かすことにする。
まあ、これと言ってはまる要素はないはずだったのだが、はまったので記録として残しておくことに。
IPv6 理解した。って言えるようになりたい。
FreeBSD のサーバの設定をしていて、pf を使うと IPv6 で SSH が通らなくなってて、ちょっと不便だったので本腰を入れて調べてみたら通さなないといけないパケットを落としてたという、まあよくありがちが話なんだけど、ちょっとぐぐってみた限りではわからなかったのでここに記録しておく。
わかってしまえば「ああ、なるほどねー」という話だったのだが。
IPv6 で通信をするさいには ICMPv6 の 134,135,136 を通さないと通信できなくなってしまうため、SSHのみならず、その他すべての通信に支障がでるのでありました。
結果として
を /etc/pf.conf に追加してあげれば通るようになる。
パケットの気持ちになって考えるのはむずかしいのう。
参考URL:02-06 IPv6では重要な役割を担うICMPv6とリンクローカルアドレス
https://www.vwnet.jp/IPv6ImplementationGuide/02/02-06.htm
ファイルサーバのメモリを増やそうと思って、いろいろあって録画サーバのメモリが増えることになったのだが、ファイルサーバのメモリが足りていないのも放置してはおけないので、とりあえず対策をすることに。
とりあえず、スワップを nvme デバイスに取るかってことで、ついでに zil と l2arc も追加。
このへん、はまることもなかんべと思ってたら意外にもはまったので、記録として残しておくことに。
たぶん、未来の私が感謝する。