*Soft Raid [#d02f8913] RIGHT:更新日 &lastmod(); **Fileシステムの表示 [#xb945176] $ df -T Filesystem Type 1K-ブロック 使用 空き 使用% マウント位置 /dev/md0 ext3 305401344 28399312 261488472 10% / none tmpfs 1032396 0 1032396 0% /dev/shm $ df -T ファイルシス タイプ 1K-ブロック 使用 使用可 使用% マウント位置 rootfs rootfs 48379628 4626788 41295300 11% / /dev/root ext4 48379628 4626788 41295300 11% / /dev tmpfs 474244 464 473780 1% /dev none tmpfs 474244 0 474244 0% /dev/shm **RaidとGhost [#x85fecff] Vine5.xでhddがSATAインターフェイスの/dev/sdaをGhostキャストサーバで吸い上げ、/dev/sdbに書き戻したら、sda,sdb(SATA1側に接続)したら、問題なく1HDDで起動したが、2台接続した場合はどの組み合わせもKernelパニックで起動しなかった。 そこで、ディユプリケートしたHDDをWindowsでFormatして接続したら問題なく起動。 やはりミラーでもなにかちがうのかな? **DISK構成 [#maa3b95b] ''raid0では/boot領域がRaid構成だと起動しないがRaid1(Mirror)だとOK。''~ インストール直後にraid1はraidを構築し始めるので/proc/mdstatをモニターして Raidが完成する様子を見る。 ''&color(red){注)このままではhda側に障害が出たとき、hdb側にMBRがないので立ち上がらない。そこで事前にhdaのMBRをhdbの[[MBRのコピー>#mbr]]をしておく。};''~ また、一度Raidのメンバーから外すと再起動後は再度メンバーとしてADDする必要がある。 ''raidの構成'' hda <================================ RAID ================> -------------------------------------------------------- |/boot(500MB) |/ (18GB) |swap (1GB) | -------------------------------------------------------- hda1 md0(hda2) md1(hda3) hdb <================================ RAID ================> -------------------------------------------------------- |/boot(500MB)|/ (18GB) |swap (1GB) | -------------------------------------------------------- hdb1 md0(hdb2) md1(hdb3) **ドライブの交換 [#ne4a7206] 破壊されたディスクの交換を行う~ 新しいHDDを接続し、残ったHDDと同じようにfdiskでパーテションを作成する~ 容量が多くなればよさそう~ Formatの必要かも md0 : active raid1 hdb2[2](F) hda2[0] 19350208 blocks [2/1] [U_] のように不良HDDには(F)がつく。 /sbin/mdadm --fail /dev/md0 /dev/hdb2 で切り離す必要があるかも ''元DISK(20GB)'' Disk /dev/hda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/hda1 * 1 64 514048+ 83 Linux /dev/hda2 65 2473 19350292+ fd Linux raid 自動検出 /dev/hda3 2474 2610 1100452+ fd Linux raid 自動検出 ''新追加DISK(24GB)'' Disk /dev/hdb: 25.7 GB, 25769803776 bytes 15 heads, 63 sectors/track, 53261 cylinders Units = シリンダ数 of 945 * 512 = 483840 bytes デバイス Boot Start End Blocks Id System /dev/hdb1 1 1138 537673+ 83 Linux /dev/hdb2 1139 44542 20508390 83 Linux /dev/hdb3 44543 53261 4119727+ 83 Linux コマンド (m でヘルプ): t 領域番号 (1-4): 2 16進数コード (L コマンドでコードリスト表示): fd 領域のシステムタイプを 2 から fd (Linux raid 自動検出) に変更しました コマンド (m でヘルプ): p Disk /dev/hdb: 25.7 GB, 25769803776 bytes 15 heads, 63 sectors/track, 53261 cylinders Units = シリンダ数 of 945 * 512 = 483840 bytes デバイス Boot Start End Blocks Id System /dev/hdb1 1 1138 537673+ 83 Linux /dev/hdb2 1139 44542 20508390 fd Linux raid 自動検出 /dev/hdb3 44543 53261 4119727+ fd Linux raid 自動検出 ***Raidのメンバーに追加 [#vf1d362f] Vine4.x (Kernel2.6)から再構築のためRaidメンバーに参加させるにはmdadmを使用する raidhotaddコマンドから、mdadmになった。 hdb2,hdb3をメンバーに参加させる。その後hdb1にddコマンドで/bootをhda1からコピー。 # /sbin/mdadm /dev/md0 -a /dev/hdb2 mdadm: re-added /dev/hdb2 # cat /proc/mdstat Personalities : [raid1] md1 : active raid1 hdb3[1] hda3[0] 1100352 blocks [2/2] [UU] md0 : active raid1 hdb2[2] hda2[0] 19350208 blocks [2/1] [U_] [>....................] recovery = 0.4% (78208/19350208) finish=24.6min speed=13034K/sec unused devices: <none> ***Raidの状況表示 [#b5289789] # /sbin/mdadm -Q -D /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Tue Sep 18 13:34:15 2007 Raid Level : raid0 <==ストライピング(raid0) Array Size : 235512320 (224.60 GiB 241.16 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Sep 18 13:34:15 2007 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 256K UUID : a845c29d:8bcdbcb7:7ca2d75c:ddbed9f3 Events : 0.1 Number Major Minor RaidDevice State 0 3 2 0 active sync /dev/hda2 1 3 66 1 active sync /dev/hdb2 ***擬似的にHDDの不良をセットする [#y9fa4723] # /sbin/mdadm --fail /dev/md1 /dev/hda2 mdadm: set /dev/hda2 faulty in /dev/md1 これで、hda2がRaidから切り離される ***明示的にHDDの切り離し [#u00cdfd2] # sbin/mdadm --remove /dev/md1 /dev/hda2 mdadm: hot removed /dev/hda2 これで、hda2が切り離される。しかしながら、正常に動作しているときは、 mdadm: hot remove failed for /dev/hdb3: Device or resource busy となり切り離せないので、--failで一度疑似不良にするとはずせる。 ***その他 [#lc9ccc2a] Raidから物理DISKを外し、一度シングルで立ち上げると、再度DISKを実装してもRaid構成にならない。その時は再度mdadmで再度addする必要がある。このときシングルの試験をhda->hdbの順序で確認した場合はhdbがアクティブになりhdaをコマンドでraidに追加した。 **ddを使用してパーテションのコピーのしかた [#i56f8120] ***bootパーティションがミラーでない場合のコピー [#x7a8e16e] Raid1ではbootもミラー化できるので以下の作業は不要だが参考までに記述しておく。~ 再起動後/bootの内容をhdb1にコピーする dd if=/dev/hda1 of=/dev/hdb1 bs=512 (*hd[ab]1=bootパーティション) # dd if=/dev/hda1 of=/dev/hdb1 bs=512 1028097+0 records in 1028097+0 records out 526385664 bytes (526 MB) copied, 9.2453 seconds, 56.9 MB/s ''mountして確認'' # mount /dev/hdb1 /mnt # ls /mnt System.map@ grub/ lost+found/ System.map-2.6.16-0vl68 initrd-2.6.16-0vl68.img vmlinuz@ System.map-2.6.16-0vl76.3 initrd-2.6.16-0vl76.3.img vmlinuz-2.6.16-0vl68 System.map.old@ initrd.img@ vmlinuz-2.6.16-0vl76.3 config-2.6.16-0vl68 initrd.old.img@ vmlinuz.old@ config-2.6.16-0vl76.3 kernel.h &color(red){kernelのUpdateしたときはコピーしておく必要がある}; ***&aname(mbr){MBRのコピー}; [#l11c1473] hdaが破壊されるとhdbにはMBRが書き込まれていないので起動できない。そこで先にhdaのMBRをhdbにコピーしておきhdaが破壊されたときはhdbにあるHDDをマスターにして起動できるようにしておく。 ''MBRというファイルにhdaのMBRをコピー''~ dd if=/dev/hda of=./MBR bs=512 count=1~ ''ファイルMBRをhdbのMBRにコピー''~ dd if=./MBR of=/dev/hdb bs=446 count=1 &color(red){<==bsが512でなく446であることに注意}; # dd if=/dev/hda of=./MBR bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.005724 seconds, 89.4 kB/s # dd if=./MBR of=/dev/hdb bs=446 count=1 1+0 records in 1+0 records out 446 bytes (446 B) copied, 0.000928 seconds, 481 kB/s ***GRUBの場合はGURBのインストールも必要かも [#u792384a] Vine6.0(ext4でシステムを構成)でシステム起動時はデュプリケートされていない?ような感じもあった。~ SoftRaidでGURBをインストールする必要がある場合は以下のように行う(Vine5.xまでは必要なかった [ext3は問題ないかも未確認]) 通常にRaidで起動して以下のようにする。~ インストールするデバイス(sdb)をhd0に指定して、その最初のパーティション(hd0,0)をrootに指定して、その後そのデバイスにgrubをインストールするようだ # 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> device (hd0) /dev/sdb <=hd0に sdbを割り振る device (hd0) /dev/sdb grub> root (hd0,0) <= rootを指定 root (hd0,0) Filesystem type is ext2fs, partition type 0xfd ----以下がCentOS6の場合----- GRUBをインストールをする grub> setup (hd0) setup (hd0) 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 (hd0)"... 27 sectors are embedded. succeeded Running "install /grub/stage1 (hd0) (hd0)1+27 p \ (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded Done. コマンドが > setup (hd0)かも下ではうまくいかない?~ 下のコマンドはVine、上のsetupコマンドは CentOS6で動作した [[ここ>turboLinux_White Box Enterprise Linux_Fedora Core_Red Hat Memo/CentOS5.x Raid1でインストール]] ----Vineのときは下のようにしたような気が・・・・ grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf grub> quit quit # これでsdbからも起動するようになった ''ext4 format'' # mkfs.ext4 /dev/sdb1 mke2fs 1.41.14 (22-Dec-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 3186688 inodes, 12723472 blocks 636173 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 389 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. ***SWAPのパーティション領域の作成(参考:Raidとは関係ない) [#v5699b36] -フォーマット # mke2fs -j /dev/sda2 -SWAPの作成 # mkswap /dev/sda2 スワップ空間バージョン1を設定します、サイズ = 2271316 KiB ラベルはありません, UUID=299df47d-b361-4c91-9725-1d98d75d06cb **参考 [#pa546c70] [[Raidの作成(Kernel2.4):http://wwwism.dyndns.org/hp/linux/raid.htm]]