TrueNAS SCALE でHDD1台構成にHDDを追加してミラーリング構成にする

TrueNAS SCALEを使って遊んでいる。
いままではHDDを1台だけ繋いでStripeで利用していた。
要するにただのHDD1台のNAS。

ここにもう1台のHDDを追加して、ミラーリング構成にした。

ちなみに、WebのUIからやったら四苦八苦。
これ実は、ただ2台目を追加したら2台のStripeになってしまう。
容量は2倍。壊れやすさも2倍。

そこでうまく2台目をミラーリングとして追加する方法。

前提

使用するTrueNASはSCALE。

バージョンはDragonfish-24.04.2.3

手順

鍵はSSHでやるということ。超簡単。

ステップ1: SSH接続

  1. SSHサービスを有効にする
    • Webインターフェースで左メニューから「System Settings」→「Services」を選択。
    • SSH」サービスを「ON」にし、必要に応じて「Permit Root Login」を有効にします。
  2. SSHクライアントで接続
    • Windowsの場合: PuTTYを使う。
    • macOS/Linuxの場合: ターミナルを開き、以下のコマンドを実行。bashコードをコピーするssh root@<TrueNASのIPアドレス>
    • 管理者アカウントのパスワードを入力してログインします。

ステップ2: 現在のプールの状態確認

以下のコマンドを実行し、既存のプールがどのように構成されているか確認します。

zpool status

出力例:

pool: tank
state: ONLINE
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
ada0 ONLINE 0 0 0
  • 確認ポイント:
    • プール名(例: tank)。
    • 現在のディスク(例: ada0)。

ステップ3: 新しいディスクの識別

新しいディスクが認識されているか確認します。

lsblk

出力例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda 8:0 0 4.0T 0 disk
└─sda1 8:1 0 4.0T 0 part /mnt/tank
sdb 8:16 0 4.0T 0 disk
  • 既存ディスク: sda
  • 新しいディスク: sdb

ステップ4: ミラーリング構成に変更

以下のコマンドで新しいディスクをミラーとして追加します。

zpool attach tank ada0 sdb
  • 解説:
    • tank: プール名。
    • ada0: 既存のディスク。
    • sdb: 新しく追加するディスク。

実行後の確認:

zpool status

期待する出力例:

pool: tank
state: ONLINE
config:

NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0 ONLINE 0 0 0
sdb ONLINE 0 0 0

ステップ5: Resilveringの進行確認

Resilvering(データ同期)が自動的に開始されます。進行状況を確認するには以下のコマンドを実行します。

zpool status

出力例:

pool: tank
state: ONLINE
scan: resilver in progress since Thu Jan 5 10:00:00 2025
2.00T scanned out of 4.00T at 500M/s, 2h30m to go
  • Resilveringが完了するまで待機します。

これでしばらく待っていればミラーリング完了。

LinuxからPushBulletでメッセージを飛ばす

経緯

自前でサーバを稼働させていたりする場合などで、自分のLinuxマシンからスマートフォンなどに通知を送りたい場合がある。

たとえば、自宅でRaspberryPiでNASやDLNAのサーバを作動させているが、サーバを再起動したときや、何か異常が発生した場合などにすぐにそれを知ることができれば便利なのだ。

そこで、PushBulletを使ってとっても簡単な通知を行う。

PushBulletのアカウントを作成

すでにPushBulletを使用している人は不要。ただ単純にアカウントを作成して、push通知が受け取れる状態になっていれば良い。

PushBulletのAPIキーをメモる

PushBulletのサイトにアクセスしてログインし、画面左のリストから「Setting」を選択する。

表示される画面に「Access Token」が表示されているので、そこに表示されているキーをどこかに控えておく。

Linuxにpushbullet-bashをダウンロードする

PushBulletの通知を送るにはJSONでデータ構造を作ってWebのAPIを叩くだけなんだけど、それを便利にこなしてくれる「pushbullet-bash」というツールがあるので利用させてもらう。

Linux環境にgitがなければ、まずgitをインストールする。

gitが使えるようになったら、任意のディレクトリで以下を実行(※)する。

※2015/12/02現在。リンク切れなどあれば「pushbullet-bash」でググってください。

# git clone https://github.com/Red5d/pushbullet-bash.git

これでカレントディレクトリにpushbullet-bashというディレクトリができる。

pushbullet-bashを設定する

設定ファイルとして~/.config/pushbullet を作成し、下記の1行を記載する。

PB_API_KEY=(控えておいたPushBulletのキー)

通知をPushしてみる

あとはコマンドを叩くだけなのです。次のコマンドを実行してみましょう。

# ./pushbullet-bash/pushbullet push all note Pushテスト Pushのテストです。

これで「Pushテスト」という件名で「Pushのテストです。」という内容をpushできます。自作のShellスクリプトなどから叩いてあげてください。

pushbulletコマンドを単体で実行すると、オプションが見られるので工夫してみてください。コマンドラインで叩くので、スペースを含む内容やコマンドの戻り値などをPushする場合は””(ダブルクォート)でくくるなどの工夫が必要です。