RAID 가 무엇이냐?
여러개의 하드를 사용하는 기술이다.
여러개의 하드를 어떻게 사용하느냐에 따라서 RAID0, RAID1, RAID5등으로 나뉜다.
RAID에는 여러가지 종류가 있는데
1. RAID0 : stripe 같은 것이다.
저장하려는 데이터가 40MB가 있다고 가정하자. 이 40MB를 만약에 하드가 4개로 구성된 RAID0에 저장한다면, 각각의 하드에 10MB씩 저장될 것이다. 이렇게 분산해서 동시에 저장하고 액서스하기때문에 속도는 굉장히 빠르다. but 여러개 중에 하나만 고장나도 데이터는 다 날라간다(안정성 zero)
40MB(RAID 0)
↙ ↓ ↓ ↘
10MB |
10MB |
10MB |
10MB |
|
|
|
|
2. RAID1 : mirroring한다고 한다.
저장할 때 똑같이 복제본을 떠놓는 것이다. 돈이 2배로 들지만 안정성은 거의 절대적이다.
40MB(RAID 1)
↙ ↘
40MB |
40MB |
|
|
3. RAID5 : 여러 하드를 구성할때 여러 하드중에 하나는 자료저장하는 공간으로 쓰지않고 복구용으로 쓴다.
장점: 저장효율은 RAID 1에 비해 좋고 복구도 가능하다.
단점 : 저장디스크 2개가 뻑났을떄는 복구 불가능<--- 생각보다 서버에서는 자주있는일
(참고 : RAID 6은 복구용디스크가 2개, 7은 3개,------ RAID 10은 1+0)
30MB(RAID 5)
↙ ↓ ↓
10MB |
10MB |
10MB |
복구용 (parity이용)
복구용 얘는 항상 돌아가고 있기 떄문에 뜨겁다 해서
Hot Spare라고 한다.
|
|
|
|
이러한 여러가지 방식이 있지만 보통 DB서버는 안정성을 중요시 하기떄문에 0+1이나 1+0(0과 1을 같이 쓰는)을 쓴다.
--------------------------------------------------------------------------------------------
개념을 정리했으니 이제는 리눅스에서 구현해야할 것이 아닌가? 한번 해보자
일단 하드디스크의 파티션은 'Linux raid autodetect' 형식으로 한다. 무슨 말인가 하면
아래 글에서 보자.
[root@localhost ~]# fdisk /dev/sdb
잡설명
Command (m for help): n <--new partition
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102
Command (m for help): t <---- 요렇게 입력을 해서
Selected partition 1
Hex code (type L to list codes): fd <---- fd형식(Linux raid autodetect)
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): p <---- 생성확인
Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 102 104432 fd Linux raid autodetect 바르게 생성됨을 확인
Command (m for help): w <---- 저장
실제 RAID구성 명령어 mdadm(마담같이 보이지만 아니다 adm(admin)이다. mdadm)
Usage: mdadm --create device(예 : /dev/md0) options...
options : --level=?(RAID 몇할꺼인지, RAID 5를 구성하고 싶다면 --level=5)
--raid-devices=? /dev/파티션이름들 <--- 파티션 개수, 이름들
4개면 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1)
<-- 뒤에 파티션은 자기가 구성하고 싶은거를 하세요
--detail --scan : 현재 md들의 정보를 보여줌
--query --detail /dev/md0 : /dev/md0장치의 상세한 내역을 출력
실제 출력화면
[root@localhost ~]# mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 (/dev/sdb1 ~ /dev/sde1, 4개의 파티션을 RAID5로 /dev/md0에 구성)
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm --detail --scan
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=eb60801a:f134462a:b3de73f9:0c499496
devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1
이러면 끝이!!!!! 하고 노는 사람은 결국 눈물과 함께 수많은 밤을 지새게 되겠죠?
항상 마지막엔 포멧과 마운트을 해줘야합니다.
[root@localhost ~]# mkfs.ext3 /dev/md0
mke2fs 1.35 (28-Feb-2004)
블라블라
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /raid5data
[root@localhost ~]# mount /dev/md0 /raid5data/
또한 부팅시마다 raid인식하게 하고 싶다면 /etc/fstab 수정해야겠죠?
/dev/md0 /raid5data ext3 defaults 1 2
'OS > Linux' 카테고리의 다른 글
2011.12.02 리눅스 DNS서버 구축하기 (0) | 2012.01.09 |
---|---|
2011.12.01 리눅스 telnet, ssh, vnc서버,접속확인 (0) | 2012.01.09 |
2011.11.30 리눅스 어떤 명령을 1초마다 치고 싶을때, 실시간 검사, 부팅시 실행,LVM (0) | 2012.01.09 |
2011.11.30 리눅스 프로세스, 데몬, 서비스, 디스크, 파티션개수, 하드의종류와 장단점 (0) | 2012.01.09 |
2011.11.30 리눅스 응급복구 (0) | 2012.01.09 |