오픈소스를 활용한 서버 / 클라이언트 백업 중앙 관리 / 구성 방안
이미지/파일/증분/중복제거 모두 가능한 오픈소스 백업 솔루션 UrBackup
오픈소스를 활용한 서버 / 클라이언트 백업 중앙 관리 / 구성 방안
백업 솔루션 선택
최근 고객사로부터 랜섬웨어, 채굴 악성코드 등의 피해 사례에 대한 문의가 많아지고 있습니다.
기존의 백업은 시스템의 장애 혹은 DR 개념의 백업이 주요 목적이었다면, 최근 들어 악성코드로 인한 데이터 손상도 백업의 주요 목적이 되었습니다.
백업 시스템의 도입은 점점 필수가 되어 가고 있지만, 예산으로 백업시스템 도입이 망설여진다면 오픈소스 백업 솔루션의 도입을 검토해 볼 수 있습니다.
백업 솔루션을 선택할 때 고려되어야 할 사항입니다.
● GUI 관리 툴로 손쉬운 관리
● 중앙 관리 (서버 - 클라이언트 방식)
● 파일백업 기능 (파일 복원 기능)
● OS 이미지 백업 기능 (OS 이미지 복원 기능)
● 네트워크 백업 / 복구
● 증분 백업
● 중복 제거
UrBackup은 오픈소스 백업 솔루션에서도 매우 간편하게 사용할 수 있으며, 위 나열된 기능을 모두 제공합니다.
본 포스팅에서는 백업 솔루션의 설치 방법과 사용방법을 안내합니다.
테스트 환경 구성
● 시스템을 한 개의 네트워크 환경에서 사용한다고 가정하고, 같은 네트워크에 백업 서버를 구성하였습니다.
● 백업 대상 서버의 OS는 리눅스 환경 2대와 윈도우 환경 2대로 구성하였습니다.
UrBackup Server 설치
💡 UrBackup Server 사전 준비
● OS : Ubuntu 22.04
● SW : Docker
UrBackup Server 는 여러 OS 환경에 설치할 수 있습니다.
● Windows
● Debian
● Ubuntu
● RedHat/CentOS/ScientificLinux/Fedora/SuSE/Debian/Ubuntu/Raspbian
● Arch Linux
● Gentoo Linux
● GNU/Linux, FreeBSD
● FreeNAS
● QNAP NAS
● Open Media Vault
● ASUSTOR - ASUS NAS
● Docker
본 포스팅에서는 가장 편리하게 구성할 수 있는 Docker 환경으로 구성합니다.
$ docker run -d --name urbackup-server-1 -v /media/backups:/backups -v /media/database:/var/urbackup -p 55413-55415:55413-55415 -p 35623:35623/udp uroni/urbackup-server
● /media/backups 백업 파일 저장 폴더
● /media/database UrBackup DB 저장 폴더
UrBackup Server 동작 확인
$ docker ps -a
CONTAINER ID
IMAGE
COMMAND
CREATED
STATUS
ca7e911ef417
uroni/urbackup-server
"/usr/bin/entrypoint…"
3 seconds ago
Up 1 second
● Docker에 컨테이너가 올라가면 바로 웹 55414포트로 관리 툴에 접근할 수 있습니다.
(BackupServerIP:55414)
● 기본 관리자 패스워드가 설정되어 있지 않습니다. 설정할 수 있습니다. (첫 생성 유저는 전체 관리자로 생성해야만 합니다.)
○ Setting > Users > Create user
● 클라이언트에 배포될 자동 설치 파일 생성을 위해 아래 정보를 미리 입력해 둡니다. (서버 IP / 보안키)
○ Setting > General > Internet/Active Clients
UrBackup Client 설치
UrBakcup Client는 백업을 할 대상 서버에 설치합니다.
클라이언트를 설치하고 서버와 연결하면 서버에서 백업/복구/스케줄링 등과 관련된 모든 접근이 가능합니다.
UrBackup Client는 주로 사용하는 대다수 OS의 버전에서 설치가 가능합니다.
● Windows
● Linux Binary
● MacOS
● Arch Linux
● Gentoo Linux
● Client Source for Linux
테스트 환경에서는 Ubuntu Linux와 Windows 10의 백업 대상 서버를 만들어 두었고, 총 4개의 서버에 백업 클라이언트 소프트웨어를 구성했습니다.
클라이언트에 설치될 설치 파일은 관리 서버에서 다운로드 가능합니다.
Status > Add new Client
Client 이름을 입력하여 클라이언트를 생성하면 클라이언트는 아직 연결되지 않은 걸 확인할 수 있고, 클라이언트에서 설치할 설치 파일을 다운로드할 수 있습니다. (Status > Download Client)
다운로드 받은 설치 파일은 윈도우는 .exe 실행파일이고, 리눅스는 .sh 실행파일입니다.
● Windows OS에서의 백업 클라이언트 설치
다운받은 .exe 파일을 실행하고 설치합니다.
트레이에 생긴 UrBackup 을 확인하고, 우클릭하여 설정할 수 있습니다.
Client의 Computer Name은 서버에서 등록한 Computer Name 과 동일해야 합니다. 서버의 IP를 입력하고 완료합니다.
서버가 연결되면 서버에서 설정된 내용에 맞춰 백업을 시작합니다.
● Linux OS에서의 백업 클라이언트 설치
다운 받은 파일을 sudo 권한으로 실행합니다. 볼륨 스냅샷 방법을 정할 수 있는데, 저는 4. Linux Device mapper 스냅샷으로 설정하였습니다.
스냅샷은 클라이언트를 한번 재부팅해야 정상 동작한다고 정보가 나오네요.
아래 명령어로 동작 여부를 확인 할 수 있습니다. 인터넷 서버와 연결이 되어 있지 않은 것을 확인할 수 있습니다.
제거 필요시 간단하게 제거할 수 있습니다.
제공되는 명령어는 아래와 같습니다. 커맨드 명령어도 조작이 간편합니다.
$ sudo urbackupclientbackend
$ sudo urbackupclientctl
$ sudo urbackupclient_dmsnaptool
$ sudo uninstall_urbackupclient
클라이언트 설정이 모두 완료되었다면, 서버에서 4개의 클라이언트가 확인됩니다.
백업 설정
파일 백업 설정 기본 구성은 아래와 같고, 변경할 수 있습니다. (Setting > File Backups)
● 증분 백업 : 5시간에 1회 수행
● 풀 백업 : 30일에 1회 수행
그 외 최대 백업 본의 보관 수나 클라이언트별 백업 폴더 등을 설정할 수 있습니다.
이미지 백업 설정 기본 구성은 아래와 같고, 변경할 수 있습니다. (Setting > Image Backups)
● 증분 백업 : 7일에 1회 수행
● 풀 백업 : 60일에 1회 수행 (비활성화)
그 외 최대 백업 본의 보관 수나 압축방법 등을 설정할 수 있습니다.
이미지 백업은 UrBackup에서 제공하는 부트 이미지를 이용하여 서버의 OS 영역을 완벽히 복원하거나, 새로운 장비에 복원이 가능합니다.
손상 파일 복구
사용 중 파일 및 폴더가 오염되었거나, 삭제되었다면 파일 복원이 가능합니다.
백업은 백업 설정에 따라 일자별/시간별로 보관되어 각 일자별/시간별 폴더 및 파일 내용을 확인할 수 있습니다.
예를 들어 5시간마다 파일 증분 백업으로 설정했고, 랜섬웨어를 가정한다면 랜섬웨어로 파일이 오염된 시점 이전으로의 복원이 가능합니다.
파일을 복구하는 방법은 관리 툴의 Backups 메뉴에서 가능합니다.
백업 클라이언트를 선택하고 백업 일자를 선택하면 폴더 목록 파일 목록을 확인할 수 있고, 전체/선택 폴더/선택 파일 등으로 Restore 기능을 제공합니다.
Restore 버튼을 누르면 클라이언트의 파일이 바로 복구됩니다. 혹은 ZIP 파일로의 압축하여 다운로드할 수도 있습니다.
리눅스에서는 바로 복원은 클라이언트에서 urbackupclientclt 명령어를 이용하여 가능합니다.
그 외 폴더 및 파일을 다운로드하거나 확인하는 방법은 동일합니다.
손상 OS 복구
OS 복구 테스트를 위해 Client #3의 이미지 풀 백업을 스케줄링이 아닌 미리 진행했습니다.
Client #3의 OS와 물리적 하드웨어 장애가 있다는 가정으로, 새로운 시스템인 Client #6을 준비하였고 Client #3의 OS를 Client #6에 복원합니다.
OS 복원을 위해 UrBackup에서 제공하는 복구용 ISO 이미지 부팅하여 진행합니다. (UrBackup 사이트에서 다운로드 가능합니다.)
그래픽인터페이스와 커맨드 인터페이스를 선택할 수 있습니다. 보기 좋게 GUI를 선택했습니다.
언어 설정과 타임라인 설정을 스킵하고 서버와의 연결 설정을 해야 합니다. (Configure Internet server)
서버가 구성된 IP와 초기 구성시 입력한 보안키를 입력합니다.
서버 초기 구성시 입력한 ID와 패스워드를 입력합니다.
복원할 클라이언트 이미지를 선택하고, 복원될 디스크를 선택합니다.
복원 후 재부팅하면 복원된 이미지로 부팅되는 것을 확인할 수 있습니다.
오픈소스로 백업 환경을 구성한다면…
상용 솔루션을 사용한다면 기술 지원 측면에서 보다 편하게 사용할 수 있습니다.
하지만 UrBackup은 상용에서도 찾아보기 힘들 정도로 다양한 핵심 기능을 제공하고 있고 조작이 매우 직관적이고 편리합니다.
서버 관리를 처음 하는 초보 관리자도 단 몇 시간만 학습하면 사용할 수 있습니다.
백업에 매년 라이선스 비용을 지불하며 사용하거나, 클라이언트 숫자가 늘어날 때마다 라이선스를 추가해야 하는 게 부담된다면 백업 서버를 오픈소스로 구성하시는 것은 좋은 선택지가 됩니다.
2023.09.04