-
RAID 관리linux/centOS 2018. 6. 26. 11:32
☆ RAID 관리
RAID(Redudant Array of Inexpensive Disks, Redudant Array of Independant Disks)?
여러 디스크를 하나의 디스크처럼 사용할 수 있도록 하면서 동시에 신뢰성을 높이고 성능을 향상시킬 수 있는 저장 장치를 말한다. RAID의 종류는 크게 하드웨어 RAID와 소프트웨어 RAID가 있다. 하드웨어 RAID는 안정성이 높은 반면 가격이 비싸다는 단점이 있고, 소프트웨어 RAID는 신뢰성이나 속도가 하드웨어 RAID에 비해 떨어질 수 있으나 비용이 저렴하다는 장점이 있다. 여기서는 하드웨어 RAID에 대해서는 다루지 않기로 하고, 소프트웨어 RAID 구성 방법에 대해 살펴보도록 한다.
(1) RAID 종류
■ Hardware RAID(Firmware에서 지원, 단위: DISK)
EX) Storage, Array, RAID Controller
-> 성능 우수, 유연성 떨어짐
■ Software RAID(OS에서 지원, 단위: Partition)
EX) 운영체제 내에서 Software RAID 툴을 통해 작업
-> 성능 떨어짐, 유연성 우수
(2) RAID 구성 방법의 종류
RAID 0
RAID 1
RAID 0 + 1
RAID 1 + 0
RAID 2
RAID 3
RAID 4
RAID 5
RAID 6
RAID 7
RAID 53
JBOD
(3) 관련된 용어
DAS(Direct Attached Storage), 직접 연결 저장 장치
Internal DAS
External DAS
DAS는 컴퓨터나 서버에 직접 연결된 컴퓨터 저장장치로서, 특별한 고려가 되어 있지 않는 한 다른 장치에서 직접 접근이 불가능하다. DAS의 대안으로서 NAS 또는 SAN 등이 있다. 개별 컴퓨터 사용자의 경우에는 하드디스크 드라이브가 DAS의 대표적인 형태가 될 것이다. 그러나 기업용 사용자들을 위한 저장장치는 여러 대의 컴퓨터에서 공유할 수 있어야 하고, 사용자들은 보다 효율적이며 관리하기 쉬운 장치를 선호하는 경향이 있다. (terms.co.kr 참조)
NAS(Network Attached Storage, Network Area Storage)
NFS/CIFS(SMB) 서비스 제공(TCP/IP) (NAS는 디렉토리로 바라보는 관점이다.)
NAS[나쓰]는 네트웍에 접속되도록 특화된 파일서버이다. 이것은 이더넷이나 TCP/IP와 같은 전통적인 LAN 프로토콜을 사용하며, 오직 유닉스의 NFS와 도스/윈도우의 SMB와 같은 파일 입출력 요청만을 처리한다. (terms.co.kr 참조)
SAN(Storage Area Network), 스토리지 전용 네트웍
Server - SAN(SAN Switch) - Storage (SAN은 디스크로 바라보는 관점이다.)
SAN[쌘]은 대규모 네트웍 사용자들을 위하여 서로 다른 종류의 데이터 저장장치를 관련 데이터 서버와 함께 연결하는 특수목적용 고속 네트웍(또는 서브네트웍)이다. 대체로, SAN은 한 기업의 전체 컴퓨팅 자원을 연결해 놓은 네트웍의 일부가 된다. SAN은 대개 IBM S/390 메인프레임과 같은 다른 컴퓨팅 자원에 아주 근접하여 밀집해 있게 되는 것이 보통이지만, 그러나 백업이나 기록의 영구보관 저장을 위해 ATM이나 SONET 등과 같은 광역통신망 기술을 이용하여 원거리에 있는 장소로 확장될 수도 있다.
SAN은 서로 다른 종류의 저장장치들이 네트웍 서버를 통한 모든 사용자들에 의해 공유될 수 있도록 서로 연결되어 있는 시스템이다. SAN은 IBM의 광섬유인 ESCON과 같은 기존의 통신기술을 이용하거나, 새로운 파이버 채널 기술을 이용할 수도 있다. SAN 시스템 통합 기술을 가진 일부 회사들은, 이것을 하드디스크나 CD-ROM 플레이어와 같이 서로 다른 종류의 저장 장치들에 의해 공유될 수 있는 PC의 공통 저장 버스에 비유하기도 한다.
SAN은 디스크 미러링, 백업 및 복원, 영구보관 및 영구보관용 데이터의 검색, 한 저장장치에서 다른 저장장치로 데이터 이동, 그리고 네트웍 상의 서로 다른 서버들 간에 데이터의 공유 등을 지원한다.
☆ RAID 구성 방법의 종류
(1) RAID 0 (CONCATERATE 방식과 STRIPE 방식이 있다.)
RAID 0은 일반적으로 2개 이상의 하드를 병렬로 연결해서 데이터를 블록(Block) 단위로 분산해서 읽고 쓰는 방식으로 구성된다. 하나의 데이터를 2개 이상의 하드를 이용해 분산시키기 때문에 하드 1개에 데이터를 저장하고 불러오는 것보다 훨씬 빠른 속도를 가질 수 있게 되며 하드 용량도 모두 쓸 수 있다.
이론상으로는 하드 디스크를 추가할 때마다 계속 성능이 향상되기 때문에 여러 대의 하드를 RAID 0으로 묶으면 하드 자체가 가진 물리적인 성능을 넘어 컨트롤러의 대역폭을 충분히 활용할 수 있는 강력한 드라이브를 구축할 수 있다. 하지만 안정성을 체크하는 기능이 없어 만약 1개의 하드라도 완전히 고장 날 경우 RAID 0으로 구성된 모든 데이터를 전부 날리게 된다.
따라서 서버나 워크 스테이션처럼 RAID가 주로 사용되는 분야에서는 절대 RAID 0만으로는 RAID 시스템을 구축하지 않으며, 미러링이나 패리티 정보 저장 등 다른 방식과 함께 구성해 성능/안정성을 동시에 추구하도록 보완된 RAID 규격을 쓴다.
PC에서도 보존해야 할 중요한 데이터가 있는 경우 RAID 0 하드에 저장하지 않는다는 것이 상식이지만, 데이터 보존용이 아니라 프로그램 설치/실행 및 캐시 용도로 사용한다면 충분히 좋은 성과를 누릴 수 있다.
* 최소 드라이브 개수 : 2
* 최대 용량 : 디스크의 수 x 디스크의 용량
* 특징 : 빠른 입출력 속도가 요구되나 장애 복구 능력은 필요 없는 경우에 적합하다.(1) RAID 1
RAID 1은 디스크 미러링이라고도 하는데, 데이터의 안정성을 높이기 위해 동일한 데이터를 가진 적어도 두 개의 드라이브로 구성된다.
RAID 1로 구성한 하드는 한 쪽이 망가져도 동일한 데이터가 저장된 다른 하드가 살아있다면 데이터를 복구할 수가 있으며, RAID 구성이 풀리더라도 같은 데이터를 가진 2개의 하드 디스크가 존재하게 된다. 따라서 RAID 1은 데이터 안정성은 높지만 2개의 하드를 RAID 1로 묶으면 같은 데이터를 2개에 기록해 전체 하드 디스크 용량의 절반만 사용하게 된다. 그에 따라 각 드라이브를 동시에 읽을 수 있으므로 읽기 성능은 향상된다. 쓰기 성능은 단일 디스크 드라이브의 경우와 정확히 같다.
RAID-1은 다중 사용자 시스템에서 최고의 성능과 최고의 고장대비 능력을 발휘한다. 모든 레벨에서 가장 높은 비용이 발생하기 때문에 RAID 1은 2개의 하드 디스크를 1조로 묶는 것을 기본으로 하므로 RAID 1로만 시스템을 구현하지 않고 다른 RAID 방식과 합쳐서 구성하게 된다.
* 최소 드라이브 개수 : 2
* 최대 용량 : (디스크의 수/2) x 디스크의 용량
* 특징 : 빠른 기록 속도와 함께 장애 복구 능력이 요구되는 경우에 사용된다. 2대의 드라이브만으로 구성할 수 있기 때문에 작은 시스템에 적합하다.(3) RAID 0 + 1
RAID 0+1과 RAID 10(1+0)은 RAID 0(스트라이핑)과 RAID 1(미러링) 방식을 혼합해 만들어졌다는 점에서는 매우 비슷하게 보여진다. 특히 서버/워크스테이션이 아닌 일반 사용자의 PC로 RAID를 구성한다면 많아야 4개 정도까지 묶기 때문에 RAID 0+1과 RAID 1+0을 헷갈릴 수도 있으며 실제 RAID 0+1을 RAID 10으로 표기하는 곳도 많이 있다.
RAID 0+1은 이름 그대로 RAID 0과 RAID 1을 합쳐놓은 방식이다. RAID 0으로 묶은 하드 디스크를 최종적으로 RAID 1로 구성하기 때문에 일반 RAID 1 구성보다 높은 성능을 낼 수 있으며 한쪽 RAID 0에 들어가는 하드들이 모두 고장난 경우에도 나머지 RAID 0 하드를 통해 정상 동작 및 데이터 복구를 할 수 있다.
그래도 RAID 1이 들어가므로 전체 하드 디스크 용량의 절반 밖에 사용하지 못한다는 단점은 같지만, 성능과 안정성을 동시에 추구할 수 있는데다 따로 패리티 정보를 사용하지 않기 때문에 패리티 정보를 별도로 처리할 필요가 없다. 또한 RAID 기능을 지원하는 웬만한 메인보드 컨트롤러 및 보급형 RAID 카드에서 RAID 0+1을 기본 지원하고 있어 RAID 3, 4와 달리 고급형 컨트롤러가 필요하지 않다.
* 최소 드라이브 개수 : 4
* 최대 용량 : (디스크의 수/2) x 디스크의 용량
* 특징 : 일반 RAID 1 구성보다 높은 성능을 낼 수 있으며 한쪽 RAID 0에 들어가는 하드들이 모두 고장난 경우에도 나머지 RAID 0 하드를 통해 정상 동작 및 데이터 복구를 할 수 있다.(4) RAID 1 + 0 (RAID 10)
RAID 10(1+0)은 RAID 1로 구성된 하드들을 최종적으로 RAID 0 방식으로 병렬구성(striping)해서 성능을 높이게 된다. 역시 RAID 1의 미러링을 기본으로 하고 있으므로 하드 1개가 고장나도 그와 함께 미러링 된 하드를 통해 데이터 복구가 가능하다.
RAID 0+1과 RAID 10은 4개의 하드 디스크로 RAID를 구성할 경우 용량이나 구조에서 별 차이가 없어 보이지만 6개 이상의 하드를 사용하게 되면 위와 같은 차이가 생긴다. RAID 0+1은 RAID 0으로 구성된 하드들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드가 나눠지며, RAID 10은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성된다.
RAID 0+1은 양쪽 RAID 0 구성 중 하나씩 고장이 나면 전체 데이터가 손실되고, RAID 10은 미러링 된 하드 2개가 동시에 고장 날 경우 전체 데이터가 날아간다. 물론 그 대신 RAID 0+1은 미러링 된 한쪽이 하드 전체가 망가져도 데이터를 살릴 수 있고, RAID 10도 각 RAID 1 묶음에서 하나씩이 고장이 나도 이상 없이 동작한다.
그러나 RAID 0+1의 경우 1개의 하드만 고장 나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체(A1~3, B1~3, C1~3)를 복구해야 하지만, RAID 10으로 만든 시스템은 고장난 하드가 A2, B2, C3 가 저장된 하드 1개라고 하면 미러링으로 묶인 하드를 통해 A2, B2, C2 데이터만 복구하면 되므로 실제로 운영하는데는 RAID 10이 훨씬 유리하다.
(5) RAID 5
RAID 5는 RAID 3, 4에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식으로 패리티 정보를 스트라이핑으로 구성된 디스크 내에서 처리하게 만들었다. 물론 패리티 정보는 데이터가 저장된 디스크와는 물리적으로 다른 디스크에 저장되도록 만들어 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터를 복구할 수 있도록 했다. 최소 3개부터 구성이 가능하며 하드 1개 용량만 빠지게 되므로 미러링으로 처리되는 RAID 1보다 저장 공간도 크다.
패리티 정보가 데이터가 저장된 디스크와는 다른 디스크에 저장되기 때문에 위의 RAID 5 구성에서 만약에 3번 하드(Disk3)가 고장날 경우 A3, C2, D2, 데이터는 다른 하드에 별도로 저장된 패리티 정보를 통해서 복구하고 B 패리티 정보는 나머지 하드에 있는 B1, B2, B3 데이터를 토대로 다시 작성할 수 있다. 그러나 별도로 패리티 정보를 저장하는 작업을 해야 하므로 RAID 1보다 쓰기 성능이 떨어진다.
RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식이기도 하다. 보드나라 서버 역시 3개의 하드로 RAID 5를 구성하고 있다.
RAID 5 역시 XOR 연산을 필요로 하기 때문에 PCI 방식의 보급형 RAID 컨트롤러 카드나 데스크탑 메인보드의 내장 RAID 컨트롤러에서는 그 동안 거의 지원하지 않았던 규격이기도 하지만, 컴퓨터 성능이 올라간 요즘에는 메인보드 사우스브릿지 칩셋에 RAID 5 기능을 넣는 추세로 가고 있다.
* 최소 드라이브 개수 : 3
* 최대 용량 : (디스크의 수 - 1) x 디스크의 용량
* 특징 : 작고 랜덤한 입출력이 많은 경우 더 나은 성능을 제공한다. 빠른 기록속도가 필수적이지 않다면, 일반적인 다중사용자 환경을 위해 가장 좋은 선택이다. 그러나 최소한 3대, 일반적으로는 5대 이상의 드라이브가 필요하다.☆ mdadm
레이드를 구성하는 명령어 : mdadm - manage MD devices aka Linux Software RAID
■ RAID 설정
# mdadm --create /dev/md0 --level=<RAID 레벨> --raid-device=<RAID 구성할 Disk수> <디스크장치명> ...
# mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/sdc1 /dev/sdd1
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdc1 /dev/sdd1
/* --create : -C */
/* --level=1 : -l 1 */
/* --raid-device=2 : -n 2 */
■ RAID 장치 설정 확인
# mdadm --detail /dev/md0 /* --detail : -D */
■ /etc/mdadm.conf 파일 설정
# echo "DEVIECE partitions" > /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm.conf /* --scan : -s */
# cat /etc/mdadm.conf
DEVIECE partitions
ARRAY /dev/md0 level=raid0 num-devices=2 metadata=0.90 UUID=26989dc0:d41ac869:f76fb5d7:a077d304
■ RAID 삭제
(ㄱ) RAID Device stop
# mdadm --stop /dev/md0 /* --stop : -S */
(ㄴ) RAID Device remove
# mdadm --remove /dev/md0 /* --remove : -r */
(ㄷ) superblock 정보 삭제
# mdadm --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
'linux > centOS' 카테고리의 다른 글
소프트웨어 관리 1 (0) 2018.06.29 SWAP 관리 (0) 2018.06.27 LVM 생성 및 관리 (0) 2018.06.22 마운트 관리 (0) 2018.06.21 파일 시스템 작업 (1) 2018.06.20