분산 스토리지 파일 시스템-어느 제품을 사용할 준비가 되셨습니까?


31

하둡CouchDB를 온통 블로그에서 실제로 분산 - 내결함성 스토리지 (엔진)을 작동 무슨 관련 뉴스.

  • CouchDB에는 실제로 배포 기능이 내장되어 있지 않습니다. 항목을 자동으로 배포하거나 전체 데이터베이스를 자동으로 배포하는 접착제가 단순히 누락되었습니다.
  • 하둡은 매우 널리 사용되는 것 같습니다. 최소한 좋은 프레스를 얻지 만 여전히 단일 실패 지점 인 네임 노드가 있습니다. 또한 FUSE를 통해서만 마운트 할 수 있습니다. HDFS가 실제로 Hadoop의 주요 목표가 아니라는 것을 알고 있습니다.
  • GlusterFS 는 공유 개념이 없지만 요즘에는 안정적이지 않다는 의견으로 연결되는 몇 가지 게시물을 읽었습니다.
  • Luster 는 전용 메타 데이터 서버를 사용하므로 단일 실패 지점이 있습니다.
  • Ceph 이 (가) 선택하는 선수로 보입니다.

따라서 어떤 분산 파일 시스템에 다음과 같은 기능 세트가 있습니까?

  • POSIX 호환
  • 쉬운 노드 추가 / 제거
  • 무 공유 개념
  • 저렴한 하드웨어 (AMD Geode 또는 VIA Eden 클래스 프로세서)에서 실행
  • 인증 / 인증 내장
  • 네트워크 파일 시스템 (다른 호스트에 동시에 마운트 할 수 있기를 원합니다)

가져서 좋다:

  • 로컬로 액세스 가능한 파일 : 표준 로컬 파일 시스템 (ext3 / xfs / whatever ...)으로 파티션을 마운트 다운하여 노드에 액세스 할 수 있습니다

되지 호스팅 애플리케이션에 나를 우리의 하드웨어 상자의 각 10GB의 말을 타고 우리의 네트워크에서 사용할 수있는 해당 스토리지를 쉽게 호스트의 다수에 장착 할 수 있도록 오히려 무언가를 찾고.


그래서, 당신은 무엇으로 끝났습니까? 현재 설정에 대해 들으면 흥미로울 것입니다.
MattBianco

Luster는 이것을 작성한 이후 능동 / 수동 MDS를 추가 한 것으로 보이므로 다른 모양이 필요할 수 있습니다.
pjz

내 경험상 GlusterFS는 안정적 이었지만 성능은 상당히 떨어졌습니다. 더 나은 성능을 위해서는 심각하게 고급 하드웨어 (기본적으로 RDMA)가 필요합니다. 중요한 것은 모든 서버와 GlusterFS 클라이언트 시스템 간의 대기 시간입니다.
Mikko Rantalainen

답변:


9

POSIX 요구 사항을 포기해야한다고 생각합니다. 실제로 NFS조차도 (잠금 등을 생각하지 않고) 중복성이없는 시스템을 구현하는 시스템은 거의 없습니다.

동기식 복제를 사용하는 시스템은 빙하 적으로 느려질 것입니다. 비동기 복제 (또는 "최종 일관성")가있는 시스템은 POSIX 규칙을 위반하고 "기존"파일 시스템처럼 작동하지 않습니다.


최종 일관성과 엄격한 일관성을 모두 지원하는 파일 시스템을 알고 있습니까? 아마 둘 다 조정하여 마운트 2 개를 만들 수 있습니까?
CMCDragonkai

16

나머지 사람들과 대화 할 수는 없지만 '분산 스토리지 엔진'과 '분산 파일 시스템'간에 혼란스러워하는 것 같습니다. 그것들은 같은 것이 아니며, 같은 것에 대해 착각해서는 안되며 결코 같은 것이 아닙니다. 파일 시스템은 하드 드라이브의 위치를 ​​추적하는 방법입니다. hadoop과 같은 스토리지 엔진은 키로 식별 된 데이터 청크를 추적하는 방법입니다. 개념적으로 큰 차이는 없습니다. 문제는 파일 시스템이 스토리지 엔진의 종속성이라는 것입니다. 결국 블록 장치에 쓸 수있는 방법이 필요하지 않습니까?

