Confidential
(오픈소스컨설팅) Red Hat ReaR (Relax-and-Recover) Quick Guide_v1.0.pdf
Last printed on 4/19/2017 6:31:00 PM
Red Hat ReaR (Relax-and-Recover)
Quick Guide
Project Name:
Department:
Focus Area:
Product/Process: Red Hat Enterprise Linux Server 5, 6 ,7
Prepared By:
Document Owner(s) Project/Organization Role
문경윤 차장
Project Status Report Version Control
Version Date Author Change Description
1.0 2017/04/19 문경윤 차장 Document updated
Configuration Report
Confidential Page 2 4/19/2017
TABLE OF CONTENTS
1 본 문서의 목적 ............................................................................................................................ 3
1.1 작업 일시......................................................................................................................... 3
1.2 작업의 범위 ..................................................................................................................... 3
2 REAR를 사용하기 위한 환경 구성 ................................................................................................ 4
2.1 구성도 ............................................................................................................................. 4
2.2 컴포넌트에 대한 이해 ....................................................................................................... 4
2.3 PXE Boot 서버 설치 및 구성 ............................................................................................. 6
2.4 NFS Server 설치 및 구성 .................................................................................................. 8
2.5 ReaR 설치 및 구성 ......................................................................................................... 10
3 REAR로 시스템 백업하기 .......................................................................................................... 12
3.1 백업 실행....................................................................................................................... 12
3.2 백업 데이터 설명 ............................................................................................................ 13
4 REAR로 시스템 복구하기 .......................................................................................................... 15
4.1 ReaR rescue boot image를 PXE Boot Server에 전송 ...................................................... 15
4.2 복구 대상 시스템을 PXE boot 및 ReaR 복구 ..................................................................... 16
5 RED HAT REAR(RELAX-AND-RECOVER) 설치 보고서 승인 ........................................................ 21
6 APPENDICES ........................................................................................................................... 21
6.1 Document Guidelines ..................................................................................................... 21
6.2 Project Migration Report Sections Omitted ...................................................................... 21
Configuration Report
Confidential Page 3 4/19/2017
1 본 문서의 목적
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를
백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이
문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수
있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
1.1 작업 일시
구분 내용
시간 2017년 4월
장소 N/A
작업자 오픈소스컨설팅 문경윤 차장([email protected]) – Infra Engineer
담당 매니저 N/A
1.2 작업의 범위
이 문서는 아래와 같은 내용을 포함하고 있습니다.
ReaR를 사용하기 위한 환경 구성
Red Hat Enterprise Linux Server 5, 6, 7에서 ReaR를 이용한 백업 및 복구
Configuration Report
Confidential Page 4 4/19/2017
2 ReaR를 사용하기 위한 환경 구성
2.1 구성도
2.2 컴포넌트에 대한 이해
컴포넌트 용도
PXE boot Server ReaR를 이용한 복구 작업 때에만 필요한 시스템.
ReaR로 백업되어 나온 백업 데이터 중 일부인 PXE
boot용 이미지파일을 PXE boot Server에 저장하여
사용하게 된다. PXE boot를 제공해야 하는
시스템이므로 bootp 파일(pxelinux.0), dhcpd, tftp-
server가 구성되어야 한다.
PXE boot client 평소 ReaR로 백업을 하며, 장애 시 복구 대상이
되는 시스템. PXE boot Server로부터 ReaR Rescue
boot image를 제공받게 되는 시스템으로 PXE boot
server와는 동일 L2 네트워크에 위치해 있어야 한다.
Configuration Report
Confidential Page 5 4/19/2017
NAS (또는 NFS Server) ReaR에 의해 백업된 데이터가 평소 저장되는
스토리지. 백업이 실행되면 NAS가 일시적으로 자동
마운트되어 백업되고, 백업이 끝나면 언마운트된다.
ReaR로 백업이 끝나면 NAS에서는 아래 백업
데이터들이 확인된다.
1. Rear rescue boot image
OS 부팅에 필요한MBR, boot loader, 커널 이미지
파일 등을 담고 있는 파일. 복구 작업 때에 PXE
Server에 위치시켜야 하는 데이터이다.
2. backup.tar.gz - /root, /etc, /usr, /var 등의 리눅스
시스템 영역의 데이터들을 백업한 압축 파일. 복구
작업 때에 backup.tar.gz는 PXE boot server에
위치시킬 필요 없다.
Configuration Report
Confidential Page 6 4/19/2017
2.3 PXE Boot 서버 설치 및 구성
PXE boot 서버는 복구 시에만 필요하므로 평소에는 동작시켜 놓을 필요 없다.
Step 1) DHCP 서버 구성
① 패키지 설치 및 설정 파일 구성 (예: dhcp 서버의 ip는 192.168.93.1)
[root@pxeserver ~]# yum install dhcpd
[root@pxeserver ~]# vi /etc/dhcpd/dhcpd.conf
ddns-update-style none;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.93.0 netmask 255.255.255.0 {
option routers 192.168.93.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.93.255;
option domain-name-servers 192.168.93.1;
option domain-name "localdomain";
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.93.2 192.168.93.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.93.1;
filename "linux-install/pxelinux.0";
}
② DHCP server용도로 사용할 NIC(예: bond0)에 IP address(예: 192.168.93.1) 할당 및 확인
[root@pxeserver ~]# ip addr add 192.168.93.1/24 dev bond0
[root@pxeserver ~]# ip addr
③ dhcpd 시작
RHEL 5, 6
[root@pxeserver ~]# service dhcpd start
RHEL 7
[root@pxeserver ~]# systemctl start dhcpd
Configuration Report
Confidential Page 7 4/19/2017
④ dhcpd 실행 상태 확인
[root@pxeserver ~]# netstat -nulp | grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 2483/dhcpd
Step 2) TFTP-Server 구성
① 패키지 설치 및 설정 파일 구성
[root@pxeserver ~]# yum install tftp-server
[root@pxeserver ~]# vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@pxeserver ~]# yum install syslinux
[root@pxeserver ~]# mkdir -p /var/lib/tftpboot/linux-install/pxelinux.cfg
[root@pxeserver ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/linux-install/
② tftp-server 시작
RHEL 5, 6
[root@pxeserver ~]# service xinetd restart
RHEL 7
[root@pxeserver ~]# systemctl restart xinetd
③ tftp-server 실행 상태 확인
[root@pxeserver ~]# netstat -nulp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 2443/xinetd
Configuration Report
Confidential Page 8 4/19/2017
2.4 NFS Server 설치 및 구성
Step 1) 패키지 설치
RHEL 5
[root@nfsserver ~]# yum install nfs-utils nfs-utils-lib portmap
RHEL 6, 7
[root@nfsserver ~]# yum install nfs-utils nfs-utils-lib rpcbind
Step 2) 방화벽 아래에서도 서비스할 수 있도록 NFS 구성 변경
NFS Server는 기본값으로 다중 포트로 동작한다. 이 포트들은 기본적으로 rpcbind에 의해 동적으로
할당된다. 방화벽 환경에서는 이 기본 설정으로 운영할 수 없으므로 포트를 고정시키는 설정이 필요하다.
① /etc/sysconfig/nfs 에서 아래 변수들을 수정
MOUNTD_PORT=port
Controls which TCP and UDP port mountd (rpc.mountd) uses.
STATD_PORT=port
Controls which TCP and UDP port status (rpc.statd) uses.
LOCKD_TCPPORT=port
Controls which TCP port nlockmgr (lockd) uses.
LOCKD_UDPPORT=port
Controls which UDP port nlockmgr (lockd) uses.
※ /etc/sysconfig/nfs 의 위 라인들을 주석 해제해서 적용해도 되며, 서드 파티 프로그램들이 사용하는
포트들과 중복되지 않는 포트들 중 선택 적용해도 된다.
예)
MOUNTD_PORT=892
STATD_PORT=662
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
Configuration Report
Confidential Page 9 4/19/2017
② 방화벽 포트 Open
Allow TCP and UDP port 2049 for NFS.
Allow TCP and UDP port 111 (rpcbind/sunrpc).
Allow the TCP and UDP port specified with MOUNTD_PORT="port"
Allow the TCP and UDP port specified with STATD_PORT="port"
Allow the TCP port specified with LOCKD_TCPPORT="port"
Allow the UDP port specified with LOCKD_UDPPORT="port"
Step 3) NFS server 서비스 시작
RHEL 5
[root@nfsserver ~]# for i in portmap nfs nfslock ; do chkconfig $i on ; service $i start ; done
RHEL 6
[root@nfsserver ~]# for i in rpcbind nfs nfslock ; do chkconfig $i on ; service $i start ; done
RHEL 7
[root@nfsserver ~]# for i in rpcbind nfs nfslock ; do systemctl enable $i ; systemctl start $i ; done
Step 4) /etc/exports 구성 및 적용
① 구성
형식)
# vi /etc/exports
<export할 볼륨의 경로> <NFS client의 주소나 대역>(rw,no_root_squash)
예)
[root@nfsserver ~]# vi /etc/export
/nfs_export 192.168.0.0/24(rw,no_root_squash)
② 적용 및 확인
[root@nfsserver ~]# exportfs -r
[root@nfsserver ~]# exportfs -v
Configuration Report
Confidential Page 10 4/19/2017
2.5 ReaR 설치 및 구성
Step 1) 패키지 설치
RHEL5용 패키지는 레드햇에서 공식 제공하고 있지 않아 EPEL repo 등에서 받아야 한다.
RHEL6용 패키지는 iso엔 포함되어 있지 않고 RHN에서만 받을 수 있다.
RHEL7용 패키지는 RHEL 7.2부터 iso에 포함되어 있으며 RHN에서도 받을 수 있다.
2017년 4월 기준 최신 패키지로 설치하는 것으로 예를 들어 설명한다. ReaR 패키지는 백업 대상
시스템에만 설치한다.
RHEL 5
# yum localinstall rear-1.19-1.el5.x86_64.rpm syslinux-4.02-7.2.el5.x86_64.rpm
RHEL 6
# yum localinstall rear-1.17.2-4.el6.x86_64.rpm syslinux-4.04-3.el6.x86_64.rpm syslinux-nonlinux-4.04-
3.el6.noarch.rpm
RHEL 7
# yum localinstall rear-1.17.2-1.el7.noarch.rpm syslinux-4.05-12.el7.x86_64.rpm syslinux-extlinux-4.05-
12.el7.x86_64.rpm
Step 2) /etc/rear/local.conf 구성
예) 주소는 ”nfsserver”, nfs export path로는 /nfs_export/ReaR/ 를 갖는 NFS Server에 백업하는 설정
# vi /etc/rear/local.conf
OUTPUT=PXE
OUTPUT_URL="nfs://nfsserver/nfs_export/ReaR/"
BACKUP=NETFS
BACKUP_URL="nfs://nfsserver/nfs_export/ReaR/"
AUTOEXCLUDE_MULTIPATH=y
BACKUP_PROG_EXCLUDE=( '/cgroup/*' '/lost+found/*' '/net/*' '/selinux/*' '/media/*' '/service/*'
'/command/*' '/misc/*' '/package/*' '/srv/*' '/dev/*' '/mnt/*' '/proc/*' '/sys/*')
/etc/rear/local.conf 주요 옵션 설명
옵션 설명
OUTPUT ReaR rescue mode부팅용 initrd를 load할 포맷을 지정
PXE : pxelinux
ISO : isolinux
OBDR : Tape Drive
USB : External USB disks
Configuration Report
Confidential Page 11 4/19/2017
OUTPUT_URL OUTPUT 옵션으로 정의된 포맷의 백업 데이터를 저장할 URL
File type: BACKUP_URL=file:///directory/
NFS type: BACKUP_URL=nfs://nfs-server/directory/
CIFS type: BACKUP_URL=cifs://samba/directory/
USB type: BACKUP_URL=usb:///dev/sdc1/directory/
Tape type: BACKUP_URL=tape:///dev/nst0
ISO type: BACKUP_URL=iso:///directory/
BACKUP backup.tar.gz를 스토리지에 전송할 방식 지정
NETFS : NFS or CIFS or local
BAREOS : external backup solution
BACKUP_URL BACKUP 옵션으로 정의된 포맷의 백업 데이터를 저장할 URL
File type: BACKUP_URL=file:///directory/
NFS type: BACKUP_URL=nfs://nfs-server/directory/
CIFS type: BACKUP_URL=cifs://samba/directory/
USB type: BACKUP_URL=usb:///dev/sdc1/directory/
Tape type: BACKUP_URL=tape:///dev/nst0
ISO type: BACKUP_URL=iso:///directory/
AUTOEXCLUDE_MULTIPATH MULTIPATH 장치를 백업 대상에서 제외시킬지 결정 (y or n)
BACKUP_PROG_EXCLUDE 백업 대상에서 제외시킬 디렉토리를 지정. 여러 디렉토리를 지정할 경우
아래 포맷으로 정의.
BACKUP_PROG_EXCLUDE=( '/cgroup/*' '/lost+found/*' '/net/*'
'/selinux/*' '/media/*' '/service/*' '/command/*' '/misc/*' '/package/*'
'/srv/*' '/dev/*' '/mnt/*' '/proc/*' '/sys/*')
RHEL의 최상위 디렉토리 경로 중 백업이 필요하지 않은 디렉토리가
우선적 대상이며, 별도 백업 어플리케이션으로 관리한다면 RHEL의
system 영역이 아닌 서드 파티 어플리케이션의 디렉토리들도 이 옵션의
주요 대상이다.
Step 3) cron job 설정
형식)
minute hour day_of_month month day_of_week root /usr/sbin/rear mkbackup
예) 월~금요일 22:00마다 백업
0 22 * * 1-5 root /usr/sbin/rear mkbackup
Configuration Report
Confidential Page 12 4/19/2017
3 ReaR로 시스템 백업하기
3.1 백업 실행
[root@rhel6_6 ~]# rear -v mkbackup
Relax-and-Recover 1.17.2 / Git
Using log file: /var/log/rear/rear-rhel6_6.log
Creating disk layout
Creating root filesystem layout
TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD
in your configuration file
Copying files and directories
Copying binaries and libraries
Copying kernel modules
Creating initramfs
Copied kernel+initrd (59M) to /var/lib/rear/output
Created pxelinux config 'rear-rhel6_6' and symlinks for MAC adresses in /var/lib/rear/output
Copying resulting files to nfs location
Encrypting disabled
Creating tar archive '/tmp/rear.EH9nJLaH866k0Ks/outputfs/rhel6_6/backup.tar.gz'
Archived 755 MiB [avg 455 KiB/sec]OK
Archived 755 MiB in 1699 seconds [avg 455 KiB/sec]
[root@rhel6_6 ~]#
백업 후 NFS Server의 export path에서 확인되는 백업 데이터의 예
[root@nfsserver rhel6_6]# hostname
nfsserver
[root@nfsserver rhel6_6]# pwd
/nfs_export/ReaR/rhel6_6
[root@nfsserver rhel6_6]# ls -l
total 121048
-rw------- 1 root root 4465564 Nov 27 19:01 backup.log
-rw------- 1 root root 57769984 Dec 14 22:44 backup.tar.gz
-rw------- 1 root root 516 Dec 14 22:38 README
-rw------- 1 root root 24531 Dec 14 22:38 rear.log
-rw------- 1 root root 434 Dec 14 22:38 rear-rhel6_6
-rw------- 1 root root 57534286 Dec 14 22:38 rhel6_6.initrd.cgz
-rwx------ 1 root root 4128944 Dec 14 22:38 rhel6_6.kernel
-rw------- 1 root root 267 Dec 14 22:38 rhel6_6.message
-rw------- 1 root root 267 Dec 14 22:38 VERSION
[root@nfsserver rhel6_6]# cat rear-rhel6_6
default hd
Configuration Report
Confidential Page 13 4/19/2017
prompt 1
timeout 300
label hd
localboot -1
say ENTER - boot local hard disk
say --------------------------------------------------------------------------------
display /rhel6_6.message
say ----------------------------------------------------------
say rear = disaster recover this system with Relax and Recover
label rear
kernel /rhel6_6.kernel
append initrd=/rhel6_6.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0
[root@nfsserver rhel6_6]# cat rhel6_6.message
Relax-and-Recover 1.17.2 / Git
Relax-and-Recover comes with ABSOLUTELY NO WARRANTY; for details see
the GNU General Public License at: http://www.gnu.org/licenses/gpl.html
Host rhel6_6 using Backup NETFS and Output PXE
Build date: Wed, 14 Dec 2016 13:31:42 +0900
[root@nfsserver rhel6_6]#
3.2 백업 데이터 설명
파일 설명
backup.log backup.tar.gz 백업 데이터 생성 시의 log
backup.tar.gz 백업 데이터 파일
README 백업 데이터 파일로 복구하는 방법을 간단히 기술한
파일
예)
How to recovery your system:
----------------------------
You have to put the attached files onto your TFTP
server that will be used
for PXE booting.
If the computer that needs to be recovered uses a
Configuration Report
Confidential Page 14 4/19/2017
different network card than
when the attached Relax-and-Recover files where
created (e.g. you replaced the
broken computer with a new one), then you also
will have to adapt the files in
pxelinux.cfg to match the new MAC address or
adapt your DHCP server to serve
the same IP address to the new MAC address.
YMMV
rear.log ReaR rescue mode 부팅용 initrd 생성 시의 log
rear-<hostname> tftpboot home dir의 pxelinux.cfg/default 파일로
사용
<hostname>.initrd.cgz ReaR rescue mode 부팅용 initrd 파일
<hostname>.kernel ReaR rescue mode 부팅용 kernel 파일
<hostname>.message 백업 데이터의 속성(대상 호스트네임, 백업 방식
등)이 기록된 파일
예)
Relax-and-Recover 1.17.2 / Git
Relax-and-Recover comes with ABSOLUTELY NO
WARRANTY; for details see
the GNU General Public License at:
http://www.gnu.org/licenses/gpl.html
Host localhost.localdomain using Backup NETFS
and Output PXE
Build date: Wed, 19 Apr 2017 10:29:40 +0900
VERSION ReaR 버전 정보를 기술한 파일
예)
Relax-and-Recover 1.17.2 / Git
Relax-and-Recover comes with ABSOLUTELY NO
WARRANTY; for details see
the GNU General Public License at:
http://www.gnu.org/licenses/gpl.html
Host localhost.localdomain using Backup NETFS
and Output PXE
Build date: Wed, 19 Apr 2017 10:29:40 +0900
Configuration Report
Confidential Page 15 4/19/2017
4 ReaR로 시스템 복구하기
4.1 ReaR rescue boot image를 PXE Boot Server에 전송
① NFS Server에 접속하여 백업본을 확인한 후 backup.tar.gz를 제외한 모든 백업본을 PXE Boot
Server에 전송한다. (예: PXE Server의 public IP는 204.11.35.10)
[root@nfsserver rhel6_6]# hostname
nfsserver
[root@nfsserver rhel6_6]# pwd
/nfs_export/ReaR/rhel6_6
[root@nfsserver rhel6_6]# ls -l
total 121048
-rw------- 1 root root 4465564 Nov 27 19:01 backup.log
-rw------- 1 root root 57769984 Dec 14 22:44 backup.tar.gz
-rw------- 1 root root 516 Dec 14 22:38 README
-rw------- 1 root root 24531 Dec 14 22:38 rear.log
-rw------- 1 root root 434 Dec 14 22:38 rear-rhel6_6
-rw------- 1 root root 57534286 Dec 14 22:38 rhel6_6.initrd.cgz
-rwx------ 1 root root 4128944 Dec 14 22:38 rhel6_6.kernel
-rw------- 1 root root 267 Dec 14 22:38 rhel6_6.message
-rw------- 1 root root 0 Nov 27 19:01 selinux.autorelabel
-rw------- 1 root root 267 Dec 14 22:38 VERSION
[root@nfsserver rhel6_6]# rsync -av --progress --exclude backup.tar.gz ./ \
204.11.35.10: /var/lib/tftpboot/linux-install/
② PXE Boot Server에서 추가 작업을 수행한다.
[root@pxeserver ~]# cd /var/lib/tftpboot/linux-install/
[root@pxeserver ~]# cat rear-rhel6_6
default hd
prompt 1
timeout 300
label hd
localboot -1
say ENTER - boot local hard disk
say --------------------------------------------------------------------------------
display /rhel6_6.message
say ----------------------------------------------------------
say rear = disaster recover this system with Relax and Recover
label rear
kernel /rhel6_6.kernel
append initrd=/rhel6_6.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0
[root@pxeserver ~]# cp rear-rhel6_6 ./pxelinux.cfg/default
Configuration Report
Confidential Page 16 4/19/2017
③ dhcpd, tftp-server 실행 중인지 확인
[root@pxeserver ~]# netstat -nulp | grep dhcp
[root@pxeserver ~]# netstat -nulp | grep xinetd
4.2 복구 대상 시스템을 PXE boot 및 ReaR 복구
복구 대상 시스템의 NIC의 Boot ROM을 활성화하고 PXE Boot한다. DHCP로 IP를 할당 받은 직후
TFTP Server로부터 pxelinux.0을 전송 받아 네트워크 부팅이 완료되었다.
Configuration Report
Confidential Page 17 4/19/2017
프롬프트에 “rear”를 입력하면 ReaR rescue image로 부팅된다.
ReaR rescue image로 부팅되었으면 NAS가 외부 네트워크에 존재할 시 NIC에 public ip와 default
gateway를 할당한다.
# ip addr add <ip address> dev <interface name>
# route add default gw <gateway>
Configuration Report
Confidential Page 18 4/19/2017
“rear -v recover”를 입력하면 복구가 시작된다. 모든 복구 과정은 별도 추가 입력 필요 없이 자동으로
진행된다.
Configuration Report
Confidential Page 19 4/19/2017
Configuration Report
Confidential Page 20 4/19/2017
복구가 다 되었으면 파티셔닝 상태를 확인한다. /mnt/local 이라는 임시 디렉토리에 마운트되어 있는 것을
확인할 수 있다. 재부팅하면 복구된 시스템을 확인할 수 있을 것이다.
Configuration Report
Confidential Page 21 4/19/2017
5 Red Hat ReaR(Relax-and-Recover) 설치 보고서 승인
Prepared by __________________________________
Open Source Consulting, Inc.
Approved by __________________________________
Project Manager
6 APPENDICES
6.1 Document Guidelines
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-Relax-and-Recover_ReaR.html
6.2 Project Migration Report Sections Omitted N/A