Summary ¶
前回、物理構成を決めたのでソフトウェアインストールを進めていく
OS インストール ¶
OS インストールはバージョンで変わる可能性があるので参考程度に記載する。
今回は検証のために Proxmox VE に立てたやつと TS-664 の画像を混載となりますがご了承ください。




そこでアクセスすると下記のようになる以降は Web GUI での操作になる

ネットワーク設定 ¶
Network の画面で Static IP に変更や Host 名を更新しておく
- Nameservers
- Nameserver (DHCP)
- Default Route
- Hostname
- Domain
- Service Announcement: NETBIOS-NS, mDNS, WS-DISCOVERY
- Additional Domains:
- Hostname Database:
- Outbound Network: Allow All

Datasets ディレクトリー設計 ¶
TrueNAS では Pool > Datasets の構造になっていて、各種共有(SMB,NFS,iSCSI)はこの Datasets 単位で設定する
この単位をあまりにも大きくしてしまうと、アクセス管理がしづらく細かくやり過ぎると使い勝手が悪い
Datasets を分けることの利点は下記である
- 各種共有(SMB,NFS,iSCSI)設定を
Datasetsごとに設定することが多い - スナップショットも
PoolまたはDatasets単位 - ZFS Encryption は Pool から継承できるが、
Datasets単位で個別につけられる- 機密情報は Passphrase で作成すると再起動時に Lock され覗かれるリスクが減る
- ただし、 System Dataset (一番最初に作った Pool 自体の暗号化) は Passphrase に変更できない
- Quota を設定して容量の浪費を抑えられる
- 入れ子にできる
Appsの箇所等 Datasetsが画面で使用量などを見ることができる
| Datasets | Owner | Group | Share Type | Description |
|---|---|---|---|---|
| Apps | root | root | Generic | Apps 用の設定置き場 |
| Apps/Emby | root | root | Apps | Emby 設定データ |
| Apps/Nextcloud | root | root | Apps | Nextcloud |
| Apps/TrueNASScaleBackup | tnasautobackup | tnasautobackup | Generic | TrueNAS の自動バックアップ用 |
| Backup | root | root | Generic | バックアップデータの置き場所 |
| Backup/TimeMachine | root | root | SMB | Time Machine |
| Backup/UrBackup | root | backups | Generic | UrBackup |
| DLSite | root | root | SMB | DLSite ライブラリー |
| Downloads | root | downloaders | SMB | Aria2 用 |
| Home | root | root | SMB | 各ユーザーの Private エリア |
| ISO_files | root | servers | SMB | Proxmox VE の ISO 置き場 |
| Libraries | root | libraries | SMB | ライブラリー メディアはここに基本的に置く |
| Libraries/Audios | root | libraries | SMB | 音声・音楽全般 |
| Libraries/Anime | root | libraries | SMB | アニメ |
| Libraries/Books | root | libraries | SMB | 本, 電子書籍, 漫画 |
| Libraries/Movies | root | libraries | SMB | 映画 |
| Libraries/TV-Series | root | libraries | SMB | TVドラマ, シリーズ物 |
| |
Storage の作成 ¶
今回は、3つのプールを作成する予定のため、 SystemVol1, DataVol1, ReplicationVol1 とすることにする
最初に作られた物に Apps などのファイルが保存されるようなので SystemVol1 から作成する

前回物理構成を確認した所 DataVol1 では SLOG を設定したほうが速度が出るのでそこだけ設定する



同様に DataVol1, ReplicationVol1 も作成する
次に DataVol1 の暗号化設定を、 Passphrase に変更する。
TrueNAS の標準設定では Key が使われていて暗号化としては問題ないが、再起動後も自動的に復号化され中身を閲覧できてしまう。これを回避するためには暗号化モードを Passphrase に変更しておく。また当然だがこれを忘れると一生読み出せないし、再起動後に Passphrase を入力するまで SMB などの共有で Datasets を読むこともできない。

これで Pool はおしまい
グループ作成 ¶
今回は servers, downloaders, libraries グループを作成します。

Datasets を作成する ¶
Datasets はとりあえず設計したのでこれで作成する。
- Share Type:
SMB- を選択することで下記に変更される
- Case Sensitivity:
Insensitive - ACL Mode:
Restricted
- Case Sensitivity:
- を選択することで下記に変更される

ユーザー作成 ¶
今回は naa0yama ユーザーを作成する
- Auxiliary Groups:
servers,libraries - Create New Primary Group: ■
- Home directory:
/nonexistent - Create Home Directory: ■
- Samba Authentication: ■

