ロジテックのLANディスクHDL-A2の容量を拡張する

職場のNAS(ロジテックのLANdisk HDL-A)のHDDの容量を2TB→4TBに色々調べながら拡張したので、メモとして記載する。

普段、windowsばかり使っており、LINUXの経験がない人にもわかりやすくコマンドしたときの結果を「//・・・↓↓コマンドの結果」という記載にしてみた。

必要なもの
・NAS本体(今回はHDL-A2.0)
・交換先のHDD(元のより大容量のもの)
・LINUXがインストールされたPC(私はUSBメモリにLINUXをインストールしておいて、bootメニューからUSBメモリを選択して起動している)
※LINUXは何でも良いが、ubuntuで今回は作業したので、コマンドはubuntuのコマンドとなっている。

windowsしか操作したことがない人へ
説明の前に、、、コマンドラインで操作する場合、windowsだとコマンドプロンプト、LINUXなどはターミナルを立ち上げます。コマンドプロンプトとターミナルは当たり前ですが、全く互換性はありません。今回は、ターミナルでの作業になります。

LINUXのターミナルで作業する理由ですが、多くのNASがLINUXベースのファームウェアを使用しているため、HDDのフォーマットがLINUXで使用されるフォーマット形式になっているからです。

それでは、作業を実施していきましょう。


下準備
LINUXで必要になるアプリケーションがmdadmです。これは、仮想RAIDを構築するためのアプリケーションなので、インストールされていない場合は、

# apt-get install mdadm

​と入力してmdadmをインストールすること。

1 容量が同じの場合(HDDのコピーが不要)
 LANディスクをシャットダウンしdiskLANディスクの旧セカンダリHDDを外し、新プライマリHDDを装着。
Raid1でミラーリング開始
 完了後、LANディスクをシャットダウンして、旧プライマリHDDを外し新プライマリHDDを装着。新セカンダリHDDを2ベイに装着しRaid1再構成

2 容量が変わる場合
 NASは起動用の領域をハードウェア側ではなく、内蔵HDD側に置くことが多い。ファームウェアもHDDに書き込まれており、HDDを単純に交換しただけでは起動しません。
 そのため、新たに購入したHDDをNAS用のHDDとして認識させるために、交換前のHDDの1~5のパーティションを複製する必要がある。
 パーティション構造を整えていない場合、一つ一つのパーティションを切り出して、ファームウェアのインストールする必要が出てくるので、非常に大変な作業となる。
 そこで、新たに購入したHDDをクローン化して6番目のパーティション(ボリューム領域)を拡張し容量を上げる。そうすると、1~5番目のパーティション(NASの動作に必要なファームウェアなど諸々)が保持された状態となり容量が拡張されるという仕組みだ。

(1) 旧HDDのクローン作成
 旧HDDのクローンを作成する場合、2通り方法がある。
 1つ目はHDDデュプリケータを使用する方法
 2つ目はLANディスクのポート2に新HDDを取り付けてRAID1でミラーリングする方法
 どちらでも良いため好きな方を選択。また、ミラーリングしていても作業は可能。今回はミラーリングで解説する。HDDスロットが1つしかないNASの場合は、デュプリケータ1択となる。

 まずはLANディスクを管理画面からシャットダウンを行い電源が完全に切れたことを確認し、旧HDD2(HDL2-Aの場合正面を見て右側)を抜き取り、新HDD1にマウンタを取り付けLANディスクポート2に挿入。
 LANディスクの電源を入れ直すと、旧HDDの状態でミラーリングが進行する。
 ミラーリングが終了したら、LANディスクを管理画面でシャットダウンして、新HDD1を抜き取る。また、この時拡張作業失敗時に備えて、新HDD2をLANディスクのポート2に挿入してミラーリングすると良い。
 ※デュプリケータ場合は製品ごとのマニュアルに従ってクローン化しましょう。

 クローン化が成功すると、新HDD1~6パーティションが作成され、拡張予定の部分が「未使用領域」になっている。今回はこの第6パーティション(ボーリューム)を拡張する。

