MogileFS 와 FastDFS 의 견해

MogileFS 와 FastDFS 의 개인적 견해
MogileFS &FastDFS는 두 개의 소스 분포식 파일 시스템으로 인터넷 파일 공유, 업로드, 다운로드 등 기능에 주로 적용되며 주로 다중 업로드와 다운로드에 사용되며 자주 수정되지 않는 작업에 사용된다.M과 F의 배치 구조는 모두 비교적 유사하고 디자인에서 피하는 cluster 중 어느 부분의 단일한 문제이다.
 MogileFS
------- 홈페이지:https://code.google.com/p/mogilefs/기본 아키텍처: Tracker Server(Tracker + DataBase) + Storage Server
[Mogilefs의 구성 부분]
1. 데이터베이스(MySQL) 부분은 mogdbsetup 프로그램으로 데이터베이스를 초기화할 수 있습니다.데이터베이스는Mogilefs의 모든 메타데이터를 저장합니다. 데이터베이스 서버를 따로 가지고 할 수도 있고 다른 프로그램과 함께 할 수도 있습니다. 데이터베이스 부분은 매우 중요합니다. 메일 시스템의 인증 센터와 같이 중요합니다. 만약에 여기가 끊기면 전체 Mogilefs는 사용할 수 없는 상태가 됩니다.따라서 HA 구조가 좋습니다.
2. storage Server(메모리 노드)mogstored 프로그램의 시작은 본 컴퓨터를 메모리 노드로 만들 것입니다.시작할 때 기본적으로/etc/mogilefs/mogstored를 읽습니다.conf, 구체적인 설정은 설정 부분을 참고할 수 있습니다.mogstored가 시작된 후,mogadm를 통해 이 기계를 cluster에 추가할 수 있습니다.한 대의 기계는mogstored를 메모리 노드로만 실행할 수 있고 다른 프로그램도 동시에 실행할 수 있다.
3.trackersServer(추적기)mogilefsd즉trackers프로그램,mogilefs의wiki에 소개된,trackers는 많은 작업을 했다.Replication,Deletion,Query,Reaper,Monitor 등.mogadm,mogtool의 모든 조작은 트레이커스와 접촉해야 한다. 클라이언트의 일부 조작도 트레이커스를 정의해야 하기 때문에 여러 개의 트레이커스를 동시에 운행해서 부하 균형을 잡는 것이 좋다.trackers는 한 기계에서만 실행할 수도 있고 다른 프로그램과 함께 실행할 수도 있습니다. 그의 프로필을 설정하기만 하면 됩니다. 기본적으로/etc/mogilefs/mogilefsd에 있습니다.conf.
4. 도구는 주로mogadm,mogtool 두 가지 도구로 명령줄에서 전체mogilefs시스템을 제어하고 상태를 보는 데 사용된다.다른 언어로 인터페이스를 호출하려면 2차 개발이 필요하다.
5. ClientClient는 실제적으로 Perl의pm으로 프로그램이 이pm을 호출하여 모글프스 시스템을 사용하고 전체 시스템을 읽기와 쓰기를 할 수 있다.
[논리 원리]
매번 파일의 업로드와 읽기는 전방 Tracker Server 서버를 거치고tracker Server 서버는 클라이언트 측의 요청을 받아 데이터베이스를 조회하고 업로드 또는 읽을 수 있는 백엔드 Storage Server의 주소를 되돌려준 다음, 클라이언트 측이 백엔드 Storage Server 서버를 직접 조작한다.upload 작업은 성공하거나 실패한 결과이고read 작업은 대응하는 조회 데이터를 되돌려줍니다.
====================================
FastDFS
------- 홈페이지:https://code.google.com/p/fastdfs/기본 아키텍처: Tracker Server + Storage Server
[FastDFS 구성 요소]
1. Storage server는 다른 파일 시스템에서 일반적으로 Trunk server 또는 Data server라고 합니다.Storage server는 OS의 파일 시스템을 직접 이용하여 파일을 저장합니다.FastDFS는 파일을 블록으로 저장하지 않으며 클라이언트가 업로드한 파일과 Storage 서버의 파일이 일일이 대응합니다.
2. TrackerServerTracker 서버는 중심 결점으로서 부하의 균형과 스케줄링을 주요 역할로 한다.Tracker server는 메모리에 그룹과 Storage server의 상태 등 정보를 기록하고 파일 인덱스 정보를 기록하지 않아 차지하는 메모리량이 적다.또한 클라이언트(응용)와 Storage 서버가 Tracker 서버에 접근할 때 Tracker 서버는 메모리에 있는 그룹과 Storage 서버 정보를 스캔하여 응답한다.
[논리 원리]
Storage Server는 주동자로서 서비스를 시작한 후에 시간에 따라 그에 대응하는 트레이커에게 자신의 상태와 관련 정보를 발표합니다.Tracker Server 서비스는 read에서 서버 IP를 직접 되돌릴 수 있도록 그룹에 대응하는 서버 IP만 기록합니다.Tracker Server에는 모든 그룹의 서버 목록이 저장되어 있으며, 서버 목록에 있는storage 서버는 실시간으로 서로 백업됩니다.
한 개의 트레이커, 여러 개의 storage 구조의 환경에서 먼저 upload 조작을 한다.client측은 upload의 요청을 트레이커 서버에 직접 보낸다.트레이커가 받은 후에 자신의 정의된 규칙(설정 가능)에 따라 업로드할 수 있는 storage 서버 IP에 답장하고,client는 파일 upload를 storage 서버에 업로드하여 조작을 완성한다.read 조작:client단에서 get이 필요한 URL 주소를 보내고tracker는 URL의 그룹에 따라 어떤 storage 서버에 속하는지 구분한 다음 접근할 수 있는 서버 IP 주소를 되돌려줍니다.client는 지정한 storage 서버에 직접 접근합니다. 이 storage 서버는 Nginx와 유사한 HTTP 서비스를 배치하고fastdfs 모듈을 불러옵니다. 도메인 이름 이동 설정을 미리 하고 파일을 읽어야 합니다.
다중 트레이커와 다중 storage에 대한 시스템 구조 설계는fastdfs의 구조 설명에 따라 트레이커와 storage는 모두 가로로 무한히 연장할 수 있다. 현재는 비교적 표준적인 트레이커와 storage가 짝을 짓는 모델이 없다. 단지 개인이 한 그룹에서 트레이지는 2-3대의 저장 서버를 확보하고 짝을 지은 트레이커는 2대를 유지하면 된다고 제안했다.하나의 cluster 모델에 대해 대략 이렇게 시스템 구조를 설계할 수 있다. 2대의 Nginx 최전방 서버는 client 측의read 요청에 사용되고 주요 역할은 부하 균형 서비스, 핫 준비 작업에 사용된다. 가장 좋은 것은nginx의config 설정에location 설정을 추가하고 그룹name에 따라 대응하는storage 서버로 직접 이동하는 것이다.2대의 트레이커 서버는 write 조작의 분배에 사용되고 핫스탠드 조작도 할 수 있으며 백엔드의storage 서버 설정에서 트레이커 설정은 2대의 서버를 모두 연결해야 한다.N대storage 서버, 한 그룹은 2-3대의 서버를 갖추고 데이터 양의 크기에 따라 작은 규모로 시작할 수 있다. 만약에 새로운 확장이 있으면 새로운 그룹과storage 서버를 직접 추가하면 된다. 이렇게 하면 전방의nginx 서비스 설정을 수정하고 다른 것은 조정할 필요가 없다.
====================================
MogileFS VS FastDFS
[유사점]
1. 구조는 모두 비슷하고 트레이커와 storage 두 부분의 cluster 구조를 갖추어 가로 확장을 편리하게 할 수 있다.2.storage Server 측에서 어떤 기계가 다운되면 하드디스크가 파손되면 자동으로 복구 기능을 완성할 수 있습니다.3. 구조 설계는 단일한 실패 문제가 없고 cluster에서 서버는raid 서비스를 사용할 필요가 없으며hadoop 디자인과 유사한 cluster 중전단mapreduce가 다운되고 전체 시스템이 효력을 잃는 문제가 발생하지 않도록 한다. 4.파일 저장소는 큰 파일에 대한 분할(hadoop은 실현할 수 있음)이 불가능하기 때문에 한 개의 파일이 물리 컴퓨터의 저장 공간을 초과하면 이 시스템을 사용할 수 없다.파일 시스템의 저장 형식은 모두 원문 저장이 아니기 때문에, 파일 서버에 로그인해도 시스템의 데이터를 얻을 수 없으며, 반드시 일정한 인터페이스를 거쳐야만 얻을 수 있다
[차이점]
1.FastDFS는 보완도가 높아 2차 개발 없이 바로 사용할 수 있다.2.MogileFS에 비해FastDFS는 추적용 데이터베이스를 줄이고 두 가지 역할만 있다. 그것이 바로 트레이커와 storage이다.FastDFS 아키텍처는 시스템을 단순화하는 동시에 성능 병목 현상도 제거합니다.3. 시스템에 어떤 캐릭터의 서버를 추가하는 것은 매우 쉽다. 트레이커 서버를 추가할 때storage와client의 프로필(한 줄의 트레이커 프로필 추가)만 수정하면 된다.storage 서버를 추가할 때 일반적으로 어떤 설정 파일도 수정할 필요가 없으며 시스템은 자동으로 이 볼륨에 있는 파일을 이 서버로 복사합니다.4. FastDFS는 MogileFS보다 효율적입니다.다음과 같은 몇 가지 측면에 나타난다. 1) 위의 두 번째 점을 참고하면FastDFS는MogileFS에 비해 파일 인덱스 데이터베이스가 없고FastDFS의 전체 성능이 높다.2) 채택된 개발 언어로 볼 때FastDFS는MogileFS보다 더 밑바닥이고 효율적이다.FastDFS는 C 언어로 작성되었고 코드량이 2만 줄도 되지 않으며 다른 소스 소프트웨어나 패키지에 의존하지 않아 설치와 배치가 매우 간결하다.MogileFS는 perl로 작성됩니다.3) FastDFS는 socket 통신 방식을 직접 사용하여 MogileFS의 HTTP 방식보다 효율이 높다.또한 FastDFS는 sendfile을 사용하여 파일을 전송하고 메모리 제로 복사를 사용하여 시스템 비용이 적고 파일 전송 효율이 높다.5.FastDFS는 상세한 디자인과 사용 문서를 가지고 있지만 MogileFS의 문서는 상대적으로 부족하다.6.FastDFS의 로그 기록은 매우 상세하고 시스템이 실행될 때 발생하는 모든 오류 정보는 로그 파일에 기록되어 문제가 발생할 때 관리자가 오류의 소재를 쉽게 찾을 수 있다.7.FastDFS는 또한 파일 크기, 이미지 폭, 높이 등 파일에 추가 속성(즉 메타 데이터)을 액세스하기 때문에 데이터베이스를 사용하여 이러한 정보를 저장할 필요가 없다.
부록01
mogadm class listdomain               class                mindevcount   replpolicy
——————– ——————– ————- ————
toast                byhost                    2        MultipleHosts()
toast                default                   2        MultipleHosts()
toast                four                      4        MultipleHosts()
toast                fourbynamenet             1        HostsPerNetwork(near=2,far=1)
mogadm class add toast twoontwonets –replpolicy “HostsPerNetwork(near=2,far=2)”
mogadm class modify toast twoontwonets –replpolicy “HostsPerNetwork(near=3,far=3)”

좋은 웹페이지 즐겨찾기