2011

03월

17

QNAP NAS 서버 자동백업하기.

오랜만에 포스팅을 하는군요. 일본에서 지진이 난것도, 아이패드2가 미국에서 11일 발매된 것도 다 주변사람들의 이야기를 통해 알게 되었습니다.
한 사무실에 있어도 누군가는 정보를 얻을 여유가 생기고, 누군가는 세상이 지금 당장 망하는지도 모르고 일을 하고 있기도 하니 삶이라는건 참 다채롭습니다.

NAS(이하 나스) 장비를 사용하는 분 들 중 상당수가 관리페이지에서 제공하는 백업서비스를 잘 사용하지 않는것을 알게 되었습니다. 제가 생각하기로는 원격백업이라는 이름과 순차적 진행에서 unix계열의 OS를 거의 접해보지 못한 사용자들이 대부분이기 때문이 아닐까 합니다.

또한 윈도우즈 계열의 나스는 백업이 원활하지 않을것이라 예상합니다. 윈도우즈의 경우 OS에서 지원하는 스케줄링이 없는데다가 원격백업을 지원하는 프로그램도 기본적으로 없기때문에 자체적으로 백업을 하는것이 수월하지 않을것 같습니다.? 윈도우즈 계열의 나스장비를 사용해보지 않았기 때문에 제 생각일 뿐입니다. 쿨럭;

기본적인 사항

HDD가 두 개 이상 들어가는 NAS 장비가 필요합니다.
HDD가 하나인 나스라도 상관은 없습니다. 하지만 백업이라는 것은 데이터에 문제가 발생할 경우 최종 복사본을 통해 데이터를 보존하는것이 목적입니다.
HDD가 하나라는 것은 폴더를 달리하여 백업을 하더라도 HDD가 운명할 경우 백업의 의미가 없기 때문에 두 개 이상의 HDD를 지원하는 나스를 사용하는것이 좋습니다. 원본이 있는 HDD가 고장나더라도 둘 다 고장이 날 확률은 적으므로 백업본이 있는 HDD가 살아 있으면 되니까요. 간혹 RAID를 백업과 혼동하시는 분들이 있는데 완전히 틀립니다.

원격백업방식을 이용하여 로컬에 백업하는 편법입니다.
편법이라고 말했지만 잘못된 편법이 아니고 매우 정상적인 방법입니다. 컴퓨터는 스스로도 원격이 될 수 있기 때문에 NAS 서버 자체를 원격지로 설정하여 실제로는 로컬에 백업하는 방법입니다. 여기에 사용된 백업방식은 rsync 서버를 이용한 백업이며 unix 계열 사용자들이라면 많이 아는 방법입니다.

QNAP NAS가 아니더라도 freeNAS OS를 사용하는 제품이라면 비슷한 메뉴가 있을 수 있습니다.
나스 서버의 OS는 freeBSD 계열의 freeNAS와 마이크로소프트의 윈도우 스토리지 서버가 있습니다. QNAP 나스서버에서 사용하는 freeNAS는 unix 계열이므로 스케줄 관리툴인 crontab 과 rsync 서버를 이용하여 백업을 하는 것으로 보입니다. freeNAS 를 사용하는 나스업체들이라면 관리페이지에서 이런 서비스가 있을 수 있습니다.

본격적으로 자동백업 설정을 해보도록 하겠습니다. 이미지는 클릭하시면 크게 보실 수 있습니다.

1. Rsync 서버 활성화.

백업설정을 하기 전에 rsync 서버가 활성화 되어있어야 합니다. 관리페이지의 “애플리케이션 서버 > 백업 서버” 로 이동하여 컨텐츠 영역의 “원격 서버에서 로컬 호스트로 백업할 수 있도록 하십시오”를 체크 합니다.

2. 백업할 폴더 생성

관리페이지의 “액세스 권한 관리 > 공유폴더” 로 이동하여 컨텐츠 영역의 공유폴더 탭에 있는 “새 공유 폴더” 버튼을 클릭합니다.

팝업창이 뜨면 다음을 눌러 진행합니다.

폴더 이름은 백업할 파일을 저장할 폴더명을 적어줍니다. 위의 예를 들자면 test_backup 이라는 폴더에 데이터를 백업할 것입니다.
중요한것은 디스크 볼륨을 정할 때 원본폴더, 파일이 있는 HDD가 아닌 다른 HDD를 선택하는 것 입니다. 이유는 초반의 “기본적인 사항” 에서 설명하였으니 참고하세요. 나머지 옵션은 각자의 필요에 맞게 설정하면 됩니다. 다음으로 진행합니다.

생성한 폴더에 대한 권한을 설정하는 창 입니다. 권한은 가급적 사용자와 사용자 그룹 중 하나를 선택하고, 손님은 액세스 하지 못하도록 하고 다음으로 진행합니다.

만약 이전 페이지에서 “사용자별” 권한을 선택했다면 어떤사용자에게 생성하는 폴더에 접근권한을 줄 것인지, “사용자 그룹별” 권한을 선택했다면 어떤 그룹에게 접근권한을 줄 것인지 선택하는 페이지가 나옵니다.
원하는 사용자, 또는 사용자 그룹을 선택하고 다음으로 진행합니다.