그 외에도 프로덕션 환경에서 ocfs2를 분산 파일 시스템으로 사용한다고 말할 있습니다. 세부적인 내용을 원하지 않는 경우이 줄 이후에 읽기를 중단하십시오. 다소 멋지지만 생각보다 작동 중지 시간이 더 클 수 있습니다.

우리는 지난 몇 년 동안 프로덕션 환경에서 ocfs2를 운영해 왔습니다. 괜찮지 만 많은 응용 프로그램에는 좋지 않습니다. 실제로 요구 사항을보고 요구 사항을 파악해야합니다. 생각보다 잘못에 대한 위도가 훨씬 더 크다는 것을 알 수 있습니다.

예를 들어, ocfs2에는 파티션을 마운트 할 클러스터의 각 머신에 대한 저널이 있습니다. 따라서 네 개의 웹 머신이 있고 mkfs.ocfs2를 사용하여 해당 파티션을 만들 때 성장할 공간을 제공하기 위해 총 6 대의 머신이 있다고 지정하십시오. 이러한 저널 각각은 공간을 차지하므로 디스크에 저장할 수있는 데이터 양이 줄어 듭니다. 이제 7 대의 머신으로 확장해야한다고 가정 해 봅시다. 그런 상황에서는 전체 를 제거해야합니다클러스터 (즉, 모든 ocfs2 파티션 마운트 해제)를 사용하고 tunefs.ocfs2 유틸리티를 사용하여 사용 가능한 공간이있는 경우 추가 저널을 작성하십시오. 그런 다음에 만 7 번째 시스템을 클러스터에 추가 할 수 있습니다 (유틸리티를 사용하지 않는 한 텍스트 파일을 나머지 클러스터에 배포해야 함). 모든 것을 다시 가져온 다음 7 개 모두에 파티션을 마운트하십시오. 기계.

무슨 말인지 알 겠어? 그것은 항상 온라인 상태를 의미하는 고 가용성이어야하지만 바로 거기에 많은 가동 중지 시간이 있습니다 ... 그리고 신은 디스크 공간에 붐비는 것을 금합니다. ocfs2를 크라우드 할 때 어떤 일이 일어나는지보고 싶지 않습니다.

ocfs2 클러스터를 관리하기 위해 '선호하는'방법이었던 evms는 clvmd 및 lvm2를 선호하여 dodo bird의 길을 갔다는 것을 명심하십시오. 또한 심박동은 openais / pacemaker 스택을 선호하여 좀비 프로젝트로 빠르게 전환 될 것입니다. (외부 : ocfs2에 대한 초기 클러스터 구성을 수행 할 때 하트 비트가 아닌 'pcmk'를 클러스터 엔진으로 지정할 수 있습니다. 아니요, 문서화되어 있지 않습니다.)

페이스 메이커가 다른 머신으로 nfs 공유를 마이그레이션함에 따라 몇 초의 다운 타임 또는 몇 개의 tcp 패킷이 기본 시스템에서 볼 수있는 다운 타임의 양에 비해 사소하기 때문에 페이스 메이커가 관리하는 nfs로 되돌아갔습니다. ocfs2 사용시 머신 추가와 같은 공유 스토리지 작업


2
이것이 OCFS2 / Pacemaker와 NFS에 대한 나의 경험이라고 정확하게 언급하고 싶었습니다. OCFS2를 클러스터 된 데이터 저장소로 한동안 시도한 후 나는 그것이 매우 부족하다는 것을 알았습니다. 한편 HA NFS 시스템은 매력처럼 운영되고 있습니다.
Kamil Kisiel 2016 년

1
OCFS2는 내가보고있는 것이 아닙니다. 분산함으로써 차라리 중앙 저장 인스턴스하지만 난 쉽게 여전히 "클러스터"의 나머지와 함께하면서 스토리지를 제공 / 삭제 노드를 추가 할 수 있습니다 뭔가하지 평균 뭔가 할
serverhorror

2
나는 여전히이 답변에 대해 찬성 투표를하고 있기 때문에, 프로덕션 환경에서 nfs를 대신하여 GlusterFS를 사용하고 있다고 덧붙였다. 그러나 VM 디스크 이미지, 데이터베이스 스토리지 파일 (sqlite 또는 myisam 또는 기타) 또는 glusterfs에서 복제 변경이 발생하기 때문에 자주 변경되기 쉬운 기타 파일은 저장하지 않습니다. LVM의 VM 호스트에 로컬로 저장하고 DRBD를 사용하여 장애 조치 사이트에 배포하거나 기본 제공 복제를 사용합니다.
Karl Katzke


