RAID

김상우·2022년 7월 22일
0

CentOS

목록 보기
4/11
post-thumbnail

RAID

  • 정의
    RAID는 여러개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식이다. 비용을 절감하면서 신뢰성을 높이며 성능까지 향상시킬 수 있다.
  • 하드웨어 RAID
    하드웨어 RAID는 여러개의 하드디스크를 연결한 장비를 만들어 그 자체를 공급하는 방식이다. 안정적이고 제조업체에서 기술 지원을 받을 수 있다는 장점이 있지만, 비교적 가격적으로 부담되는 단점이 있다.
  • 소프트웨어 RAID
    소프트웨어 RAID는 하드웨어 RAID의 대안으로 운영체제 에서 지원하는 방식으로 RAID를 구성하는 방법을 뜻한다. 하드웨어 방식에 비해 비교적 신뢰성, 속도가 저조하지만 비용적인 측면에서 좀 더 안전하게 데이터를 저장할 수 있다는 장점이 있다.
  • RAID 레벨
    기본적으로 Linear RAID, RAID0, RAID1, RAID2, RAID3, RAID4, RAID5 이렇게 7가지로 분류 할 수 있다.
    RAID 레벨 비교
  • Linear RAID
    2개 이상의 하드디스크를 1개의 볼륨으로 사용하며 파일이 저장되는 방식이다.
    쉽게 생각하면 앞부터 순차적으로 하드디스크를 사용한다는 것이다.
    Linear RAID
    Disk0, Disk1에 데이터가 순서대로 저장된 모습이다.
  • RAID 0
    RAID0 방식은 2개 이상의 하드디스크를 동시에 사용하는 방식이다.
    예를 들어 3개의 하드디스크를 사용하면서 RAID0 방식을 활용하는 경우, 12바이트의 데이터가 있다고 가정하자.
    12바이트의 데이터를 각각 1바이트씩 순차적으로 저장된다는 뜻이다. 최종적으로 저장된 모습은 3개의 하드디스크 각각 4바이트씩 저장된 모습이 된다.
    RAID0의 저장방식
    Linear RAID방식과 다르게 Disk0, Disk1에 데이터를 분할해서 저장한 모습을 볼 수 있다.
  • RAID 1
    RAID1의 가장 큰 핵심은 미러링이다. 2개의 하드디스크가 있다고 가정하면 1번과 2번 하드디스크에 동일한 데이터를 저장한다는 뜻이다. 하드디스크가 고장이나도 데이터가 손상되지 않는 장점이 있지만 2개의 하드디스크에 저장하기 때문에 원래 용량의 절반만 사용할 수 있다는 단점이 있다.
    RAID1의 저장방식
    위 그림에서 볼 수 있는 것처럼 2개의 디스크에 같은 데이터가 저장된 것을 볼 수 있다.
  • RAID 5
    최소 3개 이상의 하드디스크가 있어야 구성할 수 있는 방식으로 대부분 5개 이상의 하드디스크로 구성한다. 하드디스크에 오류가 발생했을 때 패리티를 이용해 데이터를 복구할 수 있는 장점이 있다.
    RAID5의 저장방식
    위에 보이는 사진은 각각 RAID5 방식으로 데이터를 저장한 그림이다. A1~A3의 데이터를 각각 하드디스크에 별도로 저장하고 Disk3에 패리티 데이터 용으로 한칸을 비운 Ap를 볼 수 있다. 같은 방법으로 Disk2에 B의 패리티 데이터 용으로 비운 Bp가 있다는 것을 볼 수 있다.
    짝수 패리티를 사용하기로 했다면 첫 행에서 패리티 값을 유추할 수 있다.
    만약 그림에서 보이는 하드디스크 중 하나가 고장났다고 해도 패리티 검사를 통해 고장난 디스크의 데이터를 유추할 수 있다.
  • RAID 6
    RAID 5를 개선한 방식이라고 알아두면 이해하기 쉽다. RAID 5는 하나의 패리티를 사용해 1개의 디스크가 손상되었을 때 데이터를 복구할 수 있지만 2개의 디스크가 손상되었을 때는 복구가 불가하다는 점이 있다. 이런 문제를 개선하기 위해 채택한 방식이 2개의 패리티를 사용하는 것이다. 디스크 전체의 가용 효율은 RAID 5보다는 저조하지만 더 높은 신뢰성을 가지는 특징이 있다. 아래 그림과 위의 RAID 5를 비교하면 이해가 쉽다.
    RAID 6
  • RAID 10(1+0), RAID 01(0+1)
    이 방법은 최소 4개의 디스크가 있을 때 활용이 가능한 방법이다. 두가지 방식은 모두 RAID 0, RAID 1방식을 동시에 활용한다는 점은 동일하다. 다만 차이점은 어떤 작업을 먼저하느냐의 차이라고 할 수 있다. 그림으로 살펴보면 아래와 같다.
    RAID 10
    RAID 01

