Load Balancing Server 구현시...

spinel1의 이미지

처음 하는 건데 너무 초보라 어떻게 해야 할지 몰라서 질문을 드립니다.

그런데 이런 질문을 여기다 올려도 되는건지 모르겠네요.

로드 밸런싱 서버를 구현하려 하는데요. 로드 밸런싱시 각 서버들(리얼 서버라고 부르죠)을 스케쥴링 하는 알고리즘에 대해서 알고 싶습니다.

대개 CPU, MEMORY 상태와 CPU, 하드웨어 성능, 그리고 네트워크 트래픽에 의해서 스케쥴링이 좌우될 것으로 생각이 되는데, 이런것들을 어떻게 종합-통합해서 스케쥴링을 구현하는지 감이 안오네요.

알고리즘이 아니더라도, 방향 정도만 제시해 주셔도 감사하겠습니다.

^^

지존님들.. 화이팅!!!

펑키의 이미지

LVSP
OSCAR
등 공개 프로젝을 한번 찾아 보시길 권해드립니다. KLDP에도 LVSP쪽 문서가 아마 있을겁니다. 아마 이 문서만 보셔도 상당한 도움이 되실수 있을겁니다. 주로 웹서버쪽으로 많이 이용되는데 보통 네트웍 트레픽쪽에 가중치를 두어 가면서 벨런싱을 하고 있습니다.

단지 S/W 한개만 가지고 하지는 않고 벨런싱/파일시스템등등 여러가지를 복합적으로 해서 사용하고 있습니다. 단지 로드벨런싱 뿐만 아니라 클러스터링을 생각하신다면 조금더 복잡할수가 있습니다.

예전에 제가 L7 클러스터를 만들려고 해서 이것 저것 디자인해본적이 있는데(혼자 할려니 하다 말았습니다) 이때 클러스터간 통신을 위해 별도의 NIC를 사용했고 이 채널을 통해 chit-chat 데이터를 주고 받는데 이곳에 데이터 동기화를 위한 자료도 같이 실어서 보냈습니다. 즉, 3대가 기본으로 동기화를 하는데(raid 5와 비스무리) 데이터 전송량이 조금 과대했던 기억이 납니다. 단지 chit-chat을 위해서는 이더넷이 아닌 시리얼을 통하는 프로젝트도 존재합니다.

그리고 프라이머리쪽에서는 개별 서버로 에플리케이션 데이터와 동일한 통신 데이터를 보내서 서버의 fail 상황을 파악했습니다. 보통 ping은 제대로 가는데 에플리케이션이 동작 않하는 경우도 존재해서 이렇게 했습니다.

만약 서버 에플리케이션 클러스터링하는데 목적을 두신다면 서버의 가치를 좀더 높이는 좋은 경험이 되실겁니다.

힘내세요~~

문태준의 이미지

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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.