Download presentation
Presentation is loading. Please wait.
1
HANBIRO SERVICE 로드발란싱/클러스터링/FailOver 시스템 구축 제안서 1. 한비로 클러스터 시스템
2. 클러스터 구현 종류 3. 클러스터 장애감지 시스템 4. 구축 사례 5. 서비스별 시스템 구성 제안 6. Windows 클러스터 구축 7. 데이터베이스 클러스터 로드발란싱/클러스터링/FailOver 시스템 구축 제안서 HANBIRO SERVICE 1
2
1. 한비로 클러스터 시스템 특징 클러스터 시스템 도입/운영기간은 6년. 현재 운영되는 클러스터 서버군은 약 30여개.
기술적 노하우 축적으로 장애에 대처하는 능력 탁월. 다양한 형태의 클러스터 시스템 구축. 특징 리얼서버로의 부하분산 스케쥴링 알고리즘은 여러가지가 있는데 웹사이트의 운영방침에 따라 가장 적합한 알고리즘은 채택할 수 있다. 로드밸런스서버는 리얼서버가 정상적으로 서비스 되는지 체크하기 위해 리얼서버로부터 2초간격으로 hanbiro.lvs라는 체크페이지를 읽어들여 ‘hanbiro’라는 문자열을 체크한다. 정상적으로 체크되지 않는 리얼서버는 클러스터멤버에서 빠지게 된다. 장애복구된 리얼서버는 실시간으로 클러스터멤버에 등록된다. 웹페이지 방문자의 세션 유지를 위해 클라이언트와 리얼서버간의 연결유지를 설정할 수 있으며 유지시간은 웹사이트 특성에 따라 조정 가능하다. 모든 리얼서버가 서비스불능상태가 될 때를 대비해 로드밸런스서버는 자체적으로 웹서비스기능을 준비하여 ‘서비스 점검중입니다.’등의 페이지를 띄워줄 수 있다. High Availability and Load Balacing 시스템에서는 Master서버와 Standby서버간의 컨넥션동기화가 가능하다. Master서버가 장애를 일으키면 클라이언트와 리얼서버간의 세션유지를 위한 연결상태정보를 Standby서바가 그대로 유지하면서 로드밸런스를 떠맡게 된다.
3
2. 클러스터 구현 종류 한비로에서 운영중인 클러스터 형태는 여러 종류가 있는데 대표적인 세가지는 다음과 같다. Load Balancing 가장 보편적인 클러스터 형태로써 한대의 로드밸런스서버가 여러대의 리얼서버로 요청을 분산한다. 로드밸런스서버가 장애를 일으키면 서비스 전체가 정지되는 단점이 있다. High Availability and Load Balancing 두대의 로드밸런스서버가 마스터와 스탠바이의 역할을 가지는 Failover 형태이다. 마스터서버가 로드밸런스을 담당하다가 장애을 일으키면 대기 상태의 스탠바이서버가 즉각적으로 로드밸런스을 담당하게 된다. 마스터서버가 복구되면 스탠바이서버는 다시 대기상태가 되는 가장 안정적인 형태이다. Streamline High Availability and Load Balancing 두대의 리얼서버가 고가용성 기능을 겸하는 클러스터 형태이다. 로드밸런스서버를 따로 두지 않으므로 비용면에서 효율적이지만 리얼서버가 리눅스플랫폼으로 한정되는 단점이 있으며 대형서비스에는 어울리지 않는다.
4
2. 클러스터 구현 종류 1) Load Balancing (일반적인 클러스터 형태)
한대의 로드밸런서가 클라이언트의 요청을 여러대의 리얼서버로 분산.
5
2. 클러스터 구현 종류 2) High Availability and Load Balancing (고가용성 로드밸런서)
두대의 로드밸런스서버 중 마스터서버가 클라이언트의 요청을 여러대의 리얼서버로 분산함. 스탠바이서버는 마스터서버의 장애에 대비함. 마스터서버가 복구되면 스탠바이서버는 다시 대기상태로 돌아감.
6
2. 클러스터 구현 종류 3) Streamline High Availability and Load Balancing (리얼서버가 고가용성 로드밸런서를 겸하는 형태) 두대의 리얼서버가 Failover 기능을 가지는 로드밸런스서버의 역할을 겸함. 리얼서버1/마스터서버가 장애를 일으키면 리얼서버2가 로드밸런싱을 하며 리얼서버1은 클러스터군에서 제외된다.
7
3. 클러스터 장애감지 시스템 한비로서버모니터시스템(HSMS) 시스템관리자 Real Servers
로드밸런스서버는 한비로서버모니터시스템(HSMS)을 이용하여 장애를 감지하고 SMS를 통해 관리자에게 즉각 보고. 리얼서버의 장애는 한비로서버모니터시스템과 리얼서버모니터를 이용하여 이중으로 감지하고 장애상황을 관리자에게 더욱 신속하고 정확하게 보고하도록 감시시스템을 운영함. 서비스의 형태에 따라 장애감지방법를 커스터마이징하는 유연한 장애감지시스템을 구성. 한비로서버모니터시스템(HSMS) 시스템관리자 클러스터 시스템 Load Balancer Real Servers
8
4. 구축 사례(1) - 영화상영 사이트 <일일 트래픽 현황>
클러스터 운영기간은 4년째이며, 하루트래픽 최대 350Mbps 발생. PHP+MySQL로 운영, 한비로에서 제공하는 MySQL 클러스터용 PHP확장모듈을 사용. 데이터베이스서버 4대, 웹서버 5대, 파트너섭 2대로 구성 <일일 트래픽 현황>
9
4. 구축 사례(2) - 광고 사이트 <한비로소프트 웹분석기로 본 일일 페이지뷰 그래프>
클러스터 운영기간은 2년째이며, 하루트래픽 최대 20Mbps 발생. PHP+MySQL로 운영, 툴바프로그램 배포사이트(한비로제작). 하루 평균 약 1,050만건의 페이지뷰 기록. <한비로소프트 웹분석기로 본 일일 페이지뷰 그래프>
10
4. 구축 사례(3) - 대입관련 사이트 <한비로소프트 웹분석기로 본 일일 페이지뷰 그래프>
클러스터 운영기간은 3년째이며, 입시기간동안 리얼서버의 수가 대폭 증가. PHP+MySQL로 운영, 한비로에서 제공하는 MySQL 클러스터용 PHP확장모듈을 사용. 데이터베이스서버 최대 20대이상, 웹서버 5대로 구성. 입시기간 평균 120만 페이지뷰 <한비로소프트 웹분석기로 본 일일 페이지뷰 그래프>
11
4. 구축 사례(4) - 골프 사이트 클러스터 운영은 2년째이며, ASP+MSSQL 로 운영.
로드밸런서는 리눅스, 리얼서버는 윈도우즈인 크로스 플랫폼 형태. <로드밸런스 분배현황 그래프> * 표시되는 분배수는 컨넥션을 최적화 시킨 숫자임.
12
4. 구축 사례(5) - 공사관련 사이트 - 구인구직 사이트 - 학원교육 사이트 클러스터 운영기간 2년째
JSP + MySQL 로 운영 - 구인구직 사이트 클러스터 운영기간은 1년째이며, PHP+MySQL로 운영 접속량 증가로 인해 한비로로 서버 이전하면서 클러스터 시스템 도입. - 학원교육 사이트 별도의 로드밸런스 시스템을 사용하다가 한비로로 서버이전 후 클러스터 시스템 추가. JSP + MySQL 로 운영 2대의 리얼서버가 FailOver 로드밸런스 기능을 겸하는 Streamline HA 로드밸런스 구성
13
5. 서비스별 시스템 구성 제안 Web Server
Load Balance Server의 Failover System 으로 무정지시스템을 구성함. Master Server, Real Server Fail시 서비스에 전혀 영향이 없음. 접속수와 서버의 로드에 따라 실시간으로 Real Server 추가 가능.
14
5. 서비스별 시스템 구성 제안 Image Server 방안 1
CDN과 Cache 시스템 구축으로 이미지 송신에 있어서 안정성과 성능을 향상시킴. 이미지 서버 자체의 Failover 시스템 구축으로 안정성을 제공. 이경우 File Server가 Fail시 Fail되지 않은쪽 접속 증가로 장애 가능성이 있다 그래서 File Server가 1대씩 더 있어야 무정지 시스템이 된다.
15
5. 서비스별 시스템 구성 제안 Image Server 방안 2
여러대의 Real Server중 2대가 고가용성 Load balance 서버 기능을 겸하게 되는 무정지 시스템 구성도이다.
16
6. Windows 클러스터 구축 1) 네트워크 로드 밸런스의 높은 가용성과 확장성
* 하드웨어에서 작동하는 네트워크 로드 밸런스 만큼의 성능을 구현할 수 있다.(Windows standard edition 이상에서 구축 가능) * 소프트웨어 구성요소 장애 또는 계획된 유지보수 중에 서비스를 계속 제공할 수 있다 * 서버가 준비되어 있다면 셋팅 시간은 10분 내외이며, 간단한 컨트롤을 통해 구현할 수 있다. * 최대 32개의 노드를 지원하며, IP 서비스를 하는 대부분의 서비스를 지원 한다.(IIS,FTP,WMS...) * 윈도우 네트워크 로드 밸런스는 TCP/IP 전단에서 실행된다.(그림1) * OSI7 Layers 중 하위 계층인 Network Layer와 Transport Layer사이에서 작동하여 하드웨어 작동과 비슷하게 작동하기 때문에 하드웨어 작동만큼의 성능을 보인다 <그림1>
17
6. Windows 클러스터 구축 Application Presentation Session Transport NLB
* OSI7 Layers 중 하위 계층인 Network Layer와 Transport Layer사이에서 작동하여 하드웨어 작동과 비슷하게 작동하기 때문에 하드웨어 작동만큼의 성능을 보인다 (그림2) Application 상위 계층 Presentation Session Transport 하위 계층 NLB는 물리적인 계층인 Network Layer 과 Transport Layer 사이에 존재 한다. NLB Network Data Link Physical <그림2>
18
6. Windows 클러스터 구축 2) 빠른 장애 조치/복구
* 각 클러스터 구성원간에 Hartbeat 통신으로 장애 발생시 3초안에 클러스터 재분배 및 자동 분산 * 클러스터의 복구가 5초후 바로 진행되므로 사용자는 서버의 이상을 느끼지 못한다. * NLB 는 DNS 라운드 로빈 방식과 거의 흡사하다. * 라운드 로빈 방식은 서버의 장애 발생시에도 무조건 로드를 분산하지만, NLB는 장애 발생시 즉각 체 크하여 장애 발생한 구성원은 클러스터 구성원에서 제외한다. <그림3> NLB 구성 후 클러스터 구성원들간의 Heartbeat 통신
19
6. Windows 클러스터 구축 <그림4> 클러스터 구성원의 장애 발생시 클러스터 재 분배
20
6. Windows 클러스터 구축 3) NLB Session 지원
첫번째 서버 접속 후 cluster 구성원이 타 서버에 접속하는 것을 막기 위해 '해싱 알고리즘'을 지원 한다. 클라이언트는 클러스터 구성원에게 모든 세션 정보를 보내나, 보낸 정보를 승인해주고 클라이언트와 통신 하는 것은 초기 세션을 맺은 서버이다.
21
7. 데이터베이스 클러스터 Mysql 클러스터 : Mysql-NDB-Cluster 기반의 구성 ♣ 특징 ♣ 구현방법
* %의 고가용성의 무정지 시스템 구축과 운영 * 메인 메모리 기반의 고성능 데이터베이스 구현 * 매우 빠르고 자동적인 FailOver 시스템 * 유동적이고 병렬적인 분배구조 시스템 * 특별한 하드웨어를 원하지 않는 고객들을 위한 저렴한 구축비와 유지비 ♣ 구현방법 * Management Server 중 한대는 Primary Server로서 기능을 하다가 Fail 시 Standby Server가 임무를 수행합니다. * 각 Data Node에 저장되는 모든 데이터베이스는 메모리에 유지시켜 신속한 응답을 지원합니다. (한비로는 적정한 메모리를 제시할 것입니다. ) * Mysql Node는 Data Node의 데이터를 Application의 요구에 응답하는 서버군입니다. * NDB Cluster을 위한 Data Node는 Data 저장, 복구, 분배를 합니다. * 한비로에서는 최소 3대의 Mysql 서버 구축시 Mysql 클러스터를 제공해 드립니다.
22
7. 데이터베이스 클러스터 Mysql 클러스터 : Mysql-Replication 기반의 구성
♣ Mysql-Dual-Master-Replication * Mysql-Replication은 마스터로 설정된 MySQL서버의 데이터를 슬레이브로 설정된 다수의 MySQL서버의 데이터와 동기화시켜 실시간 백업 및 부하분산을 위해서 사용하는 것으로서 이를 이용해 2대의 마스터 서버를 구성해 데이터 업데이트 시 각 마스터 서버에 동일하게 적용될 수 있도록 하는 기술입니다. ♣ Dual-Master-Replication의 필요성 1. 단일 Master&Slave-Replication의 취약점 : Master서버의 장애시 마스터서버를 재구성하는 작업이 수동으로 진행됩니다. 2. Mysql-Cluster의 높은 메모리사용량 : NDB클러스터서버는 메모리에 데이터를 적재하는 방식으로 높은 성능을 보여주지만 운영되는 데이터 베이스의 용량이 큰 경우 그에 비례해서 상당량의 물리적 메모리를 필요로 하게 됩니다. ♣ 구현 방법 * Master-Server 두대가 동일하게 작동하므로 서버중 한대가 Fail시 나머지 서버가 계속해서 임무 수행 * 각 서버에 동일한 데이터가 저장되므로 어플리케이션 접근에 의한 부하를 분산시킬 수 있습니다. * Master-Server 중 한대는 Primary Server로서 기능을 하다가 Fail시 Standby Server가 임무를 수행 * 데이터 입력(Insert,Update,Delete)은 모두 마스터 서버에서 이루어지고, 데이터 불러오기(Select)는 슬레이브 서버들이 담당하게 되어 Select 쿼리가 많은 사이트에서 최적의 성능을 발휘할 수 있습니다. * 실시간으로 데이터 복제가 가능하며, 서버에 거의 영향을 주지 않습니다.
23
7. 데이터베이스 클러스터 고가용 SQL Server 데이터베이스 미러링
1. 고가용 솔루션 데이터베이스 미러링은 데이터베이스의 가용성을 높여 주는 주요 소프트웨어 솔루션입니다. 주(Principal) 역할을 주 서버라고 하며, 미러(Mirror) 역할을 미러 서버라고 합니다. 미러링은 데이터베이스 복사본을 2개 동기화 유지하여 응용프로그램의 끊김없는 데이터베이스 연결 및 데이터 손실을 최소화 합니다 미러링 구성 구성에는 총 3개의 SQL Server 인스턴스가 필요합니다(*가용성우선모드). 주(Principal)역할 서버 와 미러(Mirror)역할 서버, 그리고 이를 모니터(Withness)하는 서버가 필요합니다. 모니터 서버는 주 서버와 미러 서버를 모니터링하여 지정한 시간에 장애 조치 파트너 중 하나만 주 서버로 작동하게 하는 방식으로 자동 장애 조치를 지원합니다. 지정한 서버는 파트너 또는 미러링 모니터 서버로서 여러 개의 동시 데이터베이스 미러링 세션(미러된 데이터베이스 하나당 한 개)에 설정할 수 있으며, 모든 세션(및 해당 데이터베이스)은 다른 세션에 대해 독립적으로 구성 및 운영됩니다. 데이터베이스 서버는 주로 응용프로그램 서버(웹서버)등과 연동하여 운영하게 되므로, 모니터(Withness) 역할 서버는 응용프로그램 서버에 설치를 하면 되므로 별도의 모니터를 위한 하드웨어는 필요가 없습니다.
24
7. 데이터베이스 클러스터 고가용 SQL Server 데이터베이스 미러링 3. 장애 조치(Failover)
서버 한 대가 손실되어도 데이터베이스는 여전히 작동되므로 고가용성이 지원됩니다. 이전 주 서버는 가능(복구)할 경우 미러 서버 역할을 맡으며 이 서버의 데이터베이스는 새 미러 데이터베이스가 됩니다. 역할은 상호 전환할 수 있습니다. 4.미러링의 장점 - 데이터베이스 미러링은 완전하거나 거의 완전한 데이터 중복성을 제공합니다. - 서버 인스턴스는 직접 네트워크 연결을 통해 통신하며 특별한 하드웨어는 필요하지 않습니다. - 세션의 운영 모드에 따라 특정 형태의 역할 전환 지원 - 가용성에 영향을 주지 않고 하드웨어 또는 소프트웨어 업그레이드를 위해 수동 장애 조치 사용가능 - 데이터베이스 미러링은 전체 텍스트 카탈로그를 지원 - 미러 데이터베이스에 대한 데이터베이스 스냅숏을 만들어 클라이언트가 제한 접속 가능 - 단일 데이터베이스를 미러링 세션의 주 데이터베이스이자 로그 전달 구성의 주 데이터베이스로 구성 가능 - 데이터베이스 미러링은 복제(Replication)와 호환 - 데이터베이스 미러링은 MSCS클러스터와 호환
Similar presentations