메뉴 닫기

레이드 구성 및 rebuild test

1. raid?

1.1. RAID 정의 및 특징

RAID(Redundant Array of Inexpensive(또는 Independent) Disks)는 어느 단체나 회사에서 잃어버리면 안 되는 중요한 데이터를 가지고 있는 서버에서 주로 사용하며, 여러 대의 하드디스크를 RAID로 구성해 동일한 데이터를 다른 위치에 중복하여 저장하므로 다른 한쪽에서 파일이 삭제되더라도 다른 디스크에 저장 되어 있는 데이터를 실행시켜 복원하는 방법입니다.

● 데이터를 여러 대의 디스크에 저장하기 때문에 입출력 작업이 균형을 이루게 되어 전체적인 성능 향상
● 여러 대의 디스크는 MTBF(mean time between failures : 평균 무고장 시간)을 증가시키기 때문에 데이터를 중복해서 저장하면 고장에 대비하는 능력도 향상

1.2. 레이드 종류

1.2.1. RAID 0 : Striping

RAID 0 은 모든 디스크에 분산되어 저장되어 있는 테이블을 동시에 읽어 들일 수 있으므로 가장 빠른 속도의 성능을 내지만 어느 하나의 디스크에서 장애가 발생시 모든 데이터를 잃어 버리게 되는 단점을 가지고 있습니다.

Array : Disk 집합
Stripe : 논리적으로 연속된 dataArray 안의 여러 Disk에 분산된 조각 단위

최소 2개의 Disk Drive 필요
DataBlock 단위로 각각의 Disk에 저장
– I/O 성능은 ChannelDisk수를 늘림으로써 높아짐
– Controller 하나에 Disk 하나를 연결하여 여러 개의 Controller를 통해 I/O를 분산함으로써 최대의 성능을 낼 수 있음
– Parity 계산을 하지 않으며, Data Redundant 안됨
– Fault Tolerant가 아니므로 진정한 RAID라 할 수 없음
 
1.2.2. RAID 1 : Mirror

이 형식은 흔히 디스크 미러링이라고 하며, 중복 저장된 데이터를 가진, 적어도 2개의 디스크로 구성됩니다.

각 디스크를 동시에 읽을 수 있으므로 읽기 성능은 향상 되며, 쓰기 성능은 단일 디스크 드라이브의 경우와 정확하게 같습니다. 또한, 드라이브에 장애가 발생 시에 미러링 된 데이터를 읽어 오기 때문에 고장 대비 능력도 훌륭합니다.

복구 DiskData를 실시간 Copy
– RAID 1은 다중 Disk가 장애 발생할 때에도 운영이 가능
다중 사용자 시스템에서 최고 성능 및 최고의 고장 대비 능력

1.2.3. RAID 5 : Independent Data Disk with Distrubuted Parity Blocks

회전식 패리티 Array를 포함하지만 데이터를 중복 저장하지는 않습니다. RAID 5는 보통 3~5개 디스크를 Array로 요구하며, 성능이 그리 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자 시스템에 적합합니다.

– (1/N)의 디스크 공간을 Parity Disk로 사용
– read 성능 향상, write 성능 저하
최소 3개의 Disk 필요
– Disk 사용 효율이 매우 좋음
– RAID 1과 비교시 Data Rebuild가 어려움
주로 File Application Server, Data Base Server, WWW, Email, Intranet Server 사용

1.2.4. RAID 50

하위 배열은 RAID 5, 상위 배열은 RAID 0입니다. RAID 5 볼륨을 RAID 0으로 스트라이핑 합니다. RAID 5은 최소 6개의 디스크가 필요합니다.
RAID 0+5에 비해서 디스크 장애 발생 시 복구가 수월합니다.

1.3. RAID 설정 전 확인 및 준비사항

1.3.1. LSI MegaRAID 펌웨어 설치

우선 다운로드 받을 폴더로 이동합니다.

wget 명령어로 파일을 받으셔야 됩니다.
wget http://docs.avagotech.com/docs-and-downloads/https:/avagodocs.s3.amazonaws.com:443/docs-and-downloads/raid-controllers/raid-controllers-common-files/MSM_linux_x64_installer-15.08.01-02.tar.gz

압축받은 tar 파일을 압축 해제 합니다.
tar xzfp MSM_linux_x64_installer-15.08.01-02.tar.gz


압축을 풀면 disk 디렉토리가 생성됩니다.


Sh RunRPM.sh 이 파일을 실행 시킵니다.


