RAID에 대한 기본적 정의부터 구성까지(LSI MegaRAID SAS 9261-8i)

| 2017년 6월 26일 | 0 Comments

1. 서버 RAID?

 

1. RAID의 정의

RAID : Redundant Array of Indexpensive Disk

여러개의 디스크에 일부 중복된 데이터를 나누어 저장하는 기술과 디스크용량 증가를 위한 기술,

또한 읽기/쓰기 속도를 증가시키거나 데이터를 안전하게 백업하는 용도로 사용하기도 한다.

 

RAID에 사용되는 기술

Striping (스트라이핑)

스트라이핑은 하나의 디스크에 모두 기록할 수 없는 데이터를 여러개의 디스크에 분배하여 기록할 수

있는 기술로 큰 용량을 만들어 사용하는데 사용된다.

Mirroring (미러링)

미러링은 같은 데이터를 1개이상의 디스크에 저장하여 복사본을 만드는 기술이다. 한 디스크에 장애가

발생하여도, 살아있는 다른 디스크의 데이터는 영향을 받지 않으므로 데이터를 보호할 수 있다. 데이터의

변경을 계속 업데이트 하는 것으로 특정 시간에 데이터를 저장하는 백업과는 본질적으로 다르다.

Parity(패리티)

패리티는 하나의 디스크에 장애가 발생하였을 경우 다른 디스크에 별도로 저장된 패리티정보를 통해

복구가 가능한 기술이다. 손상된 디스크의 패리티정보는 나머지 디스크에 있는 데이터를 토대로 다시

생성할 수 있다.

 

2. RAID의 종류

RAID 0

2개 이상의 하드를 병렬로 연결해서 데이터블록 단위로 분산해서 읽고 쓰는 방식으로 구성된다.

RAID 1

데이터의 안정성을 높이기 위해 동일한 데이터를 1개 이상의 디스크에 똑같이 저장하는 방식이다.

RAID 5

하나의 디스크에 장애가 생기면 나머지 디스크의 패리티정보로 복원이 가능한 기술이다.

RAID 10

RAID1로 구성된 하드들을 최종적으로 RAID0방식으로 스트라이핑하여 성능을 높이는 기술이다.

 

이 밖에 다양한 RAID구성 방식이 있지만, 본 문서에서는 0, 1, 5, 10 방식에 대한 내용으로 구성하였다.

 

3. 하드웨어 및 구성

본격적인 RAID 구성에 앞서 물리적인 하드웨어 구성에 대해 알아보자

 

준비물 : 8베이 RAID 서버, RAID 케이블 * 2EA, RAID 컨트롤러(RAID 카드), 500GB HDD디스크 * 8EA

8베이 RAID 서버(여기서 RAID 서버란 RAID 케이블을 장착할 수 있는 디스크 베이 패널과 RAID 카드를 장착

PCI슬롯 이 있는 서버를 말한다.)

실제로는 12베이지만 OS 외 디스크 장착을 8개만 할 것이므로 8베이로 정의한다.

 

RAID 케이블

 

RAID 컨트롤러(RAID 카드)

본 문서에서는 LSI 9261-8i 버전의 컨트롤러를 사용함

 

500GB HDD디스크 * 8EA

 

[1] 준비된 디스크를 서버에 장착한다.

 

[2] 서버를 열어 PCI슬롯에 RAID 컨트롤러를 장착한다.

 

[3] 디스크 패널을 확인한다.

 

[4] 그림 처럼 디스크 패널과 컨트롤러에 RAID 케이블을 연결해준다.

위 포트부터 순서(번호)가 지정되기 때문에 컨트롤러와 패널을 같은 상하위치에 연결해 주도록한다.

 

[5] 물리적 연결을 끝내고 서버를 부팅시켜, 디스크를 장착한 8개의 베이에 LED가 들어오는 것을 확인한다.

 

2. RAID 설정

1. BIOS에서 RAID 설정하기

서버를 부팅하고 먼저 RAID 설정페이지로 접근하여 레이드 종류를 선택하기 전까지의 과정을 알아보도록 하자

 

[1] 부팅 후 첫화면에서 RAID 컨트롤러와 디스크 인식결과가 출력된다.

