CentOS 5
Sponsored Link

Configure RAID 1
2010/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>
Matched Content
 
Tweet