쿠버네티스의 데이터 재해복구, 어떻게 해야 할까

[인터뷰] 권필주 효성인포메이션시스템 전문위원

컴퓨팅입력 :2022/11/17 15:32    수정: 2022/11/18 14:40

데이터센터 재해복구(DR) 솔루션이 다시 뜨거운 관심을 받는 요즘이다. 전통적인 엔터프라이즈 애플리케이션보다 특히 컨테이너와 쿠버네티스, 오픈스택 등의 오픈소스 소프트웨어 기반으로 만든 애플리케이션의 DR 구축 방안에 관심이 뜨겁다.

오픈소스 소프트웨어 진영에서 혜성처럼 등장한 쿠버네티스는 컨테이너 기반 마이크로서비스아키텍처(MSA) 애플리케이션 구축을 위한 기본 플랫폼으로 자리잡았다. 쿠버네티스 등장 초기에 데이터(상태)를  컨테이너에 포함하지 않고, 외부 데이터베이스(DB)에서 정합성을 책임지게 하는 전통적인 3티어 체계(스테이트리스)가 유지됐다. 앱과 데이터가 한몸으로 묶이는 ‘2티어 체계(스테이트풀)’은 데이터의 동시성과 정합성을 보장하기 까다롭기에 소수 사용자만 채택했다.

그러나 수년 사이 컨테이너 안에 데이터까지 포함하는 서비스가 늘고 있다. 이는 쿠버네티스 사용자에게 새로운 도전과제로 떠올랐다. 표준화된 DR 구축 방법이 나와 있지 않기 때문이다.

효성인포메이션시스템 권필주 전문위원

권필주 효성인포메이션시스템 전문위원은 최근 본지와 인터뷰에서 “초창기의 쿠버네티스는 데이터 저장 개념 없는 환경에서 주로 쓰였지만, 점차 표준화되면서 데이터베이스 서비스까지 쿠버네티스에 올리기 시작했다”며 “쿠버네티스의 데이터 저장 서비스 관리세트인 ‘스테이트풀 세트’와 퍼시스턴트볼륨(PVC) 증가율이 최근 2년 사이 점진적으로 상승추세에 있다”고 설명했다.

전통적인 엔터프라이즈급 애플리케이션은 DB 서버가 외장 스토리지의 공유 볼륨을 사용하다가 운영 서버에 장애 발생 시 스탠바이 서버가 이어 받아 서비스를 유지하는 형태의 DR 환경을 채택한다. 만약 쿠버네티스나 오픈스택 같은 오픈소스 플랫폼을 사용할 때 DR은 고려할 게 많아진다.

권필주 위원은 “오픈소스 환경에서 많이 쓰이는 포스트그레SQL 같은 DB는 주로 리플리케이션 방식을 선호해서 내장 디스크 기반 스토리지 볼륨을 서버 노드 수만큼 준비해 1대1로 매칭한다”며 “이 경우 서버를 성능이나 장애 문제로 교체해야 할 때 내장 디스크 내 볼륨을 사전에 백업했다가 복구해야 하며, 서버 장애 시 DB 인스턴스뿐 아니라 내장 디스크 볼륨 접근도 불가능해지는 문제가 있다"고 설명했다.

그는 내장 디스크 대신 외장 스토리지를 쓰더라도 요소 기술 채택을 잘못할 수 있다고 했다. 그는 “클라우드 엔지니어가 오해하는 것 중 하나가 2개 이상 클러스터링된 데이터베이스 서버가 공유 볼룸에 동시에 접근한다고 생각해서 NAS를 고민하는 것”이라며 “공유 볼륨을 사용하는 데이터베이스 클러스터링의 경우 전통적인 스토리지 네트워크(SAN) 환경을 주로 사용하며, 클러스터링된 데이터베이스 서버가 공유볼륨의 액세스를 컨트롤하여 데이터 정합성을 보장하는 구조”라고 말했다.

오픈스택 신더를 이용한 외장스토리지 구성. 공유 볼륨 방식(왼쪽), DB 복제 방식.

기본적으로 쿠버네티스나 오픈스택에서 외장 스토리지의 공유 볼륨을 사용하게 하는 기술은 이미 나와 있다. 오픈스택의 ‘신더(Cinder)’, 쿠버네티스의 ‘퍼시스턴트볼륨(PV)’과 ‘컨테이너 스토리지 인터페이스(CSI)’다.

