Configure RAID 12010/05/05 |
Add new HD and Configure RAID 1 with current HD and the new HD.
This example shows to make /home RAID 1.
|
|
[1] | Create a new partition for RAID 1 in current HD |
[root@dlp ~]# sfdisk -l /dev/sdb # show status Disk /dev/sdb: 10011 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdb1 * 0+ 1999 2000- 16064968+ 83 Linux /dev/sdb2 0 0 0 0 0 Empty /dev/sdb3 0 - 0 0 0 Empty /dev/sdb4 0 - 0 0 0 Empty [root@dlp ~]# fdisk /dev/sdb # create a partition The number of cylinders for this disk is set to 20023. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p # show partition table Disk /dev/sdb: 82.3 GB, 82348277760 bytes 255 heads, 63 sectors/track, 10011 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2000 16064968+ 83 Linux Command (m for help): n # create a partition Command action e extended p primary partition (1-4) p # promary Partition number (1-4): 2 # specify partition number First cylinder (2001-10011, default 2001): # first cylinder Using default value 1 Last cylinder or +size or +sizeM or +sizeK (2001-10011, default 10011): 5000 # last cylinder Using default value 20023 Command (m for help): p # show partition table Disk /dev/sdb: 82.3 GB, 82348277760 bytes 255 heads, 63 sectors/track, 10011 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2000 16064968+ 83 Linux /dev/sdb1 2001 5000 24097500 83 Linux # created Command (m for help): t # change type Selected partition 2 # specify partition number Hex code (type L to list codes): L # list type 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris 2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec 3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec 5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx 6 FAT16 42 SFS 86 NTFS volume set da Non-FS data 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT 10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12 11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA- 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS sec 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT 1c Hidden W95 FAT3 75 PC/IX Hex code (type L to list codes): fd # Linux raid auto Changed system type of partition 2 to fd (Linux raid autodetect) Command (m for help): p # show partition table Disk /dev/sdb: 82.3 GB, 82348277760 bytes 255 heads, 63 sectors/track, 10011 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2000 16064968+ 83 Linux /dev/sdb1 2001 5000 24097500 fd Linux raid autodetect # changed Command (m for help): w # save and quit The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@dlp ~]# sfdisk -l /dev/sdb # show status Disk /dev/sdb: 20023 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdb1 0+ 1999 2000- 16064968+ 83 Linux /dev/sdb2 2000 4999 3000 24097500 fd Linux raid autodetect # created /dev/sdb3 0 - 0 0 0 Empty /dev/sdb4 0 - 0 0 0 Empty
|
[2] | Create a partition that type is 'Linux raid autodetect' in new HD, too like above. Following status is just the one after creating it. |
[root@dlp ~]# sfdisk -l /dev/sdc # show status Disk /dev/sdc: 20023 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdc1 0+ 2999 3000- 24097468+ fd Linux raid autodetect /dev/sdc2 0 - 0 0 0 Empty /dev/sdc3 0 - 0 0 0 Empty /dev/sdc4 0 - 0 0 0 Empty
|
[3] | Configure RAID 1 with using 2 HD above. |
[root@dlp ~]# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb2 /dev/sdc1 mdadm: array /dev/md0 started. [root@dlp ~]# mkfs -t ext3 /dev/md0 # format [root@dlp ~]# vi /etc/mdadm.conf # create new
DEVICE /dev/sd[a-z]* ARRAY /dev/md0 level=raid1 devices=/dev/sdb2,/dev/sdc1 [root@dlp ~]# cat /proc/mdstat # show status ( it's Ok if the status is '[UU]' ) Personalities : [raid1] md0 : active raid1 sdc1[1] sdb2[0] 24097344 blocks [2/2] [UU] unused devices: <none> |
[4] | Mount RAID device to /home to complete to configure. |
[root@dlp ~]# mount /dev/md0 /mnt [root@dlp ~]# cp -Rp /home/* /mnt/ [root@dlp ~]# umount /mnt [root@dlp ~]# mount /dev/md0 /home [root@dlp ~]# df -h Filesystem 1M-blocks Used Available Use% Mounted on /dev/mapper/VM-Host00 20G 3.3G 17G 16% / /dev/sda1 2.0G 50M 1.8G 3% /boot tmpfs 512M 0 512M 0% /dev/shm none 512M 104K 512M 1% /var/lib/xenstored /dev/md0 23G 173M 22G 1% /home [root@dlp ~]# vi /etc/fstab # add RAID ARRAY /dev/VM/Host00 / ext3 grpquota,usrquota,rw 1 1 LABEL=/boot /boot ext3 defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/md0
/home ext3 defaults 0 0 |
[5] | Start mdmonitor to monitor RAID device. |
[root@dlp ~]# vi /etc/mdadm.conf add email address which receives notifications if troubles happen DEVICE /dev/sd[a-z]* ARRAY /dev/md0 level=raid1 devices=/dev/sdb2,/dev/sdc1 MAILADDR root@localhost [root@dlp ~]# /etc/rc.d/init.d/mdmonitor start Starting mdmonitor: [ OK ] [root@dlp ~]# chkconfig mdmonitor on
|
[6] | If a HD in RAID is Failure, re-configure RAID 1 like follows. |
The status is like follows when a trouble happens. [root@dlp ~]# cat /proc/mdstat # show status Personalities : [raid1] md0 : active raid1 sdc1[1] 24097344 blocks [2/1] [_U] unused devices: <none> # first, change failure HD to new HD and create a 'raidautodetect' partition with the procedure at [1]. Next see below. [root@dlp ~]# mdadm --manage /dev/md0 --add /dev/sdb2 # Add new partition to RAID ARRAY mdadm: re-added /dev/sdb2 [root@dlp ~]# cat /proc/mdstat # show status # start mirroring Personalities : [raid1] md0 : active raid1 sdb2[0] sdc1[1] 24097344 blocks [2/1] [_U] [>....................] recovery = 3.5% (844224/24097344) finish=6.8min speed=56281K/sec unused devices: <none> [root@dlp ~]# cat /proc/mdstat # turn to normal status after finishing mirroring a few minutes later Personalities : [raid1] md0 : active raid1 sdb2[0] sdc1[1] 24097344 blocks [2/2] [UU] unused devices: <none> |