Scientific Linux 6.3 またはCentOS7インストールログ3:software raid の設定とnfs mount
Linux設定の続き。
HDD5台でsoftware raid 5を組む
まず、5台のHDDをsoftware raid用にフォーマットする。fdiskを使う。
最初の1台目のデバイスが/dev/sdbとする。
fdisk /dev/sdb ...何か英語でいってくるかも コマンド (m でヘルプ): m コマンドの動作 a ブート可能フラグをつける b bsd ディスクラベルを編集する c dos 互換フラグをつける d 領域を削除する l 既知の領域タイプをリスト表示する m このメニューを表示する n 新たに領域を作成する o 新たに空の DOS 領域テーブルを作成する p 領域テーブルを表示する q 変更を保存せずに終了する s 空の Sun ディスクラベルを作成する t 領域のシステム ID を変更する u 表示/項目ユニットを変更する v 領域テーブルを照合する w テーブルをディスクに書き込み、終了する x 特別な機能 (エキスパート専用) コマンド (m でヘルプ): p 領域番号 (1-4): 1 最初 シリンダ (1-17365, default 1): < enterを押す Using default value 1 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-17365, default 17365): < enterを押す Using default value 17365 コマンド (m でヘルプ): t Selected partition 1 16進数コード (L コマンドでコードリスト表示): fd 領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
大体こんな感じで完了。同じ作業を他の4つのHDD(sdc, sdd, sde, sdf)でも繰り返す。
mdadmを使ってRaid 5 にまとめ、マウントする
mdadm -C /dev/md0 -l5 -n5 -f /dev/sd[bcdef]1
とやると、デバイス名/dev/md0 で1つのディスクとして見える。
ところで、このRAIDの設定というのは、一度書き込まれると残っているものらしい。
システムをクリーンインストールでアップデートして、RAID5のデータも書き直しかな、と思ったが、元と同じ配置でHDDをセットしたら、何もしなくても勝手に1つのデバイスとして認識した。ただし、デバイス名は何故か/dev/md127になっていた。
ここまでできたら、自動マウントの設定。/dataにマウントするものとする。
/etc/mdadm.confというファイルを作り、以下の情報を記入。
# vi /etc/mdadm.conf DEVICE /dev/sd[bcdef]1 ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1,/dev/sdf1
更に、/etc/fstabに以下の情報を追加。
# vi /etc/fstab /dev/md0 /data ext4 defaults 1 2
初回は自分の手でマウントする。
# mkdir /data # mount -a
ファイルサーバでnfsサーバの設定。
rootで作業。
/etc/exportsを変更。以下の行を加えると、ファイルサーバ上の/dataディレクトリにアクセス可能になる。(XXX.XX.XX.XXXはマウントを許すIP)
IPとカッコの間にスペースをあけないこと(違う意味になる)
/data XXX.XX.XX.XXX(rw,sync) XXX.XXX.XX.XXX(rw,sync)
他のマシンから見たときにrootによるアクセスを許す場合は、no_root_squashオプションをつける。
見せる相手が沢山の場合は、たとえば
/data 192.168.1.0/24(rw,sync,no_root_squash)
のようにも書ける。
ただしこれは、自分の(ローカル)IPが192.168.1.1等で、ぶら下がっているマシンが192.168.1.2, 192.168.1.3...といった場合。
サービスの再起動
# service nfs restart
クライアント側の設定
autofsをインストール。2行目は再起動後に勝手に立ち上がるようにする設定。
# yum install autofs #systemctl enable --now autofs
(Scientific Linux 6のみ)
nfs4を動かすと、何をやっても(no_all_squashをサーバー側でたてていても)マウント側でnobodyの持ち物になってしまうので、nfs3を動かす設定にする。
(nfs4はuidとは異なったファイルで所有者を判断しているらしいが、その設定方法がわからない。ndf3でも、サーバーごとにuidやgidが異なっていたら正しいユーザの持ち物としてマウントされないので注意。)
CentOS7ではこのバグは直っている模様なので、変更の必要なし。
# vi /etc/nfsmount.conf Defaultvers=4 のコメントアウトを外し、 Defaultvers=3 に変更
autofsのダイレクトマップを使う。
/etc/auto.masterに以下の行を追加
ScientificLinux 6
# vi /etc/auto.master # mount data dir /- /etc/auto.data -rw,intr # 以下の行はコメントアウト(NIS, NIS+を使わない場合) #+auto.master
CentOC7
# vi /etc/auto.master # mount data dir /- /etc/auto.data
/etc/auto.dataを作成し、以下の1行を記入して保存。
# vi /etc/auto.data /data -ftype=nfs,rw 192.168.1.1:/data
192.168.1.1はこの場合ファイルサーバのIP.
最後にデーモンを再起動。
ScientificLinux 6
# /etc/rc.d/init.d/autofs restart
CentOS7
# systemctl start autofs
以上