그림에 나와있는 것처럼 0~78개의 디스크 모두 정상적으로 인식이 되는 것을 확인할 수 있다.

Ctrl+H키를 눌러 설정페이지로 접근하도록 하자

 

[2] 펌웨어 버전을 확인할 수 있는 첫 화면이다. “Start박스를 클릭한다.

 

[3] 다음 화면에서 디스크 인식을 한번 더 확인할 수 있다. “Configuration Wizard를 클릭한다.

 

[4] RAID 설정을 지울 것인지, 새롭게 생성할 것인지, 아니면 내용을 추가 할지 선택하는 페이지다.

New Configuration을 선택하고 “Next버튼을 클릭한다.

 

[5] 새롭게 설정을 하게되면 기존 설정은 없어지면서 데이터 또한 잃게된다. 이것에 동의하는지 묻고 있다.

yes버튼을 클릭한다.

 

[6] 수동설정, 자동설정을 결정하는 페이지다.

Manual Configuration을 선택하고 “Next를 클릭하여 수동설정을 진행하도록 한다.

※ 이 부분까지는 모든 레이드설정에 앞서 동일하게 적용된다.

 

2. RAID 0 구성하기

[1] 지금부터는 RAID별로 드라이브 그룹을 나누어 진행한다. 먼저 RAID 0을 구성해보도록 하다.

Drives부분에 있는 디스크를 모두 선택하여 “Add To Array버튼을 클릭한다.

 

[2] Drive Groups에 디스크가 추가된 것을 확인할 수 있다. 여기서 “Accept DG버튼을 클릭하면,

용량이 표시되는 것이 보인다. “Next버튼을 클릭하여 다음화면으로 이동하자

 

[3] 다음화면에서 어떤 방식의 레이드를 구성할 수 있는지 나온다. “Add to SPAN버튼을 클릭하면,

Span부분에 드라이브 그룹이 추가된 것을 확인할 수 있다. Next버튼을 클릭하여 다음화면으로

이동한다.

전 단계에서 그룹을 한번에 묶었기 때문에 RAID 0, RAID 1, RAID 5, RAID 6까지 설정이 가능하다.

레이드를 두번에 걸쳐 묶는 RAID 10 과는 본 설정에서 차이가 있다.

 

[4] 다음화면에서 RAID Level 부분을 RAID 0으로 선택하고, Select Size부분에 레이드 종류에 맞는 크기를

입력한다. 그 후 “Accept버튼을 눌러 적용해주면 버추얼 드라이브가 생성된 것을 확인할 수 있다.

 

[5] 다음 화면에서 설정을 저장하고, 캐싱활성화 부분은 취소버튼을 클릭해준다.

 

[6] 기존 VD의 데이터가 모두 지워진다는 문구가 나온다. “Yes버튼을 클릭해준다.

 

[7] 다음은 초기화 페이지가 나온다. “Fast Initialize를 클릭하고 “Go버튼을 눌러 초기화를 진행한다.

완료가 되면, “Home을 클릭하여 처음페이지로 돌아간다.

 

[8] 초기화면으로 돌아오면, RAID 0으로 설정이 된 것을 확인할 수 있다. “Exit를 클릭하여 리부팅한다.

 

[9] OS를 올려보면 레이드 디스크가 4TB로 확인된다.

4TB로 확인이 되는 이유는 RAID 0은 최초에 설명했듯이 Stripe기술이기 때문이다. 8개의 하드디스크를

병렬 연결하여 데이터블록 단위로 분산해서 읽고 쓰는 방식으로, 500GB * 8EA = 4TB라는 계산이 나온다.

 

RAID 0의 장점으로 빠른 I/O 성능을 꼽을 수 있다. N개의 디스크 용량을 온전하게 모두 사용할 수 있다는

장점도 가지고 있다. 그러나 단점은 치명적이다. 디스크 중 1개라도 완전히 고장이 날 경우 RAID 0으로 구성

된 모든 데이터를 망실하게 된다. 이러한 이유로 RAID가 주로 사용되는 분야에서는 RAID 0만으로는

시스템을 구축하지 않는다.

 

3. RAID 1 구성하기

