Docker 볼륨을 glusterfs에 저장하는 것이 좋습니다?


24

현재 일부 서버 및 앱을 coreOS 환경으로 마이그레이션 하려고 합니다. 여기서 볼 수있는 문제 중 하나는 coreOS가 컨테이너를 새 시스템으로 옮길 때 Docker 볼륨을 처리하지 않으므로 영구 데이터를 관리하는 것입니다. 일부 연구 결과 , 모든 문제를 해결할 수있는 클러스터 파일 시스템 인 glusterFS 를 발견 했습니다 .

내 현재 아이디어는 다음과 같습니다 /mnt/gluster. 예를 들어 각 coreOS 시스템에서 권한있는 컨테이너로 실행되고 스토리지를 노출하는 glusterFS 컨테이너가 있습니다. 내 Dockerfile모든 볼륨을이 경로에 마운트하도록 지정합니다.

다음으로 고려해야 할 것은 어떤 컨테이너가 자체 볼륨을 얻어야하고 어떤 컨테이너가 공유해야하는지였습니다. 예를 들어, 모든 mysql컨테이너는 자체적으로 복제를 처리 할 수 ​​있으므로 자체 볼륨을 갖게됩니다. 나는 그걸 엉망으로 만들고 싶지 않습니다. 동일한 웹 사이트를 제공하는 웹 서버는 "사용자가 업로드 한 이미지"등과 같은 데이터를 복제 할 수 없으므로 동일한 볼륨을 올바르게 사용합니다.

아무도 이와 같은 것을 시도했거나 내가 놓친 것이 있습니까?


1
나는 이것으로 개념 증명을 해왔고 그것이 효과가 있다고 말할 수 있지만 Gluster로 뛰어 들기 전에 튜닝 프로파일을 이해해야합니다. Gluster가 디스크 대기 시간에 민감한 방식 (예 : etcd)으로 인해 파일 복제 보장이라는 이름으로 응용 프로그램을 인위적으로 느리게 만들 수 있습니다.
Brian Redbeard

2
도커 컨테이너에 연결된 볼륨을 관리하는 도구를 개발 중입니다. "flocker"라고하며 여기에서 github repo를 볼 수 있습니다 : github.com/clusterhq/flocker 현재 ZFS 용 스토리지 백엔드는 스냅 샷 기능을 사용하여 훨씬 쉽게 데이터를 마이그레이션 할 수 있지만 다른 스토리지 백엔드도 계획하고 있습니다. (일반 블록 장치 백엔드와 같은) GlusterFS를 사용하여 도커 볼륨을 마운트하는 것이 좋은 아이디어라고 말할 수는 없지만 전반적인 디자인 패턴을 보증 할 수 있습니다. 즉 "something"을 사용하여 도커 컨테이너에서 생성 된 상태를
고려할 수 있습니다.

1
답변 주셔서 감사합니다. 나는 이미 flocker를 보았고 매우 유망한 것으로 보입니다. coreos 지원 또는 프로덕션 준비 버전 1.0에 대한 대략적인 날짜가 있습니까?
Martin

OpenStack이있는 볼륨에 glusterfs를 사용했는데 이전에는 수행중인 작업과 비슷한 설정이 있었고 훌륭했습니다.
Ethode

@Martin We (ClusterHQ에서 근무)는 Amazon EBS를 활용하여 Flocker에서 CoreOS를 개발하고 있습니다. coreos.com/blog/Flocker-on-CoreOS-Linux
Stephen Nguyen

답변:


9

우리는 CoreOS 대신 Atomic ( http://www.projectatomic.io/ )을 사용 하여 유사한 복제 설정을 세 개의 replica-2 세트가있는 복제 된 비 분산 GlusterFS 스토리지 시스템에 배포했습니다. 이것은 매우 잘 작동합니다.

그러나 GlusterFS의 몇 가지 특수한 특성을 염두에 두어야합니다. Brian이 이미 언급했듯이 Gluster는 무엇보다 일관성과 신뢰성을 제공합니다. 더 자주 변경이 발생하면 더 많은 복제가 발생합니다. 이로 인해 시스템에 많은 압력이 가해집니다.

IO 서브 시스템이 빠르거나 (저장소 인 경우) 사용 가능한 가장 빠른 네트워크 연결로 Gluster 노드를 연결하십시오. GBit 만있는 경우 집계하십시오! 마지막으로 스토리지 시스템은 심각한 컴퓨팅 성능을 발휘해야하며 Gluster는 상태를 확인하기 위해 많은 계산을 수행합니다. 즉, 고부하에서도 Gluster가 제공합니다.

MySQL 전략을 재고하십시오. Gluster는 복제 기능을 제공하며로드 균형 조정 기능도 제공합니다. 실제로 Gluster를 사용하는 것이 더 빠를 수 있습니다.


5

glusterfs의 사용은 사용중인 스토리지 백엔드에 따라 다릅니다. 클러스터 파일 시스템으로서 물리적 스토리지를 클러스터링하여 하나의 큰 연속 볼륨으로 나타납니다. 이 공식 빠른 시작 안내서 에는 프로세스에 대한 좋은 설명이 있습니다.

설정에서 둘 이상의 개별 백엔드 스토리지 서버 또는 모든 도커 볼륨을 저장하기 위해 유사한 것을 사용하는 경우 glusterfs 또는 다른 유사한 병렬 파일 시스템을 사용하면 상당한 성능 이점을 제공 할 수 있습니다. 이 경우 HPC 커뮤니티에서 병렬 파일 시스템으로 널리 사용되는 Luster 사용을 고려할 수도 있습니다 .

병렬 / 클러스터 파일 시스템의 조정, 디버깅 및 구성은 많은 전문 지식, 인내심 및 때로는 처음부터 다시 시작하려는 의지를 필요로하는 시간 소모적 인 작업이 될 수 있습니다. 병렬 파일 시스템이 제공하는 성능 이점이이를 설정하고 유지 관리하는 데 필요한 노력의 가치가 있는지 확인하는 것이 신중해야합니다.

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