以下、ubuntuで作業

(2) ルート権限での作業
 新HDD1をUbuntuに接続しデバイス名を確認。
 デバイス名はUbuntuがインストールされている内蔵HDDが/dev/sdaとなっているはず。それ以外に接続されたHDDや外部メディアがなければ、/dev/sdb、/dev/sdcとなるはず。今回は複数のメディアを接続しないのでおそらく/dev/sdbになっているはずなので、/dev/sdbで解説する。
 Ubuntuで作業する際ルート権限が必要になるので、ターミナル起動しsudoコマンドで、

$ sudo su
password:[鍵マーク]
#

と入力しルート権限でアクセスする。

ユーザー権限の場合$で表示されルート権限の場合は、#で表示されるので覚えておくとよい。
※ 上記パスワードは入力しても、表示やカーソルの移動はないのが正常なのでパスワードの入力後エンターキーを押し「#」が表示されたらルート権限になっている。


(3) 容量の確認
 まずは、現在の容量確認から

# cat /proc/mdstat

と入力し、拡張領域を確認

//・・・↓↓コマンドの結果

Personalities : [linear] [multipath]・・・・・・・[raid0]
md124 : active (auto-read-only) raid1 sdb6[1]
     2925941012 blocks super 1.0
      
md125 : inactive sdb2[1](S)
     1048512 blocks
       
md126 : inactive sdb1[1](S)
     524224 blocks
       
md127 : inactive sdb5[1](S)
     524224 blocks
       
unused devices: <none>

HDL2-Aの場合md121~md127くらいになる
HDDの容量に合わせて、一番容量が大きいものを見つける。上記の場合はmd124が該当する。
mdadmを利用してmd124をアクティブにする

# mdadm --run /dev/md124
//・・・↓↓コマンドの結果
mdadm: started array /dev/md/6_0

アクティブになっているか確認する。

# cat /proc/mdstat
//・・・↓↓コマンドの結果

Personalities : [linear] [multipath]・・・・・・・[raid0]
md124 : active (auto-read-only) raid1 sdb6[1]
     2925941012 blocks super 1.0
      
md125 : inactive sdb2[1](S)
     1048512 blocks
       
md126 : inactive sdb1[1](S)
     524224 blocks
       
md127 : inactive sdb5[1](S)
     524224 blocks
       
unused devices: <none>

アクティブになっていれば、md124をマウントする
※ mkdir =make directry =ディレクトリを作るコマンドのため、すでに、
/sys/mntに「test」ディレクトリ(フォルダ)がある場合は、不要。無論「test」でなくても、「dev」や「md」でも良いが、後に続けるディレクトリ名と同じにしてしまうとわかりにくいので気をつける。
※ マウントについて
windowsを使っているとマウントというものを知覚せず使用していると思う。Windowsの場合、
  OS----Cドライブ----各ディレクトリ
    +---Dドライブ----各ディレクトリ
という認識でCドライブにはCドライブのルートディレクトリがDドライブににはDドライブのルートディレクトリが存在する。それに対し、LINUXやUNIXの場合、全て共通のルートディレクトリ下部にあるという認識の仕方をする。
 LINUX_OS---ルートディレクトリ---mntディレクトリ---testディレクトリ
そのため、mntディレクトリに新しいボリュームをマウントして!という命令をしなければならない。もちろんGUIで通常USBメモリを使用する場合は自動的にマウントされるので、そこまで意識することはないが、その認識をしないと以下の説明がわかりにくい部分が出てくるので解説してみた。

 

 では、mkdir でmntディレクトリ下部にtestディレクトリを作成し、devディレクトリに認識しされているmd124ボリュームを、testディレクトリにマウントしてみよう。

