こんにちは。
今回はクラウドでなくオンプレミスの話をしたいと思います。
自宅TVサーバーについて
概要
皆さん自宅TVサーバーという概念をご存じでしょうか。
TVチューナ-を備えた機器(サーバー)を用意し自宅内で稼働させることを指します。
TVサーバーのソフトウェアの構成としては以下が多いと思います。
- OS : 各種Linux
- TVチューナーサーバー : Mirakurun
- TV視聴・録画再生アプリ : EPGStation
この構成のサーバーを用意することで、自宅内のPCやスマホ/タブレットでTV視聴や録画・再生を楽しめるようになります。
EPGStation経由でブラウザからリアルタイム視聴や録画・再生もできますし、TVTestアプリケーションからMirakurunに接続してリアルタイム視聴することも可能です。
我が家のTVサーバー
我が家では2017年頃からTVサーバーの運用を開始しています。
旧来のハードウェア構成は以下の通りであり、2012年に構成した(クラウド移行前の)自宅サーバーのハードウェアを流用し、2019年にOSを入れ替えて運用していました。
- CPU : Intel Atom D2500 1.86GHz (2core/2Thread)
- マザーボード : Intel BOXD2500HN (CPUオンボード)
- メモリ : DDR3 SO-DIMM 4GB
- SSD(OS用) : 128GB
- HDD(録画用) : 3TB
- TVカード : アースソフト PT2
- OS : CentOS7
このマザーボードでは オンボードでCPUが搭載されており、ファンレス構成になっています。
自宅サーバーにおいてファンレスは正義ですね。この前世代でもオンボードでCPUが搭載されているマザーボードを利用していたのですが、ホコリでCPUファンが固着しCPUが焼け死ぬという事態になったので、一般家庭での長期運用には省エネかつファンレスの要件は外せないかと思います。
課題と対応
さて2012年製のマザーボード・CPUで長らく運用していたものの課題がありました。
- CPUパワー不足
EPGStationでのストリーミングエンコード不可。録画データのエンコード時間は放映時間の約4倍。 - HDMI端子がない
モニター接続に課題 - HDDの耐久性
廉価な機種を選んだので不安
これらの課題があり以前からリニューアルしたいと考えていましたが、ファンレスのCPUがオンボードに搭載されており、更にPCI(Express)スロットも搭載されているマザーボードは選択肢がほとんど無く、登場待ちとなっていました。
先日、丁度この要件にジャストフィットのマザーボードが登場したので、2024/6末でのCentOS7のサポート切れを機にリプレイスすることにしました。
新ハード
今回利用したマザーボードは ASUS Prime N100I-D D4-CSM、Intel N100が搭載されたマザーボードです。
ベンチマーク値では旧CPUの約8倍ものスペックで消費電力はほぼ同等であり、隔世の感は否めません。
このマザーボードを利用し、以下のような構成で組みました。
- CPU : Intel N100 (4core/4Thread)
- マザーボード : ASUS Prime N100I-D D4-CSM
- メモリ : DDR4 SO-DIMM 16GB
- SATA SSD(OS用) : 256GB
- M.2 SSD(録画用) : 4TB
- TVカード : アースソフト PT3 ※メインPCから移設
- OS : AlmaLinux9
OSについては、長期間利用することを前提にサポート期間優先でAlmaLinux9を選定しました。
(2032/5までサポート予定)
M.2 SSDは、いわゆる「蝉族」のSSDを今年1月に購入していたのでそれを流用。
今は値上がりしているので、良い時期に買えました。
メモリ、M.2 SSDなど搭載した様子。オンボード・ファンレスのため大変スッキリしています。
SATA端子が少なく(1つ)、ストレージの内部拡張性が少ないのが少し残念なところ。
チューナーカード(PT3)はPCI Express x1スロットに。ジャストフィット
背面には端子が多く拡張性抜群。なんとPS/2端子やシリアル端子まである。
このマザーは産業用途にも使うことを想定しているのかと。
セットアップ
mirakurun + EPGStaion がコンテナでセットで配布されているので、今回はこれを利用しました。
手順は他の方から多く発信されているので、ポイントだけ記載し詳細は割愛します。
OSインストール
AlmaLinux9をUSBメモリ(DVD ISO書き込み)から起動しインストール。
コンテナイメージの保存先(/var/lib/docker) を確保するため、/var は大きめに確保すること。
LVMを用いて後から拡張できるようにすることが望ましい。
メモリを多く消費することはないので、swap領域は最小限でOK。
M.2 SSDをマウントする。
Windows PCから参照したければ、Sambaを導入する。
デバイス認識等
チューナーカード(PT3)のドライバ導入し認識させる(※ 今回はchardev版を導入。詳細は後述)
USB ICカードリーダーのドライバを導入し認識させる。
なお、ホストOSにてpcscdは停止させる。
libarib25と、recpt1アプリを導入。
recpt1アプリで録画をテストする。
mirakurun&EPGStation導入
Dockerをインストールする。(Podmanではなくリテールの方で)
配布されているイメージをGitHubよりダウンロードし展開。
docker-compose.ymlを修正(ディレクトリやデバイスのマッピング、ポート番号)
設定ファイルにてチューナーデバイスやチャンネル設定を手動で行う。
マニュアルに従いdocker-composeコマンドでインストール。
mirakurunコンテナに入り、recpt1コマンドのインストール。
docker-compose.ymlを編集し、保存したイメージから起動するように変更し、再インストール。
最後にホストOS上でもFirewalldでポートを開放する。
所感
この手順でインストールでき、無事動作しました。
なおOSについては以前からCentOSを使い慣れていることとサポート期間重視でAlmaLinux9を利用しましたが、本用途にはDebian系の方が良いかもしれません。
mirakurunコンテナがDVB版ドライバを前提に構成されているのに対し、AlmaLinux9ではインストールされないため不整合となり、結果としてコンテナ内にrecpt1を導入する対応をしました。
恐らくDebianではこの対応は不要かと思います。
成果
最後に成果をまとめて終わりにしたいと思います。
- CPUパワー強化
エンコード時間は放映時間の4倍から、概ね0.6倍程度(要するに1.5倍速)まで高速化しました。
EPGStationストリーミングエンコード(1080p)中のCPU使用率は概ね50~60%程度で、問題なく利用できるようになり、スマホやタブレットからも視聴できるようになりました。 - HDD⇒SSD化
高耐久と低消費電力にも期待 - OSサポート
2032年まで延長 - アプリケーションの進化
概ね5年振りのリプレイスだったので、Mirakurun + EPGStationの進化を感じた
ということで良いことずくめでした。
一般の方にはハードルが高い分野ですが、腕に覚えがある方はチャレンジする価値があるかもしれません。
コメント