RAID1 복구

avalon의 이미지

하드 두개를 달아 RAID1 으로 묶은 다음 미러링을 하고 있습니다.
둘중 하나가 맛이 가도.. 문제 없이 돌아간다는 말을 듣고...
문제가 발생하면 새하드를 넣고 복구만 하면 된다하는데....
실제 문제가 발생한 하드는 어찌 아는 거죠???

친절한 답변 미리 감사드립니다.

astronux의 이미지

복구가 된다는 보장은 없습니다만, 우선 현재 레이드로 묶여있는 하드디스크와 같은 용량, 같은 메이커의 하드디스크를 하나 준비하시구요.
준비된 새 하드디스크를 고장난 하드디스크와 교체하세요.
교체하기 전에 새 하드디스크를 포맷하시면 안됩니다. 회사출고상태 그대로
교체하셔야 됩니다.

그리고, 부팅할 때, lilo나 grub 프롬프트가 뜨기 전에 레이드 카드(또는 칩) 바이오스가 뜰겁니다.
그 때 레이드 바이오스로 들어가셔서, 레이드 카드(또는 메인보드) 매뉴얼에 적힌 대로 하시면 됩니다.
제대로 세팅을 하신 후에는 평상시 쓰시던 대로 부팅해서 컴퓨터를 사용하시면 됩니다.
단, 레이드 파티션은 금방 사용하지는 못할겁니다. 컴퓨터가 부팅은 됐다고 하더라도, 내부적으로 복구를 계속 하는 상태로 남아 있습니다.
용량에 따라 다르지만, 최소한 서너시간 정도는 사용을 못 할 수도 있습니다.

지금까지 말씀드린 것은 하드디스크가 고장난 경우에 대한 것입니다. 칩이나 레이드 카드가 고장난 경우에는 좀 더 복잡할겁니다.

너무 원론적인 답변인가요? -.-;;;

그리고, 이건 노파심에 드리는 말씀입니다만, 웬만하면 레이드는 하드웨어 형태든 소프트웨어 형태든 사용을 안하시는게 편할겁니다.
님말씀대로 미러링을 할 경우, 한 쪽의 하드디스크가 고장이 나더라도, 미러링 되는 쪽의 하드디스크에 있는 데이터는 안전하다고는 하지만, 그 안전하다고 하는 데이터를 사용가능하게 하는것도 보통일이 아닙니다. 그리고, 가격대 용량비도 많이 떨어지구요.
중요한 데이터를 다루신다면, 주기적인 백업이 최선이라고 생각합니다.
저도 얼마전 80G 12개로 이루어진 레이드 파티션이 고장나서 고생한 적이 있어서요.[/b]

Astronomy+Linux

익명 사용자의 이미지

RAID 일 경우는, 백업(Backup)을 하더라도, 똑같은 구성의 하드웨어박스가 없을 경우에는, 백업된 데이터를 바로 사용할 수 없다는 뜻인가요 ?

preisner의 이미지

디스크에 장애가 생기면 대부분 빨간불로 표시가 됩니다.
서버에 따라 경고음이 울리기도 하고요.
시스템 로그에도 디스크에 문제가 있다고 메세지를 뿌려줍니다.
이런 경우 새로 디스크를 가져다가 온라인으로 교체만 해주면 됩니다.
보통 레이드 구성을 하고 핫스페어라고 여분을 하나 더 잡아 주죠.
장애가 생기면 자동으로 스페어 디스크를 이용해 복구를 시작 합니다.
대부분의 서버들이 Disk hotswap을 지원하므로 서버 전원을 내릴
필요도 없습니다.

그리고, 이건 노파심에 드리는 말씀입니다만, 웬만하면 레이드는 하드웨어 형태든 소프트웨어 형태든 사용을 안하시는게 편할겁니다. 
님말씀대로 미러링을 할 경우, 한 쪽의 하드디스크가 고장이 나더라도, 미러링 되는 쪽의 하드디스크에 있는 데이터는 안전하다고는 하지만, 그 안전하다고 하는 데이터를 사용가능하게 하는것도 보통일이 아닙니다. 그리고, 가격대 용량비도 많이 떨어지구요. 
중요한 데이터를 다루신다면, 주기적인 백업이 최선이라고 생각합니다. 
저도 얼마전 80G 12개로 이루어진 레이드 파티션이 고장나서 고생한 적이 있어서요.

