何も文句を言うことなく黙々と働きつづけるFreeNAS。前回バージョンアップした後のバージョンは8.0.4で、これで黙々と働いてくれていました。・・・が、久しぶりにFreeNASのWebサイトを訪問してみたら、 8.3.0がリリースされていましたので、アップデートしてみます。
・・・が、前回同様、バージョンアップに先立って、いつものようにBunBackupを使って、Windows7マシンにつけてある外付けHDDに中身をバックアップします。やはり誤操作ですべてを失うリスクがありますので、バックアップは重要です。。
で、アップグレード手順は、やはりここに書いてあります。8.0.1-BETA3より前のバージョンからアップグレードする場合にはGUIを使わずにisoファイルを使ってアップグレードを、8.2.0-BETA3以降のバージョンからのアップグレードでは.txzファイルを、8.2.0-BETA3より前のバージョンからのアップグレードでは.xzファイルを使用するようです。今回は8.0.4からのアップグレードなので、.xzファイルを使ってアップグレードすることになります。
前回同様、やってみます。
- アップデート用のファイルのダウンロード
 こちらからアップデートに必要なファイルをダウンロードします。 WebGUIでのアップデートに必要なファイルは拡張子がxzまたはtxz(現在のバージョンによる)になっているものです。あわせて、sha256のチェックサムファイルもダウンロードしておきます。
- ファイルの正当性チェック
 「$ sha256sum FreeNAS-8.3.0-RELEASE-x64.GUI_Upgrade.xz」
 として、チェックサムが一致するか確認します。(GUIの中でもチェックされるようです)
-  設定ファイルのバックアップ
 一応、設定ファイルをバックアップします。
 Webの管理コンソール画面で、「システム」→「設定」→「一般的な設定」の中に、「設定のダウンロード」というボタンがあるので、これを押すと設定ファイルを保存できます。
-  サービスの停止
 「サービス」→「サービスの制御」でONになっているサービスをすべてOFFに変更します。
 自分の場合は、 「CIFS」「Rsync」「SSH」を停止しました。
-  コンソール表示の設定
 「システム」→「設定」→「高度な設定」 で「フッタへのコンソールメッセージの表示(UIのリロードが必要)」にチェックが入っているのを確認します(前回アップデート時にチェックしている)。入ってなければチェックしてブラウザでリロードするとブラウザの下の方にコンソール表示が出るようになります。
- ファームウェアのアップデート(一時保存場所の設定)
 同じ画面(「システム」→「設定」→「高度な設定」)で、「ファームウェアアップデート」を押すと、アップデートファイルを一時保存する場所を聞いてくるので、適当に設定します。(自分はデフォルトのままにしました)
- アップデートするファイルの指定
 アップデートするファイルがどこにあるか聞いてくるので、1でダウンロードしたファイルを指定します。併せて、sha256のチェックサムの結果もコピー&ペーストで入力します。
- あとはひたすら待つ
 途中、勝手に何回かリブートがかかります。再起動の途中でブートメニューが一瞬表示されますが、触る必要はないようです。(自分は触りませんでした)
 コンソール画面を見ていると、何回かリブートした後に通常の「Console setup」の画面になり、アップデートが終了します。
- ブラウザでログインしなおします。
続いて、ZFSのバージョンアップです。
- アップグレードはコマンドラインからしか行えません(GUIではできません)
- アップグレードは片方向で、もし気が変わって、古いバージョンのZFSに戻したくてもできないし、ZFSv28をサポートしない古いバージョンののFreeNASに戻したくても戻れません。
- 操作を行う前に、必ずデータ全体のバックアップをとって、それが正しく取れているか確認しなければなりません。不幸にもアップグレードがデータに損傷を与えた場合でも、バックアップがあれば・・・・。
ZFSのアップグレードを行う場合は、Webブラウザで左の方にある「シェル」を選択してshellを開いて、以下のコマンドでpoolの状態とバージョンを確認します。この例ではpoolの名前がvolume1の場合です。
# zpool status
pool: volume1                                                                 
state: ONLINE                                                                  
status: The pool is formatted using an older on-disk format.  The pool can      
       still be used, but some features are unavailable.                       
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the         
       pool will no longer be accessible on older software versions.           
scan: none requested                                                          
config:                                                                                                                                                        
       NAME        STATE     READ WRITE CKSUM                                  
       volume1     ONLINE       0     0     0                                  
         raidz1-0  ONLINE       0     0     0                                  
           ada0p2  ONLINE       0     0     0                                  
           ada1p2  ONLINE       0     0     0                                  
           ada2p2  ONLINE       0     0     0                                  
           ada3p2  ONLINE       0     0     0                                                                                                                
errors: No known data errors
# zpool get version volume1 NAME PROPERTY VALUE SOURCE volume1 version 15 default
次に、poolの状態に異常がないか確認します。
# zpool status -x all pools are healthy
ここで、healtyでなかった場合はアップグレードしてはいけません・・・という記述ですが、実際に表示されるのは -x なしのものと変わりませんでした。バックアップもとってあることだし、 「errors: No known data errors」を信じて進むことにします。
volume1をアップグレードする場合は以下のようにします。
# zpool upgrade volume1 This system is currently running ZFS pool version 28. Successfully upgraded 'volume1' from version 15 to version 28 # zpool get version volume1 NAME PROPERTY VALUE SOURCE volume1 version 28 default
以上です。(#で始まる行が入力行です)
シェルからは「Ctrl-D」で抜けられます。
最後に、バージョンアップ前に停止したサービス(自分の場合は「CIFS」「Rsync」「SSH」)を再開して完了です。
