대부분의 사람들이 겪는 것과 같은 문제가 있습니다. 신뢰할 수있는 개인용 스토리지 솔루션을 만드는 방법 :
- 하드 드라이브는 규칙적인 경고로 실패합니다. 파일 손실은 허용되지 않습니다.
- 나는 때때로 새로운 HDD를 구입할 것입니다. 불가피하게 GB 당 가격은 마지막 HDD 구매와 다른 크기입니다.
2는 시간이 지남에 따라 이기종 디스크 모음이 있음을 의미합니다. 모두 사용하고 싶습니다. 실패한 디스크는 일반적으로 더 큰 디스크로 교체됩니다.
- 데이터 무결성과 신뢰성은 속도보다 중요합니다.
그래서이 문제에 대해 며칠 동안 (그리고 몇 년 동안 머리 뒤로) 머리를 두드리고 나서 다음 해결책을 제안합니다. Ubuntu PPA에서 사용할 수있는 기본 Linux ZFS를 기반으로 테스트 한 솔루션에 대해 설명 하지만 LVM, MD 및 btrfs를 사용하여 동일한 결과를 얻을 수 있습니다. 이를 위해 RAID1 (ZFS 미러 vdev)을 사용합니다.
- 드라이브 세트가 주어지면 각 세트의 용량이 가능한 한 서로 가깝도록 두 개의 디스크 세트로 그룹화하십시오.
- 다른 그룹의 작은 디스크 중 하나와 정확히 같은 크기의 파티션이 있도록 큰 디스크를 분할하십시오.
- 각 디스크가 다른 디스크에 미러를 갖도록 미러 vdev를 작성하십시오.
예를 들어, 새로운 2TB 드라이브, 구형 750GB 드라이브, 구형 400GB 드라이브 2 개 및 구형 500GB 드라이브 1 개의 디스크 세트를 생각해보십시오. 최적의 미러링 된 파티셔닝은 2TB의 사용 가능한 공간을 가지며 ':'은 파티션과 '|'을 구분하는 다음 다이어그램에 설명되어 있습니다. 디스크를 분리합니다 :
+------------------------------------------------------------------+
| 2TB (sda1) : (sda2) : (sda3) : (sda4) |
+------------------------------------------------------------------+--+
| 750 GB (sdb) | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1) :XX|
+---------------------------------------------------------------------+
zpool을 다음과 같이 생성하십시오.
zpool create archive mirror /dev/sda1 /dev/sdb mirror /dev/sda2 /dev/sdc mirror /dev/sda3 /dev/sdd mirror /dev/sda4 /dev/sde1
4 개의 미러링 된 vdev가 생성됩니다. 디스크 중 하나에 오류가 발생하면 크기에 관계없이 디스크를 교체하고 분할하여 누락 된 파티션을 다시 만들 수 있습니다. ZFS vdev를 풀에 추가 할 수는 있지만 제거 할 수없는 것이 중요합니다 . 따라서 가능하면 새 드라이브를 구입할 때 기존 vdev를 재정렬하려고합니다. 다음 구매가 3TB 드라이브라고 가정 해 봅시다. 다음 다이어그램에 설명 된대로 최적의 구성을 3.5TB 사용할 수 있습니다. 이제 5 개의 vdev 쌍입니다. 이는 적절한 파티셔닝과 드라이브의 연속 실패 및 재 파티션을 통해 달성 할 수 있습니다.
+--------------------------------------------------------------+-------------+
| 3 TB (sdf1) : (sdf2) : (sdf3) : (sdf4) | 500GB (sde) |
+--------------------------------------------------------------+-------------+-+
| 2TB (sda1) | 400GB (sdb) | 400GB (sdc) | 750GB (sdd1) : (sdd2) :X|
+------------------------------------------------------------------------------+
LVM 또는 MD RAID를 사용하여이 미러 드라이브 쌍을 유지 관리 할 수도 있습니다. 각 드라이브에 항상 미러 드라이브 또는 파티션이 있는지 확인하는 것이 좋습니다. 모든 것이 미러링되므로 드라이브를 추가하거나 제거 할 때 드라이브가 고장 나고 파티션을 다시 정렬 할 수 있습니다. LVM 또는 MD를 사용하면 원하는 경우 BTRFS에 비해 ZFS의 덜 복잡한 복구 도구를 사용하여 드라이브를 제거하고 어레이를 축소 할 수 있습니다.
이 절차에 대한 의견이 있으십니까? 좋은 스크립트는 무손실 할당 및 드라이브 재 배열을 처리 할 수 있습니다. LVM 대 MD 대 ZFS에 대한 의견이 있으십니까? 결과적으로 이상하게 분할 된 어레이의 성능에 대한 의견이 있습니까? 동일한 드라이브의 여러 파티션에 걸쳐 데이터를 배열하면 과도한 헤드 탐색 및 조기 장애가 발생합니까?
BTRFS 개발자 : 모두 가 이것을 원하고 LVM 또는 MD는 기술적으로 필요하지 않습니다 (제 생각에는 차선책). 중복 이기종 어레이를 쉽게 유지 관리하는 것은 btrfs의 주요 기능입니다. 그것은 그대로 LVM / MD / ZFS에 대한 해킹입니다. resliver / resync를 최소화하는 것이 매우 바람직합니다.
예, 이것은 분명히 가난한 사람의 Drobo입니다. 이를 위해 전용 하드웨어가 필요하지 않아야합니다 ...