
저는 주로 웹 서비스, 프로젝트 관리 서비스(버전 제어 등) 및 그러한 종류의 응용 프로그램을 실행하기 위해 부하 분산된 가상 서버를 만드는 방법을 조사하기 시작했습니다. 그리고 오픈 소스(Linux) 솔루션이 필요합니다.
위키피디아에는이 항목겉으로는 매우 유망한 안정적인 프로젝트가 있지만 대부분은 오래전에 사라졌습니다.LVS그리고케리게드가능해 보이지만 확실하지 않습니다. (시간 기준으로) 투자할 가치가 있나요?
좋은 해결책은 무엇입니까? (비록 상용 솔루션(Linux 또는 기타)을 감당할 수는 없지만 이러한 대안에 대해 배우고 싶고 이에 대한 의견에 감사드립니다).
고마워
답변1
답변2
제가 질문을 잘못 읽은 것이 아니라면 웹 애플리케이션 호스팅에 대해 잘못된 방향으로 가고 있다고 말하고 싶습니다.
여러 노드(가상 또는 물리적)를 갖고 해당 구성을 관리하는 것이 좋습니다.인형.
노드는 1U 서버의 전체 랙일 수도 있고 실행 중인 강력한 3U 다중 프로세서 서버 묶음일 수도 있습니다.KVM그런 다음 가상화 게스트로 선택한 OS를 선택합니다.
4개의 서버가 주어지면 다음과 같이 설정할 수 있습니다.
- 서버 1: 로드 밸런서 + HTTP 노드(Varnish 및 Apache 실행)
- 서버 2: 로드 밸런서 + HTTP 노드(Varnish 및 Apache 실행)
- 서버 3: HTTP 노드 + DB 마스터(Apache 및 MySQL 실행)
- 서버 4: HTTP 노드 + DB 슬레이브(Apache 및 MySQL 실행)
PXE 부팅 환경을 위한 nagios, munin, tftpd, 킥스타트/미리 시드 파일을 위한 소형 HTTP 서버, DHCPd, Rocketport 등을 통한 직렬 콘솔과 같은 서비스를 실행하는 다섯 번째 서버를 갖는 것이 유리할 것입니다.
단일 이미지를 갖는 대신 Puppet을 사용하여 자체 시스템을 배포할 때의 큰 이점은 리소스가 효과적으로 자체 문서화된다는 것입니다. 서버에 이미지를 넣는 것보다 훨씬 더 명확하고 블랙박스가 적습니다. 또한 이미지 업데이트 및 변경이 훨씬 간단해집니다.
답변3
실제로 질문하시는 내용에 대한 답변을 드릴 수 있을지는 모르겠지만, VM을 가져와서 미러링하는 방법을 찾고 계시다면 제가 알고 있는 무료 가상화 도구(VMware Server)를 사용하시면 됩니다. , ESXi, kvm 등)
- 필요한 모든 것을 갖춘 VM을 만드세요
- VM 복사
- 복사본을 변경합니다(IP 주소 및 호스트 이름).
- 두 VM 모두 시작
- 로드 밸런서 삽입(하드웨어 또는 소프트웨어, 중요하지 않음)
- .. 6단계는 생각나지 않네요 :)
답변4
SSI의 사운드만큼 흥미롭지만 최적의 성능을 발휘할 가능성은 거의 없습니다.
주요 대상은 웹 앱이므로 현재 모범 사례를 사용할 수 있습니다(반드시!). 일반적으로 다음과 같이 시작됩니다.
- 프런트엔드로서의 캐싱 로드 밸런서(squid, varnish, nginx)
- 웹 앱용 여러 HTTP 서버(일반적으로 Apache, nginx+FastCGI 등일 수 있음)
- 데이터 베이스
잘 수행했다면 첫 번째 병목 현상은 데이터베이스가 될 것입니다. 이 시점에서 다음을 수행해야 합니다.
- 웹 앱에 캐시를 추가하여 DB 히트를 최소한으로 줄이세요. (최신 프레임워크(RoR, Django)에는 memcached에 대한 뛰어난 지원이 포함되어 있습니다)
- DB에서 좀 더 전문화된 앱으로 일종의 작업을 수행합니다. 첫 번째 후보는 작업 대기열(rabbitMQ 또는 유사) 및 키/값 저장소(tokyo 캐비닛, resis, mongoDB 등)입니다.
- DB를 배포합니다. 읽기 횟수가 많고 쓰기 횟수가 적다면 마스터/슬레이브 복제를 시도하세요(MySQL에서는 쉬움). 하지만 이 경우라면 memcached가 이미 대부분의 부하를 흡수했을 것입니다. 샤딩도 시도해 보세요.
만약 당신이 이것이 너무 커지게 된다면(당신은 FaceBook입니까?) Google과 같은 전체 구조를 다시 생각해야 할 것입니다(MapReduce를 사용하여 거의 모든 것을 '오프라인'으로 수행하는 곳).