[1] RAID1구성에 대해서 알아보자. 본 메뉴얼에서는 8개의 디스크를 2개씩 미러링하는 방식으로 진행한다.

드라이브 구성하는 페이지에서 두개의 디스크를 선택하고 “Add To Array를 클릭한다. 그 다음

Accept DG버튼을 클릭하여, 드라이브 그룹을 적용해준다.

 

[2] 다음 디스크 두개를 선택하여“Add To Array를 클릭한다. 같은 방식으로 “Accept DG버튼을

클릭하여, 2번째 드라이브 그룹을 적용해준다.

 

[3] 같은 방식으로 3번째 드라이브 그룹을 생성한다.

 

[4] 마지막으로 4번째 드라이브 그룹을 생성하고, “Next버튼을 클릭하여 다음으로 진행한다.

 

[5] 생성했던 첫번째 드라이브를 확인하고, “Add to SPAN을 클릭한 후 다음화면으로 진행한다.

 

[6] 다음 화면에서 RAID 1을 선택하고 그에 맞는 용량을 확인한 후 Select Size에 입력해준 후 “Accept

클릭하여 적용해 준다. VD가 추가되었다면, “Back를 클릭하여 이전 화면으로 돌아간다.

 

[7] 이전 화면에서 같은 방식으로 두번째 드라이브를 추가해준 뒤 다음으로 이동한다.

 

[8] 같은 방식으로 RAID1을 선택하고 용량을 입력 후 “Accept를 누르고 이전화면으로 이동한다.

 

[9] 세번째 드라이브를 추가 해주고 다음으로 이동한다.

 

[10] 세번째 VD를 생성해주고, 다시 이전화면으로 돌아간다.

 

[11] 마지막 드라이브를 추가해주고 다음으로 진행한다.

 

[12] 동일한 방법으로 마지막 VD를 생성해주고 다음으로 진행한다.

 

[13] VD를 최종 확인하고, “Accept을 클릭하여 적용해준다.

 

[14] 캐싱활성화는 취소하고, VD초기화는 동의하여 진행한다.

 

[15] 초기화를 진행하고, 완료가 되면 “Home버튼을 클릭하여 초기화면으로 돌아간다.

 

[16] 초기화면에서 RAID 1로 설정된 드라이브 그룹을 확인하고, “Exit를 클릭하여 리부팅을 진행한다.

 

[17] 리부팅 후 OS에서 디스크를 확인해보면 500GB의 장치가 4개로 확인된다.

500GB * 4EA 로 확인이 되는 이유는 총 8개의 디스크를 2개씩 Mirroring하여 4개의 장치를 만들었기

때문이다. 보통의 RAID 1로 미러링하는 방식이라면 11로 구성한다. 그 이상으로 구성할 경우 속도와

효율성면에서 단점을 들어내기 때문에 추천하지 않는다.

 

 

4. RAID 5 구성하기

[1] RAID5구성에 대해서 알아보자. 드라이브 구성하는 페이지에서 RAID 0을 구성할때와 같은 방식으로

디스크를 모두 선택하고 “Add To Array를 클릭한다. 그 다음 Accept DG버튼을 클릭하여,

드라이브 그룹을 적용해준다.

 

[2] Drive Groups에 디스크가 추가된 것을 확인할 수 있다. 여기서 “Accept DG버튼을 클릭하면, 드라이브

그룹이 적용되면서 용량이 표시되는 것이 보인다. “Next버튼을 클릭하여 다음화면으로 이동하자

 

[3] 다음화면에서 어떤 방식의 레이드를 구성할 수 있는지 나온다. “Add to SPAN버튼을 클릭하면,

Span부분에 드라이브 그룹이 추가된 것을 확인할 수 있다. Next버튼을 클릭하여 다음화면으로

이동한다.

 

[4] RAID 5 로 설정하고, 용량을 확인하여 입력해준다. 그 다음 “Accept를 클릭하여 VD를 생성해주고,

다음으로 넘어간다.

 

[5] VD 생성한 것을 한번 더 확인하고, 적용을 한 뒤 설정내용을 저장해준다.

 

[6] 캐싱활성화는 취소하고, VD초기화를 진행한다.

 