저는 웬만하면 레이드를 구성해서 사용합니다.
일반적으로 서버 같은 장비에서 가장 많이 장애가 나는 부분이
Disk 입니다.
아무리 백업을 잘 받아 놓아도 해결이 안되는 부분이 생기게 되죠.
소프트웨어 레이드는... 절대 안씁니다.
저런 솔루션으로 단가 내려서 제안하시는 업체분들,
제안서 읽어 보지도 않습니다.

제일 관리하기 편한게 mirroring 인데,
Level 5 같은 경우 복구를 시작하게 되면 시스템이 많이 느려지게 됩니다만,
mirroring 같은 경우 운영에 큰 지장이 없습니다.
물론 레이트 컨트롤러에 따라 차이는 좀 있겠지요.

레이드 컨트롤러 모델에 따라 다르기는 합니다만,
제일 난감해 질때가 레이드 컨트롤러에 문제가 생겼을때 입니다. ㅡㅡ;;
mirroring 같은 경우 큰 문제는 없습니다만,
Level 5 같은 경우 복구에 좀 시간이 걸립니다.

그리고 많은 분들이 레이드를 데이터 백업의 방법 중 하나로 오해를 하시는데요,
레이드는 백업과 별개의 계념입니다.
레이드는 가용성 향상, 시스템 응답 속도 향상에 대한 솔루션입니다.
Load balanceing 이 백업의 계념을 일부 만족 시키지만,
백업 솔루션이라고 하지 않는 이유와 같습니다.

백업의 계념은 하드웨어 장애에 대한 복구 뿐 아니라
사용자의 실수로 인한 데이터 손실
(rm -rf *)의 복구에 대한 부분까지 만족 시켜야 합니다.

hiseob의 이미지

레이드1 미러링은 레이드0 스트라이핑 과 달라서 하나가지고도 동작 합니다.

나중에 하나 끼우면 원래 있던 하드의 내용을 새 하드에 아주 똑같게 복사하죠. (좀 오래 걸린다고는 합니다)

백업에는 괜찮은 방법 입니다.

익명 사용자의 이미지

RAID0는 속도 향상을 위해 사용하고,
RAID1는 안정성을 위해 사용합니다.

예를 80GB HDD 두 개를 RAID0으로 구성할 경우. 전체 HDD 용량은 160GB가 됩니다.
각각 다른 데이타가 기록됩니다. 하나의 HDD에 들어갈 데이타가 두 개에 나눠져서 들어가게 됩니다. 입출력 속도가 배가 되게 됩니다.
하지만, 둘 중 하나만 고장나도 데이타의 손실이 발생합니다.

반면, 80GB HDD 두 개를 RAID1으로 구성할 경우. 전체 HDD 용량은 80GB가 됩니다.
두 개의 HDD에 똑 같은 데이타가 기록됩니다. 입출력 속도는 하나의 HDD에만 기록할 때보다 아주 약간 떨어집니다.
대신, 하나가 고장나도 다른 HDD는 그대로 데이타가 보존되어 있기 때문에, 하나의 하드 만으로도 동작이 가능합니다.

ssggkim의 이미지

Anonymous wrote:
반면, 80GB HDD 두 개를 RAID1으로 구성할 경우. 전체 HDD 용량은 80GB가 됩니다.
두 개의 HDD에 똑 같은 데이타가 기록됩니다. 입출력 속도는 하나의 HDD에만 기록할 때보다 아주 약간 떨어집니다.

입력속도는 2 disk에 기록해야 하니까 떨어져도 출력 속도는 2 disk에서 동시에 읽으니까 올라간다고 들었는데 아닌가요?

kuh74의 이미지

ㅁ. GRUB 재설치
GRUB은 자체적으로 RAID1을 지원하지 않으므로, 모든 RAID1구성 하드드라이브에 각각 설치해줘야 한다.

