본문 바로가기

기타

SYSTEM 구성도 개념 - 예제

메일 서버로 시스템의 구성도 방식에 대한 이해를 돕는다.

Active-Stand_by

Active-Active(SAN)

Active-Active(NFS, NAS)

NFS-Network File System

NAS-Network Attached Storage

예제를 통해서 이해 해보자.

출처 : http://mobigen.tistory.com/tag/%EC%9D%B4%EC%A4%91%ED%99%94

지난 "메일 서버 용량 및 구성 어떻게 산정할까요?"라는 제목의 포스트에서 언급되었던 메일 시스템의 이중화에 대해 각 사례별 구성 방법 및 장애 처리 방안을 통해 소개하려고 합니다.

메일 시스템을 이중화로 구성하고 원활한 서비스를 운영하려면 몇가지 유의해야할 사항이 있습니다. 아래에 소개될 유의사항을 유념하여 이중화 구성 시 참고하시기 바랍니다.

(1) 스토리지 구성
스토리지 구성은 서버간 데이터의 공유 가능 여부에 따라 2가지로 분류 될 수 있습니다. 공유가 가능한 구성은 NAS와 NFS가 있고, 공유가 불가능한 구성은 DAS와 SAN이 있습니다. 구성에 따라 적절하게 환경을 설정해야 필요가 있습니다. 구체적인 설정 방법은 아래서 다시 설명하겠습니다.

(2) 로그 구성
로그는 원칙적으로 공유를 불허 합니다. IDX_CACHE 데몬은 LOG를 추적하여 SMS 및 메신저 연동 , 발송시간 갱신 , 메일 정보 갱신등 다양한 기능을 수행하는데, 동일한 로그를 각 서버에서 같이 사용하면 중복 실행의 문제가 발생합니다. 그래서 로그는 반드시 각 서버마다 고유한 영역에 저장되야 합니다.

(3) USERHOST
모든 사용자는 본인의 메일이 저장된 HOST가 지정되고, 그 서버에서 서비스를 이용할 수 있습니다. 대부분의 단일서버 및 스토리지 공유가 가능한 서버에서는 모든 사용자는 localhost로 등록됩니다. 하지만 DAS나 SAN의 경우 각 서버별도 별도의 스토리지를 사용하므로 사용자의 HOST가 반드시 정확히 구분되어 있어야 정상적인 서비스를 제공할 수 있습니다.

(4) QUEUE(큐)
큐 또한 중복 발송 방지를 위해 각 서버가 고유하게 존재해야 합니다.

(5) CRONTAB
메일서비스를 운영하면서 자동으로 수행되는 스크립트들이 있습니다. 메일 정리 , 휴면계정 체크 , 프로세스 체크등 다양한 스크립트는 crontab에 등록되어 자동으로 수행됩니다. 메일 정리, 휴면계정 체크는 사용자의 메일을 핸들링 하는 것이므로, 반드시 한번만 수행되야 합니다. 스토리지가 공유되는 구성에서는 서버별로 실행을 하면 중복 실행이 되므로, 메일 서버 중 하나를 선택하여 그 서버에서만 실행 하도록 설정을 해야 합니다. 또 다른 방법으로, 각 스크립트들이 수행 시간이 길어 진다면 서버별로 특정한 스크립트만 수행하도록 하여 분산을 해도 됩니다. 하지만 이 방법은 관리하는데 문제가 있을 수 있으므로 추천 하지는 않습니다. 각 서버별로 개별적으로 수행되야 하는 스크립트 들이 있습니다. LOG정리 , TOP/PS로그는 공유되지 않으므로 반드시 각 서버마다 수행을 해야 합니다.

(6) 프로세스 모니터링(mail_manage)
CrediMail의 프로세스 모니터링은 mail_manage라는 데몬으로 수행 하고 있습니다. 관리자(Master)서버에서 모든 서버의 프로세스를 체크 하는 방법인데 다중화된 서버의 경우 관리자 서버에는 모든서버의 설정이 등록되야 합니다.

(7) 이중화 구성 예제
이중화는 Active-Active , Active-Stand_by의 2가지 형태로 구성 됩니다. 각 형태별 구성 예제 및 장애 처리 방법에 대해서 구체적으로 확인해 보겠습니다.

사용자 삽입 이미지

[그림 1] Active-Stand by(DAS)


그림 1은 소규모의 사이트에서 일반적으로 사용되는 형태입니다. 평상 시에는 하나의 서버로 운영을 하고, 그와 스펙이 비슷한 서버를 예비로 준비를 합니다. 메일서버는 OS영역과 Data영역이 물리적인 디스크가 분리되도록 관리합니다. 예비서버는 OS가 설치된 형태로 언제라도 부팅하면 바로 사용 할 수 있는 상태로 준비 합니다. 장애가 발생되면 관리자가 판단하여 예비서버로 서비스 해야 한다고 판단이 되면 메일 서버에서에서 Data영역의 디스크를 분리하여 예비서버로 이전한 후 예비서버로 서비스를 운영하면 됩니다. 이 형태는 저렴한 비용으로 이중화를 구성할 수 있지만, 시스템 장애 시간이 길고 안정성이 적은 방법입니다.
사용자 삽입 이미지

