もともとNASync DXP2800にはWD Blueの6TB HDDをRAID1構成で2台積んでいました。しかしNAS用途のHDDではないですし、数年経過していることもあったので(幸い故障はしていませんでしたが)、NAS向けのWD Redに交換しようと思い立ちました。
とはいえ最近はSSDだけでなくHDDも全体的に値上がりしていて、6TBを2台調達するとなるとかなりの出費になります。しかも実際の使用量を確認してみると2TBにも達していない状態でした。ならばコストを抑えるために、容量を落として4TBのWD Redに交換することにしました。
ただし今回は「容量が減る」交換だったので、増設のときのような単純な領域拡張では対応できません。データの移行方法を考える必要がありました。
移行方法の検討
最初は外部HDDに全データをバックアップし、換装後に書き戻す方法を考えていました。ところがUGOS(ファームウェア)のファイルアプリを見ていたところ、「個人フォルダの管理」「共有フォルダの管理」というメニューにそれぞれ保存先を変更できる項目があることに気付きました。これを使えば、外部バックアップを経由せずにストレージプール間でデータを直接移動できそうです。
そこで、以下のような片肺換装の手順を組むことにしました。
移行手順
Step 0: 初期状態
もともとの状態です。旧HDD(WD Blue 6TB)2台でRAID1のストレージプールを構成していました。
flowchart LR
subgraph s0_Pool_Old["ストレージプール(旧・RAID1)"]
direction LR
s0_A1["スロット1<br/>旧HDD 6TB"]
s0_A2["スロット2<br/>旧HDD 6TB"]
end
Step 1: 旧HDDを1台だけ抜き取る
スロット1の旧HDDを抜き取ります。旧プールはHDDが1台足りなくなるため破損扱いになりますが、今回は無視して構いません。
flowchart LR
subgraph s1_Pool_Old["ストレージプール(旧・破損扱い)"]
direction LR
s1_E1["スロット1<br/>(空)"]
s1_A2["スロット2<br/>旧HDD 6TB"]
end
s1_Removed1["抜き取った<br/>旧HDD 6TB"]
s1_E1 -->|抜き取り| s1_Removed1
Step 2: 新HDDを挿入し、Basicプールを新規作成
空いたスロット1に新HDD(WD Red 4TB)を挿入し、単体でBasicタイプのストレージプールを新規作成します。このときスロット2にはまだ旧HDDが残ったままで、そちらは破損扱いの旧プールとして存在し続けています。
flowchart RL
subgraph s2_Pool_New["ストレージプール(新・Basic)"]
direction LR
s2_B1["スロット1<br/>(空)"]
end
subgraph s2_Pool_Old["ストレージプール(旧・破損扱い)"]
direction LR
s2_A2["スロット2<br/>旧HDD 6TB"]
end
s2_Pool_New ~~~ s2_Pool_Old
s2_New1["用意した<br/>新HDD 4TB"]
s2_New1 -->|挿入| s2_B1
Step 3: フォルダの保存先を新プールに変更してデータ移動
UGOSの「個人フォルダの管理」「共有フォルダの管理」から、保存先を新プールに変更します。ここでバックグラウンドのデータ移動が走るため、データ量に応じて時間がかかります。
flowchart LR
subgraph s3_Pool_New["ストレージプール(新・Basic)"]
direction LR
s3_B1["スロット1<br/>新HDD 4TB"]
end
subgraph s3_Pool_Old["ストレージプール(旧・破損扱い)"]
direction LR
s3_A2["スロット2<br/>旧HDD 6TB<br/>📂個人/共有フォルダ"]
end
s3_Pool_Old -.->|フォルダ保存先の変更で<br/>データ移動| s3_Pool_New
しばらくして移動が完了すると、個人フォルダ・共有フォルダの実体は新プール側に移り、旧プールは空(未使用)の状態になります。
Step 4: 残りの旧HDDを抜き取る
データ移動が完了すると旧プールの実体は空になります。この状態でスロット2の旧HDDを抜き取ります。
flowchart RL
subgraph s4_Pool_New["ストレージプール(新・Basic)"]
direction LR
s4_B1["スロット1<br/>新HDD 4TB<br/>📂個人/共有フォルダ"]
end
subgraph s4_Pool_Old["ストレージプール(旧)"]
direction LR
s4_E2["スロット2<br/>(空)"]
end
s4_Pool_New ~~~ s4_Pool_Old
s4_Removed2["抜き取った<br/>旧HDD 6TB"]
s4_E2 -->|抜き取り| s4_Removed2
Step 5: 新HDDを挿入し、RAID1を再構築
空いたスロット2に新HDD(WD Red 4TB)を挿入し、スロット1の新HDDと合わせてRAID1を組み直します。
flowchart RL
s5_New2["用意した<br/>新HDD 4TB"]
subgraph s5_Pool_New["ストレージプール(新・RAID1)"]
direction TD
s5_B1["スロット1<br/>新HDD 4TB<br/>📂個人/共有フォルダ"]
s5_B2["スロット2<br/>(空)"]
end
s5_New2 -->|挿入| s5_B2
Step 6: 旧ストレージプールを削除
旧プールの実体はすでに空になっているので、そのまま削除して完了です。
この手順で特に何事もなくデータ移行ができました。Immichの写真データもimmichユーザーの個人フォルダに保存されていたので、一緒に移行されました。
UGOSのアプリは再ダウンロードになります。新しいストレージプールを保存先にしてインストールしましょう。
他にも個人フォルダや共有フォルダ以外の場所に永続データを保存している場合は、その都度個別に対応する必要があるだろうと思います。
まとめ
- 容量ダウンサイジングを伴うHDD換装は、単純な領域拡張では対応できない
- UGOSの「個人フォルダの管理」「共有フォルダの管理」の保存先変更機能を使えば、外部バックアップを経由せずにプール間でデータを移動できる
- 片肺換装 → Basicプール作成 → フォルダ保存先変更でデータ移動 → 残りを換装 → RAID1再構築、という手順で無事に4TB×2 RAID1へ移行完了
- ただしDockerのイメージ/ボリューム等、フォルダ管理の対象外にあるデータは別途対応が必要
結構身構えていたのですが、思いのほか簡単でした。
Optaneメモリのキャッシュ割り当てについて
先日、Optaneメモリ16GB×2枚をSSDキャッシュに割り当てようとしたところ、容量不足として失敗していました。ところが今回HDD周りをいろいろ触っているタイミングで確認してみたら、いつの間にかファームウェアアップデートで対応されていたようで、読み書きキャッシュとして設定できるようになっていました。
設定したところ、体感でも一定の効果が出ているので、無駄にならずによかったです。
ストレージのインフレの影響を受けて…
今回外したWD Blue 6TBのHDDですが、まだ使えるのでオークションに売りに出したところ、2台とも16,000円以上で落札されました😋購入当時はもともと新品が11,280円だったのに、昨今のストレージデバイスの高騰により、NASで4年間使った中古の方が断然高いという現象が起きています。
SSDはすさまじい値上げを体感していましたが、HDDもかなり影響を受けている感じですね。
メモリもとんでもない値段になっていますが、DDR5やDDR4の高騰の影響で、最近はまさかの時代遅れのDDR3に注目が集まって、メーカーの生産ラインがパンクしているとか😣なので、PCが故障したらどうしようと怯えながら過ごしています。
この状況は一体いつまで続くのでしょうか。不安で夜しか眠れません。
以上!










コメント