가상화 기술의 이해가 필요한 이유
운영체제 가상화든 응용프로그램 가상화든 이제 새로운 정보처리시스템을 구축하는데 가상화 시스템의 활용은 더 이상 선택이 아닌 필수가 되었다. 당연히 필자 또한 ISMS-P 인증심사를 비롯해 다양한 업무에서 가상화 시스템을 활용해 구축된 다양한 정보처리시스템을 접하고 관리적, 기술적 보안 이슈에 대해 담당자들과 협의해야 한다. 따라서 실제 가상화 환경에 대해서 어느 정도는 심도 있게 이해하고 있어야 한다. 물론 운영체제와 네트워크, 데이터베이스는 물론 CS 및 웹기반 응용프로그램의 구축에 대해서도 충분히 이해하고 있긴 하지만 가상화 환경은 또 다른 주제로 다가올 수 밖에 없다.
게다가 서버 가상화와 응용프로그램의 가상화를 지원하는 가상화 솔루션의 기술적인 발전은 전통적인 정보처리시스템의 구조만 경험한 엔지니어나 컨설턴트를 당황하게 만들 수 밖에 없다. 이전처럼 서버를 VM(Virtual Machine)으로 만들기만 할 뿐 그 이상의 구현은 전통적인 방식 그대로 구현하는 것이 아니라 가상화 시스템 내에서 새로운 네트워크를 구성하고 서로 다른 물리적인 노드를 관통하는 가상의 단일 네트워크를 구성하여 물리적 2중화를 구현하기도 하며 응용프로그램 또한 개별 서버에 일일히 설치하는 것이 아니라 가상화를 통해 컨테이너의 복제와 배포라는 새로운 개념의 아키텍처를 사용하고 있는 등 과거에는 생각할 수 없는 형태의 정보처리시스템이 구현되고 있다. 게다가 AWS나 Azure 등과 같은 전문적인 클라우드 서비스에서나 가능했던 오브젝트 스토리지와 블록 스토리지를 자체적으로 구현할 수 있는 솔루션을 활용하여 분산되어 있는 스토리지를 통합하여 마치 하나의 스토리지로 가상화하여 서버 또는 응용프로그램에게 자유롭게 필요한 만큼 할당하여 사용할 수 있기도 하다.
이러한 환경에 대해 제대로 이해하고 있지 못하면 업무를 수행할 수 없다 해도 과언이 아닌 것이다. 그래서 기존에 설치해 테스트 용으로 설치하여 사용하던 슬림PC의 VMWare ESXi를 삭제하고 1대의 미니PC를 추가로 구입해 두 대의 PC에 보다 다양한 테스트를 할 수 있는 Proxmox VE를 설치해 두 개의 물리적인 노드를 갖는 클러스터로 구성하였다. 다음 화면이 물리 PC 2대를 사용해 Proxmox 클러스터를 구성한화면이 다.

시놀로지 NAS를 클러스터에서 스토리지로 사용하기
위 화면과 같이 prxmx와prxmx2 두대의 노드로 구성된 클러스터에서도 스토리지를 통합하여 하나의 분산 스토리지 풀을 생성하여 필요한 만큼 각 노드에 할당하거나 가상 머신 및 컨테이너에 할당할 수 있다. (권장은 세 개 이상의 물리적인 노드로 구성하는 것임)
그런데 그런 고급 과정(?)의 테스트를 하기 전에 컨테이너나 가상머신의 백업과 노드 간 복제 등의 작업부터 테스트를 해야 한다. 그 과정에서 재미있는 것을 발견했으니 내가 이미 두 대나 사용하고 있는 시놀로지 NAS의 스토리지를 클러스터에 연결하여 노드에 할당하고 백업, ISO 이미지, 가상서버 이미지, 컨테이너 저장 및 템플릿 저장용도로 사용할 수 있다는 것이다.

위 화면처럼 클러스터(데이터센터)에 추가 가능한 스토리지의 종류는 무척이나 많다. 그 중에서 시놀로지 NAS의 공유폴더를 SMB/CIFS 스토리지로 추가하는 것이 가장 쉬운 방법이다. 시놀로지에 80.ISO 라는 공유폴더를 만들고 proxmox 라는 계정에게 읽기, 쓰기 권한을 부여한 다음 아래 화면처럼 추가한다. (만약 시놀로지 NAS가 없다면 PC나 노트북의 공유폴더를 만들어 구현할 수 있을 것 같다.)

노드에는 해당 스토리지를 사용할 수 있도록 Mount 해줄 노드를 쉼표 (,)를 기준으로 구분하여 입력한다. 즉 위의 경우 prxmx와 prxmx2 노드에서 사용할 것임을 의미하며 ISO이미지 저장, 컨테이너 템플릿 저장, VZDump 백업파일(가상머신 백업 파일) 저장용도로 사용함을 의미한다.
다음과 같이 데이터센터(클러스터)의 스토리지 목록에 synology가 등록된 것을 볼 수 있다.

ISO 이미지는 Rocky리눅스, Ubuntu리눅스 등을 설치할 때 사용하는 파일이고 도커, 쿠버네티스 등에 배포할 컨테이너 템플릿과 가상머신을 백업한 파일(VZDump 백업파일)을 저장하는 용도다.
-2025.01.03 추가-
Proxmox VE 클러스터 환경에 설치된 쿠버네티스(k8s) 노드의 Pod에서 Synology NAS의 NFS를 PV(Persistent Volume)으로 사용하는 것도 가능하다. (보러가기)
가상머신 백업과 복원에 활용
이렇게 노드에서 사용할 수 있도록 클러스터에 등록된 스토리지에 가상머신 이미지를 백업할 수 있다. 가상머신의 백업이미지를 노드의 로컬(local) 스토리지에 저장하는 것은 안전하지 못하므로 시놀로지 NAS나 파일서버를 활용하는 것은 보안상 보다 더 안전하다 할 수 있다.
다음과 같이 노드의 특정 가상머신을 선택하고 “지금 백업”을 선택하면 가상머신을 백업할 수 있다.

위 화면에는 Synology NAS의 스토리지(공유폴더)에 백업본 1개가 존재함을 알 수 있다. (가상머신 ID가 100번이며 백업 이미지에도 ID 100으로 설정되어 있음을 알 수 있다.) “지금 백업”을 누르면 다음과 같이 백업을 수행할 수 있다.

스냅샷 백업도 외부 스토리지에 수행 가능하다. 백업을 수행하게 되면 다음과 같이 Synology의 공유폴더에 백업된 파일이 보인다.

시놀로지 NAS의 공유폴더아래에 dump 라는 폴더가 생기고 백업된 덤프파일이 보이게 된다. 파일에서 빨간색 박스의 숫자는 가상머신의 ID다.
이 백업파일을 활용하면 문제 발생 시 가상머신의 복원은 물론 다른 노드에 해당 가상머신을 복제하는 것도 가능하다.
#proxmox #VM생성하기 #VM백업하기 #다른노드로VM복제하기
답글 남기기