많은 땜질과 실험 끝에 상당히 큰 트레이드 오프가 있지만 해결책을 찾았습니다.
우선, 제외해야 할 옵션은 다음과 같습니다.
미러링 된 풀이있는 두 번째 오프 사이트 ZFS 서버를 갖는 것은 비용 때문에 옵션이 아니 었습니다. 이것이 ZFS 전송 / 수신을 사용하여 스냅 샷을 원격 풀에 제공하는 것이 최선의 방법 일 수있는 옵션이었습니다.
두 번째 온 사이트 ZFS 미러 풀을 사용하여 디스크를 제거하여 집으로 가져갈 수 있습니다. 이것은 첫 번째 옵션보다 실행 가능하지만 항상 두 개의 디스크가 온 사이트에 있거나 두 개의 데이터 사본을 단일 온 사이트 디스크에 사용하려면 두 번째 풀이 필요합니다. 현재 나는 네 개의 디스크를 가지고 있으며 서버에는 5 분의 1 이상의 공간이 없습니다. 이것은 공정한 접근법이지만 여전히 이상적이지는 않습니다.
ZFS 연결 및 분리를 사용하여 백업 디스크를 미러링 된 풀 안팎으로 회전시킵니다. 이것은 잘 작동하지만 디스크를 추가 할 때마다 전체 리 실버를 수행해야합니다. 이것은 받아 들일 수 없을 정도로 오래 걸리므로 이것에 의존 할 수 없었습니다.
내 솔루션은 사용하는 것과 비슷 attach
하고 detach
, 그러나 그것은 사용 online
하고 offline
. 이 전체 리 실버 링 대 리 실버 링 (resilvering) 델타을 수행하는 장점이 있지만, 풀은 항상보고 있다는 단점이 DEGRADED
상태를 (풀은 항상 두 개의 디스크가, 회전 오프 사이트 디스크가 표시됩니다 offline
그들이 와서 온라인으로 다음 원격 스토리지 및 재조정되는에있는 경우 그들이 현장에있을 때).
따라서 내 설정에 대한 간단한 요약 및 개요 :
하나의 ZFS 서버와 네 개의 동일한 디스크가 있습니다. ZFS는 미러 풀을 사용하도록 설정되어 있습니다. 4 개의 디스크 중 2 개는이 풀의 영구 구성원입니다. 다른 두 디스크는 회전합니다. 하나는 항상 오프 사이트 스토리지에 있고 다른 하나는 즉시 백업 할 수있는 풀의 일부입니다.
백업을 교체해야 할 때 :
zfs scrub
백업 디스크에 오류가 없는지 확인하기 위해 a 가 완료 될 때까지 기다립니다.
나는 zfs offline
원격으로 가져갈 디스크입니다. 오프라인 후 나는 hdparm -Y /dev/id
그것을 스핀 다운합니다. 1 분 후 디스크 슬 레드를 부분적으로 제거한 다음 (전원 손실이 충분히 보장 될 수 있도록) 드라이브를 완전히 잡아 당겨 회전을 멈추기 전에 다시 1 분 정도 기다립니다. 디스크는 정전기 백에 넣은 다음 보호 케이스에 넣어 외부로 나갑니다.
다른 오프 사이트 디스크를 가져옵니다. 핫스왑 트레이에 설치되어 회전합니다. 내가 사용하는 zfs online
풀에 디스크를 복원하고 동시에 할 부분 리 실버 링 킥오프.
이 시스템은 주어진 시간에 두 개의 ONLINE
미러 디스크와 하나의 OFFLINE
원격 디스크 (스크럽 된 디스크) 가 있음을 보장합니다 . 네 번째 디스크는 리 실버 링 또는 온라인 상태이므로 실행중인 드라이브에 장애가 발생하더라도 풀이 여전히 두 개의 온라인 디스크와 일관성을 유지한다는 이점이 있습니다.
지난 몇 주 동안 잘 작동했지만 여전히이 방법을 해킹 접근 방식으로 생각합니다. 주요 문제가 발생하면 후속 조치를 취할 것입니다.
업데이트 : 몇 달 동안이 작업을 수행 한 후 실제 사용에서 리 실버 링이 분리 / 연결 및 오프라인 / 온라인에 대해 동일한 시간이 걸리는 것으로 나타났습니다. 테스트에서 스크럽을 실행하고 있다고 생각하지 않습니다. 드라이브가 스크럽을 위해 오프라인 상태 인 경우 전체 리 실버가 필요합니다.