RAID-1 및 정기적 인 드라이브 제거 (RAID-1을 백업 수단으로 사용)


2

mdadm의 2 개의 파티션으로 구성된 RAID-1 (노트북의 내부 HDD에 하나, 외부 HDD에 하나)을 사용하는 것이 좋습니다.

두 드라이브가 모두있는 경우 시스템이 RAID-1로 작동하고 외부 HDD가 분리되어 있으면 일반 볼륨 (degradad RAID-1)으로 작동하고 외부 HDD를 다시 연결하면 빠르게 재 동기화됩니다.

질문 :

  1. 좋은 생각입니까?
  2. 쓰기 의도 비트 맵이이 작업에 충분합니까 아니면 다른 것이 필요합니까?
  3. 파일 시스템 수준에서 수행하는 것을 고려해야합니까 (3b. 그렇다면 어떻게?).

기본 요구 사항은 다음과 같습니다.

  1. 외장 드라이브를 다시 추가하면 재 동기화됩니다 (해당 파티션을 변경하지 않은 경우).
  2. 쓰기 / 재 동기화 작업 중에 제거하지 않은 경우 제거 된 드라이브에서 다소 일관된 데이터가 나타납니다.

재 동기화 중에 드라이브를 제거하면 데이터가 약간 일치하지 않을 것으로 예상하지만 다시 추가하면 빠른 재 동기화가 완료 될 것으로 예상합니다. 예를 들어 나머지 드라이브가 변경된 사항을 추적하고 (많은 변경이있을 수 있음) 필요한 부분 만 다시 동기화하기를 원합니다.


2
RAID ≠ 백업을 기억하십시오.
squircle

@thepurplepixel RAID와 백업 사이의 중간에 있습니다.
Vi.

"재 구축 상태 : X % 완료"대기를 마치고 드라이브의 플러그를 뽑았다가 다시 꽂은 다음 "mdadm / dev / md0 --add / dev / sdb5"를 발행하고 다시 0 %이며 완전히 다시 빌드합니다. 그렇다면 "-비트 맵 내부"란 무엇입니까? 처음부터 다시 작성하는 이유는 무엇입니까?
Vi.

@Vi 다시 시도했습니다
.

1
@Vi RAID 1은 어떻게 "중간에"있습니까?
Dave M

답변:


1

나는 이것이 좋은 생각이 아니라고 말할 것입니다. 대부분 물리적 / 전기적 드라이브 문제만으로 보호 할 수 있으며 새로 고치는 동안 매우 취약한 백업 사본이 하나만 있습니다.

다른 드라이브 또는 일반적으로 컴퓨터에서 오류가 발생하면 재 동기화 중에 주 드라이브가 작동하지 않고 "bakcup"드라이브에 부분적으로 업데이트 된 (즉, 잠재적으로 매우 손상된) 파일 시스템이있을 수 있습니다. 대부분의 백업 솔루션에 여러 백업이 포함되는 이유 (다른 업데이트를 수행하는 동안 적어도 하나의 백업을 오프라인으로 (및 바람직하게는 오프 사이트로) 가질 수있는 또 다른 주요 이유)가 있지만 RAID 재 동기화가 하지 인식 특정 파일 시스템 될 것 때문에 부분적인 재 동기화를 보장하기 위해 아무것도 할 수 없습니다 것은 일관성있는 상태 (예를 들어 그렇게에 관련 저널 블록 전에 데이터를 작성하고 동기화 할 수)에 가까운 무엇이든에있는 파일 시스템을 떠난다.

