저는 스토리지 및 파일 시스템 세계에 비교적 익숙하지 않으며(올바른 언어를 사용하지 않는 경우 양해해 주시기 바랍니다) 현재 상시 대기 구성(예: 파일을 사용할 수 있는 설정)을 구현하는 방법을 연구 중입니다. 두 개의 서로 다른 머신을 동시에 사용하여 장애 조치 시 대기 호스트가 인계받을 수 있도록 합니다(이 질문은 데이터 복제에 관한 것입니다.아니요장애 조치 오케스트레이션). 그러나 다양한 접근 방식의 장단점에 대해 약간 혼란스럽습니다.
지금까지 내가 수행한 연구에 따르면 두 가지 다른 접근 방식을 취할 수 있는 것으로 보입니다.
- DRBD + 일부 공유 디스크 파일 시스템(DRBD 9는 듀얼 마스터 구성 지원)
- 복제도 가능한 분산 파일 시스템(예: GlusterFS, Ceph 등)
나는이 두 가지 접근 방식의 개념적 차이점을 이해한다고 생각합니다.
DRBD는 블록 수준에서 작동하며(제가 아는 한, 파일의 블록은 물리적으로 디스크에 기록되는 것이기 때문에 처리할 수 있는 가장 낮은 수준입니다), 이것이 시스템 간에 복사되는 것입니다. 동기화된 파일 시스템(이것이 올바른 용어인지 확실하지 않음)은 ext3
작업 중인 블록이 다른 시스템에서 발생하는 일로 인해 변경될 수 있다는 것을 모르기 때문에 추가 파일 시스템이 필요합니다. 따라서 파일 시스템 간에 불일치가 있을 수 있습니다.생각하다실제 콘텐츠뿐만 아니라 디스크에도 저장되어 데이터 손상을 일으킵니다.
그러나 GlusterFS(또는 이와 유사한 것)는 파일 수준에서 작동하며 디스크에 기록되는 실제 블록에 액세스하는 것을 허용하지 않습니다. 대신 전체 파일에 대해 한 번에 작동하므로 사용자는 디스크에 실제로 기록된 내용에 대해 걱정하거나 상호 작용할 필요가 없습니다. 제가 염두에 두고 있는 개념적 모델은 이것이 분산 파일 시스템이라는 것입니다. 즉, 파일 시스템의 파일(전체 파일 또는 그 일부)은 여러 시스템에 저장될 수 있지만 사용자에게는 통합된 엔터티로 표시됩니다. 기능.
그래서 내 질문은 다음과 같습니다
- 이 두 가지 다른 접근 방식에 대한 나의 개념적 이해가 정확합니까?
- 개념적 차이는 제쳐두고, 다른 접근 방식에 비해 한 접근 방식의 실제 장점/단점은 무엇입니까? 파일 수준 대신 블록 수준에서 작업하거나 그 반대로 작업하는 이유는 무엇입니까?