自宅で仕事のようにサーバーを管理している、弓削田です。
自宅サーバーは本当にサーバーやネットワークの勉強になる上、
好き放題なんでもできる(悪いことをするという意味ではない)という事も含めて、
フルスタック系エンジニアであれば、ほぼ必須なのかもと僕の周辺では囁かれています。
そんな、与太話はどーでもいいんですが、
今回はサーバーで、再起動をするたびに、Raidドライブがマウントされないので、
その対応を起動コマンドで補ったという作業備忘録を覚書として残しておきたいと思います。
今現在の問題点
Raidドライブがマウントされないという事象を細かく書くと、
USBの外付けドライブであるHDD2台構成のドライブは正常に読み込まれているんですが、
同じく外付けの4台構成のドライブが認識されていませんでした。
この2つのドライブの差は、ソフトウェアRAIDとハードウェアRAIDという違いがあり、
ハードウェアRAIDは2台構成の方のドライブで、こちらは、外付けドライブ内にRAID構築機能があり、
それを利用してOSでマウントしているだけなんですが、
4台構成ドライブは、OS側でフォーマットして、mdadmを使ってraidを構築したドライブです。
どうやらmdadmがOS再起動時に、ドライブをまとめたraidデバイスのm0を作ってくれなくて、
存在しないドライブということで起動時にエラーが出ているようでした。
今回やったこと
以下のコマンドで、再起動後も正常にマウントできるという事はわかった。
$ mdadm -A /dev/md0
$ mdadm --examine --scan >> /etc/mdadm/mdadm.conf
$ mount /dev/md0 /mnt/usb2
管理権限でこのコマンドをOS起動のたびに実行するのは、かなりの苦痛だ。
サーバーたるもの、電源を入れてOSが起動したら、まずは正常動作をする体制になっていなければならない
(自論です)
それも踏まえて、今回使用しているLinuxサーバーで、OS起動したら、上記御コマンドを自動で実行する処理を
設定してみることで、問題なく、起動時にドライブマウントまでしてくれるようになりました。
$ vi /etc/rc.local
※このファイルの最後に、コマンドを記述
ちなみに、Linuxんいおける起動コマンドは、ディストリビューション毎に違う可能性があるので、
今回はUbuntuを使って行ったのだが、Debian系は、同じやり方で良いと思うが、centosや、それ以外の系列のディストリビューションは
確認してから実行してくれたまえ。
Ubuntu(debian系)での起動コマンドについて
ちなみに、実は最初は、/root/.bashrcに記述をして、やってみたところ、ターミナルでrootにログインするまで
実行されなかったので、よくよく調べてみると、
~/.bashrc
という隠しファイルは、そのユーザーでログインした時に、実行されるファイルだったようです。
さらに、ドライブのマウント系の処理は、「/etc/fstab」というファイルに記述をした方がいいという内容をネットで見かけたのですが、
fstabは、マウントをするドライブを記述する場所なので、下手な記述をしたり、外部ドライブの電源が入っていない場合などでは
OSが正常に立ち上がらなくなるという別問題が発生してしまうので、
今回は、このままで行こうと思います。
今回は、起動コマンドとSoftRaidの扱いに関して勉強になったという話でした。
同じ箇所でつまずいている方の参考に、少しでもなれば幸いです。
0 件のコメント:
コメントを投稿