설정을 확인하는 창입니다. 나중에 수정이 가능합니다. 굳이 수정하고 싶다면 당신은 소심쟁이. 깔깔깔~

잠시동안 작성중인 상태가 나옵니다. 완료가 되면 마침 눈앞에 보이는 “마침”버튼을 누르세요 (…)
자, 이제 백업할 파일을 저장할 폴더준비가 끝났습니다. 어머 간단해라~

3. 백업 스케줄 만들기.

“데이터 백업 > 원격 복사” 항목으로 이동하여 컨텐츠 영역의 “새 복제작업 만들기” 버튼을 클릭합니다.
원격 아니냐구요? 맞습니다. 하지만 컴퓨터는 나 자신도 원격이 될 수 있습니다.
참고로 독수리, 부엉이 등의 새는 복제가 안됩니.. 퍽!!!!!!

창이 뜨면 서버유형은 NAS서버를 선택하고 원격 복제 작업 이름을 적어줍니다. 나중에 무엇을 백업하는지 알기 쉬운 이름을 적어주면 됩니다. 서버유형에는 NAS 서버와 Rsync 서버 두 가지가 있습니다. (하지만 이 두가지 모두 같은 Rsync를 이용한 백업입니다.) 다음으로 진행합니다.

원격 서버의 이름 또는 IP 주소에 묻지도 말고 따지지도 말고 반드시 127.0.0.1 을 적어줍니다.
컴퓨터에서 127.0.0.1은 내부 IP 중 나 자신의 IP입니다. 즉 여기서는 NAS 서버 자신을 원격지로 삼겠다는 말입니다.

사용자 이름 및 암호는 백업폴더 생성시에 접근권한을 주었던 이름과 비밀번호, 또는 권한을 주었던 그룹에 속하는 사용자와 비밀번호를 적어줍니다. 테스트를 누르게 되면 정상적으로 이름과 비밀번호로 접속이 가능한지 테스트를 하게 되는데 성공이라는 글이 나오면 됩니다.

참고로 버그인것 같은데 인증실패라는 글이 나오더라도 정상적으로 접근이 되는경우가 있습니다.
펌웨어 버전 3.4.0?Build 0212T에서 확인한 바에 따르면 제가 이미 설정하여 사용하고 있는 백업스케줄의 사용자 정보에서 테스트를 해보면 인증실패가 뜹니다. 하지만 정상적으로 백업은 이루어지는 것을 확인했습니다.

버그라고 생각하는 이유는 사용자 인증을 통한 백업을 하는것이기 때문에 사용자 계정과 암호가 틀리면 백업자체가 될 수 없지만, 관리페이지에서는 인증실패로 나오면서도 실제로 백업은 정상적으로 이루어지고 있기 때문입니다. 혹시 인증실패가 뜨더라도 아이디(사용자 이름)과 암호가 확실하다면 일단 넘어가 보시기 바랍니다.

대상 경로, 즉 백업을 저장할 폴더를 지정하는 창입니다. 대상경로 옆의 입력박스를 클릭하면 그 아래에 선택할 폴더창이 나옵니다. 거기에서 원하는 폴더를 더블클릭하면 됩니다. 여기서는 앞에서 만든 폴더인 test_backup 을 선택했습니다. 다음으로 진행합니다.

주의!! (펌웨어 버전 3.4.0?Build 0212T 기준)
다시 한 번 말씀드리지만 이 창에서는 원본폴더를 선택하는것이 아니라 원본폴더를 저장할 백업폴더를 선택하는것 입니다. 이 부분에 대한 중요성에 대해서는 아래에서 다시 설명하겠습니다.

백업 하기를 원하는 원본폴더를 선택합니다. 여기서는 test_folder 라는 폴더를 선택했습니다.

위에서 주의하라고 말씀드린 이유를 설명하겠습니다.
만약 위의 백업을 저장할 폴더와 이 백업을 하기를 원하는 폴더를 해깔려서 잘못 선택하게 되면 이후에 백업이 실시 될 때 데이터가 삭제가 됩니다.

test_folder 는 폴더와 파일들이 들어있는 폴더이며, 이 폴더를 test_backup 이라는 빈 폴더에 앞으로 백업을 하려고 하는 것 입니다. 만약 위에서 순서를 바꿔서 폴더를 정해주게 되면 데이터를 빈 폴더와 동일하게 만드는것이 아니라 빈 폴더와 동일하게 데이터가 들어있는 폴더를 비우게 됩니다.

재차 확인하고 진행하시기 바랍니다. 남자가 여자 되는 수가 있습니다!

먼저 원본폴더를 선택하고? 백업폴더를 선택하는게 (A to B) 정상적인 흐름 같은데 위와 같이 진행되도록 한 이유를 모르겠습니다. 사용자에게 엿을 선물하고 싶은건 아닐테고 말이죠. 개선되어야 할 UI 입니다.
(아래에 나올 원격복사 옵션에 따라 데이터가 보존 될 수도 있습니다.)

