문제

가 부하 균형 환경을 통해 10 개의 웹 서버를 실행 합니다.모든 웹 사이트에 액세스하는 단 하나의 파일 저장을 호스팅하는 모든 그림이다.우리는 현재 200 의 사진-우리는 우리에 저장할 디렉토리 1000 이미지당 디렉토리에 있습니다.오른쪽 지금은 모든 이미지가에서 하나의 스토리지 장치 RAID(10)하나로 연결하여 서버는 파일 서버입니다.모든 웹 서버에 연결된 파일은 서버에서는 동일합니다.저는 아키텍처 그래서 우리는 것이 실패의 단일 지점.그런데 두 대체:

  1. 에 복제 파일을 저장하는 모든 웹 서버 그래서 그들은 모든 데이터에 액세스컬
  2. 에 복제 파일을 저장하는 또 다른장 그래서 뭔가 일이 생기면 현재 저장소리로 전환할 수 있습니다.

분명히 주요 작업을 수행에 파일을 저장 읽어 있지만,많이 쓰기 작업을 수행할 수 있습니다.당신은 무엇을 생각하는 선호하는 방법?다른 생각?

나는 현재 판정내용의 CDN 그것이 필요로 할 것이 아키텍처 변경으로 인해 응용 프로그램에서 우리가 할 수 없는 지금.

올바른 솔루션이 없습니다

다른 팁

어느 것 일반적으로 고려하기 전에 위치 변경

  1. 무엇이 문제의 현재 아치
  2. 나는 무엇을 잘못하고 있으로 현재의 위치하고 있습니다.(만약 이를 위해 일하고 있었다 동안,작은 바뀌는 것이 일반적으로 많이 해결의 문제)
  3. 이 그것을 쉽게 성장(여기에 있는 것에 항상 상위 제한).과거를 기반으로 성장한 데이터를 효과적으로 계획할 수 있습니다.
  4. 신뢰성
  5. 쉬운 유지/모니터/문제 해결
  6. 비용

200 많이하지 않는 데이터의 요금이 부과될 수 있습에 대한 어떤 집 성장 솔루션을 사용하거나 무언가가 다음과 같 NAS,할 수있는 확장니다.고 핫스왑 방식의 복제본다.

로 복제하는 저장소의 모든 웹 서버는 매우 비싼 설정 및 당신이 말한대로 많은 쓰기 작업,그것은 큰 오버헤드를 복제하여 모든 서버(는 것만으로 증가 서버의 수와 성장하는 데이터가).또한 문제의 오래된 데이터에 의해 제공되는 하나의 다른 노드입니다.그 외에 복제 문제를 해결할 수 있는 10 개이고 성장하는 노드가 있습니다.지 않으면 조회/읽기/쓰기의 파일 시간이 매우 중요한 복제를 모든 웹 서버는 것은 좋은 생각이 아니다.사용자가(웹)를 거의 다름을 주의하 100ms-200ms 에 loadtime.

일부가 있습니다 기업 솔루션 이런 종류의 일을 위해. 그러나 나는 그들이 비싸다는 것을 의심하지 않습니다. NAS는 잘 확장되지 않습니다. 그리고 당신은 단일 실패 지점이 좋지 않습니다.

이를 도울 코드를 작성할 수있는 방법에는 몇 가지가 있습니다. 처음 요청할 때 웹 서버의 이미지를 캐시 할 수 있으므로 이미지 서버의로드가 줄어 듭니다.

마스터 슬레이브 설정을 얻을 수 있으므로 하나의 기본 이미지 서버이지만 다른 서버를 복사 할 수 있습니다. 균형을로드하고 코드에 논리를 넣을 수있어 슬레이브에 이미지 사본이 없으면 마스터를 확인하십시오. 마스터를 사용할 수 없으면 첫 번째 슬레이브가 마스터가됩니다.

스토리지에 데이터가 거의 없으므로 여러 대형 HD를 구매하거나 웹 서버의 여유 공간을 사용하여 사본을 유지하는 것이 좋습니다. 백엔드 스토리지 시스템의 부담을 줄이고 실패 할 때 여전히 사용자에게 컨텐츠를 제공 할 수 있습니다. 더 좋은 점은 스케일을 확장해야한다면 (더 많은 다운로드), 단순히 새 서버를 추가 할 수 있으며 백엔드의 응력은 변경되지 않습니다.

내가 이것을해야한다면, 나는 사용할 것이다 rsync 또는 조화 스토리지 장치에있는 웹 서버의 정확히 동일한 공간에 이미지 파일을 복사하려면 (이 방법으로, 언제든지 네트워크 파일 시스템 마운트로 사본을 교체 할 수 있습니다).

매번 Rsync를 실행 한 다음 (예 : 업로드 후 또는 밤에 한 번; 어떤 크기가 가장 적합한 지 알게 될 것입니다).

보다 다양한 솔루션은 BittorReent와 같은 P2P 프로토콜을 사용하는 것입니다. 이런 식으로 스토리지 백엔드의 모든 변경 사항을 웹 서버에 게시 할 수 있으며 업데이트를 자동으로 최적화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top