ESXi 호스트 구성을 백업하는 4가지 방법

가상화는 데이터 보호, 운영 연속성 및 가용성의 기반이 되는 백업 및 복구 작업에 대해 여러 가지 이점을 제공합니다. 무엇보다도, 가상화는 에이전트 없이 이미지 기반의 호스트 수준 백업을 가능하게 합니다. 이러한 유형의 백업은 VM 구성 및 VM 데이터를 포함한 전체 VM을 캡처할 수 있습니다.

그러나 VM이 올바르게 실행되기 위해서는 호스트도 보호하는 것이 중요합니다. ESXi 호스트가 건강하면 VM이 올바르게 실행될 수 있습니다. ESXi 구성도 백업하는 것이 권장되며, 사용 가능한 호스트 백업은 ESXi 서버를 처음부터 설정할 필요 없이 몇 분 안에 호스트 구성을 복원하는 데 도움이 될 수 있습니다. ESXi 호스트 백업에 대한 다양한 방법을 알아보려면 계속 읽어보세요.

방법 1: ESXi 호스트 백업을 위해 ESXi 명령줄 사용

ESXi 명령줄 사용은 ESXi 호스트 구성을 백업하는 가장 경제적인 방법입니다. ESXi 명령줄을 사용하려면 추가 소프트웨어를 설치할 필요가 없습니다. ESXi 쉘 및 원격 SSH 액세스를 활성화하기만 하면 됩니다. SSH를 통해 ESXi 호스트에 연결한 후 명령을 실행할 수 있습니다.

