作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

Linux debianでRAID(ミラーリング)構築。mdadmとpartedで


自宅サーバーのディスクが1台壊れたのでRAIDを組み直しました。
mdadmによるRAID構成手順を残しておきます。

・Linux Debian 9.11 (stretch)
・mdadm 3.4-4+b1
RAID構築に必要なパッケージ(mdadm)はすでに入っているものとします


もともと、sdcとsddの2台のディスクでRAID1(ミラーリング)を組んでいたのですが、sddのディスクが壊れた(サーバー起動時になにやら怪しげなエラーが出て立ち上がらなくなった)のです。

S.M.A.R.T. Status Bad. Backup and Replaceと出てます。こわいですね(>_<)


ということで、新しいRAID1を組み直すことにしました。容量も3TBから6TBに増量して。



用意したのは6TB HDD 2台。
これで新しいミラーリングRAIDを組みます。

まず、壊れたsddを取り外し、そこに新しい6TB HDDをつなげます。
sdc1台だけでRAID1を動かしている状態です。(1台だけなので、これは本当はRAIDとは言いませんが)
大切なデータはsdcに残っているのでセーフです。
もしこの状態でsdcも壊れたらデータが消失するので手早く新しいRAIDを構築しちゃいましょう。
raid1 mdadm


まずpartedコマンド。
partedはディスクパーティションの作成や削除など行うコマンドです。
パーティション形式はMBRではなくGPT(GUIDパーティションテーブル)にします。
MBRだとディスク2TBまでしか認識できません。GPTは2TBを超えるディスクをサポートできます。
以上でパーティションを作成できました。

pコマンドで確認してみます。
Start:17.4kB End:6001GB のext4のパーティションが作られています。
quitで終了します。

次に、この新しいディスクsddだけでraid1(ミラーリング)を構成します。
sdd1を1台だけの未完成RAID1としてまず作成するということです。
すでにmd3というRAID1は定義されてしまっているので、ここではmd4という名前を使うことにします。



mdadmコマンド中の’missing /dev/sdd1′ という引数は 「/dev/sdd1が無い」という指定に見えますが、そうではなくて、
「missingオプション(1台だけで構築)。その1台は/dev/sdd1である」という指定になります。まぎらわしいですが。


新しいRAID1が組めたので、このraidパーティションをext4でフォーマットします。
コマンドはmkfs.ext4です。

次に、データを移す準備をします。
このRAIDパーティションを/data2にmountします
これで、新しいディスクにアクセスできるようになりました。


/dev/md3 (/data) → /dev/md4 (/data2) にファイルをコピーします。
行末に&をつけているのは、バックグラウンドで実行するためです。
古い方のRAIDから新しい方のRAIDにデータを移行するというわけです。


ここまでできたら、sdcの3TBは不要なのでサーバーを止めて3TBのsdcのディスクを取り出し、
代わりに6TBの新ディスクを接続します。


新しいディスクになった /dev/sdc をセットアップします。
Warningが出ますが、’Ignore’を入力し作成します。
sddをセットアップしたときと要領は同じです。


pコマンドで、確かにパーティション(sdc1)ができていることを確認します。

sdcにパーティションが作れたのでpartdを終了します。

ここで、 lsblkコマンドで確認したら、新しいRAIDはmd4で作ったはずなんですがmd126という番号になってました。
直し方が分からないので、もうこのままいくことにしました。
強制的に変えることもできるようですが、あまり気にしてないのでmd126のままでいきます


sdc1をRAID(md126)にJOINします。
晴れて2台構成のRAID1が完成します



mdstatを見ると、今まで1台構成だったRAIDが2台になってデータをシンクロ中であることがモニタできます


これでRAIDは完成しましたが、起動時に自動的にRAIDディスクをマウントするように設定をしておきます。
この出力結果を /etc/mdadm/mdadm.conf に書いておきます。
なぜそうするのか良く分かっていませんが、そうするのが決まりみたいです。
/dev/md/hostname:5_0 というARRAYになっていますが、これは /dev/md126へのシンボリックリンクになっていました。
なぜこういう名前になるのか良く分かりませんが。ま、動いているから良しとします。


/etc/fstab を更新しておきます。
以上でうまくRAIDの再構築ができました。

おわり

関連記事


ソフトウェアRAID
新サーバーを構築して、RAIDにしようと思って奮闘しているけど意外と難しいな… 失敗してデータ消してもたorz OSインストールからやりなおしorz 覚え書き mdadm –create /dev …

Postfixメールサーバー:送信不可のユーザーを設定する
メールサーバーPostfixにて、送受信ができないユーザーを設定をする方法です。Linux、debian環境です。特定のメールアドレスを送受信不可にします。メールを許可しないLinuxユーザーを作るときに有効です。

Web開発・Web制作のツールや用語を初心者向けに大量紹介。これだけ知っておけば安心。
Webページ製作やWebのシステム開発ではいろんなツールやテクニック、用語を使いますが、全体像がなかなか掴みにくいと思ったので、初心者向けに用語をたくさんまとめました。これさえ押さえておけば業界の常識用語はだいたい網羅できると思います。

KVM仮想マシンをWebからアクセスできるKimchiをdebianにインストール
自宅サーバーにてKVMの仮想マシンを動かしていますが、外からでもリモートで操作できるようにkimchiを導入しました。 GitHub – kimchi-project/kimchi: An HTML5 man …

Linuxの権限について解説。setuidとかsetgidとかスティッキービットとか
setuidとかsetgidとかスティッキービットの解説です。Linuxのこれらの機能については考え方が難しいですが、setuidは「一般ユーザーがroot権限で動かすことができる仕組み」です。setgidはそのグループ版です。詳細なメカニズムを解説します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です