RAID1構築と運用(2015/09/05現在)
インストールの時にRAID1(ミラーリング)を構築し、運用する方法です。
OS:VineLinux6.3
参考サイト
お便利サーバー(OSをRAID構成でインストール-)
think-t の晴耕雨読
OSのインストール
01. 本体にハードディスクをセットします。今回RAID1のミラーリングなので、2台セットします。
2台は同じメーカーの同じ容量が良いです。今回はNAS用HDDの「RED」を用意しました。
詳しい情報は下記サイトへどうぞ
WD Red
02. 電源を入れて、BIOS表示をさせて、ブートCDディスクをセットします。
PCによって(正確にはマザーボード)違いますが、「Delete」「F2」「F12」というところでしょうか?
画面の下、もしくは右上にBIOSを呼び出すキーがよく表示されます。
ブートディスクがCD-ROM/DVDにセットします。USBの方は、USBブートにしてください。
03. 設定を保存して再起動します。
04. Vineのオープニングが表示されます。今回はテキストモードで設定しました。(個人的に好きなので)
05. キーボードの選択は「us」が表示されているので、日本語キーボードの「jp106」を選択します。
「j」を押せばすぐに出てきますけどね。
06. 今回はサーバにしたいので、「Custom」を選択しました。クライアントなら「Desktop」でOKです。
07. メインの手順です。パティーションを設定するので「Disk Druid」を選択します。
08. 注意勧告をされます。簡単に言うと「この操作によってハードディスクにあるすべてのデータが削除されますけどかまいませんか?」
と聞かれています。インストールするので、何かが残っていても困りますから、「YES」を選択します。
09. 現在のパティーションの状況です。「Free Space」しかありません。
パティーションの内容は下記の設定で行います。
パティーションは3つに割ります。
---------
/boot 100MB Kernel等、軌道に必要なファイルが登録されます。
swap 776MB メモリの2倍を設定します。今回はメモリが386MBです。
/ 残り ルートに残りすべてを割り当てます。
10. 現在のパティーションの状況です。「Free space」しかありません。
「/dev/sda」のFree spaceを選択し、「NEW」ボタンを押します。
11. File system typeはフォーマットのタイプです。「software RAID」を選択します。
Allowable Drivesはハードディスクです。1つ目なので「sda」を選択します。
Fixed Sizeはファイルサイズの固定です。サイズは「100MB」を入力します。
force to be a primary partitionはプライマリーパティーションです。チェックをつけておきます。
12. 画面がパティーションの状況に戻ります。sdaに「software R」が追加されています。
「/dev/sdb」のFree spaceを選択し、「NEW」ボタンを押します。
13. [11]番の手順と同じ内容にします。ただ、ハードディスクだけ変えます。(sda -> sdb)
Allowable Drivesはハードディスクです。1つ目なので「sdb」を選択します。
14. 画面がパティーションの状況に戻ります。sdbに「software R」が追加されています。
2つのハードディスクに同じ内容がそろっていることを確認してください。
15. RAID設定をします。
Mount Pintに「/boot」を入力します。
File System Typeは「ext4」にします。softraidの上でext4にします。通常のフォーマットに当たります。
RAID Levelは上から2つ目の「RAID1」にします。何故かRAID1が2項目あるのですが、理由はわかりません。
RAID Membersは「sda1」「sdb1」と共に選んでください。
16. 「RAID Device 0」が増えました。Mount Pointに「/boot」が付いています。
これが今までの状態と同じです。softraidの上にあるという事を忘れないでください。
次にswapを作ります。
/dev/sdaのFree spaceを選択し、「New」ボタンを押します。
17. 次にswapを作ります。
Mount Pointは空白で。
File System typeは/bootと同じく「software RAID」を選択します。
Allowable Drivesは「sda」を選択します。
Fixed Sizeはここも固定値で入力します。メモリの2倍の容量を設定します。
18. 次に、2つ目のディスクを設定します。
/dev/sdbのFree spaceを選択し、「New」ボタンを押します。
19. [17]番の手順と同じ内容にします。ただ、ハードディスクだけ変えます。(sda -> sdb)
20. 「RAID」ボタンを押します。
21. swapの設定をします。
File System typeは「swap」を選択します。
RAID Levelは上から2つ目の「RAID1」を選択します。
RAID Membersは「sda2」「sdb2」を選択してください。
22. RAID Device1に「/boot」が移り、RAID Device0に「swap」に変更されています。
使ってみて特に不都合は感じなかったので、このまま使ってみます。
最後の「/(ルート)」を作ります。「/dev/sda」の「Free space」にを選択し、「New」ボタンを押します。
23. Mount Pointは空白のままです。
File System Typeは「software RAID」を選択します。
Allowable Drivesは「sda」を選択します。
「Fill all available space」を選択し、すべてをRAID化します。
「Force to be a primary partition」を選択します。
24. 2台目のハードディスクを選びます。「/dev/sdb」を選択し、「New」ボタンを押します。
25. Mount Pointは空白のままにします。
File System typeは「software RAID」を選択します。
Allowable Drivesは「sdb」を選択します。
「Fill all available space」を選択し、すべてのディスクをRAID化します。
「Force to be a primary partition」を選択し、「OK」ボタンを押します。
26. 「RAID」ボタンを押します。
27. Mount Pointは「/」にします。
File System typeは「ext4」を選択します。
RAID Levelは上から2つ目の「RAID1」を選択します。
RAID Membersは「sda3」「sdb3」を選択し、「OK」ボタンを押します。
28. RAID Device0は「swap」のままですが、「/」がDevice1に。「/boot」がDevice2に変更されました。
これでRAIDの準備はできましたので、これ以降は通常のインストールを行なってください。
29. 以下、インストールのサンプルです。
再起動して完了です。
起動ディスクの追加
RAID1はミラーリングです。たとえ片方が停止しても、残りの片方で処理を進めることができるのですが、
残念ながら起動は /dev/sda からしかできません。よって、/dev/sdaが故障した場合は起動ができないことに
なります。こうなると、電源を切ってハードディスクを入れ替えてから起動ができない為、データが救えない
という状況になります。
そこで、もう片方の /dev/sdb からも起動できるように設定を変更します。
起動については「grub」というソフトが管理しています。保存場所は /boot/grubです。
設定ファイルは grub.conf ですが、シンボリックが張られており実態は menu.lstです。
groub.confを確認します。
---- grub.conf(menu.lst) ----
# cat /etc/grub.conf
# menu.lst generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/md1
# initrd /initrd-version.img
#boot=/dev/md2
default=0
timeout=5
title Vine Linux (Current kernel)
root (hd0,0)
kernel /vmlinuz ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.img
title Vine Linux (Previous kernel)
root (hd0,0)
kernel /vmlinuz.old ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.old.img
---- EOF ----
起動は「root(hd0,0)」設定されています。2種類ありますが、通常モードとセーフモードの為、2種類あります。
ここで、2本目の設定を行います。命令コマンドは「grub」です。
2本目なので「root(hd1,0)」を指定します。
# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97-4vl6 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> root(hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub> quit
quit
設定はできましたので、あとは呼び出しに登録するだけです。
今回はミラーリングの為、起動の呼び出しは同じです。1本目の設定をまるまるコピーしてくるのですが、
名称を変えないとわかりにくいので「-disk2」を追加します。
---- grub.conf(追加した状態) ----
# cat /etc/grub.conf
# menu.lst generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/md1
# initrd /initrd-version.img
#boot=/dev/md2
default=0
timeout=5
title Vine Linux (Current kernel)
root (hd0,0)
kernel /vmlinuz ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.img
title Vine Linux (Previous kernel)
root (hd0,0)
kernel /vmlinuz.old ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.old.img
# root (hd1,0)
title Vine Linux (Current kernel)-disk2
root (hd1,0)
kernel /vmlinuz ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.img
title Vine Linux (Previous kernel)-disk2
root (hd1,0)
kernel /vmlinuz.old ro root=/dev/md1 resume=swap:/dev/md0 vga=0x314 splash=silent quiet
initrd /initrd.old.img
---- EOF ----
後は、電源を切ってハードディスクのコネクタを意図的に外してちゃんとRAIDの機能が働くか確認してからサーバの設定を
行ってください。テスト項目は4項目です。
1:/dev/sda のコネクタを外して起動するか?
2:外したコネクタを戻してRAIDに再組込みできるか?
3:/dev/sdb のコネクタを外して起動するか?
4:外したコネクタを戻してRAIDに再組込みできるか?
以上、問題がなければ運営を開始してください。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
raid1復活
デバイスの状態を確認します。
生きているハードディスク
# fdisk /dev/sda
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
コマンド (m でヘルプ): p
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
ヘッド 255, セクタ 63, シリンダ 121601, 合計 1953525168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x000f059e
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 63 610469 305203+ fd Linux raid 自動検出
パーティション 1 は物理セクタ境界で始まっていません:
/dev/sda2 610470 16996769 8193150 fd Linux raid 自動検出
パーティション 2 は物理セクタ境界で始まっていません:
/dev/sda3 16996770 1953520064 968261647+ fd Linux raid 自動検出
パーティション 3 は物理セクタ境界で始まっていません:
追加したディスク(/dev/sdb)が認識されているか確認します。
# dmesg |grep sdb
sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
sd 1:0:0:0: [sdb] 4096-byte physical blocks
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdb: sdb1 sdb2 sdb3
sd 1:0:0:0: [sdb] Attached SCSI disk
md: bind
md: kicking non-fresh sdb3 from array!
md: unbind
md: export_rdev(sdb3)
md: bind
md: kicking non-fresh sdb2 from array!
md: unbind
md: export_rdev(sdb2)
md: bind
md: kicking non-fresh sdb1 from array!
md: unbind
md: export_rdev(sdb1)
表示されなければ認識されていません。
生きているハードディスクのヘッドが「255」になっています。
新しいディスクもこれに合わせてください。容量を合わせないとRAIDがうまく設定できません。
--- ヘッド設定例 ---
ヘッドの値を確認します。
# fdisk /dev/sdb
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
コマンド (m でヘルプ): p
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
ヘッド 240, セクタ 63, シリンダ 121601, 合計 1953525168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x000f059e
※ヘッド数が「240」なので生きているディスクの「255」に合わせます。なお、論理値の調整なので容量に変更はありません。
コマンド (m でヘルプ): x
上級者コマンド (m でヘルプ): h
ヘッド数 (1-256, 初期値 255): 255
上級者コマンド (m でヘルプ): r
コマンド (m でヘルプ): p
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
ヘッド 255, セクタ 63, シリンダ 121601, 合計 1953525168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x000f059e
※ヘッドが255になりました。
---- EOF ----
パーティションを設定します。
---- パーティションの設定例----
RAID1の場合は生きているディスクを確認して容量と内容を設定してください。
/boot
swap
/(ルート)
---- EOF ----
RAIDに割り当てます。
どのデバイスがどのハードディスクを管理しているか確認します。
$su - root
パスワード
# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda1[0]
305088 blocks [2/1] [U_]
md0 : active raid1 sda2[0]
8193024 blocks [2/1] [U_]
md1 : active raid1 sda3[0]
968261568 blocks [2/1] [U_]
この場合、
md0 sda2 <--- swap
md1 sda3 <--- / (ルート)
md2 sda1 <--- /boot
となっています。
そこで、容量を合わせたデバイスを設定します。
swap割り当て
#mdadm --manage /dev/md0 --add /dev/sdb2
mdadm: added /dev/sda2
/(ルート)割り当て
#mdadm --manage /dev/md1 --add /dev/sdb3
mdadm: added /dev/sda3
/boot割り当て
#mdadm --manage /dev/md2 --add /dev/sdb1
mdadm: added /dev/sda1
割り当てを行うと自動的に同期をとりに行きます。
<<更新中画面>>
# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb1[1] sda1[0]
305088 blocks [2/2] [UU]
md0 : active raid1 sda2[0] sdb2[1]
8193024 blocks [2/2] [UU]
md1 : active raid1 sdb3[2] sda3[0]
968261568 blocks [2/1] [U_]
[==========>..........] recovery = 52.8% (512092480/968261568) finish=74.3min speed=102300K/sec
unused devices:
※同期を取り終えると※
# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb1[1] sda1[0]
305088 blocks [2/2] [UU]
md0 : active raid1 sda2[0] sdb2[1]
8193024 blocks [2/2] [UU]
md1 : active raid1 sdb3[1] sda3[0]
968261568 blocks [2/2] [UU]
unused devices:
となります。
サーバの入替えの場合、ユーザ情報は必要となります。
以下は参考にご覧ください。
コピーするファイル
/etc
-rw-r--r-- 1 root root 1364 8月 10 12:57 group
-r-------- 1 root root 1110 8月 10 12:57 gshadow
-rw-r--r-- 1 root root 3448 8月 10 12:57 passwd
drwxr-xr-x 7 usi usi 4096 8月 7 17:13 rpm/
-r-------- 1 root root 3541 8月 10 12:57 shadow
/homeのコピー
データを圧縮
# cd /home
# tar cvf homeback.tar .
データをコピーする
#scp homeback.tar ユーザ@RAIDサーバ:
(例)
#scp homeback.tar hoge@raidserver.co.jp:
データを解凍
#tar zxvf /home/usi/home.tar.gz .
Let's PC の Topに戻る
ホームページのTopに戻る