ESXi 구성은 /bootblank/state.tgz 파일로 매 시간 자동으로 저장됩니다. 따라서 현재 ESXi 구성이 ESXi 구성 파일에 기록되어 있는지 확인하여 마지막 자동 저장 이후 ESXi 구성에 대한 변경 사항이 모두 저장되도록 해야 합니다. 이를 수행하려면:ESXi 구성을 영구 저장소와 동기화하고 확인하십시오:
vim-cmd hostsvc/firmware/sync_config

  1. 이스시 구성을 체크하고 영구 저장소와 동기화하세요:

    vim-cmd hostsvc/firmware/sync_config

  2. 동기화가 완료되면 ESXi 구성을 백업하세요:

    vim-cmd hostsvc/firmware/backup_config

    결과적으로 ESXi 호스트에서 configBundle.tgz 아카이브의 다운로드 링크를 받게 됩니다.

    http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz

  3. *에스큐엘 호스트의 IP 주소로 대체됩니다. ESXi 구성 백업을 포함하는 아카이브 파일은 잠시간 (/scratch/downloads 디렉토리에 저장됩니다 (몇 분 동안).

    ESXi 호스트의 IP 주소는 ESXi 직접 콘솔 인터페이스 또는 다음 명령을 사용하여 명령 줄에서 찾을 수 있습니다:

    esxcli network ip interface ipv4 get

    현재 예제에서 사용된 ESXi 호스트의 IP 주소는 192.168.101.208입니다.

  4. ESXi 백업 아카이브를 가능한 빨리 다운로드하고 안전한 위치에 저장하세요.

ESXi 명령 줄에서 ESXi 구성 백업을 자동화하는 방법

명령 줄 인터페이스의 장점은 자동화 기능을 제공한다는 것입니다. ESXi 구성 백업도 예외가 아닙니다. 이를 수행하는 단계를 살펴보겠습니다:

  1. ESXi 데이터 스토어에 백업 파일을 저장할 디렉토리를 만듭니다.

    mkdir /vmfs/volumes/datastore1/ESXi_backup

  2. vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  3. 스크립트에 다음 줄을 추가하십시오:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

    find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz \;

  4. 파일을 저장하고 나가십시오 vi:

    :wq

    주의: 더 큰 편의를 위해 ESXi 호스트 이름 또는 IP 주소를 백업 파일 이름에 포함할 수도 있습니다. 이렇게 하면 여러 ESXi 호스트로 인한 혼란을 피할 수 있습니다.

  5. 스크립트를 실행 가능하게 만듭니다:

    chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  6. 스크립트가 위치한 디렉터리로 이동합니다:

    cd /vmfs/volumes/datastore1/ESXi_backup/

  7. 스크립트를 실행합니다:

    ./esxi_backup.sh

  8. 백업 파일이 생성되었는지 확인합니다:

    ls -al

  9. ESXi 구성 백업 스크립트가 예약된대로 실행되는지 확인합니다. 이를 위해 스케줄러 구성을 편집합니다:

    vi /var/spool/cron/crontabs/root

  10. 매일 새벽 02:10에 ESXi 구성 백업을 수행하도록 다음 문자열을 추가합니다:

    10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  11. 파일에 변경 사항을 저장합니다. 읽기 전용 파일에 변경 사항을 저장하려면 다음을 입력하십시오:

    :wq!

    대안으로 파일을 편집하기 전에 파일 권한을 변경할 수 있습니다.

    chmod +w /var/spool/cron/crontabs/root

설정하면 매일 새벽 02:10에 ESXi 구성이 자동으로 백업되어 이름이 ESXi_config_bakup_date_time.tgz인 파일에 저장됩니다.

ESXi 명령 줄에서 ESXi 구성을 복구하는 방법

ESXi 구성을 복원하려는 기계에 백업된 ESXi 호스트와 동일한 버전 및 빌드 번호의 ESXi가 설치되어 있어야 합니다. 이 규칙은 이 블로그 게시물에서 고려된 모든 ESXi 구성 복구 방법에 대해 적용됩니다.

ESXi 구성을 복원할 예정인 경우 맨 처음 설치된 ESXi 호스트에 (새롭게 설치된 경우), ESXi 관리 네트워크에 사용되는 네트워크 인터페이스의 IP 주소를 설정하고 SSH 액세스를 활성화해야 합니다.

UUID 값은 백업된 ESXi 서버와 구성이 복원될 ESXi 서버 모두 동일해야 합니다. UUID 값이 다른 경우에는 다음 섹션에서 다루는 단계를 따라야 합니다.

ESXi 구성을 복구하려면:

  1. 새로 설치된 ESXi 호스트를 ESXi 구성을 백업한 복구하기 위해 준비한 후 SSH를 통해 ESXi 호스트에 연결하고 호스트를 유지보수 모드로 전환하세요 (이 모드에서 VM은 중지됩니다).

    esxcli system maintenanceMode set --enable yes

    또는

    vim-cmd hostsvc/maintenance_mode_enter

  2. ESXi 구성 백업을 포함하는 아카이브를 SCP 클라이언트인 WinSCP를 사용하여 ESXi 호스트의 디렉토리로 복사하세요. 예를 들어, 로컬 머신에서 configBundle-xxxx.tgz 아카이브를 목적지 ESXi 서버의 /tmp/ 디렉토리로 복사합니다.
  3. configBundle-xxxx.tgz 파일을 복원할 명령을 입력하기 전에 configBundle.tgz로 이름을 변경하십시오. 그렇지 않으면 다음과 같은 오류 메시지가 표시됩니다: “/tmp/configBundle.tgz 파일을 찾을 수 없음“.

    SSH를 통해 연결한 ESXi 쉘에서 파일 이름을 변경할 수 있습니다:

    mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz

  4. ESXi 구성을 복원합니다:

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

    이 명령을 실행하면 ESXi 호스트가 자동으로 다시 부팅됩니다.

  5. ESXi 서버를 다시 시작한 후 유지 보수 모드를 종료한 다음 호스트를 평소대로 사용할 수 있습니다.

    esxcli system maintenanceMode set --enable no

    또는

    vim-cmd hostsvc/maintenance_mode_exit

ESXi 구성을 복원하려면 UUID를 변경하는 방법

ESXi 서버의 UUID를 확인하는 두 가지 방법 중 하나를 사용할 수 있습니다:

  1. ESXi 명령 줄 인터페이스에서:

    esxcfg-info -u

  2. 위의 명령으로 만든 configBundle.tgz 백업 아카이브 내의 Manifest.txt 파일에서.

하드웨어에 따라 생성된 식별자에 의존하기 때문에 ESXi 서버의 UUID를 변경할 수 없습니다. 그러나 Manifest.txt 파일에서 UUID를 변경한 후 ESXi 구성을 ESXi 호스트 A에서 ESXi 호스트 B로 복구할 수 있습니다. configBundle.tgz ESXi 구성 백업 아카이브에 저장되어 있습니다.

이제 백업된 구성을 다른 물리적 서버에 적용하기 위해 UUID를 변경하는 방법을 살펴보겠습니다. 서버 A는 구성이 백업된 서버이고, 서버 B는 구성이 적용될 서버입니다.

단계 1

백업된 구성을 적용하려는 ESXi 호스트의 UUID를 확인합니다 (서버 B). 이는 최소 두 가지 방법으로 수행할 수 있지만, 두 번째 방법은 ESXi 버전도 확인할 수 있습니다:

  1. esxcfg-info -u를 실행합니다.
  2. ESXi 서버 B의 구성을 백업합니다:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

  3. 백업 아카이브를 임시 디렉터리로 복사하고 해당 디렉터리로 이동합니다:

    cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp

    cd /tmp/

  4. 아카이브에서 파일을 추출합니다:

    tar zxvf configBundle.tgz

  5. Manifest.txt 파일을 vi로 열고 UUID 값을 확인합니다(UUID가 있는 별도의 줄이 표시됩니다). UUID를 기록합니다.

    vi Manifest.txt

    우리의 경우, UUID는 1E9E4D56-B724-DFBE-D19D-4C2D827E0188입니다

  6. /tmp/ 디렉터리에서 임시 파일을 삭제할 수 있습니다:

    rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz

2단계

  1. configBundle.tgz 구성 백업 아카이브를 ESXi Server A에서 Server B로 복사하세요. 예를 들어, /tmp/ 디렉토리로 이동하십시오.
  2. configBundle.tgz 아카이브에서 파일을 추출합니다:

    tar zxvf configBundle.tgz

  3. Manifest.txt 파일을 vi로 열고 Server A의 UUID 값을 Server B의 UUID로 업데이트하세요:

    vi Manifest.txt

    우리의 경우, 9EA94D56-7E39-96A8-AB45-DF31EF0971EC를 1E9E4D56-B724-DFBE-D19D-4C2D827E0188로 변경합니다.

    파일을 저장하고 텍스트 편집기를 종료합니다:

    :wq

  4. 원본 configBundle.tgz 파일을 예를 들어 configBundle1.tgz로 이름을 변경하세요 (ESXi 구성 백업 파일의 이름이 configBundle.tgz와 다른 경우 이 단계를 건너뛸 수 있습니다):

    mv configBundle.tgz configBundle1.tgz

  5. Manifest.txt, state.tgz, 그리고 jumpstrt.gz 파일을 새로운 configBundle.tgz 아카이브로 병합합니다:

    tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz

  6. ESXi 호스트를 유지 보수 모드로 설정하고 구성을 복원합니다:

    esxcli system maintenanceMode set --enable yes

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

방법 2: vSphere CLI를 사용하여 ESXi 호스트 백업하는 방법

VMware에서 제공하는 ESXi 호스트를 관리하기 위한 다른 명령 줄 인터페이스는 vSphere CLI입니다 (VMware PowerCLI와 혼동하면 안 됩니다). ESXi 호스트를 원격으로 관리하기 위해 Linux 또는 Windows에서 vSphere CLI를 설치해야 합니다. Perl을 사용하여 vSphere CLI를 설치해야 합니다.

vSphere CLI를 사용하는 장점은 편리함과 Linux에서의 bash의 강력함입니다. 이 방법은 특히 ESXi 6.x에 편리합니다. ESXi 8을 사용하는 경우, 이 기사에서 설명하는 다른 방법을 선택하십시오.

vCLI 설치 및 구성

  1. 운영 체제에 맞는 vSphere CLI의 필요 버전을 VMware 웹 사이트에서 다운로드합니다. 이 예에서는 Ubuntu Linux를 사용합니다.
  2. 다운로드한 파일이 있는 디렉토리로 이동하여 아카이브에서 파일을 추출하십시오:

    tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz

  3. 필요한 패키지 설치:

    apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential

    공식 VMware 권장 사항은 이 패키지 세트를 설치하는 것입니다:

    apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

  4. 추출된 파일이 있는 디렉토리로 이동하여 설치 프로그램을 실행하십시오:

    ./vmware-install.pl

  5. 라이선스 계약을 읽고 수락하십시오. 만약 설치 프로그램이 필요한 모듈을 설치하라고 요구하면, y를 입력하고 모듈을 설치하십시오.

  6. 우리 경우에는 일부 모듈을 수동으로 설치해야 합니다. Perl의 대화형 셸을 사용하여 설치할 수 있습니다.

    Perl의 대화형 셸에 들어가십시오:

    perl -MCPAN -e shell

  7. 필요한 Perl 모듈을 설치하기 위해 다음 명령어를 실행하십시오:

    install Devel::StackTrace

    비슷하게 다른 모듈을 설치하십시오.

    참고: 우리 경우에는 대화형 Perl 셸에서 하나의 모듈을 설치할 수 없었지만, Ubuntu 콘솔에서 다음 명령어를 사용하여 해당 모듈을 설치할 수 있습니다:

    apt-get install libcrypt-ssleay-perl

  8. Perl 모듈을 설치한 후에 VMware vSphere CLI 설치 프로그램을 다시 실행하십시오.
  9. 설치가 성공적으로 완료되었으며 이 경우 다음 화면을 볼 수 있습니다:

  10. 이제 vSphere CLI를 사용해보고 Linux 콘솔에서 ESXi 서버(192.168.101.208은 ESXi 서버의 IP 주소입니다)의 장치 목록을 표시하는 명령을 입력해보겠습니다.

    esxcli --server 192.168.101.208 storage core device list

  11. 서버 SHA-1 썸프린트가 신뢰되지 않으며 ESXi 호스트에 대한 연결이 실패했습니다. 이는 보안상의 이유로 썸프린트를 정의해야 함을 의미합니다. 다른 명령을 시도해 보겠습니다:

    esxcli --server 192.168.101.208 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    사용자 이름과 암호는 대화형 모드에서 콘솔에 프롬프트됩니다.

    이렇게 사용자 이름과 암호를 평문으로 입력하는 명령을 사용하지 않도록 노력하십시오:

    esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    참고: 이는 보안상의 이유입니다. 실행된 명령은 history -c 명령을 실행하여 히스토리를 지울 때까지 Linux에 저장됩니다. 대화형 모드를 사용하지 않고 로그인 및 암호를 수동으로 입력하는 것을 피해야 할 필요가 있으면 ESXi 세션을 파일에 저장하고 명령을 실행할 때 이 파일을 사용할 수 있습니다. 세션 저장은 명령에 평문으로 암호를 입력하는 것과 달리 안전합니다. 세션 저장은 아래에 설명되어 있습니다.

ESXi 호스트에 연결하기 위한 지문 저장

명령을 실행할 때마다 ESXi 지문을 입력하는 것은 불편합니다. 다행히도 vSphere CLI를 사용하여 지문을 정의하지 않고 지문을 저장하고 추가 명령을 실행할 수 있습니다.

  1. 다음 디렉토리로 이동하십시오:

    cd /usr/lib/vmware-vcli/apps/general/

  2. /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint

    우리의 특정한 예제에서, 명령어는 다음과 같습니다:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA

  3. 이제 vSphere CLI에서 명령어를 실행할 때마다 지문을 입력할 필요가 없습니다:

    esxcli --server 192.168.101.208 system maintenanceMode get

그러나 여전히 사용자 이름과 암호를 입력해야 합니다. 그러나 아래 섹션에서 보여지는 대로 vSphere CLI를 구성하여 매번 암호를 입력하지 않고 명령어를 실행할 수 있습니다.

ESXi 호스트에 연결하기 위해 세션 파일을 사용하는 방법

저장된 세션 파일을 사용하는 것은 vSphere CLI를 사용하여 원격 ESXi 호스트에서 명령을 실행할 때 사용자 이름과 암호를 입력하는 것을 피하는 방법 중 하나입니다.

  1. ESXi 구성 백업 파일을 저장할 디렉터리를 만듭니다. 예를 들어, /backup/

    mkdir /backup

  2. 해당 디렉터리로 이동합니다:

    cd /usr/lib/vmware-vcli/apps/session

  3. 퍼미션 스크립트를 사용하여 권한이 있는 ESXi 호스트 세션을 파일에 저장합니다:

    perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555

    다음과 같습니다:

    savesessionfile /backup/192-168-101-208session은 만든 세션 파일의 이름입니다

    server 192.168.101.208은 세션이 저장된 ESXi 호스트의 이름입니다 (이 ESXi 호스트는 여러 예제에서 사용됩니다)

    username root은 ESXi 호스트에 연결된 사용자의 이름입니다

    password TestPass_555은 ESXi 호스트에 연결된 사용자의 암호입니다

이제 비밀번호를 입력하지 않고 명령을 실행할 수 있지만, sessionfile 키(옵션)를 입력하고 세션 파일의 경로를 정의해야 합니다.

예를 들어:

esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

ESXi 호스트에 연결하기 위해 구성 파일 사용

이 방법의 아이디어는 자격 증명을 평문으로 구성 파일에 저장하고 vSphere CLI에서 ESXi 명령을 실행할 때 이 파일을 참조하는 것입니다.

  1. 구성 파일 생성:

    vim /backup/vcli-config

  2. 다음과 같이 자격 증명을 입력합니다:

    VI_USERNAME=root

    VI_PASSWORD=TestPass_555

  3. 파일을 저장합니다.
  4. esxcli --server 192.168.101.208 --config vcli-config 시스템 유지 관리 모드 가져오기

참고: 자격 증명이 평문으로 저장되므로이 방법은 안전하지 않습니다.

ESXi 호스트에 연결하기 위한 자격 증명 저장소 사용

A credential store is the xml file located in the user directory in the vmware subdirectory ~/.vmware/credstore/vicredentials.xml. The advantage of using the credentials store to run commands on remote ESXi hosts is that the password is not saved as plain text. As a result, this method provides higher security.

  1. 자격 증명을 자격 증명 저장소에 추가하려면 다음 명령을 실행하십시오:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root

  2. 필요한 자격 증명이 있는지 확인하려면 자격 증명 저장소에 저장된 자격 증명을 나열하십시오:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl list

  3. # esxcli –server 192.168.101.208 –credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get

    루트 사용자가 아닌 경우 자격 증명 파일이 저장됩니다 /home/user_name/.vmware/credstore/vicredentials.xml

In the screenshot below, you can see how credentials are saved in the credentials store file.

Using vSphere CLI to back up ESXi host configuration

Now that you have configured vSphere CLI on the Ubuntu Linux machine, you can run the commands and back up ESXi configuration:

  1. Go to the /usr/bin/ directory:

    cd /usr/bin

    • 사용자 이름과 암호가 자격 증명 저장소에 저장된 경우 다음 명령을 사용하십시오:

      vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

    • 또는 세션을 세션 파일에 저장한 후 다음 명령을 사용하십시오:

      vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

      참고: vicfg- 명령어는 사용이 중지되었습니다. vicfg가 작동하지 않는 경우 최신 버전의 ESXi 호스트에서 ESXCLI 동등 명령어를 사용하십시오. 다른 ESXi 구성 백업 방법의 명령어를 참조하십시오.

      –sessionfile 옵션 사용의 단점은 vSphere CLI에서 마지막 명령을 실행한 후 30분 동안 대기 시간이 있습니다. 그 후에는 다시 인증하고 세션 파일을 생성해야 합니다.

    • 대화형 모드에서 비밀번호를 입력하면서 ESXi 구성의 백업을 생성하려면 다음 명령을 실행할 수 있습니다:

      vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

ESXi 구성 백업 자동화 방법

환경이 동적으로 변경되며 ESXi 호스트의 구성이 자주 변경되는 경우, ESXi 호스트의 수동 백업은 실용적이지 않을 수 있습니다. 이 경우 스케줄러에 백업 명령 또는 여러 명령을 포함하는 백업 스크립트 또는 명령을 추가하여 ESXi 구성 백업을 자동화할 수 있습니다. Linux에서는 크론탭이 스케줄러입니다.

  1. 리눅스에서 스케줄러 구성을 수정하여 ESXi 구성 백업 명령을 주기적으로 자동으로 실행하도록 합니다.

    crontab -e

    주의:

    만약 처음으로 crontab 구성을 편집하는 경우, crontab 구성을 편집하는 데 사용될 기본 텍스트 편집기를 선택해야 합니다. 이 예에서는 이를 위해 /usr/bin/vim.basic을 사용합니다.

    crontab 구성 형식은 다음과 같습니다:

    분 시간 일_월 월 요일 명령 

  2. 매일 새벽 03시 25분에 ESXi 호스트 구성을 백업하려면 다음 줄을 crontab 구성에 추가하십시오:

    25 03 * * * /usr/bin/vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz

  3. 크론탭 스케줄러의 구성을 작성하고 텍스트 편집기 vim을 종료합니다 (이 예제에서 사용됩니다):

    :wq

  4. ESXi 백업 구성 파일을 저장할 디렉터리를 확인하려면 03:25 이후까지 기다립니다:

    ls -al

    아래 스크린샷에서 확인할 수 있듯이, ESXi 호스트 구성 백업 파일이 자동으로 03:25에 생성되었습니다.

이제 ESXi 구성 백업이 자동으로 생성되었습니다. 이것은 훌륭한 일이지만 단점이 있습니다. 매번 crontab이 예약된 명령을 실행하여 ESXi 구성 백업을 만들면 이전 파일이 새로운 파일에 덮어씌워집니다. 이는 그저 어제 만든 올바른 ESXi 구성 백업이 다음 날 생성된 잘못된 ESXi 구성을 포함하는 파일에 덮어씌워질 수 있음을 의미합니다. 이 문제를 방지하려면 ESXi 구성을 다른 파일로 백업해야 합니다.

매번 ESXi 구성을 고유한 파일 이름으로 별도의 파일로 저장하는 간단한 스크립트를 만들어봅시다. 이 파일 이름에는 ESXi 구성 백업 파일 생성 날짜와 시간이 포함되어야 합니다. 스크립트를 만들면 단일 스크립트를 실행하여 여러 ESXi 호스트를 백업할 수 있는 명령을 추가할 수 있습니다.

  1. /백업/ 디렉토리에 파일을 만듭니다:

    vim /백업/esxi_backup.sh

  2. 다음과 같이 파일에 줄을 추가합니다:

    #!/bin/bash

    ESXI101_208_BACKUP_NAME=”192-168-101-208-$(date +’%Y%m%d_%H%M%S’)esxi-cfg.tgz”

    vicfg-cfgbackup server 192.168.101.208 config /백업/vcli-config -s /백업/$ESXI101_208_BACKUP_NAME

  3. 변경 사항을 파일에 작성하고 텍스트 편집기 vim을 종료하십시오:

    :wq

  4. 파일을 실행 가능하게 만듭니다:

    chmod +x /백업/esxi_backup.sh

  5. 스케줄러 구성을 편집하십시오:

    crontab -e

  6. 다음과 같은 줄을 추가하십시오:

    50 06 * * * /백업/esxi_backup.sh

    이 구성 줄을 사용하여 crontab을 설정하여 ESXi 구성 백업 스크립트가 오전 06:50에 실행되도록합니다.

    이전에 추가한 예약된 작업을 비활성화하려면 줄의 시작 부분에 # 문자를 추가하십시오.

    구성을 저장하십시오.

  7. 설정된 시간을 기다린 후 ESXi 구성 백업 아카이브가 생성되었는지 확인하십시오.

자동화 아이디어를 보여주는 간단한 스크립트입니다. 여러 개의 ESXi 호스트를 백업하기 위한 복잡한 스크립트를 만들 수 있습니다.

참고: 각 ESXi 재부팅 또는 30분의 유휴 시간 후에는 ESXi 세션의 인증이 만료됩니다. 자동화된 ESXi 백업 스크립트를 작성할 때 이 기능을 고려하십시오.

vSphere CLI에서 ESXi 구성을 복구하는 방법

vSphere CLI를 사용하여 ESXi 구성을 복원하는 요구 사항은 다른 방법과 유사합니다. ESXi 구성을 복원하려면 SSH를 통한 원격 액세스가 활성화되어 있고 ESXi 서버의 IP 주소를 알고 있는지 확인하십시오(백업된 ESXi 호스트의 IP 주소와 동일한 IP 주소를 사용하는 것이 좋습니다).

ESXi 구성을 복원하려면 다음과 같은 명령을 실행하십시오:

vicfg-cfgbackup --server=ESXi_host_IP_address --username=root -l backup_file

특정 예에서 명령은 다음과 같습니다:

vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz

대상 ESXi 호스트의 UUID가 백업된 ESXi 서버의 UUID와 다른 경우(백업 아카이브 내의 Manifest.txt 파일에 정의된 UUID), UUID를 재정의하기 위해 -f 키(강제)를 사용할 수 있습니다.

실행 중인 ESXi 호스트의 UUID를 확인하려면 다음 명령을 사용할 수 있습니다:

esxcfg-info -u

참고: ESXi 7.0 U2부터는 TPM(Trusted Platform Module)을 ESXi 호스트에서 사용하는 경우 UUID 강제 재정의가 작동하지 않습니다.

방법 3: PowerCLI를 사용하여 ESXi 호스트 백업

Windows PowerShell을 좋아하는 사용자는 vSphere 관리용 PowerCLI와 ESXi 구성을 백업하기 위해 PowerCLI를 사용할 수 있습니다. PowerCLI는 PowerShell cmdlet의 세트이며, 일부 기본 PowerCLI 명령은 이 블로그 게시물에서 설명되어 있습니다.

ESXi 호스트를 백업하려면 먼저 운영 체제에 PowerCLI를 설치해야 합니다:

  1. Windows에서 관리자 권한으로 PowerCLI를 실행합니다.
  2. ESXi 서버에 연결하십시오:

    Connect-VIServer ESXi_IP_address -user user_name -password your_password

    우리의 경우, 다음 명령을 사용합니다:

    Connect-VIServer 192.168.101.208 -user root -password TestPass_555

    Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    • ESXi 호스트가 vCenter Server에 의해 관리되는 경우, 각 호스트 구성을 백업하기 전에 각 호스트 구성을 백업하기 전에 매번 인증할 필요 없이 먼저 vCenter에 연결한 다음 PowerCLI에서 호스트의 ESXi 구성을 백업할 수 있습니다:

      Connect-VIServer 10.10.10.16

      vCenter Server에 액세스하기 위한 관리 로그인 및 암호를 입력하십시오. 이를 위한 팝업 창이 표시됩니다.

  3. 각 호스트의 ESXi 구성을 백업합니다:

    Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

ESXi 구성을 PowerCLI에서 복원하는 방법은 다음과 같습니다.

  1. 관리자 권한으로 VMware PowerCLI를 실행하십시오.
  2. 구성을 복구하려는 ESXi 호스트에 연결하십시오 (예: IP 주소가 192.168.101.208인 ESXi 호스트에서 구성을 복구합니다).
  3. ESXi 호스트를 유지 관리 모드로 설정하십시오:

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. 해당 ESXi 호스트에 있는 VM이 종료되었거나 다른 ESXi 호스트로 이전되었는지 확인한 후 ESXi 구성을 복구하십시오. 구성 복구 명령을 실행한 후 ESXi 호스트가 자동으로 다시 부팅됩니다.
  5. Set-VMHostFirmware restore 명령을 사용하여 구성을 복원하십시오:

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:\backup ESXi host\configBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

ESXi 호스트의 설정을 복구하는 호스트의 ESXi 호스트의 버전, 빌드 번호 및 UUID가 일치해야 합니다. 설정을 복원하는 데 사용하는 백업의 버전, 빌드 번호 및 UUID와 일치해야 합니다. UUID 확인을 건너뛰려면 명령에 -force 키를 사용하십시오.

방법 4: ESXi 구성의 수동 백업 및 복원

또한 ESXi 호스트에 로그인할 수 없거나 ESXi 호스트가 부팅되지 않고 명령 줄 인터페이스를 사용하여 ESXi 구성을 백업하거나 복원할 수 없는 상황에 대비해야 합니다. 하드웨어 장애 또는 소프트웨어 문제로 인해 발생할 수 있습니다. 이 경우 ESXi 구성을 수동으로 백업하고 복구하는 방법을 알고 있는 것이 좋습니다.

ESXi 호스트의 기본 crontab 구성에서 알 수 있듯이 /sbin/auto-backup.sh 스크립트는 매 시간 및 ESXi 호스트가 재부팅되거나 종료될 때마다 실행됩니다. 이 스크립트는 메모리에 저장된 ESXi 구성을 /bootbank/state.tgz 파일에 백업(저장)합니다.

참고:이 방법을 사용하려면 /bootbank/state.tgz 파일이 암호화되어서는 안 됩니다.

ESXi 구성은 ESXi 서버가 실행 중일 때 컴퓨터의 RAM에 저장됩니다(적절한 RAM 디스크가 /etc/ 디렉터리에 마운트됩니다). ESXi 부팅 중에 시스템 파일은 /bootbank/state.tgz 아카이브에서 추출되어 /etc/ 디렉터리로 복사됩니다. ESXi 호스트가 실행 중인 경우 WinSCP와 같은 SCP 클라이언트를 사용하여 /bootbank/state.tgz 파일을 수동으로 복사할 수 있습니다(원격 SSH 액세스가 활성화되어 있어야 함). 대안으로, ESXi 호스트가 부팅되지 않는 경우(예: 하드웨어 장애로 인해) 라이브 DVD에서 부팅하고 state.tgz 파일을 수동으로 복사할 수 있습니다.

수동 복구 워크플로

  1. 이전에 ESXi 쉘, vSphere CLI 또는 PowerCLI로 만든 백업 아카이브를 준비하세요. 파일의 이름은 우리의 경우 configBundle-192-168-101-208.tgz입니다. 예를 들어 파일을 USB 플래시 드라이브로 복사하고 해당 플래시 드라이브를 복구해야 할 ESXi 서버의 USB 포트에 삽입할 수 있습니다.
  2. ESXi가 설치된 기기에서 라이브 CD/DVD에서 부팅합니다. Ubuntu 설치 디스크를 라이브 CD/DVD로 사용할 수 있습니다.
  3. 리눅스에서 콘솔(터미널)을 엽니다.
  4. 파티션 목록:

    ls -al /dev/sd*

    fdisk -l | grep /dev/sda

    이 경우, Microsoft 기본 데이터로 표시된 /dev/sda5/ 파티션이 필요합니다.

    ESXi 디스크 파티션은 USB 플래시 드라이브에서 ESXi 부팅ESXi 비밀번호 복구에 대한 블로그 게시물에서 언급되었습니다.

    이 경우 /dev/sda5 파티션에 관심이 있습니다.

  5. /dev/sda5 파티션이 마운트될 디렉토리를 생성하십시오:

    mkdir /mnt/sda5

  6. 디스크 파티션을 해당 디렉토리에 마운트하십시오:

    mount /dev/sda5 /mnt/sda5

  7. /mnt/sda5 디렉토리에서 ESXi 구성을 포함하는 state.tgz 파일을 찾을 수 있습니다. 이 디렉토리(여기에 state.tgz가 저장되어 있음)는 ESXi 호스트가 부팅될 때 /bootblank/라고 합니다.
  8. USB 플래시 드라이브에서 ESXi 구성 백업 아카이브를 Live DVD에서 로드된 Ubuntu의 /tmp/ 디렉토리로 복사합니다. 예시에서 우리는 다음을 복사합니다:

    cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz

  9. 백업 아카이브에서 파일을 추출하십시오:

    tar zxvf /tmp/configBundle.tgz

  10. state.tgz 파일이 아카이브에서 추출되었음을 알 수 있습니다:

    ls -al /tmp/

  11. state.tgz 파일의 원래 이름을 /dev/sda5 파티션에 있는 /mnt/sda5/에 마운트된 것으로 변경합니다.

    mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz

  12. state.tgz 파일을 ESXi 구성 백업 아카이브에서 추출한 후 /tmp/ 디렉토리로 복사하십시오:

    cp /tmp/state.tgz /mnt/sda5/

  13. 마운트된 파티션을 언마운트하십시오:

    umount /dev/sda5/

  14. 서버를 재부팅하십시오. Ubuntu Live DVD를 제거하고 ESXi가 설치된 디스크에서 부팅하십시오.

    init 6

이제 ESXi 구성이 복원되어야합니다.

결론

ESXi 명령 줄 인터페이스를 사용하는 것이 좋습니다. 추가 소프트웨어를 설치할 필요가 없습니다. vSphere CLI의 장점은 Linux 기계를 사용하여 원격으로 명령을 실행할 수 있고 ESXi 구성 백업을 자동화할 수 있다는 것입니다. 반면에 PowerCLI는 Windows 사용자에게 유용할 수 있습니다.

ESXi 호스트가 건강하지 않고 호스트를 부팅할 수 없는 경우 구성을 수동으로 백업하고 복원할 수 있습니다. ESXi 구성 백업 파일에는 부팅 정보와 VM에 대한 정보가 저장되지 않는다는 점을 유의하십시오. ESXi 구성을 복원한 후 인벤토리에서 가상 머신을 등록해야 할 수 있습니다.

ESXi 호스트를 백업하는 것 외에도 vSphere 가상 머신을 백업하는 것이 좋습니다. NAKIVO Backup & Replication은 VMware VM, Hyper-V VM, Amazon EC2 인스턴스 및 물리적 Linux 및 Windows 서버를 백업할 수 있는 범용 백업 솔루션입니다.

Source:
https://www.nakivo.com/blog/back-up-and-restore-vmware-esxi-host-configuration-guide/