정상적으로 설치되면 netstat 명령어로 3071 포트가 열렸는지 확인합니다.

만약 실행이 안되어 있으면 아래 명령어와 같이 실행 시키면 됩니다.

etc/init.d/vivaldiframeworkd start

megaraid 펌웨어는 TCP3071번 포트를 사용합니다. 방화벽에서 이 포트를 막고 있는 지 확인하고, 만약 막고 있다면 위의 화면처럼 포트를 열어주어야 됩니다.

1.3.2. client LSI Megaraid Storage Manager 설치

http://www.avagotech.com/support/download-search
사이트에서 Megaraid Storage Manager 파일을 다운로드 받아야 됩니다.


사용중인 상품명을 검색합니다.


Management Software and Tools 중 사용중인 OS에 맞는 것을 다운로드 합니다.
왠만하면 Megaraid 펌웨어 버전이랑 동일하게 맞춰주는 것이 좋습니다.
제가 테스트 했을 때 펌웨어 버전이랑 차이가 많이 나면 storage manager에서 접속이 안되는 경우가 있었습니다.


다운로드 받은 파일을 압축 해제합니다.

C:\Users\Administrator\Downloads\15.08.01.02_Windows\MSM_Windows\MSM15080102\DISK1 해당 경로에 가면 setup.exe 파일이 볼 수 있습니다.
이 파일을 이용해 설치를 진행합니다.


다음을 클릭합니다.


동의 하고 다음을 클릭합니다.


조직 이름을 적고 Next를 클릭합니다.


다음을 클릭합니다.


상세하게 설정할 것인지에 대해서 묻는 내용입니다.
저는 No를 선택하고 다음을 클릭합니다.


다음을 클릭합니다.


다음을 클릭합니다.


설치가 완료 되었습니다.


윈도우 바탕화면에 MegaRAID Storage Manager가 설치된 것을 볼 수 있습니다.


프로그램을 실행시킵니다.
ip를 입력하고 Discover Host 버튼을 클릭하면 레이드 서버 ip가 검색되는 것을 확인할 수 있습니다.


ID
와 비밀번호를 입력합니다.


로그인 하면 정상적으로 Dashboard가 뜨는 것을 확인 할 수 있습니다.

 

2. RAID 구성

2.1. RAID 0

서버를 부팅할 때 [Ctrl + H]를 눌러 MegaRAID 설정 화면으로 들어갑니다.

[Tab] 버튼으로 순서대로 이동 할 수 있습니다.
마우스로 클릭하셔도 됩니다.
저는 마우스로 설정하는 것이 더 편해서 마우스로 설정 하였습니다.


start
를 선택합니다.
Adapter를 선택하는 창입니다.
레이드 카드 모델과 펌웨어 정보를 알 수 있습니다.


Configuration Wizard
를 선택합니다.
레이드 구성 유틸리티인 WebBIOS로 들어오는 상태이며 물리적 디스크 상태를 확인 할 수 있습니다.


New Configuration
을 선택한 후 Next를 선택합니다.


RAID 기존 환경을 지우고 새로운 환경을 만들어도 되는지 물어보는 문구입니다.


YES
를 선택합니다.
Manual Configuration 을 선택하여 Next를 누릅니다.

Manual Configuration : 수동으로 RAID 설정
Automatic Configuration : 자동으로 RAID 설정


RAID
를 구성하기 위해 Drive Group을 생성하여 HDDRAID 구성에 맞게 할당해 줍니다.


Drive Group
을 생성하는데 오류가 납니다.


확인했을 때 네모 쳐져 있는 Backplane 같이 선택해서 나타나는 에러입니다.
같이 추가할 수 없다고 나타나 있습니다.


[Shift + ↓]Slot : 0~7 디스크를 선택하고 Add To Array를 클릭합니다.
HDD
를 셋팅 한 후 Accept DG (Drive Group 생성)를 선택합니다.


위의 그림과 같이 Drive Group1 이 새로 생성된 것을 확인 할 수 있습니다.
Next를 선택하여 다음으로 넘어갑니다.


Add to SPAN을 선택합니다.
Drive Group으로 묶은 HDD를 정의하는 곳입니다.


Next를 선택하여 다음으로 넘어 갑니다.
여유 공간으로 남아 있던 Drive GroupRAID 구성을 위한 대기 상태로 넘어갑니다.


RAID
구성을 완료 한 후 Accept를 선택하여 가상 드라이브를 생성해 줍니다.

