treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

RAID10対応の外付けHDDをセットアップする

前回、「RAID10の外付けHDDが故障したので交換して対処」で用意した交換用のRAID10対応外付けHDDのセットアップをご報告です。

RAID構成

説明書をしっかり確認、LHR-4BRHEFU3は紙面の説明書が付属するので助かります。

説明書に沿って、確認用のPCに接続し電源投入。

MODEボタンを長押しして、設定モード(RAID LEDがオレンジ点滅)に入ったのち、MODEボタンを数回押下して目当てのRAID10を指定したら、背面のRAID設定ボタンを電源が切れるまで長押し。

再度Powerボタンを押下して電源を入れると、指定したRAIDレベルでボリュームが構築されました。

ハードディスクの管理(diskmgmt.msc)で四台だったHDDが一台に束ねられたことを確認、これで準備完了です。

接続し認識を確認

障害発生後シャットダウンしていたDebianにハードディスクLHR-4BRHEFU3をUSB接続してOS起動します。

起動後認識しているかどうかを確認、dmesgで確認します。

$ sudo dmesg | grep sd

sd 2:0:0:0: [sdc] Very big device. Trying to use READ CAPACITY(16).
sd 2:0:0:0: [sdc] 7813857280 512-byte logical blocks: (4.00 TB/3.64 TiB)

sd 2:0:0:0: [sdc] Attached SCSI disk

/dev/sdcで認識していることが確認できました。

念のため、dmesgの出力を確認して上記の行付近を確認しておきます。

パーティション作成

デバイスを認識していることが確認できたので、「未割り当て」となっているディスク領域にパーティション作成し使えるようにしていきます。

今回は2TB超のディスクということもありfdiskでは領域が操作できないことから「parted」コマンドを使ってパーティション作成を実施しました。※partedコマンドの実行はroot権限が必要。

--------------------------------------------------------------

# parted /dev/sdc

(parted) mklabel gpt
(parted) mkpart
Partition name?  []?
File system type?  [ext2]? ext4
Start? 0%
End? 100%
(parted) print
Model: H/W RAID 10 (scsi)
Disk /dev/sdc: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  4001GB  4001GB  ext4

(parted) q
Information: You may need to update /etc/fstab.

--------------------------------------------------------------

プロンプトが"(parted)"となったところでpartedのサブコマンドを受け付けてくれます。
まず、「mklabel gpt」で新しいラベルgptを指定しました。※2TB超のディスクなのでGPT(GUID Partition Table)の指定が必要。

「mkpart」で実際のパーティションを作成していきます。
ファイルシステムは「ext4」を指定して、領域を0%~100%と全領域を指定してパーティションを作成しました。

「print」で作成したパーティションを確認できます。最後に「q」でpartedコマンドを抜けます。

完了後に「parted -l」でパーティションの確認ができますが、「fdisk -l」でも上手く作成できたことを確認しました。

--------------------------------------------------------------
Disk /dev/sdc: 3.7 TiB, 4000694927360 bytes, 7813857280 sectors
Disk model: 10
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 7813855231 7813853184  3.7T Linux filesystem
--------------------------------------------------------------

これで/dev/sdcにパーティション/dev/sdc1が作成されましたので、フォーマットしてOSから使用できるようにします。

# mkfs.ext4 /dev/sdc1

容量が多いディスクなので時間が掛かりますが、実行中は触れないように画面を確認しておきます。

--------------------------------------------------------------
# mkfs.ext4 /dev/sdc1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 976731648 4k blocks and 244187136 inodes
※中略

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
--------------------------------------------------------------

最後の「Writing superblocks and filesystem accounting information」が「done」になるまで操作不要です。これで実際に利用可能なパーティション/dev/sdc1の作成が完了しました。

fstab更新

現在故障したHDDのUUIDがfstabで指定されているので、これを更新しました。

「blkid」コマンドでfstabで指定するUUIDを確認します。

# blkid /dev/sdc1

コマンド実行後に表示される「/dev/sdc1: UUID=" "」で表記されたIDを/etc/fstabに記述します。※一緒に画面出力される「TYPE="ext4"」や「PARTUUID=" "」は不要です。

ディレクトリ作成

故障HDDで作成していたディレクトリを手動で作成していきます。

fstabで指定しているマウントポイント(例:/home/data)まではディレクトリが存在しているので、その配下(例:/home/data/share、この「share」ディレクトリ)を作成していきます。

構成<参照:rsyncでエラー「failed: Structure needs cleaning (117)」が出ていることに気づく - treedown’s Report>から、rsyncでデータを受け入れるディスクなので、手動で同期先となるディレクトリを作成して動作確認します。

このrsync自体はシェルにしてバッチファイルのように実行できるようにしてありますので、ディレクトリを作成して適切なパーミッションを設定すればcronで設定してあるrsyncシェルが自動実行してデータを同期してくれるようになります。(※実際は、手動で一回同期を実行させてからcronで指定している定期実行を再開させることになります。)

また、最初の同期は万が一があっても大丈夫なフォルダを一つ指定してテスト同期を実行して、問題ないことを確認した後に全体の同期を実行しました。

全体のrsync同期にはかなりの長時間を要しましたが、何とか同期は正常終了、これで復旧が完了しました。