이 방법으로 전체 시스템을 RAIDing하는 경우 쓰기 의도 쓰기 성능이 매우 중요 할 수 있습니다 ( http://blog.ganneff.de/blog/2008/01/30/write-intent-bitmaps 와 같은 게시물 참조). -considere.html ), 쓰기 작업이 많지 않은 RAIDing 파일 시스템 인 경우 걱정하지 않아도됩니다.

이 기술을 사용 sync하는 경우 드라이브를 강제로 꺼내기 전에 실행해야합니다 .

대신 rsync를 사용하여 백업 파일 시스템을 업데이트하는 것을 고려 했습니까? 솔루션 베스트 케이스에서 속도가 느려질 것입니다 (파일 시스템에 많은 파일이 포함되어 있으면 아무 것도 변경되지 않은 경우에도 파일 크기와 날짜의 전체 스캔이 필요하기 때문에 중요 할 수 있음). 일반적으로 충분히 빠르며 확실히 빠릅니다. 이를 결정하기 위해 RAID 드라이버가 필요한 전체 재 동기화.


"이러한 방식으로 전체 시스템을 RAIDIN으로 사용하는 경우"-> 아니요, 하나의 볼륨 일뿐입니다. 주로 git 저장소와 데이터를 잃고 싶지 않습니다. 루트 파티션이 아닙니다. "즉, 잠재적으로 매우 손상 될 수 있습니다."-> "--rebuild-tree"는 중간 정도의 손상 (예 : 재생 저널이있는 외부 마운트 후 최대 절전 모드에서 다시 시작)을 줄 임에도 불구하고 사용했습니다. 대부분 새로운 데이터를 잃을 것으로 예상됩니다 (그 순간 동기화 중). "오프라인으로 백업을 한 개 이상 가질 수 있습니다"-> 이전에 만들었던 것처럼 드문 DVD 아카이브 일 수 있습니다.
Vi.

0

external_HDD 기반 RAID-1 어레이 아이디어가 작동하는 것처럼 보입니다.

어레이가 성능 저하를 시작하고 쓰기 의도 비트 맵을 사용하여 변경 사항을 추적합니다.

외장 HDD를 연결하면 udev스크립트가 파티션 중 하나가 내 어레이에 적합한 것을 감지하여 추가합니다. 변경 사항이없는 경우 즉시 동기화 한 다음 읽기 액세스 속도를 높입니다.

외장 HDD 연결을 끊으면 (갑자기 제거 포함) 다른 udev스크립트가 드라이브가 제거되고 어레이가 다시 성능 저하됨을 등록합니다.

그러나 쓰기 성능이 눈에 띄게 떨어지지 만이 용도에는 적합합니다.

다른 장점은 다른 용도로 해당 파티션을 임시로 포맷 한 다음 다시 전체 어레이로 배열로 가져올 수 있다는 것입니다.


0

저널링 등의 최신 파일 시스템이 이러한 위험을 완화 시키지만 제거 된 외장 HDD의 파일 시스템이 마운트 할 수없는 상태에있을 수 있다는 점에서 내가 본 한 가지 문제입니다.

그러나 mdadm을 사용하는 경우 Linux를 사용하는 것으로 가정하고 대신 rsync를 사용하는 것이 좋습니다. 변경된 파일 만 복사되므로 빠르며 외장 HDD에 현재 날짜의 폴더를 생성하고 그 아래에 내부 하드 드라이브의 전체 백업을 생성하지만 파일을 하드 링크하는 스크립트를 가질 수 있습니다 이전 백업이므로 새 데이터에만 공간을 사용합니다. 이렇게하면 내부 HDD에서 삭제 된 파일을 쉽게 복구 할 수 있습니다.


일부 연속 모드에서 rsync를 실행하여 변경 사항을 추적하고 백업 사본을 업데이트 할 수 있습니까? (또한 변경 사항을 기억하고 사본에 전파 할 수있는 일부 FUSE 파일 시스템에 대해 생각하고있었습니다.) 동기화 중에 드라이브를 제거한 후 rsync 변형에서 복구를 완전히 지울 수 있습니까 (완전한 지우기 및 다시 작성하지 않습니까)? 그리고 두 번째 드라이브에서 읽고 일부 경우 속도를내는 것으로 생각합니다 (내부 드라이브의 작업 사본, git 저장소는 외부 드라이브에서 읽습니다).
Vi.

소스 드라이브의 모든 수정 사항을 추적 한 다음 즉시 대상 드라이브와 동기화하는 앱이 있습니다. rsync 실행 중에 드라이브를 제거 할 수 있습니다. 이렇게하면 현재 복사 된 파일이 부분적으로 복사되고 rsync를 다시 실행하면 중단 된 부분부터 계속됩니다. Rsync는 읽기 속도를 높여주지 않지만 외장 드라이브에 eSata를 사용하지 않으면 읽기 속도가 약간 떨어지며 드라이브 속도가 느려 쓰기 속도가 제한됩니다.
Raynet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.