RAID Level : RAID0, RAID1, RAID5, RAID6 구성 가능
Select Size : RAID 구성 별 용량을 지정합니다.
위의 사진 오른쪽 초록색 확인하시면, RAID0, RAID1, RAID5, RAID 6의 용량을 확인하여 알맞은 용량을 지정합니다.


현재 상태를 덮어쓸 것인지에 대해 묻는 것입니다.
설정을 저장하기 위해서 Yes를 저장합니다.


위의 그림과 같이 VD0 (Virtual Drives)가 생성 되었습니다.
Next를 선택하여 다음으로 넘어갑니다.


Accept
를 선택하여 다음으로 넘어갑니다.


Yes
를 클릭합니다.
RAID 구성을 저장합니다.


SSD caching
이 가능하게 할 것인지에 설정하는 창입니다.
가능하게 하기 위해서 Enable을 선택합니다.


Caching
가능하게 하는 것이 실패합니다.
Cancel을 선택하여 나갑니다.


Yes
를 클릭합니다.
데이터 손실 방지를 위해 Initialize(초기값 설정)를 실행합니다.

 
Fast Initialize
를 지정하고 GO 를 눌러 실행합니다.


yes를 클릭합니다.
데이터 손실 방지를 위해 Initialize(초기값 설정)를 실행합니다.


Fast Initialize
를 지정하고 GO 를 눌러 실행합니다.

GO를 눌러 실행하게 되면 2초 후에 다시 원래의 화면으로 돌아오게 됩니다.
이 때에는 RAID 카드에서 자동으로 Initializing을 하고 있는 것입니다.


홈 버튼을 통해 빠져나가면 RAID 0으로 설정되어 있는 것을 볼 수 있습니다.

2-2. RAID 1

RAID 0,1,5는 위의 과정까진 동일해서 다른 부분만 정리하겠습니다.


RAID1로 구성을 완료한 후 Accept 를 선택하여 가상 드라이브를 생성해 줍니다.


Fast Initialize
를 지정하고 GO 를 눌러 실행합니다.
RAID 구성을 마친 후에 홈버튼을 클릭합니다.


WebBIOS Home
화면으로 돌아오게 되면 위와 같이 RAID1이 구성 된 것을 확인할 수 있습니다.

2.3 RAID 5


RAID5
로 구성을 완료한 후 Accept 를 선택하여 가상 드라이브를 생성해 줍니다.


Fast Initialize
를 지정하고 GO 를 눌러 실행합니다.
RAID 구성을 마친 후에 홈 버튼을 클릭합니다.


WebBIOS Home
화면으로 돌아오게 되면 위와 같이 RAID5가 구성 된 것을 확인할 수 있습니다.

2.4 RAID 50


[Shift + ↓]
으로 Slot : 0, 1, 2, 3을 잡고 Add To Array 선택 합니다.


Accept DG 를 선택합니다.


[Shift + ↓]
으로 Slot : 4, 5, 6, 7을 잡고 Add To Array 선택 합니다.


Accept DG 를 선택합니다.


그룹 2개가 생성된 것을 확인할 수 있습니다.
Next를 클릭합니다.


드라이버 그룹(Drive Group0, 1) 지정 후 Add to SPAN 을 선택하여 정의 해줍니다.


RAID50을 선택하고 Select Size에 위의 사진 오른쪽 초록색으로 표시된 R50의 용량을 확인하여 입력한 후 Accept 를 선택하여 가상 드라이브를 생성해 줍니다.


위 그림과 같이 Drive Group 각각에 VD(Virtual Drives)가 잡혀 있는 것을 확인할 수 있습니다.
Next를 클릭합니다.


Accept
를 클릭합니다.


yes
를 클릭합니다.


데이터 손실 방지를 위해 Initialize(초기값 설정)를 실행합니다.


Fast Initialize 를 지정하고 GO 를 눌러 실행합니다.

GO를 눌러 실행하게 되면 2초 후에 다시 원래의 화면으로 돌아오게 됩니다.
이 때에는 RAID 카드에서 자동으로 Initializing을 하고 있는 것입니다.


홈 버튼을 클릭합니다.


RAID
구성을 마친 후에 WebBIOS Home 화면으로 돌아오게 되면 위와 같이 RAID50이 구성 된 것을 확인할 수 있습니다.

3. RAID rebuild test

3-1. rebuild 장애 상황 구성


