RAID
레이드는 하드웨어 레이드와 소프트웨어 레이드 2가지로 나뉘는데 하드웨어 레이드는 OS이전에 처리되고 소프트웨어 레이드는 OS단계에서 처리 된다. 소프트웨어 레이드가 하드웨어 레이드보다 안정성과 성능이 떨어지지만 구축비용이 적게 든다.
레이드는 복수개의 하드를 이용해서 데이터를 저장하는 방식이다. 데이터를 백업하거나 용량증가, 속도증가를 위해 많이 쓰이며 여러 종류의 레이드방식이 있다.
레이드는 크게 3개를 쓰는데 RAID-0, RAID-1, RAID-5이다.
레이드0(스트라이핑)은 2개 이상의 하드로 구성되는데 자료를 분산해서 저장하기 때문에 속도가 빠르다. 예를 들면 데이터1,2,3,4가 있으면 데이터 1,3은 하드0번에 데이터 2,4는 하드1번에 저장시키고, 자료를 가져 올 때 동시에 데이터를 두 하드에서 가저오기 때문에 좀 더 빠르게 데이터 통신 속도를 이용 할 수 있다. 데이터 속도는 빠르지만 둘 중 아무 하드가 망가지면 데이터 복구 불능이다.
용량은 1G+1G=2G 형식이다.
레이드1(미러링)은 2개 이상의 하드로 구성되는데 하드0번은 주 장치로 쓰고 하드1번은 하드0번의 백업 장치로 쓰인다. 하드0번이 저장된 데이터를 하드1번이 모두 백업 받는다. 이로 인해 하드하나가 망가저도 백업 데이터가 있기 때문에 데이터 손실을 예방 할 수 있다.
용량은 1G+1G=1G 형식이다.
레이드5(스트라이핑 패리티)는 3개 이상의 하드로 구성되는데 레이드0의 속도를 살리며 페리티비트(데이터 에러 수정)를 추가해 레이드0의 데이터 손실의 약점을 보안한 것이다.
하드0 하드1 하드2가 있으면 하드0에는 하드1과 하드2의 패리티 정보를 넣고 하드1에는 하드0과 하드1의 패리티정보를 넣고 하드3에는 하드0과 하드2의 패리티 정보를 넣어 데이터를 복구하는 방식이다.
용량은 1G+1G+1G=2G형식이다.
레이드 구성 명령어 형식은
mdadm --create <만들 레이드 장치명> --level=<레이드레벨> --raid-devices=<레이드할 때 쓸 장치 개수> <레이드시 쓸 장치명>
or
mdadm -C <만들 레이드 장치명 -l <레이드레벨> -n <레이드 할 때 쓸 장치 개수> <레이드시 쓸 장치명>
--------------------------------------------------------------------
레이드 0구성
먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.
파티션을 sdb1, sdc1을 이용하고(다른것을해도 무방) 용량은 512M두개를 이용해 1G용량인 레이드0을 구성한다.
# fdisk /dev/sdb
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30401, default 1):1
Last cylinder of +size or +sizeM or +sizeK (1-30401, default 30401): +512M
Command (m for help): t
Hex code (type L to list codes): fd
Command (m for help): w
# fdisk /dev/sdc
Command (m for help): n
command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30401, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +512M
Command (m for help): t
Hex code (type L to list codes): fd
Command (m for help): w
# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
.// 생략부분은 레이드 하는 파티션의 정보를 보여줌
.
Continue creating array? y// 위 정보로 레이드를 하려면 y
# mdadm --detail --scan// 레이드 잘구성되었는지 확인
ARRAY /dev/md0 level=raid0 num-devices=2...// 생각대로 생성되었는지 확인
# mkfs.ext3 /dev/md0// 사용하기 위해 ext3형식으로 포맷
# mkdir /raid0// 마운트해줄 폴더 생성
# mount /dev/md0 /raid0// 사용을 위해 마운트
# mount | grep md0// 확인
/dev/md0 on /raid0 type ext3 (rw)// 생각대로 되었는지 확인
# df -H | grep md0// 용량 확인
/dev/md0 1.1G 19M 950M 2% /raid0// 생각대로 되었는지 확인
--------------------------------------------------------------------
레이드 1구성
먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.
파티션을 sdb2, sdc2를 이용하고(다른것 을 해도 무방) 용량은 512M두개를 이용해 512M용량인 레이드1을 구성한다.
# fdisk /dev/sdb
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 2
First cylinder (64-30401, default 64): // 그냥 엔터
Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M
Command (m for help): t
Partition number (1-4): 2// 파티션형식은 2번을 변경해줄것 이므로 2를 누름
Hex code (type L to list codes): fd
Command (m for help): w
# fdisk /dev/sdc
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 2
First cylinder (64-30401, default 64):// 그냥 엔터
Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M
Command (m for help): t
Partition number (1-4): 2// sdc2의 파티션 형식을 변경할 것 이므로 2를 누름
Hex code (type L to list codes): fd
Command (m for help): w
# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감
# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb2 /dev/sdc2
.// 생략부분은 레이드 하는 파티션의 정보를 보여줌
.
continue Creating array? y// 위 정보로 레이드를 하려면 y
# mdadm -D --scan | grep md2// 레이드 잘구성되었는지 확인
ARRAY /dev/md2 level=raid1 num-devices=2...// 생각대로 생성되었는지 확인
# mkfs.ext3 /dev/md2// 사용하기 위해 ext3형식으로 포맷
# mkdir /raid1// 마운트해줄 폴더 생성
# mount /dev/md2 /raid1// 사용을 위해 마운트
# mount | grep md2// 확인
/dev/md2 on /raid1 type ext3 (rw)// 생각대로 되었는지 확인
# df -H | grep md2// 용량 확인
/dev/md2 502M 11M 466M 3% /raid1// 생각대로 되었는지 확인
--------------------------------------------------------------------
레이드 5구성
먼저 파티션3개를 생성해 레이드파티션방식으로 바꿔줘야 한다.
파티션을 sda3, sdb3, sdc3을 이용하고(다른것 을 해도 무방) 용량은 512M세개를 이용해 1G용량인 레이드5을 구성한다.
# fdisk /dev/sda
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 3
First cylinder (6323-30401, default 6323): // 그냥 엔터
Last cylinder or +size or +sizeM or +sizeK (6323-30401, default 30401): +512M
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Command (m for help): w
# fdisk /dev/sdb
Command m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4)3
First cylinder (127-30401, defaul 127):// 그냥 엔터
Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Command (m for help): w
# fdisk /dev/sdc
Command (m for help): n
Command action
eextended
pprimary partition (1-4)
p
Partition number (1-4): 3
First cylinder (127-30401, default 127): // 그냥 엔터
Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Command (m for help): w
# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감
# mdadm -C /dev/md1 -l 5 -n 3 /dev/sda3 /dev/sdb3 /dev/sdc3
.// 생략부분은 레이드 하는 파티션의 정보를 보여줌
.
Continue creating array? y // 위 정보로 레이드 구성하려면 y
# mdadm -D --scan | grep md1
ARRAY /dev/md1 level=raid5 num-devices=3// 생각대로 생성되었는지 확인
# mkfs.ext3 /dev/md1// 사용하기 위해 ext3형식으로 포맷
# mkdir /raid5// 마운트해줄 폴더 생성
# mount /dev/md1 /raid5// 사용을 위해 마운트
# mount | grep md1// 확인
/dev/md1 on /raid5 type ext3 (rw)// 생각대로 되었는지 확인
# df -H | grep md1// 용량 확인
/dev/md1 1.1G 19M 950M 2% /raid5// 생각대로 되었는지 확인
--------------------------------------------------------------------
같은 명령어
mdadm --detail = mdadm -D
mdadm --create = mdadm -C
mdadm --level = mdadm -l
mdadm --raid-devices = mdadm -n
레이드를 정지하고 싶을때
mdadm -S <장치명>
# mdadm -S /dev/md0// md0 정지