2010-12-02 2 views
3

현재 CakePHP (1.3) 기반 웹 응용 프로그램을 HA 설정에서 실행하도록 구성하고 있습니다. 4 개의 웹 박스에 데이터베이스 백엔드 용 MySQL 클러스터가 있습니다. 나는 사용자에게 주당 12,000 ~ 24,000 개의 이미지 (35 ~ 70GB)를 업로드하도록했습니다. 그런 다음 미리보기를 위해 원본, 썸네일 및 중간 크기 이미지에서 2 개의 추가 파일을 생성합니다. 이는 매주 저장소에 총 36,000 - 72,000 개의 가능한 파일이 추가됨을 의미합니다.CakePHP 고 가용성 서버 팜 설정

내가 머리를 감싸려고하는 것은이 이미지를 보려고하는 사용자로부터 오는 수많은 정적 파일 요청을 처리하는 방법입니다. 나는로드 밸런서가 요청을 디스 패칭하는 정적 파일 만 제공하는 여러 웹 상자를 가질 수 있음을 의미합니다.

하지만 여기에있는 모든 사람이 모든 정적 파일 서버를 동기화 상태로 유지하는 방법에 대한 아이디어가 있습니까?

당신이 공유하고 싶은 경험이나 저에게 유용한 링크가 있다면 매우 감사하겠습니다.

감사합니다,

serialk

+1

도움이 될지 모르지만 페이스 북은 광택을 사용하여 이미지를 제공합니다. | http://www.varnish-cache.org – RabidFire

+0

RabidFire 링크를 이용해 주셔서 감사합니다. 내 접시에 책을 몇 권 넣었습니다. – serialk

답변

2

그것은 상당히 어려운 문제입니다.

기술적으로 NFS (또는 원하는 경우 SMB)를 통해 고 가용성 공유 디렉토리를 가져올 수 있으며 액티브/패시브 설정에 DRBD 및 Linux-HA를 사용할 수 있습니다. 이러한 설정은 단일 서버 손실에 대비하여 좋은 가용성을 갖지만, 그러한 설정은 상당히 낭비적이고 확장이 쉽지 않습니다. 응용 프로그램 자체에서 어떤 서버를 선택할지, NFS 마운트를 구성할지 등을 결정해야합니다. 모든 것이 다소 복잡해집니다.

그래서 나는 파일 시스템에 이미지를 보관하지 말라는 메시지를 보냅니다. 적어도 일반적인 종류는 아닙니다. 앞으로 더 많은 스토리지를 추가하기 위해 유연해야한다고 가정하고 있습니다. 스토리지 및 IO 요구 사항을 일정하게 유지할 수 있다면 DRBD, HA NFS가 좋은 시스템 일 것입니다.

유연한 "구름"에 파일을 저장하는

, 하나

Tahoe LAFS

또는

아마도 어떤면에서 어쩌면 더 좀 더 통합지만을 필요로 푸시, 카산드라,의.

MySQL 클러스터는 큰 BLOB에는 좋지 않습니다 (주로) RAM에 데이터를 보관합니다. 또한 높은 일관성을 제공하기 위해서는 높은 작업량에서 업데이트를 상대적으로 나쁘게 만드는 잠금 기능이 많이 필요합니다.

그러나 여전히 당신이 이미 설정 했으므로 어쨌든 mysql 클러스터에 이미지를 넣는 것을 고려할 수 있습니다. 더 이상 운영상의 오버 헤드가 필요하지 않습니다.

+0

MarkR은 귀하가 제안한 다양한 옵션을 읽고 나서 Cassandra가 될 것이라고 생각합니다. 이 하나의 승자. 특히 내 첫 번째 통합이 될 것이기 때문에 약간의 작업이 필요합니다. 그러나 필자의 가치는 분명히 있습니다. 다시 한 번 감사드립니다! – serialk

관련 문제