복사할 스케줄을 설정합니다. 시간은 좀 더 따로 떨어뜨려서 일정과 시간을 쉽게 구분하도록 했으면 좋았을텐데 이미지상으로 보면 매월을 선택해야만 시간을 선택할 수 있는것 처럼 보입니다. 아까부터.. 장난하냐?

매일 설정한 시간, 매주 설정한 시간, 매월 설정한 시간으로 백업이 가능합니다. 다음으로 넘어갑니다.

옵션을 설정하는 화면입니다. 옵션에 대해서 설명하겠습니다.

암호화 활성화, 포트번호 :
체크하지 않습니다. 이것은 다른곳에 있는 unix 서버 ( 또는 NAS)에 백업하기 위한 방법입니다.

파일 압축 활성화 :
파일을 압축하여 전송합니다. 빠른 전송을 위해 사용하는것으로 알고 있는데 rsync는 압축파일의 크기가 크면 전송이 잘 안되는 문제가 있는것으로 압니다. 또한 개인적인 생각으로는 NAS장비가 성능이 뛰어나지 않기 때문에 오히려 백업이 더 느려질 수도 있지 않을까 조심스레 판단해봅니다. ( 실제로 사용해보지도 않았습니..; )

복사하는 동안, 네트워크 파일 서비스를 중지하십시오 :
설정한 스케줄의 시간이 되면 모든 네트워크가 해제됩니다. 만약 월요일 새벽 5시에 백업이 되도록 되어있는데, 그 시간에 잠 안자고 나스에 있는 파일을 불러와서 작업을 하고 있다면 끊기게 됩니다. 필요에 따라 선택하세요.

증분 복사 수행 :
체크를 하게 되면 변경되거나 새로 생성되는 파일만 백업을 합니다. 따라서 다음 백업 스케줄 때 시간이 오래걸리지 않습니다. 만약 체크해제 한다면 매 스케줄마다 동일한 파일도 다시 덮어쓰면서 백업하게 됩니다. 개구쟁이가 아니라면 체크해주는 센스~!

원격 수신지에 있는 여분의 파일을 삭제하십시오 :
이것은 백업 용도에 따라 중요할 수 도, 아닐 수 도 있습니다. 진행중인 폴더명으로 설명하도록 하겠습니다.

—- 체크했을 경우 —-
test_folder 폴더안에 a, b, c, d 파일이 있습니다. 스케줄에 따라 test_backup 폴더에도 동일하게 a, b, c, d 파일이 백업이 되고 있습니다. 어느날 사용자가 test_folder의 d 파일을 지우게 되면 다음 백업 스케줄 때 test_backup 폴더에도 d 파일이 삭제되고 양쪽 다 a, b, c 파일만 남게 됩니다.
test_folder 에 e 파일이 생성되어서 a, b, c, e 파일이 있게 되면 test_backup 폴더 역시 동일하게 a, b, c, e 파일이 존재하게 됩니다.

—- 체크하지 않았을 경우 —-
test_folder의 a, b, c 파일을 삭제하고 d 파일만 남아 있더라도 test_backup 폴더에는 그대로 a, b, c, d 파일이 존재합니다. 만약 test_folder에 e, f 파일이 생겨서 d, e, f 파일만 있게 되더라도 다음 백업 때 test_backup 폴더에는 a, b, c, d, e, f 파일이 모두 존재하게 됩니다.
즉, 백업폴더는 원본폴더와 상관없이 새로 추가되는 파일과 폴더가 계속 쌓이게 됩니다.

산재하는 파일을 효율적으로 처리 :
예전에는 없었던 옵션 같은데 펌웨가 업데이트 되면서 언제부터인지 추가된 것 같습니다. 아마도 단편화를 최소화 하여 저장하는 옵션 같습니다. 단편화가 많이 되면 속도저하의 원인이 되므로 체크하는것이 좋겠죠.

추카드립니다. 백업설정이 완료되었습니다.

추카한 백업 스케줄이 생성되었습니다. 당장 테스트나 백업을 해보고 싶다면 우측의 플레이버튼을 클릭하면 됩니다. 만약 백업이 처음이고 백업할 폴더의 용량이 크다면 상당히 시간이 오래 걸립니다. 증분백업을 선택했다면 이후부터는 변경, 추가 또는 삭제된 파일만 적용하게 되므로 시간이 오래 걸리지 않습니다.

이제 백업의 스트레스에서, 그리고 수동백업의 불편함과 귀찮음은 모두 잊으셔도 됩니다. 수정이 필요하면 스케줄 리스트의 우측 수정버튼(연필그림 버튼)을 통해 수정하면 됩니다.

————————————————————————–

백업이 꼭 필요한 파일들이 있는 NAS 사용자들이 의외로 백업하는 방법을 모르는 것 같아서 글을 포스팅 하게 되었습니다. 이번에 재차 느꼈습니다만 제품을 사용자가 쉽게 사용하도록 하는 노력이 많아져야 할 것입니다. 안그래도 사용이 어려운데 설정 순서나 단어, 문구만 조금 바꿔줘도 사용자가 용기를 낼 수 있을텐데 하는 생각이 들었습니다;;