df -Th 명령어를 이용하여 디스크가 마운트 되어 있는 현황을 볼 수 있습니다.
Raid 구성된 디렉토리가 /raid에 마운트 된 것을 확인 할 수 있습니다.


/raid
디렉토리로 이동합니다.


파일을 생성해 봅니다.


Storage manager에서 디스크 현재 정상적으로 인식되고 RAID50으로 잡혀있는 것을 볼 수 있습니다.


테스트하기 위해서 Span0 디바이스 그룹의 3번 디스크를 제거하였습니다.


서버에서도 3번 디스크가 인식 실패 된것을 확인 할 수 있습니다.


파일이 생성되는 것을 확인하기 위해 test4 파일을 touch 명령어로 생성해 보았습니다.
디스크 1개 제거되어도 파일이 생성되는 것을 확인 할 수 있습니다.


이번에는 다른 디바이스 그룹인 span16번 디스크를 제거하였습니다.


역시 서버에서 6번 디스크 인식 실패 메시지를 볼 수 있습니다.


Touch
명령어로 tes5 파일을 생성 해보았습니다.
역시나 파일이 생성되는 것을 확인 할 수 있었습니다.


이번에는 span17번 디스크를 제거 하였습니다.


제거하자마자 서버에서는 I/O 에러가 출력되고 있었습니다.


파일 생성도 안되고 역시 입력/출력 오류가 나고 있습니다.
이 부분은 RAID 5 특성상 같은 디바이스 그룹의 1개 디스크만 문제 있을 경우에는 복구가 되지만 2개 동시에 문제 있으면 문제가 발생하는 현상입니다.

3-2. Rebuild


이젠 리빌드 작업을 진행하기 위해 제거하였던 3개 디스크를 포맷하고 다시 장착합니다.
※ 포맷하는 이유는 만약 포맷하지 않고 바로 리빌드를 진행하면 raid가 깨지지 않고 복구가 되기 때문입니다.
설정되지 않은 하드디스크 3개가 인식되는 것을 확인할 수 있습니다.
3개 모두 하드디스크를 클릭한뒤 ‘Change to Unconfigured Good’를 클릭합니다.


다시 넣은 디스크가 Unconfigured Good로 변경되었습니다.


6번 하드디스크를 오른쪽 클릭하여 ‘Replace Missing Drive’를 클릭합니다.


하드디스크가 들어갈 부분을 확인후 OK를 누릅니다.
지금 선택한 하드디스크는 디바이스 그룹이기 때문에 span1에 들어가야 됩니다.


이번엔 3번 하드디스크를 오른쪽 클릭하여 ‘Replace Missing Drive’를 클릭합니다.


하드디스크가 들어갈 부분을 확인후 OK를 누릅니다.
지금 선택한 하드디스크는 디바이스 그룹이기 때문에 span0에 들어가야 됩니다.
7번 디스크는 span1에 넣어주면 됩니다.


Offine
되어 있는 디스크를 online 상태로 변경해줍니다.


디스크 상태가 변경됨을 알려주는 경고입니다.
Confirm 부분을 체크하고 yes를 클릭합니다.


하드디스크를 오른쪽 클릭한 뒤 ‘Start Rebuild’를 클릭합니다.
1개만 online 해도 raid5 특성때문에 리빌드 진행 할 수 있습니다.


rebuild 할건지 물어보는 창입니다.
Confirm 부분을 체크하고 yes를 클릭합니다. 


하드디스크의 리빌드가 진행되고 있는게 확인됩니다.


처음 페이지인 Dashboard로 간후 More details를 클릭해보면 rebuild 상황을 파악할 수 있습니다.
rebuild에 걸리는 시간은 각 서버에 따라 다릅니다. 그 동안은 서버의 모니터링이 필요합니다.
저는 넉넉하게 1시간 반에서 2시간 걸렸습니다.


3,6,7번 디스크가 정상적으로 삽입되었다는 메시지 입니다.


rebuild 시작한후 서버에서 현재 상태가 rebuild 상태인 것을 확인할 수 있습니다.


rebuild가 완료된 상태입니다.


하지만 디스크 블록이 깨졌다는 것을 확인 할 수 있습니다.


마운트를 걸려고 해도 이미 RAID가 깨져서 마운트 자체가 되지 않습니다.
위에서 설명했듯이 RAID51개가 깨지면 복구가 가능하지만 2개가 깨져버리면 복구가 불가능합니다.
그래서 span1의 디스크 2개를 포맷해서 정보가 없어졌기 때문에 RAID 복구가 불가능하게 된 것입니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x