2.2. Relax-and-Recover 툴을 사용하여 컨트롤 플레인 노드 백업
컨트롤 플레인 노드를 백업하려면 백업 노드를 구성하고 컨트롤 플레인 노드에 Relax-and-Recover 툴을 설치하고 백업 이미지를 생성합니다. 일반 환경 유지 관리의 일부로 백업을 생성할 수 있습니다.
또한 업데이트 또는 업그레이드를 수행하기 전에 컨트롤 플레인 노드를 백업해야 합니다. 업데이트 또는 업그레이드 중에 오류가 발생하면 백업을 사용하여 컨트롤 플레인 노드를 이전 상태로 복원할 수 있습니다.
2.2.1. 지원되는 백업 형식 및 프로토콜 링크 복사링크가 클립보드에 복사되었습니다!
언더클라우드 및 백업 및 복원 프로세스는 오픈 소스 툴 Relax-and-Recover(ReaR)를 사용하여 부팅 가능한 백업 이미지를 생성하고 복원합니다. Rear는 Bash로 작성되었으며 여러 이미지 형식 및 여러 전송 프로토콜을 지원합니다.
다음 목록은 ReaR을 사용하여 언더클라우드 및 컨트롤 플레인을 백업하고 복원할 때 Red Hat OpenStack Platform에서 지원하는 백업 형식 및 프로토콜을 보여줍니다.
- 부팅 가능한 미디어 형식
- ISO
- 파일 전송 프로토콜
- SFTP
- NFS
2.2.2. 백업 노드에 NFS 서버 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
백업 파일을 저장할 새 NFS 서버를 설치하고 구성할 수 있습니다. 백업 노드에 NFS 서버를 설치 및 구성하려면 인벤토리 파일을 생성하고 SSH 키를 생성하고 NFS 서버 옵션을 사용하여 openstack undercloud backup 명령을 실행합니다.
- 이전에 NFS 또는 SFTP 서버를 설치 및 구성한 경우 이 절차를 완료할 필요가 없습니다. 백업하려는 노드에 ReaR을 설정할 때 서버 정보를 입력합니다.
-
기본적으로 NFS 서버의 Relax 및 Recover(ReaR) IP 주소 매개 변수는
192.168.24.1입니다.tripleo_backup_and_restore_server매개변수를 추가하여 환경과 일치하는 IP 주소 값을 설정해야 합니다.
절차
언더클라우드 노드에서 언더클라우드 인증 정보를 가져옵니다.
[stack@undercloud-0 ~]$ source stackrc (undercloud) [stack@undercloud ~]$언더클라우드 노드에서 백업 노드에 대한 인벤토리 파일을 생성합니다.
(undercloud) [stack@undercloud ~]$ cat <<'EOF'> ~/nfs-inventory.yaml [BackupNode] <backup_node> ansible_host=<ip_address> ansible_user=<user> EOF<
backup_node> , <ip_address> , <user>를 환경에 적용되는 값으로 바꿉니다.언더클라우드 노드에서 백업 노드로 공개 SSH 키를 복사합니다.
(undercloud) [stack@undercloud ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node>&
lt;backup_node>를 백업 노드의 경로 및 이름으로 바꿉니다.백업 노드에 NFS 서버를 구성합니다.
(undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-nfs --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/nfs-inventory.yaml
2.2.3. 컨트롤 플레인 노드에 ReaR 설치 링크 복사링크가 클립보드에 복사되었습니다!
컨트롤 플레인 노드의 백업을 생성하기 전에 각 컨트롤 플레인 노드에서 Relax 및 Recover(ReaR)를 설치하고 구성합니다.
알려진 문제로 인해 컨트롤러 노드가 다운된 경우에도 오버클라우드 노드의 ReaR 백업이 계속됩니다. ReaR 백업을 실행하기 전에 모든 컨트롤러 노드가 실행 중인지 확인합니다. 향후 RHOSP(Red Hat OpenStack Platform) 릴리스에 대한 수정 사항이 계획되어 있습니다. 자세한 내용은 BZ#2077335 - 하나의 컨트롤러에 연결할 수 없는 경우에도 오버클라우드 ctlplane 백업 에서 참조하십시오.
사전 요구 사항
- 백업 노드에 NFS 또는 SFTP 서버가 설치되어 구성되어 있습니다. 새 NFS 서버 생성에 대한 자세한 내용은 2.2.2절. “백업 노드에 NFS 서버 설치 및 구성” 을 참조하십시오.
절차
언더클라우드 노드에서 언더클라우드 인증 정보를 가져옵니다.
[stack@undercloud-0 ~]$ source stackrc이전에 수행하지 않은 경우 설치 중에 저장된 위치에서 정적 ansible 인벤토리 파일을 추출합니다.
(undercloud) [stack@undercloud ~]$ cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yaml-
&
lt;stack>을 스택 이름으로 바꿉니다. 기본적으로 스택 이름은overcloud입니다.
-
&
bar-vars.yaml파일에서 백업 스토리지 위치를 구성합니다.자체 NFS 서버를 설치 및 구성한 경우
tripleo_backup_and_restore_server매개변수를 추가하고 값을 NFS 서버의 IP 주소로 설정합니다.tripleo_backup_and_restore_server: <ip_address> tripleo_backup_and_restore_shared_storage_folder: <backup_dir>-
<ip_address> 및 <backup_dir>을 환경에 적용되는 값으로 바꿉니다. 기본적으로
tripleo_backup_and_restore_server매개변수 값은192.168.24.1.*입니다.
-
<ip_address> 및 <backup_dir>을 환경에 적용되는 값으로 바꿉니다. 기본적으로
SFTP 서버를 사용하는 경우
tripleo_backup_and_restore_output_url매개변수를 추가하고 SFTP 서버의 URL 및 인증 정보 값을 설정합니다.tripleo_backup_and_restore_output_url: sftp://<user>:<password>@<backup_node>/ tripleo_backup_and_restore_backup_url: iso:///backup/<
user> , <password> , <backup_node>를 백업 노드 URL 및 인증 정보로 바꿉니다.
컨트롤 플레인 노드에 ReaR을 설치합니다.
(undercloud) [stack@undercloud ~]$ openstack overcloud backup --setup-rear --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml시스템이 UEFI 부트 로더를 사용하는 경우 컨트롤 플레인 노드에서 다음 단계를 수행합니다.
다음 툴을 설치합니다.
$ sudo dnf install dosfstools efibootmgr-
USING_UEFI_BOOTLOADER매개변수 값0을 값으로 교체하여/etc/rear/local.conf에 있는 ReaR 구성 파일에서 UEFI 백업을 활성화합니다.
2.2.4. 백업을 위해 OVS(Open vSwitch) 인터페이스 구성 링크 복사링크가 클립보드에 복사되었습니다!
환경에서 OVS(Open vSwitch) 브리지를 사용하는 경우 언더클라우드 또는 컨트롤 플레인 노드의 백업을 생성하기 전에 OVS 인터페이스를 수동으로 구성해야 합니다. 복원 프로세스에서는 이 정보를 사용하여 네트워크 인터페이스를 복원합니다.
절차
/etc/rear/local.conf파일에서 다음 형식으로NETWORKING_PREPARATION_COMMANDS매개변수를 추가합니다.NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')<
;command_1> 및 <command_2>를 네트워크 인터페이스 이름 또는 IP 주소를 구성하는 명령으로 바꿉니다. 예를 들어ip link add br-ctlplane type bridge명령을 추가하여 컨트롤 플레인 브리지 이름을 구성하거나ip link set eth0 up명령을 추가하여 인터페이스 이름을 설정할 수 있습니다. 네트워크 구성에 따라 매개변수에 명령을 추가할 수 있습니다.
2.2.5. 컨트롤 플레인 노드의 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
컨트롤 플레인 노드의 백업을 생성하려면 openstack overcloud backup 명령을 사용합니다. 그런 다음 노드가 손상되거나 액세스할 수 없는 경우 백업을 사용하여 컨트롤 플레인 노드를 이전 상태로 복원할 수 있습니다. 컨트롤 플레인 노드의 백업에는 컨트롤 플레인 노드에서 실행되는 데이터베이스 백업이 포함됩니다.
사전 요구 사항
- 백업 노드에 NFS 또는 SFTP 서버가 설치되어 구성되어 있습니다. 새 NFS 서버 생성에 대한 자세한 내용은 2.2.2절. “백업 노드에 NFS 서버 설치 및 구성” 을 참조하십시오.
- 컨트롤 플레인 노드에 ReaR이 설치되어 있습니다. 자세한 내용은 2.2.3절. “컨트롤 플레인 노드에 ReaR 설치”의 내용을 참조하십시오.
- 네트워크 인터페이스에 OVS 브리지를 사용하는 경우 OVS 인터페이스를 구성했습니다. 자세한 내용은 2.2.4절. “백업을 위해 OVS(Open vSwitch) 인터페이스 구성”의 내용을 참조하십시오.
절차
각 컨트롤 플레인 노드에서
config-drive파티션을 찾습니다.[stack@undercloud-0 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 55G 0 disk ├─vda1 253:1 0 1M 0 part1 ├─vda2 253:2 0 100M 0 part /boot/efi └─vda3 253:3 0 54.9G 0 part /- 1
config-drive파티션은 마운트되지 않은 1M 파티션입니다.
각 컨트롤 플레인 노드에서 각 노드의
config-drive파티션을root사용자로 백업합니다.[root@controller-x ~]# dd if=<config_drive_partition> of=/mnt/config-drive&
lt;config_drive_partition>을 1 단계에 있는config-drive파티션의 이름으로 바꿉니다.언더클라우드 노드에서 언더클라우드 인증 정보를 가져옵니다.
[stack@undercloud-0 ~]$ source stackrc컨트롤 플레인 노드의 백업을 생성합니다.
(undercloud) [stack@undercloud ~]$ openstack overcloud backup --inventory /home/stack/tripleo-inventory.yaml백업 프로세스는 환경에 대한 서비스를 중단하지 않고 각 컨트롤 플레인 노드에서 순차적으로 실행됩니다.
2.2.6. cron을 사용하여 컨트롤 플레인 노드 백업 예약 링크 복사링크가 클립보드에 복사되었습니다!
Ansible backup-and-restore 역할을 사용하여 ReaR을 사용하여 컨트롤 플레인 노드의 백업을 예약할 수 있습니다. /var/log/rear-cron 디렉터리에서 로그를 볼 수 있습니다.
사전 요구 사항
- 백업 노드에 NFS 또는 SFTP 서버가 설치되어 구성되어 있습니다. 새 NFS 서버 생성에 대한 자세한 내용은 2.1.4절. “백업 노드에 NFS 서버 설치 및 구성” 을 참조하십시오.
- 언더클라우드 및 컨트롤 플레인 노드에 ReaR이 설치되어 있습니다. 자세한 내용은 2.2.3절. “컨트롤 플레인 노드에 ReaR 설치”의 내용을 참조하십시오.
- 백업 위치에 백업을 저장할 수 있는 충분한 디스크 공간이 있습니다.
절차
컨트롤 플레인 노드의 백업을 예약하려면 다음 명령을 실행합니다. 기본 일정은 일요일 자정:
openstack overcloud backup --cron선택 사항: 배포에 따라 예약된 백업을 사용자 지정합니다.
기본 백업 일정을 변경하려면
tripleo_backup_and_restore_cron매개변수에 다른 cron 일정을 전달합니다.openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'cron이 예약된 백업을 실행할 때 백업 명령에 추가되는 매개변수를 정의하려면 다음 예와 같이
tripleo_backup_and_restore_cron_extra매개변수를 backup 명령에 전달합니다.openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_extra":"--extra-vars bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml"}'백업을 실행하는 기본 사용자를 변경하려면 다음 예와 같이
tripleo_backup_and_restore_cron_user매개변수를 backup 명령에 전달합니다.openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}