[그림 2] Active-Active(SAN)

그림 2는 SAN(Storage Area Network)을 이용한 스토리지를 구축한 형태 입니다. SAN은 공유가 불가능 하므로 사용자가 각 서버별로 고루 분산되도록 구성이 되고, 사용자는 자신이 속한 서버에서만 서비스를 이용할 수 있습니다. L4에 의해 랜덤하게 서버에 접근한 후 사용자 인증 후 자신의 메일서버로 REDIRECT되는 형태 입니다. 사용자의 HOST가 지정되므로 경우에 따라 한쪽 서버로 사용자가 몰리는 경우가 생길 수 있으므로, 사용자 생성 시 고루 분포되도록 유의해야 합니다. 장애가 발생하면 클러스터링(Clustering) SW에 의해 감지가 되고 자동으로 서비스 절체 및 이전이 이루어 집니다. 클러스터링 SW중 하나인 HACMP(고가용성 솔루션,High Availability Clustering MultiProcessing)의 방법을 예로 들자면, 서버#1에 장애가 발생하면 HACMP의 자동 감지에 의해 서버#1의 IP,DISK등의 정보가 서버#2로 이전되어 서버#2에서 서버#1의 서비스를 대신 수행하므로서 시스템 장애 시간을 최소로 줄일 수 있습니다. 외부에서 보면 2대로 서비스 하는 것 처럼 보이지만 실재론 1대로 서비스 하는 것입니다. 이 방법은 클러스터링 SW , SAN관련 장비로 인해 많은 비용이 필요하지만 높은 수준의 안정성을 확보 할 수 있으므로 사용자가 많고, 안정성을 우선하는 곳에서 추천하는 방법입니다.
사용자 삽입 이미지

[그림 3] Active-Active(NFS)

그림 2는 NFS(Network File System),NAS(Network Attached Storage)를 이용한 스토리지를 구축한 형태 입니다. 공유가 가능한 형태로서 모든 서버는 동일 스토리지를 공유하고 동일한 서비스를 제공하므로 사용자는 어느 서버에서든 서비스 이용이 가능합니다. L4에 의해 사용자를 load balancing해 주며 사용자 분산은 1/n(서버대수)에 가깝습니다. 사용자량이 폭주 할 때는 메일SW가 설치된 서버를 추가 하는것으로 간단히 증설할 수 있습니다. L4에 의해 서버#1에 장애가 감지되면 L4는 더이상 사용자를 서버#1으로 연결시키지 않습니다.서버#1의 장애가 복구되기 전까지 서버#2 또는 다른 메일서버들에 의해 서비스 됩니다. 이때의 분산은 1/(n-1)에 가까워 집니다. 서버에 문제가 있어서 몇 일 동안 AS를 받아야 하는 상황이라도 문제없이 서비스 됩니다. 쫌 더 여유가 된다면 그 동안 예비 서버를 추가하므로 예전과 동일한 수준의 서비스를 할 수도 있습니다. L4에 의해 장애가 감지되므로 즉각적인 Failover가 이루어 지므로 서비스 장애 시간을 매우 작게 줄일 수 있습니다. SAN에 비해 매우 저렴한 비용으로 높은 수준의 안정성을 얻을 수 있는 방법으로 메일 시스템의 이중화로 적극 추천합니다. 네트워크 기반으로 공유하는 방식이기 때문에 보안에 취약해 질 수 있으므로, 서비스 네트워크와 NAS 네트워크를 분리하는 것도 좋은 방법입니다.

지금까지 메일 시스템을 이중화 하는 방법에 대해서 알아 보았습니다. 매우 저렴한 방법에서부터 초호화 럭셔리한 방법까지 다양한 이중화 방법이 있습니다. 이중화를 하려는 목적은 단 한가지 입니다. 메일 시스템을 안정적으로 운영하여 메일 시스템 장애로 인해 우리의 비지니스가 피해를 입지 않기 위한 것입니다. 단 몇 시간 또는 몇 일동안 메일에 문제가 발생하여 비즈니스에 큰 영향을 끼쳐 몇 백만 또는 몇 천만의 손해가 나고나서 땅을 치며 후회해도 그땐 이미 늦었습니다. "유비무환"이란 한자성어를 잘 아실것입니다. "미리 준비가 되어 있으면 걱정할 것이 없다"라는 뜻인데, 미리미리 메일 시스템을 이중화하여 아무 걱정없이 메일을 사용하면 좋겠죠? 이중화 방법은 싸이트의 규모나 비용에 의해 달라지니, 메일 전문가인 저희에게 문의하시면 가장 효율적이고 만족스런 방법을 얻으실 수 있습니다.

-- by chulhee, 2008.07.30