본문 바로가기

IT/linux

software raid howto


raidhotremove /dev/md0 /dev/sdb1
echo "scsi remove-single-device 0 0 2 0" > /proc/scsi/scsi
echo "scsi add-single-device 0 0 2 0" > /proc/scsi/scsi
raidhotadd /dev/md0 /dev/sdb2

mdadm

1. downloading and installing mdadm
tar xvf ./mdadm-1.4.0.tgz
cd mdadm-1.4.0.tgz
make install
rpm -ihv mdadm-1.4.0-1.i386.rpm

setup /etc/raidtab
raiddev /dev/md0
        raid-level      linear
        nr-raid-disks   2
        chunk-size      32
        persistent-superblock 1
        device          /dev/sdb6
        raid-disk       0
        device          /dev/sdc5
        raid-disk       1
create the array
mkraid /dev/md0
구성도]

 

[RAID Configuration File]

/etc/raidtab에 RAID5로 구성할 디스크 정보를 입력한다.

여기서는 /dev/scsi/h0b0t0l0 부터 h0b0t3l0까지 4개의 디스크로 구성한다.

Spare디바이스는 넣지 않았다.

 

[리눅스에서 RAID로 사용할 디바이스 정보]

아래의 내용을 살펴보면 /dev/sda가 /dev/scsi/h0b0t0l0로 연결되어 있는 것을 알 수 있다.

 

 

[RAIDTAB구성파일을 사용해서 RAID 생성]

mkraid의 버전은 0.90.0으로 진행했다.

mkraid /dev/md0를 하면 /dev/md0를 구성하는 진행상황을 볼 수 있다.

 

 

[RAID의 진행상황 확인]

/proc/mdstat를 열어서 보면 현재 RAID5를 초기화하는 진행상황을 볼 수 있다.

여기서는 finish=53.1min는 53분 정도 후면 RAID초기화가 종료된 다는 것을 표시한다.

 

 

[RAID의 구성 완료 후 mdstat확인]

 

 

 

[간단한 RAID 동작]

raidstart -a는 모든 RAID set을 활성화 한다는 말이다.

활성화된 정보는 /proc/mdstat를 보면 확인 할 수 있다.

개별적인 RAID set을 정지하기 위해서는 raidstop을 사용한다.

 

[RAID Device로 파일 시스템을 구성하기]

RAID로 구성한 /dev/md0에 filesystem을 구성한다. 일단 ext2를 사용해서 진행한다.

 

 

[파일시스템 구성 후 에 마운트하기]

 

 

[EXT2파일 시스템을 EXT3로 변환하기]

tune2fs -j /dev/md0를 사용해서 기존 ext2를 사용한 볼륨정보를 ext3로 전환한다.

 

 

 

Miscellaneous


1) RaidStop
[Linux:/] umount  /mnt/volume
[Linux:/] vgchange  –a  n
[Linux:/] raidstop  /dev/md0  (equal to “mdadm –S  /dev/md0”)

2) RaidStart와 Volume의 mount.
Pre-Configuration(/etc/raidtab)
[Linux:/] raidstart  /dev/md0
[Linux:/] pvscan
[Linux:/] vgscan
[Linux:/] vgchange  -a  y
[Linux:/] lvscan
[Linux:/] mount  /dev/VolumeGroupDevice/VolumeDeviceName  /mnt
*) 모든 Raidtab list를 실행할 경우는 “raidstart  -a”를 실행하면 된다.

3) aid Device Remove.
[Linux:/] raidsetfaulty  /dev/md0  /dev/sda
[Linux:/] raidhotremove  /dev/md0  /dev/sda
or
[Linux:/] mdadm  /dev/md0  --fail  /dev/sda  --remove  /dev/sda

4) Raid Device Add
[Linux:/] mdadm  --zero-superblock  /dev/sda (기존 디스크 정보 제거)
[Linux:/] raidhotadd  /dev/md0  /dev/sda (Spare디바이스로 들어간다.)

5) Raid Information.
[Linux:/] lsraid  -A  -a  /dev/md0
[Linux:/] lsraid  -R  -a  /dev/md0
[Linux:/] mdadm  --detail  --scan  >> /etc/mdadm.conf
[Linux:/] mdadm  --query  /dev/md0
[Linux:/] mdadm  -Q  /dev/sda
[Linux:/] mdadm  --detail  /dev/md0
[Linux:/]

6) Upgraded an array to the kernel’s current version
[Linux:/] raidstop  /dev/md0
[Linux:/] mkraid  –u  /dev/md0

7) Using Alternate configuration file.
[Linux:/] raidstop  /dev/md0
[Linux:/] mkraid  --really-force  -c  /root/raidtab.new  /dev/md0

8) Raid Reconf.
Raidreconf can reconfiguration certain properties of a RAID0 or RAID5 without data loss.
[Linux:/] raidstop  /dev/md0
[Linux:/] raidreconf  -o  /etc/raidtab  -n  /root/raidtab.new  -m  /dev/md0

9) Raid Super Block Remove
[Linux:/] mdadm  --zero-superblock  /dev/sd{a,b,c,d,e,f,g,h,I,j,k}1
[Linux:/] mdadm  --zero-superblock  /dev/sd{a,b,c,d,e,f,g,h}1
[Linux:/] mdadm  --zero-superblock  /dev/sd{a,b,c,d}1

10) S/W Raid Status
[Linux:/] cat  /proc/mdstat
Personalities : [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md0 : active raid5 sdd[3] sdc[2] sdb[1] sda[0]
      312581632 blocks level 5, 4k chunk, algorithm 0 [3/3] [UUU]
unused devices: <none>

11) Force Raid Recovery
[Linux:/] mkraid /etc/raidtab --really-force /dev/md0

12) lsraid를 사용한 raid configuration확인.
lsraid를 사용한 Raid configuration
[Linux:/] lsraid –R –a /dev/md0


13) mdadm을 사용한 raid정보 확인
mdadm –detail /dev/md0
mdadm –query /dev/md0

14) lsraid를 사용한 Device정보.
lsraid -D -a /dev/md0

15) mdadm을 사용한 Deviec정보
[Linux:/] mdadm -E /dev/sd[a,b,c,d,e,f,g,h]
[Linux:/] mdadm -E /dev/sd[a-h]
[Linux:/] mdadm -E /dev/scsi/h0b[0-3]t[0-3]l0
아래의 Device를 조사한다.

16) xfs repair
[Linux:/] /sbin/xfs_repair  /dev/vg0/vol1

* XFS Log파일 강제 삭제 옵션
[Linux:/] /sbin/xfs_repair  –L  /dev/vg0/vol1

17) RAID STOP후 NEW RAID START

 


[Linux:/] umount  /mnt/volume
[Linux:/] vgchange –a n
[Linux:/] raidstop  /dev/md0
[Linux:/] mdadm –zero-superblock /dev/sd{a,b,c,d}
[Linux:/] mkraid /etc/raidtab  --really-force  /dev/md0

18) Raid Stop & Start
[Linux:/] raidstop  /dev/md0
[Linux:/] raidstart  /dev/md0
or
[Linux:/] raidstart  -a (/etc/raidtab에 있는 모든 Raid Start)