YoonWould!!<인턴생활>/[인프라] [용어]HA, 클러스터링, 이중화, RAID란 무엇인가?Hading 2019. 4. 15. 16:48 HA (High Availability : 고가용성, 고가용도) 가용성은 시스템 고장 발생 시 얼마나 빠른 시간내에 치료가 되어 다시 정상적으로 서비스할 수 있는 상태인지를 분석하는 척도 입니다. 따라서 HA 구성이란 이러한 가용성을 극대화 시키는 구성을 말하는 것으로서 '클러스터링, 이중화, RAID'는 범위로 보면 HA 를 이루기 위한 방식이라 볼 수 있습니다. 하나의 컴퓨터 시스템이나 네트워크는 전체의 운영을 위해 모두가 사용 가능한 상태로 있어야만 하는 수많은 부품으로 구성되어 있기 때문에 HA를 구성하기 위한 계획은 '백업'이나 '장애극복 처리' 및 '데이터 저장' 및 '엑세스'에 집중되어 있습니다. 저장 장치의 경우 RAID가 그 중 하나의 접근방법이며 SAN 같은 방법을 이용합니다. 고 가용성 전문가들은 만일 어떤 시스템에 HA가 요구된다면 그 시스템의 모든 부분이 잘 설계되고 실제 사용전에 완전하게 시험이 되어야 한다고 강조합니다. 클러스터링 (Clustering) 클러스터링이란 서버를 하나의 시스템처럼 관리 운영하기 위해 사용하는 기술 입니다. 클러스터 시스템의 응용분야는 고가용성 클러스터 시스템, 고성능 클러스터 시스템, 웹서버 클러스터 시스템이 있습니다. 고가용성 클러스터 시스템이란 PC또는 서버를 연결하는 목적이 가용성을 높이기 위한, 즉, HA를 높이기 위한 것을 얘기하는 것이고 고성능이나 웹서버 또한 비슷하게 이해될 수 있습니다. MS 2003 제품군에서 제공하는 클러스터 서비스는 MSCS(Microsoft Cluster Service)라고 합니다. Windows 2003 Enterprise Edt. 와 Datacenter Edt. 에서만 사용할 수 있는 이 서비스는 DB, 메시징 시스템, 파일 및 인쇄 서비스등 중요한 응용 프로그램에 뛰어난 가용성과 확장성을 제공합니다. 또한 클러스터에 있는 여러 서버 (노드 : node) 간의 통신은 안정적으로 유지됩니다. 오류나 유지관리 작업으로 인해 클러스터의 노드 중 하나가 사용되지 않는다면 즉시 다른 서버(노드)에서 장애조치 서비스를 제공하기 시작합니다. 이 서비스에 대한 ACCESS가 끊이지 않고 계속 지원됨으로 사용자는 장애사실을 알 수 없습니다. 상용서비스를 위한 제약사항이 있습니다. 1. AD Server (Active Directory Server)가 구성이 되어 있어야 합니다. 2. DB 및 파일서버에는 최소한 Raid 2 ~ Raid 5 가 구성되어 있어야 합니다. 3. DNS가 되어 있어야 합니다. 이중화 (Duplex 또는 Duplication) HA를 높인다는 표현을 많이 하는데 어떻게 하면 될까요? 가장 기본적인 방법은 이중화(Duplication)를 구현하는 것입니다. 서버를 한대만 두는 것이 아니라 두대를 두는 것이죠? 이 경우 두대로 동시에 서비스를 할 수 도 있고 한대만 서비스를 하고 다른 한대는 여분으로 두었다가 한대에 장애가 발생하면 여분이 동작하게 하는 방법이 있습니다. 전자를 HOT이라고 하고 후자를 COLD라고 합니다. 레이드 (RAID : Redundant Array of Inexpensive Disks) Inexpensive와 Independant가 혼용되어 사용됩니다. RAID는 하드디스크 다시 말하면 저장장치를 이중화 (Duplication) 시키는 방법 입니다. 서버를 이중화 시키는 방식도 있지만 하드 디스크를 이중화 시킬 수 도 있습니다. 목적은 서버를 이중화 시키는 것과 유사합니다. 저장장치의 Fault로 인한 가용성 감소를 막기위하여 저장장치를 중복으로 구성해서 가용도를 높이기 위함 입니다. 이는 메커니즘에 따라서 RAID0 부터 RAID5까지 다양한 방식이 있습니다. 간단히 설명하면 RAID 1 (미러링 : Mirroring)은 물리적으로 두개의 하드디스크를 하나로 잡아줍니다. 하나에 기록하면 다른 하드디스크에 똑같은 사본이 저장됩니다. RAID는 0,1,5만 기억하시면 됩니다. 1. RAID 0 (스트라이핑 : Striping) 2. RAID 1 (미러링 : Mirroring) 3. RAID 5 (스트라이핑 + 패러티 : Striping + Parity) RAID 0 (Striping) 은 스트라이핑은 하드 디스크 여러개를 묶어서 하나처럼 쓰는 기술입니다. 대용량 디스크를 만들 수 있고 분리해서 읽고 쓰기 때문에 속도 또한 빨라 집니다. DISK 0, 1, 2를 RAID 0으로 구성하면 읽고 쓰는 속도가 3배는 빨리 집니다. 단점은 하드 디스크 하나가 Fault가 나면 전부 다 날라갑니다. 이를 보완하는 것이 RAID 5 (Striping + Parity) 입니다. RAID 1 (Mirroring)은 철저한 장애대비용 입니다. 똑같은 걸 두개 이상의 하드 디스크에 저장하는 것 입니다. DISK 0, 1, 2를 RAID 1으로 구성하면 셋중에서 두대가 Fault가 나도 관계 없을 겁니다. ※ 실제 필드에서는 RAID 10 (Mirroring + Striping)을 많이 사용합니다. RAID 5 (Striping + Parity)는 RAID 0 (Striping)과 패러티(Parity)를 합친 것 입니다. Parity Drive는 쉽게 말해서 RAID 0으로 데이터를 분산시켜서 구성하는데 RAID 0의 단점을 보완하기 위해 복구용 정보를 보관하는 드라이브 입니다. 하나라 Fault가 나는 경우 복구가 불가능한 RAID 0의 단점을 보완하는 것이죠 [출처] HA, 클러스터링, 이중화, LAID란 무엇인가? Clustering이란 두대 이상의 서버가 하나의 서버가 처리하는 것처럼 보이도록 서버들 간의 확립된 연결(Establishing Connectivity) 입니다. 이 클러스터링은 장애 대응 시스템(fail-over), 부하분산(load balance) 시스템 혹은 병렬처리 프로세싱에 사용될 수 있는 기술입니다. 한 예로, 장애 대응 시스템의 클러스터링은 응용프로그램과 서비스의 고가용성(High-Availability)을 유지하기 위해 동시 작동하는 서버들의 집합입니다. 예를 들어 어떤 이유에서 하나의 노드에 장애가 생기면 다른 노드는 그 처리를 받고 사용자에게 무중단의 서비스를 제공합니다. Clustering Diagram 클러스터 관리는 별도의 서버에서 수행되며 두 노드를 관리합니다. 이 관리서버는 주기적으로 두 노드에 상태 점검(Hearbeat)하여 하나의 노드에 장애가 발생시 다른 노드로 부하를 이전하는(Fail-Over) 역할을 수행합니다. 클러스터를 사용하려면 <업계에서 사용하는 클러스터링의 종류, 장단점을 알아야 합니다. 근래 컨설팅 중 HA를 위해 시스템 이중화한 사례를 소개할까 합니다. WEB, WAS, DB는 A(Active)/A 구조로 tire간 클러스터링 구조이며 서비스를 위한 Daemon은 A/P(Passive) 구조입니다. 이로 인해 L4는 A/P 구조이며 SVC의 Daemon을 감지하여 A/P 방식으로 트래픽을 제어합니다. 결과적으로 Active SVC1는 L4로 트래픽을 보내 재귀호출 하는 방식이 되어버립니다. 서버 자체적으로 해결할 수 있는 프로세싱이 불필요 트래픽과 부하가 발생하게 됩니다. 서비스 flow 이를 보완하기 위해 HA Cluster 구성을 위한 여러 솔루션 중 본 글에서는 요즘 OpenSource에 사용중인 “Pacemaker”를 다뤄보겠습니다. Pacemaker는 Cluster 관리를 위해 근래 apache storm, openstack 등에 사용하는 분산 코디네이터 입니다. Pacemaker 는 크게 5가지 기능이 있습니다.
그 외에 다양한 구성의 HA 클러스터에 대응합니다.
보통 데이터 전환 방식과 노드 수에 따른 분류 두가지 방식이 쓰입니다. 데이터 전환 방식으로는 공유 구성, 비공유구성(PG-REX, twitter나 Instagram에서 사용하는 DRDB)와 노드 수에 따른 분류로는 1+1(Active/Standby구조), N+1(다수의Active노드와 하나의 Standby노드), N+M(다수의 Active노드와 다수의 Standby노드)로 분류합니다. 코어 컴포넌트는 다음과 포함합니다.
내부 컴포넌트의 구성은 다음과 같습니다.
Pacemaker Stack Internal Components Linux-HA Japan Community에는 2가지 패턴 조합을 권장하고 있습니다.
Active/Passive 이중화
Active/Active 이중화
스토리지 Fail-over Active/Passive 구조에서 ip, 서비스(http), storage(docurmnt root)의 HA 구성 후 fail-over 테스트에 대한 결과 간단한 예입니다. 환경 구성은 clusterlabs 사이트를 참고 하세요. http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Clusters_from_Scratch/index.html 시나리오 구성도 pcmk-1(Active) : 192.168.100.123, 192.168.100.122(vip) pcmk-1 service : http pcmk-1 storage : /var/www/html cluster status 관리 리소스는 ClusterIP, WebService, WebFileSystem 입니다. 노드 pcmk-1 Active 노드에서 서비스 되고 있습니다. Passive 노드의 ip와 서비스, 스토리지 상태를 보면 pcmk-2(Passive) : 192.168.100.124 pcmk-2 service : http : 존재하지 않음 pcmk-2 storage : /var/www/html : 존재하지 않음 장애 상황을 만들어(pcmk-1 shutdown) 리소스들이 모두 fail-over 되는지 확인합니다. pcmk-2에서 pcmk-1로 ping 테스트 pcmk-2 IP :
192.168.100.124, 192.168.100.122(vip) pcmk-2 service : http pcmk-2 storage : /var/www/html cluster status 관리 리소스 ClusterIP, WebService, WebFileSystem 모두 pamk-2 서버로 fail-over 되어 pcmk-2 노드가 Master 역할을 수행합니다. 예전 VCS(Veritas Cluster Server, 현재 Veritas InfoScale)라는 솔루션을 다뤄본 적이 있습니다. Pacemaker가 상용 제품의 세세한 기능까진 포함하지 않지만 소규모 단위의 클러스터링 구성은 pacemaker만으로도 충분한 구성이 가능합니다. 현재 twitter나 instagram의 대용량 서비스(deep-dive한 구성은 필수), snapshot버전이지만 Apache Storm, OpenStack(Control Node)에 적용으로 SOA, MSA의 loose coupling 구조에서의 유연한 scaling 아키텍처에 만족할 만한 저비용 고성능 HA 솔루션이 아닐까 합니다. [참고사이트]
namoosori 안녕하세요. 나무소리 입니다. 나무소리는 넥스트리(주)의 교육 브랜드 입니다.넥스트리가 지난 20년 동안 쌓아온 개발 및 교육 경험들을 나무소리를 통해 많은 분들과 공유 하려고 합니다.앞으로 저희 나무소리를 통해 보다 나은 교육을 경험 하실 수 있도록 구성원 모두 최선을 다하겠습니다. Subscribe to NextreesoftGet the latest posts delivered right to your inbox Great! Check your inbox and click the link to confirm your subscription. Please enter a valid email address! |