[7] 최종적으로 초기화를 진행하고 홈화면으로 돌아간다.

 

[8] RAID 5로 설정이 완료된 것을 확인할 수 있다. 다음 “Exit를 클릭하여, 리부팅을 진행한다.

 

[9] 리부팅 후 OS에서 디스크를 확인해보면 RAID 5로 설정한 디스크용량을 확인할 수 있다.

같은 방식으로 디스크 8개를 한번에 묶은 RAID 0과는 다르게4TB에서 대략500GB 정도 모자란,

3,493GB로 확인이 된다. 이유는 디스크마다 패리티 데이터가 있기 때문이다. 초반에 설명하였던 것 처럼

디스크에 장애가 발생하였을때 RAID 5는 패리티정보를 통한 리빌딩이 가능하다. 기본 근간은 Stripe방식

이기 때문에 읽기, 쓰기 성능에서 장점을 보인다.

RAID 5RAID 0 의 단점을 보완한 기술이라고 볼 수 있다. 많은 용량을 쓰면서 디스크 하나가 문제

되었을때, 패리티비트를 통한 데이터 복구가 가능하다는 점과 읽기쓰기의 속도면에서 큰 장점이 있지만,

리빌딩을 진행할때 드라이브 용량에 따라 배열의 재구성에 다소 시간이 걸리고 운영중인 시스템의 성능이

저하될 수 있다.

 

5. RAID 10 구성하기

[1] RAID 10은 드라이브 그룹을 구성할때 RAID 1을 구성했을때와 같이 2개의 디스크를 하나의 드라이브

로 구성한다. 두개의 디스크를 선택하고 “Add To Array를 클릭한다. 그 다음“Accept DG버튼을

클릭하여, 드라이브 그룹을 적용해준다.

 

[2] 다음 디스크 두개를 선택하여“Add To Array를 클릭한다. 같은 방식으로 “Accept DG버튼을

클릭하여, 2번째 드라이브 그룹을 적용해준다.

 

[3] 같은 방식으로 3번째 드라이브 그룹을 생성한다.

 

[4] 마지막으로 4번째 드라이브 그룹을 생성하고, “Next버튼을 클릭하여 다음으로 진행한다.

 

[5] 드롭박스를 클릭해보면 전 화면에서 추가한 4개의 드라이브 그룹을 확인할 수 있다.

Add to SPAN을 클릭하여 순서대로 더 해준뒤 다음으로 넘어간다.

 

[6] RAID 10을 선택한 후 그에 맞는 용량을 확인하고 Select Size부분에 알맞게 입력한 뒤 “Accept버튼을

클릭하여 적용해준다. 생성한 VD가 적용되는 것을 확인할 수 있다.

 

[7] 다음화면에서 한번 더 VD를 확인하고 적용 후 저장해준다.

 

[8] 지금까지 설정한 값으로 초기화를 진행하고 완료 후 “Home버튼을 클릭하여 처음화면으로 돌아간다.

 

[9] 초기화면으로 돌아오면 RAID 10으로 묶인 것을 확인할 수 있다. “Exit를 클릭하여 리부팅한다.

 

[10] OS에서 디스크의 용량을 확인해보면 전체디스크(500GB * 8EA)의 용량의 반인 2TB로 확인이 된다.

RAID10Stripe방식인 RAID 0의 빠른 I/O 성능과 Mirroring방식인 RAID 1의 안정성을 두루갖춘

하이브리드형 기술이라고 할 수 있다. 하나의 디스크에 문제가 발생하여도, 데이터 무결성에 영향을

주지 않고 데이터를 다른 미러에서 제공하기 때문에 운영에 문제가 생기지 않는다.

 

데이터의 내결함성은 고장난 디스크를 교체하여 리빌딩함으로써 복원할 수 있다.

 

3. 툴을 이용한 RAID 서버 관리

1. MegaCLI 설치

MegaCLI란 펌웨어 업데이트를 위해 필요하며, 해당 명령어로 RAID의 상태등을 확인할 수 있다.

3DM2이라는 로컬 그리고 외부 웹에서 여러 기능을 수행할 수 있는 좋은 툴이 있지만, 아쉽게도 해당버전의

