GlusterFS 및 Windows에서 SPOFS 방지


10

처리 기능에 사용하는 GlusterFS 클러스터가 있습니다. Windows를 통합하려고하지만 GlusterFS 볼륨을 제공하는 Samba 서버 인 단일 장애 지점을 피하는 방법을 알아내는 데 어려움이 있습니다.

파일 흐름은 다음과 같이 작동합니다.

GlusterFS 문서 흐름

  1. 파일은 Linux 처리 노드에서 읽습니다.
  2. 파일이 처리됩니다.
  3. 결과 (작거나 클 수 있음)가 완료되면 GlusterFS 볼륨에 다시 기록됩니다.
    • 대신 데이터베이스에 결과를 쓰거나 다양한 크기의 여러 파일을 포함 할 수 있습니다.
  4. 처리 노드는 큐와 GOTO 1에서 다른 작업을 선택합니다.

Gluster는 즉각적인 복제뿐만 아니라 분산 된 볼륨을 제공하기 때문에 훌륭합니다. 재난 복원력이 좋습니다! 우리는 그것을 좋아합니다.

그러나 Windows에는 기본 GlusterFS 클라이언트가 없으므로 Windows 기반 처리 노드가 비슷한 방식으로 파일 저장소와 상호 작용할 수있는 방법이 필요합니다. 글루 스터 FS (GlusterFS) 문서 상태 윈도우 액세스를 제공 할 수있는 방법은 위에 삼바 서버를 설정하는 것입니다은 글루 스터 FS (GlusterFS) 볼륨을 탑재. 그러면 다음과 같은 파일 흐름이 발생합니다.

와인 더를 통한 GlusterFS 문서 흐름

그것은 하나의 실패 지점처럼 보입니다.

하나의 옵션은 Samba클러스터링하는 것이지만 현재 불안정한 코드를 기반으로 실행 중입니다.

그래서 다른 방법을 찾고 있습니다.

우리가 던지는 데이터 종류에 대한 몇 가지 주요 세부 사항 :

  • 원본 파일 크기는 몇 KB에서 수십 GB 사이 일 수 있습니다.
  • 처리 된 파일 크기는 몇 KB에서 1GB 또는 2GB가 될 수 있습니다.
  • .zip 또는 .tar와 같은 아카이브 파일을 파는 것과 같은 특정 프로세스는 포함 된 파일을 파일 저장소로 가져올 때 많은 추가 쓰기를 유발할 수 있습니다.
  • 파일 수는 수천만에이를 수 있습니다.

이 워크로드는 "정적 작업 단위 크기"Hadoop 설정에서 작동하지 않습니다. 마찬가지로 S3 스타일 객체 저장소를 평가했지만 부족한 것으로 나타났습니다.

우리의 응용 프로그램은 Ruby로 작성된 사용자 정의이며 Windows 노드에 Cygwin 환경이 있습니다. 이것은 우리에게 도움이 될 수 있습니다.

내가 고려하고있는 한 가지 옵션은 GlusterFS 볼륨이 마운트 된 서버 클러스터의 간단한 HTTP 서비스입니다. Gluster로 수행하는 모든 작업은 본질적으로 GET / PUT 작업이므로 HTTP 기반 파일 전송 방법으로 쉽게 전송할 수 있습니다. 그것들을로드 밸런서 쌍 뒤에 놓으면 Windows 노드는 작은 푸른 마음의 내용에 HTTP PUT 할 수 있습니다.

내가 모르는 것은 GlusterFS 일관성이 유지되는 방법 입니다. HTTP 프록시 계층은 처리 노드에서 쓰기 작업이 완료되었다고보고 할 때와 실제로 GlusterFS 볼륨에서 볼 수있을 때 사이에 충분한 대기 시간을 제공합니다. 그것을 찾아라. 나는 꽤 반드시 사용하는 것이 해요 direct-io-mode=enable마운트 옵션을하면 도움이 될 것입니다, 하지만 확실하지가 충분한 경우 해요 . 일관성을 향상시키기 위해 무엇을해야합니까?

아니면 다른 방법을 완전히 추구해야합니까?


Tom이 아래에서 지적했듯이 NFS는 다른 옵션입니다. 그래서 나는 시험을 치렀다. 위에서 언급 한 파일에는 클라이언트가 제공 한 이름이 있어야하며 어떤 언어로도 제공 될 수 있으므로 파일 이름을 보존해야합니다. 그래서 나는이 파일들로 디렉토리를 만들었습니다 :

서버에서 이름이 좋은 NFS 디렉토리

NFS 클라이언트가 설치된 Server 2008 R2 시스템에서 마운트하면 다음과 같은 디렉토리 목록이 표시됩니다.

클라이언트에서 이름이 잘못된 NFS 디렉토리

