はじめに
自宅サーバー環境として人気の高いProxmox VE上に、高機能なNAS用OSであるTrueNAS Scaleをインストールし、本格的なNASを構築する手順を紹介します。特に、TrueNAS Scaleのポテンシャルを最大限に引き出すための「HDDパススルー」設定について、コマンドの意味も含めて詳しく解説します。
この記事では、以下を前提としています。
- ハイパーバイザー: Proxmox VE 8.3.5
- NAS OS: TrueNAS Scale (本記事では執筆時点での最新25.04.0を使用)
- 設定値: 環境やバージョンにより適切なものを選択してください
1. 準備
1.1. TrueNAS Scale ISOイメージのダウンロード
まず、TrueNAS Scaleの公式サイトから最新のISOイメージをダウンロードします。
1.2. Proxmox VEへのISOイメージのアップロード
ダウンロードしたISOイメージをProxmox VEにアップロードします。 Proxmox VEの管理画面から「ストレージ」を選択し、ISOイメージを保存するストレージ(例: local)を選び、「アップロード」ボタンからISOファイルをアップロードします。
図1: TrueNAS Scale ISOイメージのアップロード (TrueNAS-SCALE-25.04.0.iso)
2. Proxmox VEでの仮想マシン作成
次に、TrueNAS Scaleをインストールするための仮想マシンを作成します。
2.1. 全般設定
Proxmox VEの管理画面右上の「VMを作成」ボタンをクリックします。 「ノード」と「VM ID」(ここでは自動で割り振られるか、任意のものを指定)、そして「名前」(例: TrueNAS-Scale)を入力します。
2.2. OS設定
「OS」タブで、先ほどアップロードしたTrueNAS ScaleのISOイメージを選択します。 ゲストOSの「種別」は「Linux」、「バージョン」は「6.x - 2.6 Kernel」を選択します
図2: 仮想マシンのOS設定
2.3. システム設定
「システム」タブでは、グラフィックカードやBIOS、EFIディスクなどを設定します。TrueNAS ScaleはUEFIブートが推奨されるため、「BIOS」は「OVMF (UEFI)」を選択し、「EFIディスク追加」にチェックを入れ、EFIストレージを指定します(例: local-lvm)。 SCSIコントローラはパフォーマンスの良い「VirtIO SCSI single」などを選択します。
図3: 仮想マシンのシステム設定
2.4. ディスク設定 (OSインストール用)
TrueNAS ScaleのOSをインストールするための仮想ディスクを作成します。「ディスク」タブで設定します。 バス/デバイスは「SCSI」、ストレージは適切なものを選択し(例: local-lvm)、ディスクサイズはTrueNAS Scaleのシステム要件に合わせて設定します(ここでは32GiB)。「SSDエミュレーション」や「IO thread」を有効にするとパフォーマンスが向上する場合があります。
図4: OSインストール用仮想ディスクの設定
2.5. CPU設定
「CPU」タブで、仮想マシンに割り当てるCPUのソケット数とコア数を設定します。TrueNAS Scaleの推奨要件や他の仮想マシンの負荷を考慮して設定してください(弊宅では1ソケット4コア、種別EPYC)。
図5: CPU設定
2.6. メモリ設定
「メモリ」タブで、仮想マシンに割り当てるメモリ容量を設定します。TrueNAS Scale (特にZFS) はメモリを多く消費するため、最低でも8GiB、推奨は16GiB以上です。ここでは32GiB (32768MiB) を割り当てています。
図6: メモリ設定
2.7. ネットワーク設定
「ネットワーク」タブで、仮想マシンのネットワークインターフェースを設定します。ブリッジ(例: vmbr0)を選択し、モデルは「VirtIO (準仮想化)」がパフォーマンス面で推奨されます。
図7: ネットワーク設定
2.8. 確認と作成
最後に「確認」タブで全ての設定内容を確認し、問題がなければ「完了」ボタンをクリックして仮想マシンを作成します。
図8: 設定内容の確認
3. TrueNAS Scaleのインストール
仮想マシンが作成されたら、いよいよTrueNAS Scaleをインストールします。 作成した仮想マシンを選択し、「起動」ボタンで起動します。その後、「コンソール」を開いてインストール作業を進めます。
3.1. インストール開始
起動するとTrueNAS Scaleのインストーラーが開始されます。「1 Install/Upgrade」を選択し、Enterキーを押します。
図9: TrueNAS Scale インストール開始画面
3.2. インストール先ディスクの選択
TrueNAS ScaleのOSをインストールするディスクを選択します。先ほど作成した32GiBの仮想ディスク(ここでは sda
として認識されています)を選択し、スペースキーでマークして「OK」を選択します。
図10: インストール先ディスクの選択
3.3. インストール警告と確認
選択したディスクのデータが全て消去される旨の警告が表示されます。「Yes」を選択して進めます。
図11: インストール警告
3.4. 管理者ユーザーの設定
TrueNAS ScaleのWeb UIにアクセスするための管理者ユーザーを選択します。「1 Administrative user (truenas_admin)」を選択し、「OK」を押します。
図12: 管理者ユーザーの設定
3.5. パスワード設定
管理者ユーザー (truenas_admin
) のパスワードを設定します。確認用を含め2回入力し、「OK」を押します。
図13: パスワード設定 (この画面の下部ではフォーマットとブートプール作成が進んでいます)
3.6. インストール完了と再起動
インストールが完了すると、「Installation Succeeded」というメッセージが表示されます。「OK」を押してシステムを再起動します。 再起動する前に、インストールメディア(ISOイメージ)を取り外す必要があります。
図14: インストール成功
3.7. インストールメディアの取り外し
Proxmox VEの仮想マシン管理画面に戻り、「ハードウェア」設定からCD/DVDドライブを選択し、「編集」をクリックします。「メディアを使用しない」を選択して「OK」を押します。これにより、次回起動時にISOイメージから起動しなくなります。
図15: インストールメディアの取り外し
4. HDDパススルー設定 (重要)
TrueNAS Scale (ZFS) で最高のパフォーマンスと信頼性を得るためには、HDDを仮想マシンに「パススルー」することが強く推奨されます。これにより、TrueNASがHDDのS.M.A.R.T.情報に直接アクセスしたり、キャッシュ管理を最適に行ったりできます。
注意: HDDパススルーを行うと、そのHDDはProxmox VEホストからは直接見えなくなり、指定した仮想マシン専用となります。また、パススルーするHDDにデータが存在する場合、TrueNASでプールを作成する際にデータは消去されますので、必ずバックアップを取るか、空のディスクを使用してください。
4.1. ProxmoxホストでのHDD確認
まず、Proxmox VEホストのシェルで、パススルーしたいHDDのIDを確認します。SSHでProxmoxホストにログインするか、Proxmox VE管理画面の「>_ Shell」からコマンドを実行します。
以下のコマンドを実行します。
|
|
図16: ls -l /dev/disk/by-id/ | grep ‘ata-’ コマンドの実行結果例
コマンド解説:
ls -l /dev/disk/by-id/
:/dev/disk/by-id
ディレクトリ内のデバイスファイルを詳細リスト形式で表示します。このディレクトリには、シリアル番号などを含む一意なID名で物理ディスクへのシンボリックリンクが作成されます。このIDを使用することで、 /dev/sdX のような順番が変わりうるデバイス名ではなく、特定のディスクを確実に指定できます。|
: パイプライン。左側のコマンドの出力を右側のコマンドの入力として渡します。grep 'ata-'
:ls
コマンドの出力結果から、ata-
という文字列を含む行のみをフィルタリングして表示します。これにより、主にSATA接続のHDDやSSDをリストアップできます。(NVMeドライブの場合はnvme-
などでgrepします) このコマンド結果から、パススルーしたいHDDのID (例:ata-WDC_WD60EZAZ-00SF3B0_WD-WX32DA0CKKP0
,ata-TOSHIBA_DT02ABA600_73L3S0MOS7FH
など) を控えておきます。
4.2. 仮想マシンへのHDD割り当て (パススルー)
次に、確認したHDD IDを使って、仮想マシンにHDDをパススルーします。以下のコマンド形式をProxmox VEホストのシェルで実行します。
|
|
<VMID>
はTrueNAS Scale仮想マシンのID(弊宅では203)、<N>
は未使用のSCSIコントローラ番号 (0から順に。OSインストール用ディスクが scsi0 なら、パススルー用は scsi1, scsi2 … となります)、<DISK_ID>
は先ほど控えたHDDのIDです。
実行例 :
|
|
図17: qm set <VMID> -scsiX /dev/disk/by-id/...
コマンド実行の様子
コマンドオプション解説:
qm set <VMID>
: 指定したVMIDの仮想マシンの設定を変更するコマンドです。-scsi<N>
: 仮想マシンにSCSIディスクとして接続します。<N>
には scsi0, scsi1, scsi2 … のように番号を指定します。仮想マシン設定の「ハードウェア」で既に使用されている番号と重複しないように注意してください。/dev/disk/by-id/<DISK_ID>
: パススルーする物理ディスクのIDを指定します。cache=none
: ホストOS側のキャッシュ機能を無効にします。ZFSは独自のキャッシュメカニズム(ARC)を持っており、ホストOS側のキャッシュと二重になるとパフォーマンスが低下したり、データ整合性に問題が生じる可能性があるため、none (または writethrough) が推奨されます。backup=0
: Proxmox VEのバックアップ機能で、このディスクをバックアップ対象から除外します。TrueNAS側でスナップショットやレプリケーションなどのデータ保護機能を利用するため、通常はホスト側でのバックアップは不要です。1にするとバックアップ対象になります。 パススルーしたいHDDの数だけ、このコマンドを繰り返します。
5. TrueNAS Scaleの初回起動と基本設定
HDDパススルー設定が完了したら、TrueNAS Scale仮想マシンを起動します。
5.1. IPアドレスの確認とWeb UIへのアクセス
起動後、コンソール画面にTrueNAS Scaleの管理用IPアドレスが表示されます。DHCP環境であれば自動で割り振られます。
図18: TrueNAS Scale コンソール画面 (Web UIのIPアドレスが表示されています)
表示されたIPアドレスにWebブラウザでアクセスし、インストール時に設定したパスワードでログインします。
5.2. (任意) ネットワーク設定の変更
必要に応じて、TrueNAS Scaleのネットワーク設定を固定IPアドレスなどに変更します。コンソールから設定変更するか、Web UIから変更できます。
図19: ネットワークインターフェース一覧(変更前)
図20: IPアドレス設定変更 (エイリアスに新しいIPアドレスを入力)
図21: 変更後のネットワークインターフェース情報
6. TrueNAS Scaleでのストレージ設定
Web UIにログインしたら、ストレージプールを作成します。
6.1. ディスクの確認
まず、「ストレージ」 > 「ディスク」で、パススルーしたHDDがTrueNAS Scaleに正しく認識されているか確認します。
図22: パススルーされたHDDがTrueNAS Scaleに認識されている様子
6.2. ストレージプールの作成
「ストレージ」 > 「プール」 > 「追加」ボタンから「プールを作成」を選択し、プール作成ウィザードを開始します。 プール名を入力し、使用するディスクを選択してデータVDEVを作成します。ここでは6台のHDDをRAIDZ2で構成しています。 構成に応じて「Est. Usable Raw Capacity(推定使用可能実効容量)」が表示されます。
図23: ストレージプール作成ウィザード (RAIDZ2構成例)
設定を確認し、「作成」ボタンをクリックするとプールの作成が開始されます。
6.3. データセットの追加
プールが作成されたら、その上にデータセットを作成してデータを保存できるようにします。 「ストレージ」 > 「プール」で作成したプールを選択し、「データセットを追加」をクリックします。 データセット名(例: share)を入力し、必要に応じて設定(ここでは「Dataset Preset」を「SMB」にしています)を行い、「保存」します。
図24: SMB共有用データセットの追加
6.4. SMBサービスの開始と設定
Windowsなどからファイル共有アクセスするためにSMBサービスを設定・開始します。 「共有」 > 「Windows (SMB) 共有」 > 「追加」で、先ほど作成したデータセットを共有設定します。 初回はSMBサービスが停止している場合があるので、「サービス」画面からSMBサービスを開始し、自動起動を有効にします。
図25: SMBサービスの開始と自動起動設定
必要に応じてSMB共有の設定を編集します。例えば、ゲストアクセスを許可する場合は、「Edit SMB」画面で「ゲストアクセスを許可する」にチェックを入れます。
図26: SMB共有設定でゲストアクセスを許可
7. TrueNAS Scaleの定期タスク設定 (推奨)
NASの安定運用のため、いくつかの定期タスクを設定しておくことを推奨します。 弊宅の場合、家族利用のみなので実行回数少なめとなっている。
7.1. S.M.A.R.T.テスト
HDDの健康状態をチェックするためにS.M.A.R.T.テストを定期的に実行します。 「データ保護」 > 「S.M.A.R.T.テスト」 > 「追加」で設定します。 「全ディスク」を選択し、テストタイプ(SHORTやLONG)、スケジュールを設定します(例: 毎週土曜日 AM1:00にSHORTテスト)。
図27: S.M.A.R.T.テストのスケジュール設定 (SHORTテスト例)
7.2. スクラブタスク
ZFSプールのデータ整合性をチェックし、問題を検出・修復するためのスクラブタスクを設定します。 「データ保護」 > 「スクラブタスク」 > 「追加」で設定します。 対象プール、閾値日数、スケジュールを設定します(例: 毎週日曜日 AM1:00)。
図28: スクラブタスクのスケジュール設定
7.3. 定期スナップショットタスク
データのバックアップ・復元ポイントとして定期的にスナップショットを作成します。 「データ保護」 > 「定期スナップショットタスク」 > 「追加」で設定します。 対象データセット、スナップショットの保持期間、命名スキーマ、スケジュールを設定します(例: tank/shareデータセットを毎日0時にスナップショットし、2週間保持)。
図29: 定期スナップショットタスクの設定
8. 設定完了確認
全ての設定が完了したら、TrueNAS Scaleのダッシュボードでシステムの状態を確認します。 メモリ使用量、ストレージプールの状態や空き容量などが表示されます。
図30: TrueNAS Scale ダッシュボード
これでProxmox VE上にTrueNAS Scaleを構築する基本的な設定は完了です。
まとめ
今回はProxmox VE上にTrueNAS Scaleをインストールし、特に重要なHDDパススルー設定を中心に解説しました。HDDパススルーを行うことで、TrueNAS Scale (ZFS) の性能と信頼性を最大限に引き出すことができます。コマンドの意味を理解し、正しく設定することで、安定したNAS環境を構築できるはずです。
NASのメイン機能の負担にならない程度にTrueNAS Scale上のAppも利用してみたいですね。
10GbE NICを搭載したくなったが、メインPC間の接続が困難なので2.5GbEで我慢
おすすめNAS・HDD (Amazonアソシエイト)
NAS用HDD: