클러스터링을 구현 하려고 합니다.

a287848의 이미지

클러스터링을 구축한다음에 apache 나 bind 를 돌리려고 합니다.
클러스터링을 구현한다음에 아파치를 설치하면
자동으로 클러스단위로 Load 를 분산하게 되나요?
아님 어떤 작업을 해줘야 하나요?

bind 나 sendmail proftpd 도 그렇게 되는지 궁금합니다.
답변주시면 감사하겠습니다.

mycluster의 이미지

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

thkhyme의 이미지

클러스터링을 목적에 맞게 구현하셨다면 load balancing이 됩니다. :D
그런데, 클러스터링을 구현한다는 것을 어떤 의미로 쓰셨는지 모르겠습니다. :(
상업용 클러스터 웹서버 솔루션들을 잘 살펴보시면 아래의 LVS를 코어로
management interface만 구현한 경우가 다반사입니다.
도움이 되었으면 좋겠습니다. :wink:

Static Scheduling
http://www.linuxvirtualserver.org/index.html

Content-based Scheduling
http://www.linuxvirtualserver.org/software/ktcpvs/ktcpvs.html

Piranha (LVS에 대한 GUI interface입니다.)
http://sources.redhat.com/piranha/

무혼인형의 이미지

이 주제에 관심 있으신 분들께 추가로 질문 한번 드려볼까 합니다.

일일 접속자 수 30만 정도 되는 큰 웹사이트를 구성하려고 한다면...

클러스터로 리눅스 웹 서버가 몇대나 필요할까요?

한 노드의 사양은 대략 CPU:P4-2G RAM:256 정도 입니다. :oops:

아.. 다시 읽어보니 질문을 조금 바꿔야 겠네요.

저정도 사양이 되는 웹서버의 접속 처리량이 얼마나 될까요?

물론 커널과 아파치 튜닝이 이루어 져야 겠죠

mycluster의 이미지

동시접속자 수가 얼마나 되는지를 정확하게 예측한다는 것은 거의
불가능하다고 봐야하고, 웹서버의 CPU, 메모리 등에 따라서 상당히
다르게 보입니다.

통상적으로 Pentium3 500Mhz일때 재봤을때 서비스를 하는 웹사이트에서의
경험을 바탕으로 할때, CPU한개당 약 200~500개의 동시접속을 처리하는
것이 보통이었읍니다. 그것보다 많을 경우에는 상당히 부하가 걸렸었지요.

Pentim4 Processor의 경우 2GHz라고 해도 실제로 P4가 P3에 비해서
정수처리 능력이 그다지 좋지 않기 때문에, P3 1GHz정도와 비슷할 것으로
보는 것이 타당합니다.

따라서, 제가 생각하기에는 그 사양의 웹서버라면 동시접속을 약 500정도로
세팅하고 서비스를 수행해서 로드를 한번 보는 것이 타당할 듯 합니다.
500정도를 버틴다고 했을경우, 4대의 웹서버를 부하분산 할 경우 약 2000개의
동시접속을 처리할 수 있다고 예측 가능합니다.

그리고, 동시접속자 수와 회원수와의 관계를 통빡으로 구해보면, 통상 잘되는
사이트의 경우 회원수의 약 3~5%가 동시접속을 하고(이건 굉장히 잘되는
경우라고 봅니다....) 그러지 않은 사이트는 약 1~2% 정도라고 보시면 됩니다.

따라서 2% 정도가 동시접속을 한다고 가정하고 2000명이 동시에 접속한다고
보면, 회원수가 약 10만명인 사이트의 경우 4대 정도(위에서 말한 사양)의
웹서버로 서비스를 하면 될 듯 합니다.

물론 로드밸런싱의 장점은 4대정도로 10만명 회원인 사이트의 서비스를 하다가
웹서버의 부하가 심해지면 웹서버를 하나씩 늘여가는 것이 좋겠다고 보는거지요.

대부분의 중소규모 사이트들은 웹서버 2대~4대(시피유 듀얼일때)를 갖고
서비스를 시작하고, 여기에 DB서버를 4웨이 정도로 별도로 두고 시작을
하지요.

앞에 링크를 걸어둔 TP에 있는 사이트의 경우 웹서버가 총 5대 정도 됩니다.
Dual CPU로 10개 정도였거던요. 물론 요즘 더 늘었는지는 모르겠지만요.

물론, 웹메일을 사이트에서 서비스 할경우에는 웹메일용 웹서버는 별도로
두는 것이 훨씬 좋습니다.

아, 답변이 30만명정도가 하루에 접속한다고 할때, 동시접속자 수를 30만이
항상할리는 없고, 그중의 몇%가 동시에 접속하는 지를 판단한다면 일단 4대
정도로 시작해서 버벅대면 웹서버를 추가하는 것이 타당합니다. 그리고, 이정도가 접속할 정도의 사이트라면 대단히 잘나가는 사이트이므로 웹서버 늘이는
돈은 충분히 벌고 있을겁니다.

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

무혼인형의 이미지

MyCluster wrote:
아, 답변이 30만명정도가 하루에 접속한다고 할때, 동시접속자 수를 30만이
항상할리는 없고, 그중의 몇%가 동시에 접속하는 지를 판단한다면 일단 4대
정도로 시작해서 버벅대면 웹서버를 추가하는 것이 타당합니다. 그리고, 이정도가 접속할 정도의 사이트라면 대단히 잘나가는 사이트이므로 웹서버 늘이는
돈은 충분히 벌고 있을겁니다.

고견 감사합니다 :o

제 계산으로는...
하루 30만이라고 해도 MAX 수치이고... 평균 10만명 이하가 아닐까 생각되고요..
동시접속자 수는 평균 4건 이하 최대 동시접수는 20~40 정도..
30만pv로 생각하고 처음 견적을 넣었더니.. 너무 부담된다고 해서..
단계적 계약을 할 계획입니다.
그 웹서버를 추가 하는 부분에 있어서 따로 유지보수와 같이 계약을 해야 겠는데.. 타당한 근거 자료가 필요해서 여쭤 본 것이었습니다.
phpschool.com 의 포럼 글들을 찾아봐도 서버 자체의 능력은 엄청나더군요 문제는 그 위에 돌아가는 s/w들과 관리.. 보안 문제...인 것 같고..

아무튼.. LVS나 대형 사이트 개발 경험이 없어서 힘드네요.. 말씀하신 내용을 바탕으로 보고서 쓰기 시작 해야 겠습니다.. 8)

mycluster의 이미지

이전에 댕기된 회사에서 하던 일을 떠올려서(주로 맨날 저런거 제안했읍니다.)

일단 30만명 정도라고 하는 사이트를 만들려고 하는 고객을 위한다면 다음과
같이 제안하는 것이 타당하다고 봅니다.(물론 다를 수도 있지만...)

웹서버는 4대(Dual server로...), 그리고 당연히 DB 서버가 있을 테니까
이건 4Way 서버로 하면 좋을 듯하고, 그리고, 로드밸런싱용으로는 위에
사이트에 있는 클러스터링 기법을 사용해서 서버를 한대 더 두는 것도 좋지만
상용서비스를 위해서는, 아무래도 LVS를 만드는 비용이나 요즘은 하드웨어
L4 스위치가 많이 싸졌으므로, L4스위치를 구매하도록 유도하는 것이 나중에
문제가 발생했을때 뒷감당하기도 좋고, 일이 수월해집니다. 그리고, DB에
물릴 500GB ~ 1TB 정도의 외장형 스토리지를 하나 다는 것이 좋습니다.

그리고, 상당히 많은 수의 사이트들이 접속에 버벅대는 이유가 웹서버의 부하
인경우도 있지만, DB서버와 스토리지에서 웹서버들이 DB데이타를 읽어들이는
데 따른 부하가 생각보다 많습니다. 따라서 웹서버와 DB서버간의 Private
Network은 Gigabit를 이용해서 연결하는 것이 훨씬 좋고(요즘 16포트
1000T Gigabit은 끽해야 300~400만원 입니다) 이를 이용해서 웹서버와
DB서버간의 연결을 구성하면 상당히 접속 속도를 개선할 수 있읍니다.

그리고, 웹서버들을 클러스터링 할 경우에는 항상 새로 개발되는 웹페이지들을
네대의 서버에 공통으로 올리고 내리고 하는 것이 귀찮은 일이 됩니다. 이를
위해서 심플하게는 NFS에 홈피를 올리는 경우도 있지만, 이건 Network부하로
인하여 접속 속도를 저하시키는 요인입니다. 따라서 웹서버와 동일한 구조를
갖는 개발용 서버를 두고, 테스트를 수행할 수 있도록 만든다음에, rdist 등을
사용해서 4대의 웹서버에 뿌려주는 형태로 작업할 수 있도록 제안하는 것이
좋습니다.

그리고, 사이트의 특성에 따라서 과금서버라던지, 메일서버(만약에 메일을
발부한다면...)를 별도로 두는 것이 좋겠지요. 하지만, 최근들어서는 사용자들이
어떠한 사이트를 가입한다고 해서 메일 어드레스를 바꾸는 경우는 극히 드물고
따라서 메일서버는 괜히 가입자에게 발부만 되고 쓰지 않음으로 인한 스팸
창고가 될 가능성이 많으므로, 메일서비스는 고객으로 하여금 엠팔 등에서
제공하는 메일 호스팅 계약을 통해서 관리와 스토리지 확장, 서버 확장등의
부하를 줄이도록 유도하는 것이 좋습니다.

