Load Balancing Server 구현시...
글쓴이: spinel1 / 작성시간: 화, 2003/12/09 - 6:36오후
처음 하는 건데 너무 초보라 어떻게 해야 할지 몰라서 질문을 드립니다.
그런데 이런 질문을 여기다 올려도 되는건지 모르겠네요.
로드 밸런싱 서버를 구현하려 하는데요. 로드 밸런싱시 각 서버들(리얼 서버라고 부르죠)을 스케쥴링 하는 알고리즘에 대해서 알고 싶습니다.
대개 CPU, MEMORY 상태와 CPU, 하드웨어 성능, 그리고 네트워크 트래픽에 의해서 스케쥴링이 좌우될 것으로 생각이 되는데, 이런것들을 어떻게 종합-통합해서 스케쥴링을 구현하는지 감이 안오네요.
알고리즘이 아니더라도, 방향 정도만 제시해 주셔도 감사하겠습니다.
^^
지존님들.. 화이팅!!!
Forums:
LVSPOSCAR등 공개 프로젝을 한번 찾아 보시길 권해드립니다.
LVSP
OSCAR
등 공개 프로젝을 한번 찾아 보시길 권해드립니다. KLDP에도 LVSP쪽 문서가 아마 있을겁니다. 아마 이 문서만 보셔도 상당한 도움이 되실수 있을겁니다. 주로 웹서버쪽으로 많이 이용되는데 보통 네트웍 트레픽쪽에 가중치를 두어 가면서 벨런싱을 하고 있습니다.
단지 S/W 한개만 가지고 하지는 않고 벨런싱/파일시스템등등 여러가지를 복합적으로 해서 사용하고 있습니다. 단지 로드벨런싱 뿐만 아니라 클러스터링을 생각하신다면 조금더 복잡할수가 있습니다.
예전에 제가 L7 클러스터를 만들려고 해서 이것 저것 디자인해본적이 있는데(혼자 할려니 하다 말았습니다) 이때 클러스터간 통신을 위해 별도의 NIC를 사용했고 이 채널을 통해 chit-chat 데이터를 주고 받는데 이곳에 데이터 동기화를 위한 자료도 같이 실어서 보냈습니다. 즉, 3대가 기본으로 동기화를 하는데(raid 5와 비스무리) 데이터 전송량이 조금 과대했던 기억이 납니다. 단지 chit-chat을 위해서는 이더넷이 아닌 시리얼을 통하는 프로젝트도 존재합니다.
그리고 프라이머리쪽에서는 개별 서버로 에플리케이션 데이터와 동일한 통신 데이터를 보내서 서버의 fail 상황을 파악했습니다. 보통 ping은 제대로 가는데 에플리케이션이 동작 않하는 경우도 존재해서 이렇게 했습니다.
만약 서버 에플리케이션 클러스터링하는데 목적을 두신다면 서버의 가치를 좀더 높이는 좋은 경험이 되실겁니다.
힘내세요~~
윗분 말대로 LVS를 참고하시면 될듯한데요
http://www.linuxvirtualserver.org/
여길 참고해서보세요. 자료가 있습니다.
위 사이트중 몇개는 제가 예전에 번역을 했었는데 여기 KLDP 에도 있고 제 사이트에도 있습니다. 여기서 관련된 내용은
http://tunelinux.pe.kr/virtual/scheduling.html
Round-Robin Scheduling (라운드 로빈 스케쥴링)
Weighted Round-Robin Scheduling (가중치기반 라운드 로빈 스케쥴링)
Least-Connection Scheduling (최소 접속 스케쥴링)
Weighted Least-Connection Scheduling (가중치 기반 최소 접속 스케쥴링)
요즘에는 LVS에 이것말고 더 추가된것이 있을지 모르겠네요.
그리고 L4 장비나 로드밸런싱 소프트웨어 검색하면 참고할만 할 것입니다. 더 상세한 내용은 LVS 코드를 분석해봐야 할듯.
---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net
댓글 달기