DR(Disaster Recovery) 백업

[ DR백업 Tip ] 리눅스 서버 백업 가이드

백업만 잘 되어 있다면 언제든 실수로 파일을 지웠거나 해킹에 의한 데이터 망실 또는 랜섬웨어에

걸리더라도 언제든 복구가 가능할 것입니다.

그렇기에 서버관리자는 서버를 운영함에 있어 백업을 항상 염두해 계셔야 합니다.

 

DR 백업 서비스 이용 방법은 FTP 를 이용하여 파일을 전송하는 방법과 CIFS 마운트 (samba) 를

이용하여 데이터를 전송하는 방법이 있습니다.

그 두 가지 방법중 원하는 방법을 선택하여 스크립트를 만들고, cron 스케쥴러에 등록을 하면

설정한 주기로 데이터가 자동으로 백업 되어 집니다.

 

※ 주의 사항

백업 스크립트로 백업을 하실 경우에는 서버 관리자가 보고 있지 않은 상황에서 백업 명령이 일괄 처리되기

때문에 백업 공간이 꽉 차있는 상태에 있거나 백업 대상이 없는 경우, 스케쥴러가 동작하고 있지 않은 경우 등

여러가지 상황을 이유로 백업이 되지 않는 경우가 생길 수 있습니다.

그렇기 때문에 백업스크립트를 작성해서 운영하실 경우, 주기적으로 백업이 잘 되고 있는지 눈으로 확인하는

작업이 꼭 필요합니다.

 

본 매뉴얼에서는 리눅스에서 DR (Disaster Recovery) 백업 서비스 이용하는 방법을 설명 드립니다.

 

 

[방법 1. FTP 전송]

 

FTP 접속을 하기 위한 client 파일을 설치합니다.

 # yum -y install lftp

 

사용자 페이지에서 확인한 '백업 서버 호스트명' 과 '백업 계정명' 을 이용하여 DR 백업 서버에 접속 합니다.

접속 후 사용 가능한 명령들은 아래와 같습니다. 더욱 다양한 옵션은 man lftp 명령을 통해 확인이 가능 합니다.

예) lftp -u {계정명} {백업서버 호스트}

 

* 제공되는 호스트 명은 cloudv '사용자 페이지' 또는 iwinv '관리 콘솔' 에서 확인이 가능 합니다.

 # lftp -u testuser dr1.cloudv.kr

비밀번호: {비밀번호}

 

lftp testuser@dr1.cloudv.kr:~> ls    // 파일 리스트 출력
-rw-r--r--    1 1002     500          1843 Jul 09 01:52 README

 

lftp testuser@dr1.cloudv.kr:/> get README    // 파일 다운로드
1843 bytes transferred

 

lftp testuser@dr1.cloudv.kr:~> put cloudv.zip    // 파일 전송
1034 bytes transferred 

 

lftp testuser@dr1.cloudv.kr:/> mkdir 20190709    // 백업서버에 디렉토리 생성
mkdir 성공, `20190709' 만들었습니다 


lftp testuser@dr1.cloudv.kr:/> cd 20190709    // 백업서버에서 디렉토리 이동
cd 성공, cwd=/20190709

 

lftp testuser@dr1.cloudv.kr:/20190709> lcd /home    // 운영서버에서 디렉토리 이동
lcd 성공, 지역 cwd=/home

 

lftp testuser@dr1.cloudv.kr:/20190709> mirror -Ra    // 데이터 전송 (운영서버 디렉토리 내용을 백업 서버로 전송)
Total: 3 directories, 4 files, 0 symlinks                     
New: 4 files, 0 symlinks
442 bytes transferred

 

lftp testuser@dr1.cloudv.kr:/> exit    // 종료

 

* 주의 사항

위 예제를 대신하여 mirror -Rae 라고 입력하면 erase 옵션이 추가되므로,

원본 서버 (로컬) 에 없는 파일은 백업 서버 (원격지) 에서도 지워주게 됩니다.

R (reverse) 옵션과 e (erase) 옵션은 실수로 인한 데이터 망실 가능성이 있으므로

충분한 테스트를 거쳐 사용하시기 바랍니다.

 

 

[방법2. CIFS (samba) 마운트]

 

samba 디렉토리를 마운트 하기 위해서는 cifs-utils 패키지가 필요합니다.

 # yum -y install cifs-utils

 

마운트할 디렉토리를 생성합니다.

 # mkdir /backup

 

삼바 디렉토리를 로컬 디렉토리로 마운트 합니다.

예) mount -t cifs -o username={계정명},password='{패스워드}',vers=3.0 //{백업서버 호스트명}/{계정명} {마운트할 디렉토리}

# mount -t cifs -o username=testuser,password='12345678',vers=3.0 //dr1.cloudv.kr/testuser /backup

# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/vda1                  25G  1.4G   24G   6% /
devtmpfs                  1.9G     0  1.9G   0% /dev
tmpfs                     1.9G     0  1.9G   0% /dev/shm
tmpfs                     1.9G  8.4M  1.9G   1% /run
tmpfs                     1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs                     380M     0  380M   0% /run/user/0
//dr1.cloudv.kr/testuser  100G   48K  100G   1% /backup

* 운영 서버에 따라 vers=2.0 또는 vers=3.0 으로 접속 합니다.

   버전이 낮은 OS 의 경우 환경에 따라 vers=3.0 이 아닌 sec=ntlmssp 로 연결이 가능 합니다.

   이경우 df 명령으로 서비스 제공받는 용량이 (quota size) 확인되지 않으나, cloudv 사용자 페이지에서 실시간 확인이 가능합니다.

 

cp 나 scp, rsync 등의 명령으로 파일을 복사합니다.

# rsync -avzPog /home/ /backup/20190709/

 

* 옵션 추가 설명

위 예제에서 --delete 옵션을 추가하게 되면 원본 서버 (로컬) 에 없는 파일은 백업 서버 (원격지) 에서도 지워주게 됩니다.

사용시 데이터 원본 위치랑 백업 디렉토리 위치를 변경해서 사용하지 않도록 주의해야 합니다.

 

백업이 완료된 후, 디렉토리를 언마운트를 합니다.

 # umount /backup

 

* 주의 사항

백업 종료시 언마운트를 하지 않고 마운트를 해 놓은채 매일 백업스크립트를 이용하여 백업할 경우

네트워크 순단이나 데몬 재시작 등 여러가지 이유로 인해 마운트가 해제되고, 백업이 되지 않을 수 있습니다.

백업 스크립트 상단에 마운트, 하단에 언마운트 명령을 이용하여 작성 하는것을 권해드립니다.