A. 쉘 프롬프트에서 GRUB을 실행시키면 GRUB의 쉘로 들어간다.
a. shell> grub
------------------------------------ 설명 시작 -------------------------------------
레드햇리눅스은 /boot파티션을 GRUB의루트파티션으로 마운트하는 독특한 설정을 가진다.
GRUB에서의 path는 (<device-type><device-number>,<partition-number>)</path/to/file>의 형태이다.
(<디바이스 타입><디바이스 번호>)는 드라이브. 예) (hd0)
(<디바이스 타입><디바이스 번호>,<파티션 번호>)는 파티션. (hd0,0)
(<디바이스 타입><디바이스 번호>,<파티션 번호)</path/to/file>는 파일이다. 예) (hd0,0)/grub/grub.conf
SCSI에서는 sda=hd0 sdb=hd1이고, IDE에서는 hda=hd0 and hdb=hd1이다.
SCSI와 IDE가 함께 있는 경우에는 'device (hd0) /dev/hda'같은 명령어로 확실히 알려주는 게 좋다.
------------------------------------- 설명 끝 --------------------------------------
B. 모든 RAID1 구성 하드드라이브의 마스터 부트 레코드에 GRUB을 설치하기.
a. /dev/hda1에 설치
- grub>device (hd0) /dev/hda
- grub>root (hd0,0)
- grub>setup (hd0)
b. /dev/hda2에 설치
- grub>device (hd0) /dev/hdb
- grub>root (hd0,0)
- grub>setup (hd0)
c. 두번째 드라이브(/dev/hdb)도 디바이스번호 0으로 설정한 것에 주의한다.
0번 디바이스는 마스터 부트 레코드(MBR)가 위치할 것이다.
임시로 두번째 드라이브(/dev/hdb)를 0번 디바이스로 설정했으므로,
부팅가능한 MBR을 두번째 드라이브에도 쓰게 된다.
보통 부팅할 때는 첫번째 드라이브(/dev/hda)의 MBR을 사용하게 될것이다.
첫번째 드라이브가 고장나면, 두번째 드라이브에서 부팅하게 될 것이다.
C. 모든 GRUB의 설정화일이 위치한 곳이 3군데인 것을 확인한다.
- grub>find /grub/stage1
(hd0,0) -> /newboot
(hd1,0) -> /newboot
(hd2,0) -> 기존의 /boot
D. 만약 GRUB설정화일이 기준의 /boot에만 있다면 수동으로 GRUB을 설치한다.
(설치가 잘 되었다면 건너뛴다.)
a. device (hd0) /dev/hda
b. install (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 p (hd0,0)/grub/grub.conf
c. device (hd1) /dev/hdb
d. install (hd1,0)/grub/stage1 (hd1) (hd1,0)/grub/stage2 p (hd1,0)/grub/grub.conf
e. 'B. 모든 RAID1 구성 하드드라이브의 마스터 부트 레코드에 GRUB을 설치하기'로 되돌아가서 반복한다.
ㅂ. /etc/fstab/을 수정
A. /etc/fstab을 /etc/fstab.bak로 백업.
'cp /etc/fstab /etc/fstab.bak'
B. /boot줄 맨 앞에 #를 넣어서 코멘트 처리한다.
C. 마운트 포인트 /newboot를 /boot로 고친다.
ㅅ. 파티션 테이블 백업
A. sfdisk -d /dev/hda > /partitions.hda
B. sfdisk -d /dev/hdb > /partitions.hdb
C. sfdisk -d /dev/sda > /partitions.sda
D. sfdisk -d /dev/sdb > /partitions.sdb
ㅇ. 디스크 고장 이후 복구
A. 파티션 테이블 복구
sfdisk /dev/hda < /partitions.hda
B. 고장난 디스크를 RAID에서 제거
mdadm /dev/md0 -r /dev/hda1
C. 새로운 디스크를 RAID에 추가
mdadm /dev/md0 -a /dev/hda1
D. 교체한 디스크가 부팅 디스크이면 GRUB을 설치한다.
a. shell> grub
b. grub> device (hd0) /dev/hda
c. grub>root (hd0,0)
d. grub>setup (hd0)
e. 부팅이 안 되면 쌍을 이루는 2개의 RAID 파티션 모두에 한다.

익명 사용자의 이미지

/dev/hda2에 설치
- grub>device (hd0) /dev/hdb
- grub>root (hd0,0)
- grub>setup (hd0)

여기서 hda2가 hdb 인가요???
아직 리눅스 초보라서 잘모르겠네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.