bxm's IT Story
Linux - RAID 구축 본문
## Linear RAID 와 RAID 0~5 ##
두 방식 모두 최소 2개 이상의 HDD가 필요하다. 1개의 볼륨을 사용한다는 점은 같으나 저장 방식은 차이가 난다.
Liner | - 각 HDD 용량이 달라도 100% 공간활용을 한다. |
RAID 0 | - Striping 방식 |
RAID 1 | - Mirroring 방식 |
RAID 2 | - Strip의 크기를 매우 작게 설정하고, 오류 검출 및 정정을 할 수 있으나 제한적이다.따라서 신뢰성이 떨어진다. |
RAID 3,4 | - 하나의 드라이브에 패리티 정보를 저장하고, 나머지 드라이브들 사이에 데이터를 작은 단위로 분산한다. - 패리티 정보가 기록된 디스크의 병목현상으로 인하여 느려질 수 있는 단점이 있다. RAID 3 : 데이터를 비트단위로 분산하지만, RAID 4 : " 블록단위로 분산한다. - 따라서 용량이 큰 데이터 저장은 RAID 4가 유리하다. |
RAID 5 | - 패리티 정보를 모든 디스크에 분산저장하여 병목현상을 줄였다. 최소한 3개 이상의 하드디스크가 있어야만 구성이 가능하며, 대개는 5개 이상의 하드디스크로 구성한다. - 각 행의 홀 또는 짝수 패리티를 적용하므로 하나의 HDD가 고장나도 복구가 가능하다. - 그러나 2개 이상의 HDD가 고장날 경우 연속된 2개으 ㅣ비트가 고장나게 되므로 1차원 패리티로는 잡아낼 수 없다. |
## 실습환경 구축 (HDD 추가) ##
CentOS]
cd ./dev
ls -l | grep sd
bc | 리니어 - 그냥 엮는것임. 속도가 늘어나지 않음 |
de | 스트라이프 - 속도가 2배임, 둘 중에 하나가 망가지면 망함. |
fg | 미러링 - 속도 그대로, 둘 중에 하나가 망가져도 복구 가능. |
hij | RAID 5 - 하나는 패리티 비트로 사용하기에 n-1배 속도. - 둘 중에 하나가 망가져도 복구 가능 (2개 망가지면 복구 불가) |
## HDD가 추가되었으면 fdisk를 수행해야 한다. (B~J까지 파티션 전부 나누기!! 귀찮...) ## - n명령어
fdisk sdb
fdisk sdc
fdisk sdd
fdisk sde
fdisk sdf
fdisk sdg
fdisk sdh
fdisk sdi
fdisk sdj
## RAID는 System ID가 RAID 형식이어야 하므로 고쳐줘야 한다. ## - t 명령어
fdisk sdb
fdisk sdc
fdisk sdd
fdisk sde
fdisk sdf
fdisk sdg
fdisk sdh
fdisk sdi
fdisk sdj
## System ID 확인 (RAID 형식인지 확인) ##
fdisk -l
ls -l | grep sd
## Linear 방식 ##
mdadm --create /dev/md9 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc1
// 하드디스크 2개(sdb1,sdc1)를 리니어 방식으로 md9라는 이름으로 묶겠다.
mdadm --detail --scan
// 생성되었는지 확인.
// 디테일하게 내용 확인해보기.
mdadm --detail /dev/md9
## 루트 디렉토리에 raidLinear 디렉토리 생성하기
cd /
mkdir /raid
## 파티션 2개를 묶었기 때문에 포맷해야함.
mkfs -t ext4 /dev/md9
## 포맷까지 했으면 이제 마운트를 하자.
mount /dev/md9 /raidLinear
df -h

## RAID-0 (스트라이프) 방식 ##
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdd1 /dev/sde1
// 하드디스크 2개(sdd1,sde1)를 level=0(스트라이프) 방식인 md0이라는 이름으로 묶자.
mdadm --detail --scan
mdadm --detail /dev/md0
## 포맷
mkfs -t ext4 /dev/md0
## 마운트(디렉토리 생성 && 해당 디렉토리에 마운트해라)
mkdir /raid0 && mount /dev/md0 /raid0

## RAID-1 (미러링) 방식 ##
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdf1 /dev/sdg1
// 하드디스크 2개(sdf1,sdg1)를 level=1(미러링) 방식인 md1이라는 이름으로 묶자.
mdadm --detail --scan
mdadm --detail /dev/md1
## 포맷
mkfs -t ext4 /dev/md1
## 디렉토리 생성 및 마운트
mkdir /raid1 && mount /dev/md1 /raid1
df -h

## RAID-5 방식 ##
mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdh1 /dev/sdi1 /dev/sdj1
// 하드디스크 3개(sdh1,sdi1,sdj1)를 level=5 방식인 md5이라는 이름으로 묶자.
mdadm --detail --scan
mdadm --detail /dev/md5
## 포맷
mkfs -t ext4 /dev/md5
## 디렉토리 생성 및 마운트
mkdir /raid5 && mount /dev/md5 /raid5
df -h
## 이제 raid5에 test라는 파일을 만들고, shutdown 한 뒤에 SCSI0:10(sdj)을 제거해보자.
cd /raid5
touch test
ls -l
vi /etc/fstab (이거 추가 안해주면 부팅시 에러난다.)
yum -y install mdadm
shutdown -h now
df -h
mdadm --detail /dev/md5
ll /raid5
## RAID5에서 삭제한 하드디스크(sdj1) 복구 ##
shutdown -h now
//fdisk /dev/sdj 를 통해서 파티션 나누고, 이름 fd로 변경 그대로 다시 해주기.
mdadm --stop /dev/md5
umount /dev/md5
df -h
mdadm --stop /dev/md5
## RAID5에 새로 추가한 하드디스크(sdj1) 다시 추가해서 묶어주기 ##
mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdh1 /dev/sdi1 /dev/sdj1
mdadm --detail /dev/md5
mount /dev/md5 /raid5
ll /raid5


끝 !
'서버 > Linux' 카테고리의 다른 글
NFS (Network File System _ 네트워크로 파일을 공유하는 서비스) (0) | 2021.07.09 |
---|---|
Telnet Server (0) | 2021.07.09 |
Sendmail (메일 주고 받기) // Evolution + Thunderbird (0) | 2021.07.08 |
SAMBA (Win7->Linux // Linux->Win7) (0) | 2021.07.07 |
서버 구축 - Apache Web Server (0) | 2021.07.02 |