컨트롤러에서는 지원을 하지 않는다.

 

앞으로 진행될 실습에서는 RAID 10의 구성에서만 진행된다.

 

[1] 먼저 인스톨 파일을 다운받는다.

# cd /usr/local/src/

# wget http://mirror.nforce.com/pub/software/raidtools/Megaraid/8-07-14_MegaCLI.zip

 

[2] 압축을 풀고, Linux디렉터리로 들어가 rpm명령어를 통한 패키지 설치를 진행한다.

# unzip 80714_MegaCLI.zip

# cd Linux

# rpm ivh MegaCli8.07.141.noarch.rpm

 

[3] 설치가 완료되면 명령어파일을 심볼릭링크 걸어준다.

# ln s /opt/MegaRAID/MegaCli/MegaCli64 /bin/MegaCl

 

[4] 툴 설치가 정상적으로 되었는지 명령어를 통해 각 슬롯의 디스크 상태를 확인해본다.

# MegaCli -PDList -aAll -NoLog | egrep “Slot Number:|Error|Inquiry Data:|state”

 

2. MegaCLI 명령어

 “MegaCli명령어를 통해 RAID관련 장치들의 정보를 확인하고, 설정이 가능하다.

 

[1] 논리적 디스크 정보를 확인할 수 있는 명령어이다. 어떤 방식의 RAID를 구성하였는지 확인할 수 있다.

# MegaCli LDInfo Lall aALL

 

[2] 요약된 디스크 정보를 확인할 수 있는 명령어다. 장애 상황을 시뮬레이션 하기 위해 5번포트에 있는

디스크를 제거 후 확인해보았다. “Controller상태 부분에 주의를 요한다는 “Need Attention

출력되는 것을 확인할 수 있고, 0 ~ 7번 슬롯 중 제거한 5번포트는 목록에 나오지 않는 것을 알 수

있으며 “Virtual drive의 상태 역시 “Degraded로 나와 문제가 있다는 것을 최종확인 가능하다.

# MegaCliShow ShowSummary aALL

 

[3] 다시 디스크를 장착하고, 조금 더 자세한 디스크정보를 알 수 있는 명령어를 통해 확인해보면,

Firmware state부분에 “Unconfigured(bad)라고 출력이 되면서 장착 후에도 문제가 해결 되지

않음을 알 수 있다.

# MegaCli pdlist a0 |more

 

[4] 디스크가 문제가 생겨 새 디스크를 장착하였다고 가정하고 리빌딩을 진행해보도록 해보자.

먼저 문제가 있는 5번포트의 “Unconfigured상태 부분을 “Good으로 변경해준다.

# MegaCli -pdmakegood -physdrv [252:5] -a0

 

[5] 그 다음 5번포트에 대한 Rebuilding을 진행해준다.

# MegaCli -pdhsp -set -physdrv [252:5] -a0

 

[6] 다음 명령어로 리빌딩의 진행상황을 확인할 수 있다.

# MegaCli -PDRbld -ShowProg -PhysDrv[252:5] -a0

 

[7] 디스크정보를 다시 확인해보면, 상태부분이 기존 문제가 있었을때 “Unconfigured(bad)라고

나오던 것이 “Rebuild라고 나오면서 리빌드가 진행되고 있다는 것을 한번 더 확인할 수 있다.

※ “Firmware state에 정상작동시에는 Online이라고 나온다.

# MegaCli pdlist a0 |more

 

[8] 리빌드가 완료되면 디스크 요약정보를 다시 확인하여, 디스크의 상태가 모두 정상적인지 확인 한다.

이 처럼 RAID 10의 구성에서는 중복데이터를 통해 운용에 지장없이 배열의 재구성이 가능하다.

# MegaCli pdlist a0 |more

 

[9] 기타 명령어

펌웨어 상태확인

# MegaCli -PDlist -aALL |grep -iE “slot|firmware”

Adapter 정보확인

# MegaCli -AdpAllInfo -aALL

Enclosure 정보확인

# MegaCli -EncInfo -aALL

컨트롤러, 디스크 로그확인

# MegaCli -fwtermlog -dsply -aALL

 

4. MegaRAID Storage Manager설치(서버)