# mkdir /mnt/test
# mount /dev/md124 /mnt/test
# ls /mnt/test
//・・・↓↓コマンドの結果

AppleDB                dlna    model
raps                  share
Program  Files    dms      nasdsync_download_tmp    remotelink2

dfし領域を確認。このときマウント位置が/mnt/testになっているか確認すること。
※ df・・・disk free(ディスクの空き容量)を確認するコマンド

# df -h
//・・・↓↓コマンドの結果

ファイルシス            タイプ   サイズ  使用  残り 使用% マウント位置
・・・
/dev/md124              xfs        2.8T  2.3T  472G   84% /mnt/test

(4) 拡張作業
 partedを使用する。
 partedを実行しエラーが出る場合は、# apt-get install partedでpartedをインストールすること。

# parted /dev/sdb

(現在接続しているデバイスによってsda、sdb、sdcと変わる。)
※ partedでデバイスを指定しないとsdaが標準となるので注意

//・・・↓↓コマンドの結果

GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。

printコマンドで各パーティションの状況を確認

(parted) unit s
(parted) print
//・・・↓↓コマンドの結果

(モデル: *********************** (scsi)
ディスク /dev/sdd: 2000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始     終了      サイズ    ファイルシステム   名前      フラグ
1    20.5kB   537MB    537MB   ext3           primary   msftdata
2    537MB   1611MB  1074MB                 primary   msftdata
3    1611MB  3758MB  2147MB  linux-swap(v1)  primary   msftdata
4    3758MB  3892MB  134MB                  primary   msftdata
5    3892MB  4429MB  537MB                  primary   msftdata
6    4429MB  2000GB  1996GB  xfs             primary   msftdata

拡張したいパーティションは一番大きい第6パーティションなので一度第6パーティションをrmコマンド(remove)で削除。エラーが出た場合は、I agree(同意)「i」を押下し削除する。

(parted) rm 6
//・・・↓↓コマンドの結果

エラー: パーティション 6 (/dev/sdc 上)
できませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。

削除できたか確認の為再度printコマンドを使う。

(parted) print
//・・・↓↓コマンドの結果

(モデル: *********************** (scsi)
ディスク /dev/sdd: 4001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始     終了      サイズ    ファイルシステム   名前      フラグ
1    20.5kB   537MB    537MB   ext3           primary   msftdata
2    537MB   1611MB  1074MB                 primary   msftdata
3    1611MB  3758MB  2147MB  linux-swap(v1)  primary   msftdata
4    3758MB  3892MB  134MB                  primary   msftdata
5    3892MB  4429MB  537MB                  primary   msftdata

と6が消えているはず。
ここで重要なのは、番号5 開始3758MB 終了4429MBの終了部分。
5の終了からストレージ容量の最後までを第6パーティションとして作成しなおす。

続いて、mkpartコマンド(make partition)で/dev/sdb6を作成していく。

(parted) mkpart
「名前?」primary
「フォーマット形式?」xfs
「開始?」4429MB
「終了?」100%
//・・・makpartを実行すると

「名前?」
と聞かれるので上記のように入力しエンター
「フォーマット形式?」
同上
「開始?」
同上
「終了?」
同上

警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? I
と表示されるので
I 入力しエンター

続いて、第6パーティションができているかprintで確認

(parted) print
//・・・↓↓コマンドの結果

(モデル: *********************** (scsi)
ディスク /dev/sdd: 4001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始     終了      サイズ    ファイルシステム   名前      フラグ
1    20.5kB   537MB    537MB   ext3           primary   msftdata
2    537MB   1611MB  1074MB                 primary   msftdata
3    1611MB  3758MB  2147MB  linux-swap(v1)  primary   msftdata
4    3758MB  3892MB  134MB                  primary   msftdata
5    3892MB  4429MB  537MB                  primary   msftdata
6    4429MB  4001GB  3996GB  xfs             primary   msftdata

番号6が表示されていることを確認。ここで、ファイルシステムがxfsになっていないようなら、(parted) rm 6 からやり直し。

つづいて、

(parted) quit

Raid情報作成していく。

# mdadm --create /dev/md124 --level=raid1 --riad-devices=2 --metadata=1.0 missing /dev/sdb6

と入力しエンターしraid情報を作成する。
最初の作業にもどり

# cat /proc/mdstat
//・・・↓↓コマンドの結果

Personalities : [linear] [multipath]・・・・・・・[raid0]
md124 : active (auto-read-only) raid1 sdb6[1]
     2925941012 blocks super 1.0
      
md125 : inactive sdb2[1](S)
     1048512 blocks
       
md126 : inactive sdb1[1](S)
     524224 blocks
       
md127 : inactive sdb5[1](S)
     524224 blocks
       
unused devices: <none>

でmd124が生成されているか確認。
つづいて、md124をアクティブにする。

# mdadm --run /dev/md124
//・・・↓↓コマンドの結果

mdadm: started array /dev/md/6_0

アクティブになっているか確認する。

# cat /proc/mdstat
//・・・↓↓コマンドの結果

Personalities : [linear] [multipath]・・・・・・・[raid0]
md124 : active (auto-read-only) raid1 sdb6[1]
     2925941012 blocks super 1.0
      
md125 : inactive sdb2[1](S)
     1048512 blocks
       
md126 : inactive sdb1[1](S)
     524224 blocks
       
md127 : inactive sdb5[1](S)
     524224 blocks
       
unused devices: <none>

アクティブになっていれば、md124をマウントする

# mkdir /mnt/test
# mount /dev/md124 /mnt/test
# ls /mnt/test
//・・・↓↓コマンドの結果

AppleDB        dlna  model                  raps         share
Program Files  dms   nasdsync_download_tmp  remotelink2

dfし領域を確認

# df -h
//・・・↓↓コマンドの結果

ファイルシス            タイプ   サイズ  使用  残り 使用% マウント位置
・・・
/dev/md124              xfs        2.8T  2.3T  472G   84% /mnt/test

次にRaidサイズの変更を行う。これを行わないと拡張したボリュームのサイズと合わなくなるので絶対行うこと

# mdadm --grow /dev/md124 -z max
//・・・↓↓コマンドの結果

mdadm: component size of /dev/md124 has been set to 5856197076K

このままだとxfsとrawが混在した状態となっているのでファイルシステムの拡張を実施する。

# xfs_growfs /dev/md124
//・・・↓↓コマンドの結果

meta-data=/dev/md124             isize=256    agcount=4, agsize=182871314 blks
        =                       sectsz=512   attr=2, projid32bit=0
        =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=731485253, imaxpct=5
        =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=32768, version=2
        =                       sectsz=512   sunit=0 blks, lazy-count=0

拡張が終了したらdfで確認

# df -h
//・・・↓↓コマンドの結果

ファイルシス            サイズ  使用  残り 使用% マウント位置
・・・
/dev/md124                5.5T  2.3T  3.2T   42% /mnt/test

容量が増えたことを確認したら
マウントを解除する。

# umount /mnt/md124

拡張した新HDDを1スロットに入れ、片方のHDDで起動確認。警告音がなり、ランプも赤点滅になるが、そのまま。

共有フォルダにアクセスできれば成功なのでシャットダウンし新HDD2をスロット2挿入。

HDDが1ポートのみのモデルは、これにて終了。バックアップデータを再移行すれば、拡張作業完了です。

起動し管理画面を開くと構成中となるはず。

(おまけ)LANディスクのHDDサルベージ方法
 基本手順は、md124(一番大きい容量のパーティション)をマウントし、アクセスするだけ。
 HDDを接続しただけでは、認識しないので、上記のマウントの仕方を参考にしてサルベージしてみてください。

とりあえずこれで拡張作業終了です。




この記事が気に入ったらサポートをしてみませんか?