클러스터 기술이란 무엇인가요?
클러스터 기술은 수년간 개발되었지만 실제로는 그다지 정확한 정의와 분류가 없습니다.
사실 사용자에게 이익이 될 수만 있다면 뭐라고 부르든 상관없습니다. :-)
개인적인 이해로는 다음과 같은 유형이 있습니다. 물론 앞서 언급했듯이 사람들은 서로 다른 이해를 가지고 있으며 모든 사람이 충분히 논의할 수 있습니다. 내 카테고리는 기술보다는 엔지니어링에 가깝습니다.
1. HA 클러스터
고가용성을 달성하지만 단일 애플리케이션의 성능을 향상시키지는 않습니다. 시중에 나와 있는 대부분의 제품은 이 범주에 속하며 기술적으로 비교적 간단합니다.
2. IP 로드 밸런싱 클러스터
IP 기술을 사용하여 일반 IP 애플리케이션을 지원합니다. 이 기술은 그다지 새로운 것이 아닙니다. Linux가 등장한 후 많은 순수 소프트웨어 모델이 등장했습니다. 이는 병렬 컴퓨팅 클러스터가 가져온 이점이기도 합니다.
>PVM 및 Beowulf와 같은 일부 정보 전송 메커니즘 및 API 라이브러리는 물론 작업 스케줄링 제품도 포함됩니다. 물론 기술적으로 가장 어려운 제품은 병렬 컴파일/병렬 시스템과 같은 보다 지능적인 제품입니다.
4. 애플리케이션 로드 밸런싱 클러스터
클러스터의 가장 큰 목적은 진정한 애플리케이션 독립적인 동적 로드 밸런싱을 달성하는 것이지만 기술적 한계로 인해 특수 애플리케이션에서만 구현할 수 있습니다. 수정될 수 있으므로 범용 제품이 없으며 대부분의 제조업체는 자체 병렬 버전을 보유하고 있습니다. 예를 들면 oracle paraller server 등이 있습니다.
위 내용은 기본적으로 엔지니어링이나 제품 측면에서 나누어져 있고, 기술적인 측면에서는 어느 정도 차이가 있어야 합니다.
다음은 제가 오래 전에 언론홍보를 위해 쓴 글입니다. 상업성도 있고 기술적으로 완전히 맞지 않는 부분도 있습니다. 나는 지금 단지 의견을 교환하기 위해 그것을 당신에게 첨부하고 있습니다. 이는 Turbolinux 회사의 제품을 홍보하기 위한 것이 아니며(나는 Turbolinux 직원입니다), 이를 변경하는 것은 정말 너무 게으른 일입니다. 비록 공공 *** 커뮤니티에 그러한 상업적인 기사를 게시하는 것은 금기시되지만요. 이는 단지 참고용일 뿐이며, Turbolinux 제품의 장점과 단점에 대한 논의에는 참여하지 않겠습니다. 이해해주세요.
저는 리눅스 커뮤니티에서 토론에 참여한 적이 없습니다. 오랫동안 클러스터와 접촉하고 많은 관심을 갖고 있었기 때문에 이번에는 도움을 주기 위해 등록했습니다.
인터넷/인트라넷의 활용이 증가하면서 컴퓨터 시스템의 중요성도 높아지고 있습니다. 낮은 고장률과 높은 성능은 항상 사람들이 추구하는 주요 목표였지만 단일 서버에서는 이 두 가지 문제를 해결할 수 없습니다.
l 가용성 - 많은 서버가 가용성이 99%에 도달했다고 주장합니다. 이 숫자는 무엇을 의미하나요? 즉, 매년 예상치 못한 다운타임이 1%씩 발생한다는 것을 구체적으로 계산해 보겠습니다. 365(일/년) × 24(시간/일) × 1% = 87.6(시간/년). 연간 87.6시간의 가동 중지 시간은 24×7 지속적인 서비스가 필요한 기업에게는 그야말로 재앙입니다.
l 고성능 - 평균 데스크톱 컴퓨터가 초당 수천 개의 요청을 처리할 수 있고 IA 서버는 초당 수만 개의 요청을 처리할 수 있다고 가정합니다. 따라서 초당 수십만 건의 요청을 처리해야 하는 기업의 경우 클러스터 기술을 사용하지 않는 경우 유일한 옵션은 더 많은 고급 중소형 컴퓨터를 구입하는 것입니다. 이렇게 하면 시스템 성능은 10배만 늘어나더라도 구입 가격과 유지 관리 비용은 수십 배, 그 이상 늘어나게 된다.
클러스터 기술의 출현과 발전은 이 두 가지 문제를 매우 잘 해결했습니다.
1. 클러스터
클러스터는 서로 연결된 컴퓨터로 구성된 병렬 또는 분산 시스템입니다. 외부에서는 통합된 서비스를 외부 세계에 제공하는 시스템일 뿐입니다.
클러스터 기술 자체에도 많은 분류가 있고, 시중에 나와 있는 제품도 많아 딱히 표준적인 정의는 없습니다. 일반적으로 다음과 같은 범주로 나눌 수 있습니다.
1. 중복 기반 클러스터
엄밀히 말하면 이러한 중복 시스템은 실제 클러스터라고 할 수 없습니다. 시스템 가용성만 향상시킬 뿐 시스템의 전반적인 성능을 향상시킬 수는 없습니다.
다음과 같은 종류가 있습니다.
A. 내결함성 머신
하드 디스크, 제어 카드, 버스, 전원 공급 장치 등을 포함하여 머신의 모든 하드웨어 구성 요소가 중복된다는 특징이 있습니다.
기본적으로 소프트웨어 시스템과 독립적일 수 있고 원활한 전환이 가능하지만 비용이 매우 많이 듭니다.
대표적인 시장 제품 : Compaq NonStop(Tandem), Micron(NetFrame), Straus
B. 시스템 미러링 기반의 이중 시스템 시스템
특징은 핫 백업을 달성하기 위해 시스템의 데이터와 작동 상태(메모리의 데이터 포함)를 미러링하는 이중 머신 머신을 사용합니다.
끊김없는 전환이 가능하지만 소프트웨어 제어를 사용하기 때문에 시스템 리소스를 많이 차지하며 두 시스템이 정확히 동일한 구성을 요구하기 때문에 성능 대비 가격 비율이 너무 낮습니다.
대표적인 시판 제품 : Novell SFT III, NT용 Marathon Endurance 4000
C. 시스템 스위칭 기반의 듀얼 머신 시스템
듀얼을 사용하는 것이 특징입니다. 시스템 데이터(하드 디스크 데이터만)가 미러링되고, 슬레이브 머신은 호스트 장애가 발생할 경우 시스템 수준 전환을 수행합니다.
성능-가격 비율은 보통이지만 원활한 전환이 이루어지지 않습니다.
대표적인 시장 제품: NetWare용 Legato(Vinca) StandbyServer, Savoir(WesternMicro) SavWareHA(Sentinel), Compaq StandbyServer
애플리케이션 스위칭 기반 클러스터
클러스터 내의 한 노드에 장애가 발생하면 다른 노드가 애플리케이션 레벨 스위칭을 수행할 수 있어 모든 노드가 정상적인 조건에서 외부 세계에 자체 서비스를 제공할 수 있는 것이 특징이며, 이를 정적 로드 밸런싱 방식이라고도 합니다.
성능-가격 비율은 높지만 원활한 전환을 달성할 수 없으며 단일 애플리케이션 자체에 대한 로드 밸런싱을 달성할 수 없습니다.
대표적인 시장 제품: NT용 Legato(Vinca) Co-StandbyServer, Novell HA 서버, Microsoft Cluster Server, NT용 DEC Cluster, Legato Octopus, Legato FullTime, NeoHigh Rose HA, SUN Clusters, Veritas Cluster Server (FirstWatch), CA SurvivIT, 1776
3. 병렬 컴퓨팅 기반 클러스터
주로 과학 컴퓨팅, 대규모 컴퓨팅 및 기타 환경에 사용됩니다. 병렬 컴파일, 프로세스 통신, 작업 분배 등 여러 구현 방법이 있습니다.
전형적인 시장 제품: TurboLinux enFuzion, Beowulf, Supercomputer Architectures, Platform
4. 동적 로드 밸런싱 기반 클러스터
모든 노드는 동일한 서비스를 제공합니다. 이는 고가용성을 제공하면서 개별 애플리케이션의 로드 밸런싱을 가능하게 합니다.
성능-가격 비율이 매우 높지만 현재는 데이터베이스를 지원할 수 없습니다.
일반적인 시장 제품: TurboCluster Server, Linux Virtual Server, F5 BigIP, Microsoft Windows NT Load Balance Service
2. 로드 밸런싱
로드 밸런싱은 시스템 성능을 향상시키는 최첨단 기술입니다. 이전 예를 사용하면 IA 서버의 처리 용량은 초당 수만입니다. 물론 1초에 수십만 개의 요청을 처리할 수는 없습니다. 그러나 시스템을 구성하기 위해 이러한 서버가 10개 있을 수 있다면 말이죠. 이 방법은 모든 요청을 모든 서버에 균등하게 분배하므로 이 시스템은 초당 수십만 개의 요청을 처리할 수 있습니다. 이것이 로드 밸런싱의 기본 아이디어입니다.
실제로 시중에는 많은 제조사의 로드밸런싱 제품이 나와 있습니다. 응용 분야에 사용되는 주요 기술이 다르기 때문에 특성과 성능도 다릅니다.
1. 폴링 DNS
폴링 DNS 솔루션은 기술적으로 가장 간단하고 직관적인 솔루션이라고 할 수 있습니다. 물론 이 솔루션은 로드 밸런싱 기능만 구현할 수 있을 뿐 고가용성을 보장할 수는 없습니다.
DNS 서버에 동일한 인터넷 호스트 이름의 여러 IP 주소 매핑을 설정하는 것이 원칙입니다. 이러한 방식으로 DNS는 호스트 이름을 쿼리하라는 요청을 받으면 루프에서 해당 IP 주소를 하나씩 반환합니다. 이러한 방식으로 서로 다른 클라이언트 연결을 서로 다른 IP 호스트에 배치할 수 있으며 상대적으로 간단한 로드 밸런싱 기능을 달성할 수 있습니다. 그러나 이 솔루션에는 두 가지 치명적인 단점이 있습니다.
l 인터넷 호스트 이름을 기반으로 한 요청에 대해서만 로드 밸런싱을 달성할 수 있으며 IP 주소를 기반으로 한 요청에 대해서는 아무 작업도 수행할 수 없습니다.
l 클러스터의 노드에 오류가 발생하면 DNS 서버는 여전히 쿼리 당사자에게 노드의 IP 주소를 반환하며 실패한 절전 장치에 연결하려는 고객 요청은 계속해서 발생합니다. 연결. 이 경우 DNS 서버의 해당 설정을 수동으로 수정하고 잘못된 IP 주소를 삭제하더라도 인터넷의 모든 DNS 서버에는 캐싱 메커니즘이 있기 때문에 수천 개의 클라이언트가 모두 기다리지 않으면 여전히 클러스터에 연결할 수 없습니다. DNS 캐시 시간이 초과되었습니다.
2. 하드웨어 솔루션
일부 제조업체는 로드 밸런싱을 위한 하드웨어 솔루션을 제공하고 로드 밸런싱 기능을 달성하기 위해 NAT(Network Address Translation) 기능을 갖춘 고급 라우터 또는 스위치를 만듭니다. NAT 자체의 원리는 여러 개인 IP 주소를 단일 공용 IP 주소로 변환하는 것입니다. 대표적인 제품은 Cicso와 Alteon의 특정 고급 하드웨어 스위치 시리즈입니다. 이 솔루션에는 다음과 같은 단점이 있습니다.
l 특수 하드웨어 사용으로 인해 전체 시스템에 비산업 표준 구성 요소가 있어 시스템의 확장, 유지 관리 및 업그레이드에 큰 영향을 미칩니다.
l 가격이 엄청나게 비싸고, 소프트웨어 솔루션과 규모 면에서 근본적인 차이가 있습니다.
l 일반적으로 노드 시스템 수준의 상태 확인만 구현할 수 있으며, 서비스 수준 확인으로 세분화할 수는 없습니다.
l NAT 메커니즘을 사용하기 때문에 클러스터 관리 노드 자체가 완료해야 할 작업량이 많아 전체 시스템의 병목 현상이 발생하기 쉽습니다.
l 이 특정 하드웨어 부분 자체가 단일 실패 지점입니다.
l 원격 노드의 클러스터링을 구현하는 것은 매우 어렵습니다.
3. 협상 가능한 처리(병렬 필터링)
이 솔루션의 원칙은 클라이언트 요청이 모든 노드에서 동시에 수신된 다음 모든 노드가 협상하고 특정 규칙에 따라 이 요청을 처리하는 노드를 결정합니다. 이 솔루션의 가장 주목할만한 특징은 전체 클러스터에 뚜렷한 관리 노드가 없으며 모든 결정은 모든 작업 노드 간의 합의를 통해 이루어진다는 것입니다. 대표 제품은 마이크로소프트의 마이크로소프트 로드 밸런싱 서비스(Microsoft Load Balancing Service)이다. 이 솔루션의 특징은 다음과 같다.
l 노드 간 통신량이 너무 많아 네트워크에 부담이 커지기 때문에 일반적으로 용량을 늘릴 필요가 있다. 노드 통신을 위한 전용 노드의 수는 또한 설치 및 유지 관리의 어려움과 비용을 증가시킵니다.
l 각 노드는 고객의 요청을 모두 받고 분석해야 하기 때문에 네트워크 드라이버 계층의 부담이 크게 증가하여 노드 자체의 작업 효율성이 저하되고 네트워크 드라이버 계층도 느려집니다. 노드 시스템의 병목 현상이 되기 쉽습니다.
l 네트워크 드라이버 계층의 프로그램을 변경해야 하기 때문에 범용 솔루션이 아니며 특수 플랫폼만 지원할 수 있습니다.
l 노드 수가 적을 경우에는 협상의 효율성은 괜찮습니다. 노드 수가 증가하면 통신과 협상이 극도로 복잡하고 비효율적이 되어 전체 시스템의 성능이 저하됩니다. 상당히 비선형적인 감소를 보입니다. 따라서 이러한 솔루션은 일반적으로 이론적으로 최대 12개의 노드만 허용합니다.
l 원격 노드의 클러스터링은 구현할 수 없습니다.
l 클러스터에는 통합 관리자가 없기 때문에 혼란스러운 이상이 발생할 수 있습니다.
4. 트래픽 분배
트래픽 분배의 원칙은 모든 사용자 요청이 먼저 클러스터의 관리 노드에 도달한다는 것입니다. 관리 노드는 처리 능력에 따라 이를 분배할지 결정할 수 있습니다. 요청은 모든 서비스 노드의 현재 상태로 전달됩니다. 하드웨어 또는 소프트웨어 문제로 인해 서비스 노드에 장애가 발생하면 관리 노드는 자동으로 서비스 노드에 대한 트래픽 배포를 감지하고 중지할 수 있습니다. 이와 같이 트래픽을 공유함으로써 전체 시스템의 성능과 처리 능력이 향상되고, 시스템의 가용성이 크게 향상될 수 있습니다.
관리 노드 자체를 하위 클러스터로 만들어 관리 노드 자체의 단일성으로 인해 발생하는 단일 장애 지점을 제거할 수 있습니다. 일부 기존 기술자는 모든 고객 트래픽이 관리 노드를 통과하기 때문에 관리 노드가 전체 시스템의 병목 현상이 쉽게 발생할 수 있다고 믿습니다. 그러나 TurboCluster Server는 고급 직접 라우팅 또는 IP 터널 전달 메커니즘을 통해 문제를 영리하게 해결합니다. 이를 통해 모든 클라이언트 응답 트래픽이 관리 노드를 다시 통과하지 않고 서비스 노드에서 클라이언트로 직접 반환될 수 있습니다. 우리 모두 알고 있듯이 서비스 제공업체의 경우 들어오는 트래픽이 나가는 트래픽보다 훨씬 작으므로 관리 노드 자체가 더 이상 병목 현상을 일으키지 않습니다.
트래픽 분산의 구체적인 구현 방법에는 직접 라우팅, IP 터널링 및 네트워크 주소 변환이 포함됩니다. TurboCluster Server는 현재 가장 효율적인 처음 두 가지를 지원합니다. 이러한 고급 구조와 기술로 인해 TurboCluster Server 클러스터의 서비스 노드 수에는 상한이 없으며, 많은 수의 노드의 공동 작업 효율성도 매우 잘 보장됩니다.
3. 시장 전망
클러스터 기술은 수년 동안 개발되어 왔으며 다양한 분야가 있습니다. 현재 클러스터 기술은 점차 계층적 구조로 나아가고 있으며, 앞으로는 사용자 프런트엔드와 백엔드 전용 클러스터 제품이 분명히 나올 것입니다.
컴퓨터 애플리케이션 상태가 점진적으로 개선되고 시스템 보안의 중요성이 증가함에 따라 클러스터 기술은 확실히 매우 광범위한 애플리케이션 전망을 갖게 될 것입니다.