오픈스택 신더는 블록 스토리지 관리를 자동화하는 기술로, 하나의 볼륨에 여러 가상서버가 접근하게 한다. 두개 이상의 서버가 스토리지 볼륨에 동시에 접근가능하지만, 정합성을 DB 인스턴스의 클러스터링 기술로 관리하게 된다. DB 기반 복제 방식을 쓰는 경우 신더로 각 노드마다 볼륨을 만들고, 장애 발생 시 페일오버는 DB 솔루션에서 책임진다. 오픈소스 커뮤니티 버전에서 DB 페일오버 기능을 제공하는 경우는 거의 없고, 상용 버전에서 주로 제공한다.

쿠버네티스의 경우 퍼시스턴트볼륨이란 걸 생성해서 POD에 마운트해 사용한다. 퍼시스턴트볼륨은 CSI 규격을 지원하는 외장 스토리지에 존재하고, POD가 데이터를 이용할 때 CSI로 할당된 볼륨에 접근한다.

권필주 위원은 “실제로는 씬프로비저닝 스토리지 풀을 구성하고, 특정 SSD나 하드디스크 등을 RAID 구성해 각 클러스터별로 이름을 달리해 쿠버네티스에서 필요할 때 할당 받아 쓰는 형태”라며 “CSI는 이를 관장하는 표준으로 나온지 얼마 되지 않아 안정화 단계에 있다”고 설명했다.

쿠버네티스에서 퍼시스턴트볼륨(PV)과 컨테이너스토리지인터페이스(CSI)를 활용한 외장 스토리지 구성 예

쿠버네티스에 CSI가 표준화되기 전만 해도 스토리지 제공 기업이 각자의 드라이버를 개발해 제공했다. AWS EBS나 구글클라우드 볼륨도 자체 드라이버였다. 현재는 대부분 CSI 드라이버를 제공한다.

앞서 권필주 위원이 주의해야 한다고 언급한 NAS 채택 문제는 DB 환경의 특징과 관련된다.

NAS는 여러 서버가 하나의 볼륨에 동시에 접근해 읽기와 쓰기를 무작위로 하게 되는데, 이런 ‘리드라이트매니(RWX)’는 파일 단위에선 문제없지만, 데이터베이스 파일 안에 테이블 단위까지 업데이트하는 데이터베이스 특성상 추가적인 데이터베이스의 정합성 알고리즘과 NAS의 파일 단위의 정합성 알고리즘이 중첩돼 DB서버의 성능에 영향을 미칠 수 있다.

더군다나 NAS 공유기능으로 말미암아 데이터베이스 서버가 아닌 다른 서버의 접근을 허용할 수 있는 가능성이 있어서 최적의 스토리지 환경으로 바람직하지 않다. 특히 앞서 오픈소스 기반의 DB들은 DB리플리케이션 기반을 사용하기 때문에 각 데이터베이스 인스턴스들이 볼륨을 공유하지 않고 1대1 매핑으로 볼륨을 사용하므로 하나의 인스턴스가 하나의 볼륨을 사용하는 ‘리드라이트원스(RWO)’를 구성을 한다.

따라서, 쿠버네티스에서 정합성을 갖춘 DB를 구성하려면 RWO를 전제로 쓴다. 워커 노드를 액티브 DB와 스탠바이 DB로 따로 만들고, 각자에 퍼시스턴트볼륨을 매핑한다. 액티브 서버와 스탠바이 서버는 DB를 실시간으로 동기화해 동일한 상태를 유지하고 있다가, 장애 발생 시 스탠바이 서버와 해당 퍼시스턴트볼륨을 함께 활성화시켜 페일오버하게 된다.

권 위원은 “외장 스토리지를 DB로 사용하면 오픈스택이나 쿠버네티스 환경에서 서버 교체 시 데이터 마이그레이션이 필요없다는 이점을 얻게 된다”며 “데이터는 한곳에 저장되므로 서버 교체가 수월해지고, 오픈스택의 경우 실시간 이전 기능도 있어서 서버의 가상머신 인스턴스를 다른 물리서버로 이동하면 신더 볼륨도 다시 마운트된다”고 밝혔다.

그는 “쿠버네티스의 경우 물리 서버를 교체하더라도 기존에 사용했던 볼륨을 찾아 다시 마운트하는게 쉽기 때문에 운영이 편해진다”며 “이는 외장 스토리지 전문업체에서 수십년간 축적해온 데이터 관리 기능을 활용하기 때문”이라고 덧붙였다.

쿠버네티스 환경에서 데이터베이스와 외장 스토리지를 구성한 예