3

여기에 € 0.02를 던지기 만하면 OpenAFS 가 원하는 것을 할 수 없습니까?



3

Xtreemfs어떻 습니까? 버전 1.4 (2012 년 11 월)는 생산 품질로 간주됩니다.

POSIX와 호환되며 뛰어난 자동 내결함성이 있습니다.


2

Lustre는 중복성을 위해 활성 / 수동 구성으로 여러 메타 데이터 저장소를 허용하므로 단일 장애 지점이 없습니다.

OCFS2도 살펴볼 가치가 있습니다.

여러 개의 동시 네트워크 액세스 요구 사항을 제거하면 iSCSI 또는 cifs 또는 nfs와 같은 것으로 전환 할 수 있습니다. 단점은 공간이 필요한 각 서버에 대해 uberArray 조각을 물려서 조각해야한다는 것입니다.


2

학업 / 개발 목적이 아니라면 프로젝트에 대한 전반적인 요구 사항부터 시작해야합니다. 대부분의 분산 파일 시스템은 진지한 배포를 위해 충분히 성숙하지 않습니다. 학업 / 개발 목적으로 사용하는 경우 실제로 많은 것을 배우고 많은 버그를 수정할 수 있으므로 실제로 좋습니다.

POSIX 의미가 실제로 필요한지에 대한 의견은 좋은 출발입니다. 비 POSIX "파일 시스템"시맨틱은 훨씬 더 유연하여 훨씬 더 안정적인 시스템을 만들 수 있습니다.

이것이 레거시 응용 프로그램이라면 현대의 분산 파일 시스템이 왜 최상의 솔루션으로 간주 될 수 있을지 궁금합니다.

나를 틀리지 마라-이것들은 놀랍도록 재미있는 장난감입니다. 나는 일반적으로 사용되지 않고 그것이 부서 질 때 고치기 매우 어려운 복잡한 상호 의존적 인 솔루션에 대해 책임지고 싶지 않습니다.


1

POSIX 의미론이 정말로 긍정적으로 필요합니까? 사용자 정의 데이터 스토어를 사용할 수 있으면 인생이 훨씬 쉬워집니다. 우리는 사실상 매우 큰 분산 키-값 저장소 인 내부적으로 작성된 데이터 저장소를 가지고 있습니다. 파일을 저장하고 토큰을 돌려받습니다. 파일을 다시 원하면 이전에 부여한 토큰을 제공하십시오. 분산되어 공유되지 않으며 데이터가 세 번 복제되며 스토리지 서버와 제어 서버 모두에서 원하는대로 노드를 추가 및 제거 할 수 있습니다.


불행히도 실제로 POSIX 의미가 필요합니다. 로컬 파일 시스템에 물건을 저장하는 많은 "레거시 앱"이 있습니다. 예산에 외부에서 확실히 그 모든입니다 Rewritting
serverhorror

다른 요구 사항 중 일부를 포기해야한다고 생각합니다. GlusterFS, Lustre, OCFS2, GFS를보고 있지만 아무 것도 공유하지 않는 것을 찾을 것입니다.
David Pashley 2016 년

en.wikipedia.org/wiki/… 는 분산 파일 시스템을 나열하지만 그중 소수만이 POSIX입니다.
David Pashley 2016 년

얼마 전, 저는 AFS (현재 OpenAFS)의 변형을 사용했습니다. 그것은 효과가 있었지만 복잡했고 고유 한 단점이있었습니다.
Jauder Ho 2006 년

1

Luster는 전용 메타 데이터 서버를 사용하므로 단일 실패 지점이 있습니다.

Luster는 장애 조치 (failover)를 지원하도록 설계되었으며 MDS / MDT / OSS에는 연락 할 수있는 여러 주소가있을 수 있으며 하트 비트를 사용하여 서비스를 마이그레이션 할 수 있습니다.

일부 최신 버전에는 마운트 해제가 작동하는 것처럼 보이지만 디스크로 데이터가 아직 이동 중이지만 이중 마운트 보호 기능이 도움이되었을 것입니다.


1

MooseFS (내결함성, 스케일 아웃, 네트워크 분산 파일 시스템) 를 사용하는 것이 좋습니다 . POSIX와 호환되며 1.6 릴리스 이후 MooseFS는 간단한 NFS와 같은 인증 / 권한을 제공합니다. 하드웨어 요구 사항 도 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.