Data Protection ¶
Scrub Tasks ¶
ZFS の仕組み上、データを読みだした時に不整合を確認し修復する。
Scrub(スクラブ)はその読み出し処理を定期的に実施して読み出せること, 読みだしたデータが破損していたら修復するタイミングである。一般には HDD の読み出しエラーレートは 10^12 程度のため 1TB で1つあるかどうかと思えば良いと思う。
標準で設定されている期間は毎週日曜日に始まって完了してから再度実行は 35日を過ぎたら再試行される。
Periodic Snapshot Tasks ¶
スナップショットは下記の期限で作成する
| 項目 | Snapshot Lifetime |
|---|---|
| 15 Minutely | 1時間 |
| Hourly | 3日間 |
| Daily | 35日間 |
| Weekly | 5週間 |
| Monthly | 5ヶ月 |
| Quarterly | 14ヶ月 |
- Dataset: DataVol1, SystemVol1 をれぞれ
- Recursive: ■
- Allow Taking Empty Snapshots: ■
- Naming Schema:
auto-%Y-%m-%d_%H-%M


Replication Tasks ¶
ZFS Snapshot のレプリケーションを設定できる SSH と Local で実施できる。
弊宅では、別付けした USB HDD に Local Replication を設定することでハードウェア故障とランサムウェア対策とする
最初から詳細設定で作成したかったがうまく作成できないので一旦ウィザードで作成して編集します
Destination は 必ず Datasets を指定すること、これは事前に作成する必要はない

Replication 設定自体を再度開き設定を変更する

戻ったら、Replication 設定をした時に自動作成された Tasks を削除しておく。これで取得タイミングになると自動で Replication される状態が構築された
しばらくすると Snapshot が取得されレプリケーションが完了するはず

Cloud Sync Tasks ¶
S3 ストレージ料金ついてはまとめた記事があるので選定はそちらを見てもらうと良い
弊宅で採用したオブジェクトストレージでのテストと Bucket 設定は下記で紹介している
Backup Credentials ¶
Credentials > Backup Credentials > Cloud Credentials > Add で S3 アクセスする認証情報を登録する
- Disable Endpoint Region: ■ (一部の S3 互換では設定が必要)
- Use Signature Version 2: ■ (セキュリティ強化のため On )

Data Protection > Cloud Sync Tasks > Add
- Transfer
- Description:
IDrive e2 - sg - Direction:
PUSH - Transfer Mode:
SNYC- 今回はオブジェクト保護もかけているため
SNYCを設定完全な1方向同期が希望ならCOPYを選択
- 今回はオブジェクト保護もかけているため
- Directory/Files:
/mnt/DataVol1
- Description:
- Remote
- Credential:
先程作ったやつ - Bucket:
作った Bucket - Folder:
/<ホスト名>/DataVol1(複数取る可能性があったので 1つ掘った)
- Credential:
- Advanced Remote Options
- Remote Encryption: ■
- Filename Encryption: ■
- Encryption Password:
ナイショ - Encryption Salt:
ナイショナイショ - Bandwidth Limit:
02:00,5M,09:00,2M- ※TrueNAS-23.10.0.1 では DL の帯域幅を設定できないため上記となった本来は下記で入れたい
02:00,5M:7M,09:00,2M:7M
- Ref: bwlimit-bandwidth-spec - Rclone Documentation
02:00 - 09:00UP: 5MB/s (40Mbps, 17GB/Hour, 119+(96)=215GB/Day), DL: 7MB/s (56Mbps, 23GB/Hour, 552GB/Day)09:00 - 02:00UP: 2MB/s (16Mbps, 06GB/Hour, (119)+96=215GB/Day), DL: 7MB/s (56Mbps, 23GB/Hour, 552GB/Day)
- ※TrueNAS-23.10.0.1 では DL の帯域幅を設定できないため上記となった本来は下記で入れたい

下記は暗号化設定をした場合のファイルの見え方
| |
S.M.A.R.T. Tests ¶
S.M.A.R.T. Tests をすべてのドライブに設定しておきます。
思想としては
- SHORT は毎日 00:00 を避けたかったため 01:00 に開始
- LONG は毎月2日の 02:00 開始に設定
| Disks | Type | Frequency | 推定完了時間(16TBの場合) |
|---|---|---|---|
| All Disks | SHORT | At 01:00, every day | 2 minutes |
| All Disks | LONG | At 02:00, on day 2 of the month | 28 hour 15 minutes |

手元の 16TB だと 下記の時間がかかる
| |
SMB 設定 ¶
SMB の設定をする
Datasets によって若干違う
Services 設定 ¶
- 鉛筆をクリック
- NetBIOS Name: <サーバーのホスト名> を入力して 「Save」