분명히, 유니 코드는 보존되지 않습니다. 따라서 NFS가 작동하지 않습니다.


삼바 팀은 ctdb안정적이고 프로덕션 사용 준비가 된 것으로 간주 하고 링크의 첫 번째 문장은 두 번째 문장이 업데이트되지 않았으므로 무효로 만듭니다. 나는 이것을 확립하려고 계획하고 있었지만, 이것에 도착하기 전에 거의 창문이없는 환경으로 작업을 전환했습니다.
Sven

어떤 버전의 창을 사용하고 있습니까?
Tom O'Connor

@ TomO'Connor 태그에서 알 수 있듯이 Windows 7이지만 Server 2008 R2는 어느 시점에있을 것입니다.
sysadmin1138

Cygwin에 문제가 있다고 생각합니까?
Tom O'Connor

답변:


5

나는 GlusterFS를 좋아한다. 사실 저는 GlusterFS를 좋아합니다. 전용 대역폭을 제공 할 수 있다면 모든 것이 정상입니다.

GlusterFS의 가장 좋은 점 중 하나는 NFS와 함께 사용하는 것입니다. 최근에 작업 한 놀라운 일 중 하나는 Windows 7 및 2k8R2의 NFS입니다 .

여기 내가 할 일이 있습니다.

  1. NFS를 내보낼 수있는 2 개의 GlusterFS 서버를 설정하십시오.
  2. 그들 사이에 하트 비트 링크를 설정하십시오.
  3. 하트 비트 / 페이스 메이커와 같은 것을 배포 하시겠습니까?
  4. Gluster Nodes간에 가상 IP (VIP)를 설정하십시오.
  5. VIP의 IP 주소를 사용하여 Windows boxen의 매핑 된 네트워크 드라이브를 연결하십시오.
  6. 상상할 수있는 모든 것을 테스트하십시오.

클러스터링 Samba는 무섭게 들리지만 그렇게해도 Samba는 여전히 일부 Windows 네트워크에서 안정적으로 작동 할 수있는 능력이 부족합니다 (NT4 도메인 호환성은 결코 지나칠 수없는 것 같습니다).

내가 생각하는 각 gluster 노드가 분산, 복제 모드에 있기 때문에 당신이 이론적으로 연결할 수 있어야 하나 주위 데이터 이동에 대한 걱정으로 할 수 있습니다. 결과적으로, 하트 비트는 사용자가 말하고있는 것을 리디렉션하고 제어하는 ​​것이어야합니다.

당신의

  • 파일 수는 수천만에이를 수 있습니다.

큰 파일 시스템에 적합하고 GlusterFS에서 지원되므로 XFS를 기본 파일 시스템으로 사용하는 것이 좋습니다.


현재 XFS를 사용하고 있습니다! 초기 수집 기능을 처리하기 위해 NFS3을 잠시 살펴 보았지만 유니 코드 지원이 없기 때문에 작동하지 않는 것으로 판명되었습니다. 이것은 Windows에서 NFS 서버와 함께있었습니다. "会計 2012.xls"는 올바르게 표현되지 않으므로 매우 중요합니다. 그러나 ... 나는 7 / R2에 대해 몰랐으며 조사 할 가치가 있습니다!
sysadmin1138

그래서 나는 시험을 치렀다. 불행히도 좋은 결과를 얻지 못했습니다 (문제에 대한 업데이트 참조). 유니 코드 문제는 양방향입니다.
sysadmin1138

도청 전문가. 나는 아이디어가 부족합니다. 삼바를 VIP 뒤에 놓을 수 있을지 궁금합니다.
Tom O'Connor

작업 그룹 예, 도메인 (사용중인) 아니요 따라서 내 문제.
sysadmin1138

다른 한편으로, 파일 이름을 유지하는 개발자와 대화를 나눈 후에는 예상만큼 중요하지 않습니다. 분명히, 우리가 첫 단계 (가장 높은 단계)에서 그것들을 얻을 수있는 한, 데이터베이스는 이름을 추적 할 것입니다. 따라서 NFS는 올바른 옵션입니다 (한 번 올바른 Windows 버전을 얻으면).
sysadmin1138

1

HA 솔루션에서 생각할 수 있습니다. 인증을 위해 LDAP를 사용하고 (원하는 많은 LDAP 서버를 복제 할 수 있음) SMB 서비스를 수신하기 위해 IP를 배치하십시오.

이 IP는 주 서버에 떠 있습니다. 다운되면 하트 비트는 두 번째 서버에서 서비스를 시작할 수 있습니다.

이 서버에는 glusterfs에 대한 마운트 지점이 있으며 모든 데이터가 있습니다.

가능한 솔루션이며 관리하기가 쉽습니다 ...

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