현재 오픈소스 소프트웨어만 활용해 지리적으로 떨어진 여러 데이터센터 간의 자동 페일오버를 구축하는 건 쉽지 않다. 물리적 거리를 둔 데이터 미러링은 상용 스토리지 제품에서 지원받을 수 있다. 효성인포메이션시스템은 히타치벤타라의 액티브-액티브 볼륨 동기화 솔루션인 '글로벌 액티브 디바이스(GAD)'를 제공하고 있다.

권 위원은 “신더나 CSI 드라이버로 스냅샷을 호스트에서 생성하는 기능이 있지만, 외장 스토리지로 스냅샷 기능을 오프로드해 복제하면 고속의 스토리지 백업을 활용해 더 빠른 복구가 가능하다”며 “WAS 같은 데이터 저장없는 업무는 스냅샷 생성을 호스트에서 해도 되지만, 데이터를 물고 있는 서비스는 호스트에 부하를 많이 줄 수 있다”고 설명했다.

그는 오픈스택의 멀티 데이터센터 DR을 구현한 실제 사례를 보여줬다. 오픈스택의 경우 액티브-스탠바이 데이터센터 형태의 궁극적 DR 개념이 없다.

권 위원은 “주센터와 DR센터가 떨어진 환경에 대해 오픈스택은 하나의 스토리지를 다른 것으로 복사할 수 있지만, 다른 클러스터가 복제한 볼륨을 마운트해 재해복구하는 개념은 없다”며 “해당 고객은 클러스터를 별도 구성해 운영클러스터의 완전한 다운 시 스탠바이 클러스터를 따로 뒀다가 활용하는 방법을 직접 구현했다”고 말했다.

그는 “쿠버네티스의 경우 아직 국내 사례는 없으나 구현할 수 있는 기술은 준비해둔 상태”라며 “쿠버네티스는 자체 플랫폼에 없는 기능을 커스텀 체계로 추가할 수 있는데, 히타치 리플리케이션 플러그인 포 컨테이너란 기능으로 ‘유니버셜 리플리케이트’ 솔루션을 활용하면 퍼시스턴트볼륨을 원격의 스토리지에 복제할 수 있다”고 설명했다.

그는 “주센터의 쿠버네티스 클러스터에 장애가 나면 스탠바이 클러스터가 별도로 있다가 복제해둔 볼륨을 그대로 마운트해 서비스를 이어갈 수 있다”고 덧붙였다.

액티브-액티브 데이터센터 환경에서 히타치 글로벌액티브디바이스 기능을 활용한 미러링 구성 예

그는 오픈스택과 쿠버네티스 같은 오픈 인프라 기술에서 DR 관련 표준은 아직 걸음마 단계라고 강조했다. DR은 기술 도입으로 끝나는 게 아니라 실제로 업무하는 엔지니어가 일련의 흐름을 제어, 통제하는 프로세스를 수립해야 완비되는 것이기 때문이다.

권 위원은 “DR 체계가 없으면 제어가 물흐르듯 되지 않는다”며 “사용자 활용 시나리오에 따라 별도의 관리 케이스를 만들어야 하고 모의 훈련 케이스도 마련해야 하는데, “아직 갈 길은 멀지만, 조금씩 케이스를 만들어내려는 분위기”라고 말했다.

그는 “쿠버네티스 환경이 엔터프라이즈 환경에 들어오면 복구지점목표(RPO)와 복구시간목표(RTO)는 30분, 한시간이 아니라 0여야 한다”며 “마이크로서비스에서 대규모 DB를 쓰지 않고, DB를 쪼개는 시도도 가능하지만, 데이터 설계를 바꾸는 건 쉽지 않으므로 대용량 DB를 유지하고 가야 하는 상황에서 스토리지 솔루션으로 요건을 충족하는 게 바람직하다”고 강조했다.

관련기사

그는 향후 클라우드 트렌드에 대해 퍼블릭 클라우드에 저장한 데이터를 기업 안으로 다시 가져오는 ‘클라우드 송환’ 문제가 커질 것으로 예측했다.

그는 “업계는 DB를 위한 인프라 플랫폼에 대해 데이터 거버넌스와 보안 때문에 온프레미스 스토리지 구축을 선호하게 될 것이라고 보고 있다”며 “볼륨 프로비저닝 자동화를 제공하고, 검증된 재해복구 및 데이터보호 솔루션을 제공하는 외장형 스토리지 검토가 늘어날 것”이라고 밝혔다.