Home ¶
- Path:
/mnt/DataVol1/Home - Name:
Home - Purpose:
Private SMB Datasets and Shares

Backup/TimeMachine ¶
- Path:
/mnt/DataVol1/Backup/TimeMachine - Name:
TimeMachine - Purpose:
Multi-user time machine - Advanced Options
- Access
- Browsable to Network Clients: □
- Other Options
- Time Machine: ■
- Use Apple-style Character Encoding: □
- Access
それ以外 ¶
- Path:
/mnt/DataVol1/<★★> - Name:
<★★> - Purpose:
Default share parameters
Dashboard ¶
Dashboard で表示する物を設定します。
弊宅は「Storage」、「Network」を適当に追加してます

System Settings ¶
General ¶
GUI 設定と NTP Server, 言語設定, TimeZone, EMail 設定などを実施する
- Localization
- Language
- Timezone:
Asia/Tokyo - Console Keyboard Map:
English (US) (us)
- Email
- SMTP
- GMail OAuth
- GUI
- GUI SSL Certificate:
truenas_default - Web Interface IPv4 Address:
0.0.0.0 - Web Interface HTTP -> HTTPS Redirect:
Enabled
- GUI SSL Certificate:
- NTP Servers
- Settings
Burst: □ オプションは常時バーストを送信するので非推奨IBurst: ■ 最初に試行した時に接続できなかったときだけパケットのバーストを送信するようになりますPrefer: □ 他のntpサーバーよりも優先されるよう指定
- ntp1.jst.mfeed.ad.jp
- ntp2.jst.mfeed.ad.jp
- ntp3.jst.mfeed.ad.jp
- Settings

Advanced ¶
拡張的な設定が揃っている
- Console
- Syslog
- Kernel
- Cron Jobs
- Init/Shutdown Scripts
- Sysctl
- Storage
- Replication
- Sessions
- Allowed IP Addresses
- Self-Encrypting Drive
- Isolated GPU Device(s)
- Global Two Factor Authentication
いくつかカスタムする。まず、本体に HDMI を指すとこの画面になるがここではパスワードなしにリセットなどが行えてしまうためこれをパスワードありにする

- Console
- Show Text Console without Password Prompt:
Disabled
- Show Text Console without Password Prompt:
TrueNAS Scale のセッションタイムアウトは標準3分に設定されていて正直早すぎるのでここで設定できる。
自分は検証用 86400(1日) に設定した。 本番は長くても 1800(30分) ぐらいに設定すると思う
- Sessions
- Configure
- Token Lifetime:
86400
- Token Lifetime:
- Configure

Services ¶
そのうち設定することになりそうなのは NFS, SSH, UPS あたりを触ることになりそう

Shell ¶
Shell です。たいていのことはこれでできそう

Alert Settings ¶
単体でいくつかのサービスに通知できるようだ

自動設定バックアップ ¶
これは TrueNAS Scale の機能ではないが、弊宅の TrueNAS は USB SSD (Not USBメモリー)で運用しているため突然 OS Disk が破損し文鎮化する可能性があるので、本記事の中で設定した Cloud Backup Task のバックアップ元にバックアップしてクラウドストレージにも転送しておく。もちろん暗号化されているので暗号化情報は確保が必須。
最後に(バックアップ方法) ¶
最後に設定のバックアップ方法パスワードを含む全ての設定がダウンロードできる
これには、パスワードなどが含まれるので扱いは厳重にする必要がある。

また、各 Pool の暗号化 Key もダウンロードする

参考情報 ¶
Home 共有にアクセスできない ¶
SMB 共有で Use as Home Share: ■ を設定してしまうと、 TrueNAS の機能でホームディレクトリを作成されていしまい権限が崩れるのが原因。これがあるため Use as Home Share の使用を中止した。
SMB 共有で Use as Home Share を On にしているとユーザー作成時にホームディレクトリ欄が自動入力されてしまいうまく行かなかったことと、ユーザー名で切られると一覧表示にした場合の表示順が(1番上など)変更できないため使わない方が利便が良かった。


builtin_users, builtin_administrators ¶
Permissions に勝手に builtin_users, builtin_administrators グループが追加される
TrueNAS Scale 23.10 では Users の設定で Samba Authentication: ■ (デフォルト) を設定してユーザーを作成すると自動的に Auxiliary Groups に追加されるようです。
Datasets の方を Shell で確認すると権限に builtin_users, builtin_administrators が含まれてないので SMB のみに影響する?
| |