결론적으로 말해서, 초기제안으로 타당한 사양을 제가 제안한다면

1. 웹서버 - 2Way 4대 : 대당 600만원 x 4 = 2400만원
2. 개발용서버 - 2Way 1대 : 600만원
3. L4 스위치 - 1대(8 ~ 16포트) : 1000만원
4. DB서버 - 4Way 1대 : 3000만원
5. 스토리지 1TB - 돈없으면 IDE RAID, 괜찮다면 HP의 MSA1000정도 : 300만원
6. 내부 네트웍 연결용 1000T Gigabit Switch - 1대 : 500만원

정도로 초기 사이트를 구축하는 것이 권장할만다고 생각이 듭니다.
대충 견적을 내어보면 대충 저선에서 하드웨어 비용으로 약 1억 정도,
그리고, 오라클 저정도면 한 2000만원 정도 된다고 하고...
해서 1억 2천 정도~1억 5천 정도, 그리고, 개발을 해주고 유지보수 등등을
하게 된다면 기타등등해서 처음에 한 2억 쏘우라고 꼬드기면 될 듯 합니다.

물론 사정에 따라서는 줄였다 늘였다 할 수 있겠지요.

그리고, 하드웨어는 가급적이면 단일벤더(HP, IBM, 델, 삼성 등...)으로
제안을 하는 것이 두고두고 편해지고, 조립서버를 쓸 생각이라면 위 벤더에게
일괄 구매를 한다는 조건으로 10~20%를 DC 받으면 대충 조립서버보다
크게 많이 비싸지 않을 겁니다.

그리고, 고객이 저 사이트를 IDC에서 운영하게 될 가능성이 크므로, 초기
투자비로 IDC에 지불할 네트웍 비용 및 자리세를 약 2~3년간 예측을 해주고,
서버를 2~3년간 사용한다고 하면 전체적인 초기 투자비용이 나올 것입니다.

그리고, 사이트의 확장시의 비용 저감 방법을 제안할 때는, 일단 기존에 사용
하고 있는 서버를 최대한 이용할 수 있도록 클러스터링에서 옮겨갈 수 있는
방안(예를 들어 DB의 확장시 4웨이 DB를 웹서버로 돌리고, 더큰 DB 8웨이를
도입...)을 제안하여 고객이 향후 돈이 들어갈 것을 예측할 수 있도록 권유하면
잘 속아 넘어갑니다.

그리고, LVS에 대해서는 이야기를 하고나서... 쓸만하기는 하지만 가격차가
별로 없으니 하드웨어 L4로 가는 것이 안정성 면에서 권할 만 하다... 라고
이야기를 하십시오.

하드웨어도 싼거 사서 싸게 파는 것보다는 비싼거 사서 비싸게 파는 것이
더 좋습니다.

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

무혼인형의 이미지

가격.. 가격이 문제 입니다.
합리적인(?) 가격을 위해서는 조립서버를 써야 겠지만 하드웨어 오류 등 책임 소지가 많고.. 비싸게 넣자니 경쟁에서도 밀리고.. 초기 투자를 하는 회사(발주체)가 부담스러워 하는군요 =_=

사업에 자신이 있으면 돈좀 팍팍쓰지 막말로 장삿꾼 소갈머리 랄까요 8)

ps. 마지막 제 발언에 대해.. 혹시 인격모독이라고 생각되시는 분이 있을까봐 미리 사과 드립니다.

mycluster의 이미지

꼭 광고같지만....

http://www.sec.co.kr/product/sitemap/CSfLastGoodsPage_001.jsp?GOODS_NO=135161&DISP_NO=001001&dispNo=001001&COMU=&curDepth=2

링크랑 http://www.sec.co.kr/product/sitemap/CSfLastGoodsPage_001.jsp?GOODS_NO=135113&DISP_NO=001001&dispNo=001001&COMU=&curDepth=2

의 제품의 가격을 알아보십시오. 아마 똑같은 스팩을 용산에서 조립하는 것보다 크게 차이가 나지 않을겁니다. 물론 A/S는 그 회사의 A/S 잘아시죠? 그대로 진행될겁니다.

그리고, 가격으로 할때는 말잘하면 Dell도 상당히 쌀겁니다. 물론 LG-IBM도 저가 공세로 퍼다붓고 있고요. HP만 여전히 상당히 고가전략으로 나가고 있읍니다.

일단 AS라던지 이런 문제는 벤더것으로 하는 것이 나중에 설사 문제가
생기더라도 님의 회사는 '우리도 어쩌겠냐? S나 D나, I의 이름을 봤을때
우리 잘못은 아니지 않느냐...' 는 식으로 할 수 있읍니다.

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.