RAID 실습

그동안 VM을 통해 활용한 가상머신에 9개의 하드디스크를 장착하도록 설정 후 각각 Linear RAID, RAID 0, RAID 1, RAID 5방식으로 구성해보았다.

  • 가상의 하드디스크를 장착한 가상머신에서 /dev 디렉토리에 있는지 확인해본 결과
[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sdb /dev/sde /dev/sdh 
/dev/sda1 /dev/sdc /dev/sdf /dev/sdi
/dev/sda2 /dev/sdd /dev/sdg /dev/sdj

확인 결과 잘 설치되어 있는 것을 볼 수 있었다. 다음 할 작업으로 파일 시스템 유형을 지정하는 작업을 했으며, 다음과 같은 명령어를 넣었다.

  • 파일 시스템 유형 지정 작업
[root@localhost ~]# fdisk /dev/sdb
(중략)
Command (m for help): n
(중략)
Select (default p): p
(중략)
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048):
Last sector, +sectors of +size{K, M, G, T, P} (2048-4194303, default 4194303):
(중략)
Command (m for help): t
Selected partition 1
Hex Code (type L to lists all codes): fd
(중략)
Command (m for help): p
(중략)
Command (m for help): w

이 방법과 동일하게 fdisk 명령어로 sdc부터 sdj까지 파티션을 생성했다.

  • Linear RAID 구축
[root@localhost ~]# mdadm --create /dev/md9 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc1
[root@localhost ~]# mdadm --detail --scan
[root@localhost ~]# mkfs.ext4 /dev/md9
[root@localhost ~]# mkdir /raidLinear
[root@localhost ~]# mount /dev/md9
[root@localhost ~]# df
Filesystem	1K-blocks	Used	Available	Use%Mounted on
(중략)
/dev/md9	3026704		9216	2844024		1%/raidLinear

순서대로 명령어를 설명하자면 다음과 같다.
RAID 생성
RAID 확인
/dev/md9 포맷
/raidLinear 디렉토리 생성
/dev/md9 마운트
마운트된 파일과 시스템 정보 확인

  • 부팅시 언제든지 /dev/md9 장치가 /raidLinear 디렉토리에 마운트되어 있도록 설정
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
(중략)
/dev/md9	/raidLinear		ext4	defaults	0	0

/etc/fstab 파일을 편집기로 열어
"/dev/md9 /raidLinear ext4 defaults 0 0" 을 추가 후 저장한다.

  • 구축된 RAID 확인
[root@localhost ~]# mdadm --detail /dev/md9
/dev/md9:
(중략)
	     Raid Level : linear
         Array Size : 3239584 (2.99 GiB 3.21 GB)
       Raid Devices : 2
(중략)
	Number	Major	Minor	RaidDevice	State
    0		8		17		0			active sync		/dev/sdb1
    1		8		33		1			active sync		/dev/sdc1

--detail 옵션을 통해 상세 내용을 확인해보면 작동중인 하드디스크는 2개이며, /dev/sdb1, /dev/sdc1을 사용한다는 내용이 출력된 것을 확인할 수 있다.

  • RAID 0, RAID 1, RAID 5 구축
    RAID 0과 RAID 1 구축하는 방법은 Linear RAID와 동일하다. 다만 각각을 구축할 때 장치 이름과 사용할 디스크를 겹치지 않게 주의해야하며, --level 옵션에서도 RAID에 맞게 입력해야한다.
    /etc/fstab에 문장을 추가하는 것도 각각에 맞게 추가하면 된다.
  • RAID 10(1+0) 구축
    RAID 10역시 구축 방법 자체는 동일하다.
    mdadm 명령어를 통한 구축을 두번 하면 된다.
[root@localhost ~]# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
[root@localhost ~]# mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sdf1 /dev/sdg1
[root@localhost ~]# mdadm --create /dev/md10 --level=0 --raid-devices=2 /dev/md2 /dev/md3

/dev/md2를 RAID 1로 구성하고 sdd1, sde1 디스크를 사용하도록 생성한다.
/dev/md3를 RAID 1로 구성하고 sdf1, sdg1 디스크를 사용하도록 생성한다.
구축한 두 개의 RAID 1을 /dev/md10으로 묶어 생성하여 RAID 10(1+0)으로 생성한다.
나머지 과정은 동일하게 진행한다.

profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글