linux RAID
RAID
(Redundant Array of Inexpensive/Independent Disks)
- 여러 개의 하드디스크를 하나의 하드디스크처럼 사용할 수 있게 해주는 기능
- 저가의 장치로 고가의 대용량 장치처럼 쓸 수 있음
RAID에는 두가지의 종류가 있습니다.
하드웨어 RAID / 소프트웨어 RAID
하드웨어 RAID
- 빠르고 안정적이다.
- 가격이 비싸다.
소프트웨어 RAID
- 성능이 비교적 뛰어나지 않다.
- 가격이 저렴하다.
그러면 RAID는 어떻게 만드는지 절차순으로 진행해볼게요.
① 장치추가
RAID를 사용하려면 하드디스크가 최소 2개 필요합니다. 이후에 RAID level에 따라 하드디스크가 3개가 필요한 경우가 있으니 하드디스크 3개만 추가로 만들도록 할게요.
3개를 추가하시면 다음과 같이 생성되겠죠.
/dev/sdb(1G)
/dev/sdc(1G)
/dev/sdd(1G)
② 파티션
기존의 저장장치할 때 생성하던 파티션과는 과정이 약간 다릅니다. 일단 주파티션 생성하는것 까진 똑같은데요. fdisk 주파티션을 생성한 후 시스템 아이디를 바꿔야 합니다. 파티션 생성 후 t를 누르면 시스템 아이디를 바꿀 수 있는데 fd로 변경 하시면 됩니다. 순차적으로
1. fdisk /dev/sdb
2. n, p, enter, enter, enter
3. t
4. fd
5. w
t 를 누르고 L을 누르면 위와같이 시스템 아이디 목록이 뜹니다.
시스템 아이디를 fd로 변경후 p로 정보를 볼 때 위와 같이 나오면 성공적으로 바뀐겁니다. 저장하고 나오시면 됩니다. sdc, sdd도 같은 과정을 반복해 주시면 됩니다.
③ 레이드 장치 생성
레이드 장치는 mdadm로 생성하실 수 있는데 일단 다음과 같은 패키지를 깔아야 합니다.
yum install mdadm.x86_64
레이드 장치 생성 명령어는 다음과 같습니다.
mdadm --create <device name> --level=<y> --raid-devices=(num) (device path) ...
차례대로 생성할 레이드 장치명, 레이드 레벨, 레이드에 사용할 장치 갯수, 사용할 장치 경로 입니다.
그러면 장치 sdb와 sdc를 이용해 레이드를 만들어 보겠습니다.
mdadm --create /dev/md1 --level=linear --raid-devices=2 /dev/sdb /dev/sdc
생성 후 장치 확인하는 명령어는 다음과 같습니다.
cat /proc/mdstat
mdadm --detail <dev path>
위에서 저희가 확인할 점은 Raid Level과 Size, device 갯수, 투입된 장치 등등의 목록을 확인하시면 되겠습니다. 생성이 완료됬으니 파일시스템 생성 및 마운트 후 사용하시면 됩니다!
위에 실습할 때 level이란 옵션이 있었는데, RAID에는 level 옵션이 5개가 있습니다. 레벨마다 각각 다른 특성을 가지고 있습니다.
linear
- 2개 이상의 장치 필요
- 1번째 장치부터 차례대로 저장
- 기본 레벨
stripe (level 0)
- 2개 이상의 장치 필요
- 반반씩 장치에 저장 (동시분할)
- 속도가 가장 빠름
- 안전성 ↓
mirror (level 1)
- 2개 이상의 장치 필요
- 동일한 내용을 여러장치에 저장
- 용량이 반으로 줄어듬 (위에 이유 때문)
- 데이터 안전성은 높아짐
RAID5 (level 5)
- 3개 이상의 장치 필요
- stripe + mirror
- parity (일부공간을 할애해서 앞의 디스크 내용을 백업)
- 속도 및 안전성 ↑
RAID6 (level 6)
- 3개 이상의 장치 필요
- RAID5 개선용
- 2개의 디스크가 동시 에러나도 복구 가능
각각의 레벨을 사용하는 방법은 다음 칸에 레벨 숫자 또는 이름을 적어주시면 됩니다.
mdadm --create /dev/md0 --level=<level num or name> --raid-devices=2 <dev path> <dev path>
<만약에, RAID 사용 도중 에러가 났다면?>
에러가 나면 장치를 제거 후 교환을 해줘야 하겠죠?
그러면 에러 실습을 위해서 위에 만든 레이드 장치를 가지고 의도적으로 한 디스크에 에러를 내보겠습니다.
① 에러 셋팅
mdadm /dev/md1 -f /dev/sdb
② 장비 교체
mdadm /dev/md1 -r /dev/sdb (제거)
- poweroff 후 에러 난 하드디스크 제거 후 새로 생성
- 새로운 디스크에 파티션 생성(시스템 이름까지 변경)
mdadm /dev/md1 -a <dev path>
( -a 옵션이 디스크 새로 추가)
레이드 장치 확장
mdadm --grow /dev/md1 --level=1 --raid-devices=3 --add <dev path>
장치 제거
mdadm --stop <dev path>
위와 같이 명령을 주면 언뜻 제거 된 것 처럼 보이지만 일정 시간이 지나면 다시 활성화가 되어 완전히 제거가 되지 않습니다. 장치의 주파티션을 삭제하거나 디스크를 삭제하면 완전한 제거가 가능합니다.
장치초기화
dd if=/dev/zero of=<dev path>
이상으로 RAID에 관한 포스트를 마치겠습니다.
'OS > linux' 카테고리의 다른 글
linux ACL (0) | 2016.10.10 |
---|---|
linux LVM (0) | 2016.10.06 |
linux find, grep (0) | 2016.10.03 |
linux 백업 (0) | 2016.10.03 |
linux 압축, 파일저장소 (0) | 2016.10.03 |