MSM이라는 프로그램을 통하여, 외부에서 RAID 서버에 대한 상태를 확인할 수 있을 뿐만 아니라 디스크

드라이브를 쉽게 재구성을 할 수 있다. 먼저 서버에서 설치를 진행해보자

 

[1] 먼저 MSM 최신버전 리눅스용으로 설치파일을 다운받는다.

# cd /usr/local/src/

# wget http://mirror.yourwebhoster.eu/misc/lsi/MSM_linux_x64_installer-16.11.00-03.tar.gz

 

[2] 압축을 풀고, “disk디렉터리로 이동한다.

# tar xvfz MSM_linux_x64_installer-16.11.00-03.tar.gz

# cd disk/

 

[3] “RunRPM.sh파일을 스크립트 명령어를 통해 실행해주면 자동으로 설치가 진행된다.

# sh RunRPM.sh

 

[4] 포트체크를 해보면 3071번 포트가 정상적으로 올라와 있는 것을 확인할 수 있다.

 

3. MegaRAID Storage Manager설치(클라이언트)

클라이언트에서 해당 툴을 통해 외부에서 사용할 수 있게 MSM설치를 진행해보자

 

[1] 먼저 브라우져를 통해 공식홈페이지에 접속하여 RAID 컨트롤러 버전을 검색해 보자

http://www.avagotech.com/support/download-search

 

[2] 검색 후 목록중에 “Management Software and Tools를 찾아 클릭한다.

 

[3] 다음화면에서 “Latest MegaRAID Storage Manager (MSM)을 클릭하고 내용에 동의한 후 최신버전을

다운로드 한다.

 

[4] “setup파일을 실행하여 설치를 시작해보자

 

[5] 초기 설치화면에서 라이센스 동의 후 다음으로 진행한다.

 

[6] 조직명을 입력하고, 경로를 선택해주고 다음으로 진행한다.

 

[7] “Complete을 선택하고 다음, “No를 선택한 뒤 다음으로 이동한다.

 

[8] 계속 다음으로 진행한다.

 

[9] “Install을 클릭하여 설치를 진행하고 완료한다.

 

3. MegaRAID Storage Manager를 통한 운영

클라이언트에서 툴설치가 끝나면 본격적으로 툴을 통한 운영을 해보도록하자

 

[1] MSM툴 설치를 완료하면 바탕화면에 “MegaRAID Storage Manager라는 이름으로 아이콘이 생긴다.

해당 아이콘을 실행시키고, 접속할 RAID서버의 IP를 입력한 뒤 “Discover Host를 클릭하면 하단에

세션이 정상적으로 연결되는 것이 확인된다. 다음 목록을 클릭하고 “Login버튼을 클릭한다.

 

[2] 다음 로그인창에서 서버의 root계정으로 접근하면, 최초 RAID설정이 되어 있지 않은 상태이므로

디스크의 정상인식만 확인할 수 있다.

[3] 새롭게 RAID를 잡아 보도록하자 “Logical탭을 클릭하고 상단에 “Create Virtual Drive아이콘을

클릭하여 VD생성 창이 나오면“Advanced를 클릭하여 다음으로 진행한다.

 

[4] 구성할 RAID를 선택하는 화면이 나온다. RAID 10으로 진행 해보자 디스크 두개를 선택하고 “Add

클릭한다.

 

[5] “Create Span을 클릭하여 Span을 추가해주고, 디스크를 Span마다 2개씩 추가하는 방식으로 0 ~ 3

Span을 생성해준다. 그렇게 4개의 Span을 생성하고, “Create Drive Group을 클릭한 뒤 다음으로

넘어간다.

 

[6] 드라이브 이름을 정해주고, 초기화는 “Fast Initialization을 선택하여 VD를 생성해준다.

다음 경고 문구가 나오는데 해당 내용에 동의하여 진행한다.

 

[7] RAID10의 설정을 확인하고 “Finish를 클릭하여 완료한다.

 

[8] 다음 “Refresh아이콘을 클릭하면, RAID 10으로 구성이 정상적으로 확인되는 것을 볼 수 있다.

Category: 솔루션/IT기타

유병권

About the Author ()