自宅のファイルサーバー兼オーディオサーバーを仮想化基盤上に構築したのが3年前。その後Roon ARCが登場しカーオーディオでも便利に使っていますが、vSphere Hypervisor(ESXi)の無償版はvmware社の買収を機に提供終了となってしまい見直しが必要になりました。
稼動中のシステムを大急ぎで更新したためダイジェストのレポートとなります。本来システム更新に強いはずの仮想化なのに、基盤が無くなったのでは致し方なし。
無償版ESXiの利用期限について
自分が使っているESXi7のサポート期限は2025/4/2まで。ESXi8なら2027/10/11までですが、既にインストーラ・ライセンスともダウンロードできなくなっておりこれらを入手済みの人以外8へのアップグレードはできません。
サポート終了後も使い続けることはできますがESXiを狙ったランサムウェアなどもあり、7以前の人は早めの移行をオススメします。
(2025/4/15追記)
無償版ESXi8の提供が再開されました。うれしいが戻るかといえば・・・PVEが安定動作したしHomebridgeも便利だし、というわけで今すぐには無いかな。
ソフトウェア
こんな構成で計画しました。NASに保存した楽曲ファイルをRoonのサーバー(コア)で再生するシステムです。ホームオーディオはRoon、カーオーディオもRoon ARCがメインになったので、DLNA/UPnP対応は今回無し。
Proxmox Virtual Environment (VE)は、Linuxベースの仮想化基盤。サポート無しなら無償利用可能です。
KVMによるハイパーバイザー機能とLXCによるコンテナ機能の両方を備えた多機能環境で・・・なんかピンと来ないので使って確かめることにします。
実はProxmox VEにはZFSによるファイルサーバー機能があり、後で紹介するTrueNASにも仮想化ホスト機能があったりするのですが、今回はオーソドックスに「餅は餅屋」の方針としました。
オーディオ用なら、NASとRoonは別PCにしてリニア電源駆動、さらにSFPで繋いだりした方が良いんですかね?仮想化してネットワークの電気的動作がないのとどっちが有利なのか、それも面白そうなテーマですが自分は使い勝手優先で行きます。
ハードウェア
PC本体:PN41(ASUS)
RAM:W4N3200CM-8GR DDR4-3200(PC4-25600) 8GB×2枚 (Crucial by Micron)
M.2 SSD:SNVSE/500G Kingston SSD NV1-E 500GB M.2 2280 NVMe(キングストンテクノロジー ) ※画像のキオクシアから変更しています
SATA SSD:WDS200T1R0A-EC WD Red SA500 2.5インチSSD 2TB(Western Digital)
PCは前回のまま。Jasper Lakeで省電力、手の平サイズのミニPCです。4コア、16GB、500GB+2TBの構成ですが仮想化環境ではコアとメモリーは多いほど使いでがあります。Jasper LakeなどAtom系列のCPU(最新はAlder Lake-N)ならPコアとEコアの割り当てに悩むことがなく使いやすいです。
M.2のSSDはProxmoxおよび仮想マシンのシステム用、NASのデータ用にSATAのSSDを割り当てます。
HomePod mini(Apple)
HomePodは音楽再生用ではありません。ちょっと便利な使い方を最後に紹介します。
Proxmox VEのインストール
既に多くの方が記事にされており情報には困りません。
今回こちらを参考にさせていただきました。ありがとうございます!
ProxmoxVEのインストール - New technologies in our life
Proxmoxの公式サイト からダウンロードしたISOファイルでインストール用USBメモリーを作成します。作成用アプリは
Rufus や
Etcher など。最近は
Raspberry Pi Imager をよく使っています。
HDMIポートにモニター、USBポートにキーボードを接続してローカルコンソールとします。
BIOSで起動順序をUSBメモリー優先、仮想化支援機能を有効に設定。作成したUSBメモリーで起動するとインストーラが立ち上がります。
3%で止まるのはあるあるらしい。焦らず待つ。
一通りインストールが終わったらローカルコンソールの役割は終了。キーボードは後で使うのでそのまま、モニターは外しても大丈夫です。以降はネットワーク上の別のPCから操作できます。
ブラウザでProxmoxVEのIPアドレスを開くと管理画面にアクセスできます。VMの作成・起動などここで操作可能で、ESXiと比べても違和感ありません。ProxmoxやNASのアドレスは(RoonもルーターのUPnPが安定しない時は手動でポート解放を設定することになるので)固定しておいた方が便利でしょう。
TrueNAS Coreのインストール
ファイルサーバーは前回に続き
TrueNAS を使用します。業務用途にも使用可能な高速・高信頼性を誇るNAS用アプライアンスです。自宅でも3年間停電以外で止まったことはなく極めて安定しています。
TrueNASは現在
・従来からのFreeBSDベースの
TrueNAS Core
・新しく登場したLinuxベースの
TrueNAS Scale
の二本立てとなっています。どちらにするか?
最新のハードウェアに素早く対応するためにLinuxの力を借りたい、ということのようですが今回ハードウェアは仮想化するのでそのメリットは無し、というか、最新ハードでもジェネリックに見せられるのは仮想化のメリットです。よって信頼と実績の(古いSMBv1も使える)Coreを選択しました。いずれはScaleに一本化されてゆくのかもしれませんね。
仮想マシンのセットアップはESXiとほぼ同じ感覚でできました。
インストール用ISOファイルをアップロードしておき、
仮想マシンのスペックを設定。2コア/8GB/32GBを割り当てました。
ISOファイルは仮想的な起動用CDドライブに指定します。
PuTTY でSSHを開き
root@pve:~# ls /dev/disk/by-id
データ用SSDのIDを調べて
root@pve:~# qm set 100 -scsi1 /dev/disk/by-id/ata-WDC_WDS200T1R0A-68A4W0_21154F441607
qmコマンドでパススルー設定。SSD全体を1台のVM専用に割り当てます。100は作成したVMのID、2台目のSCSIドライブでscsi1としています。
仮想マシンにパススルーされたSSDが追加されたことを確認して起動
TrueNAS自体のインストールや設定はこちらのブログを参考にさせていただきました。ありがとうございます!
TrueNAS Core - きりしま屋
インストールが終わったらブラウザでTrueNASのIPアドレスを開くと管理画面が現れます。引き続き初期設定を済ませます。
・ユーザーの追加
・プールの作成
・SMB(Windows)共有サービスの追加
データセットを2つ作成し、Windows用のshare、Roon用のroonとしました。
同名の共有フォルダにそれぞれのユーザーからのアクセス権を設定します。方針はお好みで。
TrueNAS の SMB を ACL Manager で説明してみる
フォルダ Windowsユーザー Roonシステム share フルコントロール 読み取り専用 roon フルコントロール フルコントロール
楽曲データはshare内に保存、roonはバックアップデータ用です。PCで購入・リッピングした楽曲データを保存すればRoonが勝手にライブラリに追加してくれます。このあたりRoonのストレージにはNASが適しているように思います。
ここまで来たらNASのデータを復旧できます。
FreeFileSync でリストアを開始して一眠り。
smartmontoolsのインストール
リストアが終わったので作業再開。
先に行ったSSDのパススルーは物理的なPCIeではなく論理的なディスクドライブとして行ったので、S.M.A.R.T.による状態監視は仮想化基盤の方で行います。
最新バージョンでは最初からインストールしてあり作業不要でした。
Proxmox VEはDebianベースなので、こういったツールが充実しています。
ROCK(Roon Optimized Core Kit)のインストール
Roon Labs.謹製のOS込みRoonサーバーです。不要なプロセスを除きRoonに最適化してあるので安定性ではこれが一番。インテル(現在はASUS)のNUC用ですがProxmox VEでも利用可能です。
仮想環境へのROCKのインストールにはちょっとコツがあって、インストール用のUSBメモリーとキーボードは仮想化できず実デバイスを接続する必要があります。
VIDEO
Roon ROCK on Proxmox Virtual Machine
こちらの方法でインストールできました。
リソースは2コア/4GB/128GBを割り当てました。
ROCKの管理画面。管理といってもIPアドレスの設定くらいで、ほとんどの設定はRoonアプリから行います。ライブラリにAACやmp3がある場合はコーデック(ffmpeg)を追加します。
Roon OS Missing Codecs
PCでRoonアプリを起動するとコアを見つけてくれます。Roon Remoteアプリをインストールしたスマホなどでも可能です。
Roonのライセンスはコア単位なので、1ライセンスで運用できるコアは1台のみ。旧サーバーとはここでお別れ(削除はされず無効状態)となります。
ログイン後、楽曲フォルダを登録します。ホスト名が通らずIPアドレスで指定しました。
TrueNASの音楽フォルダが見えました。「Select this folder」すると楽曲のスキャンが始まります。仮想ネットワークでつながっているので高速です。
数分で普通に使えるようになり、引き続きバックグラウンドで曲の解析が行われ数日間はCPUパワーを消費します。サーバーなので放っておけばよいです。(状況は「Settings」-「Library」で確認できます)
Homebridgeのインストール
Homebridge はAppleのHomekit互換のスマートホームアプリ。
仮想化とスマートホームに何の関係が?
と思いますよね。HomebridgeをProxmox VEにインストールすると、
なんとiPhoneのホームアプリで仮想マシンを管理できます。これって・・・
赤木リツコ博士の自爆リモコンじゃん!
あるいは「ダイ・ハード4.0」か。自宅を爆破されるのはもう現実ですね。
さらに、HomePodかApple TVがあると外出先からも利用可能となります。これらがHomekitのセキュアなゲートウェイになるというわけで、さすが「スマート」スピーカー、こんな機能が仕込まれているとは。
HomePodは設置してあるだけでよく特別な設定は不要、その設置もWi-Fi設定済みのiPhoneを近付けるだけ、と良く出来ています。
Homebridgeのインストールはこちらのスクリプトが簡単です。
Proxmox VE Helper-Scripts (Homebridge LXCで検索)
コンソール(画面の「Shell」)にスクリプトを貼り付けて実行するとHomebridgeがコンテナ形式でインストールされます。設定は「Advanced」でこんな感じ。
インストール後、表示されるバーコードをiPhoneで読み取って登録。
続いてプラグインのタブから「Homebridge Proxmox」を検索して追加します。
正しく設定できるとアプリにVMが現れます。
Roon ARC自体は十分実用的なものの、Roonのサーバーは年中無休といえるほどは安定しておらず、自分の環境ではバージョンにもよりますが月1~数回ほど固まります。ホームオーディオならサーバーを再起動させるのは大した手間ではありませんが外出中にこれが起こると致命的なので、リモートでRoonサーバーをリセットできるようにしたかったのです。
(2024/8/10追記)今回の環境は非常に安定しており、1か月連続稼働で何ら問題が出ておらずリモートリセットを使う場面がありません。嬉しい誤算です。
(2025/3/19追記)外出中にRoonサーバーが無応答となり、初めてリモートリセットを使いました。電源OFFのようなものなのであくまでも最終手段ですが、あるとないでは大違い。助かりました。
以上で完了。なんとかダウンタイム1晩+αで移行できました。やれやれ。
しばらく使って安定動作を確認できたら
アイドル育成ゲームみたいな名前のNAS(Core i3-N305搭載!)に同じ環境を構築して次期サーバーに、と狙っているところです。