서버 가상화(Server Virtualization) - VM Snapshot 관리, vSphere vApp, 분산 스위치 구성, vSphere HA(High Availability)
2024-10-07(MON)
(1) 금일 진행
- 서버 가상화 : VM Snapshot 생성
- vApp 생성
- 분산 스위치 구성
- 고가용성(HA, High Availability)
01. 전일 내용 - 서버 가상화 : VM Management
01-1. Template & Clone 생성
(1) 템플릿 : 복제
- VM → 템플릿 생성의 경우 VM Shutdown 시, 해당 시점 이미지의 상태를 기준으로 복제를 진행한다.
(2) 가상 머신 Clone
- 기존의 VM을 동일한 상태로 복사해서 새로운 VM을 생성하는 과정을 클론이라고 한다.
(3) 가상 머신의 Deployment
- VM을 특정 환경이나 클라우드에서 사용할 수 있도록 설정하고 준비하는 전체적인 과정을 배포라고 한다.
(4) 가상 머신의 템플릿(Template)
- VM의 템플릿은 VM의 특정 설정과 Guest OS, 애플리케이션 등이 사전 구성된 VM의 스냅샷을 의미한다. 템플릿을 사용해서 새로운 VM을 생성할 수 있다. VM의 스냅샷을 저장하면 저장 시점 VM의 모든 정보들이 스냅샷 형태로 저장되고 이러한 스냅샷을 템플릿 형태로 사용해서 VM을 새롭게 생성하는 원리
02. 전일 내용 - 서버 가상화 : VM Migration
(1) Hot Migration
- VM의 전원이 켜진 상태로 마이그레이션을 진행하는 것을 의미한다.
(2) vSphere Migration
- 호스트 간 VM이 마이그레이션
(3) vSphere Storage Migration
- VM 간의 파일을 마이그레이션 (VMFS-5 기준으로 동시에 8개의 파일 전송 가능)
02-1. VM Requirements of vSphere vMotion Migration
(1) VM은 내부 표준 가상 스위치가 연결되어 있지 않아야 한다. (업링크 어댑터가 없는 가상 스위치)
(2) VM은 로컬 이미지가 마운트된 가상 디바이스(Ex : CD-ROM 또는 플로피 디스크)에 연결되어 있지 않아야 한다.
(3) 가상 머신은 CPU 선호도가 구성되어 있지 않아야 한다.
(4) 가상 머신의 스왑 파일이 대상 호스트에 접근할 수 없는 경우, 마이그레이션을 수행하려면 vSphere vMotion은 대상 호스트에 접근할 수 있는 스왑 파일을 생성할 수 있어야 한다.
(5) 가상 머신이 RDM을 사용할 경우 해당 RDM을 해당 호스트에서 접근할 수 있어야 한다.
*RDM(Raw Device Mapping, 원시 디바이스 매핑)은 VMware vSphere 환경에서 가상 머신이 물리적 디스크에 직접 접근할 수 있도록 하는 기술이며 RDM은 주로 스토리지 관리와 성능 향상을 위해 사용한다.
1. 10-07(MON) 기준으로 이후 LAB 진행을 위한 작업
(1) 현재 VCSA-01, 02 모두 Running 상태, 자원 여유를 위해 하나는 중지 진행
(2) Down 시킬 호스트를 vCenter Inventory에서 제거
(3) 비교적 동작이 잘 되는 호스트 기준 vCenter에 추가 / 반대로 잘 되지 않는 호스트는 vCenter Host Power OFF
(4) Esxi-02, Esxi-03, Esxi-12, Esxi-13 호스트 확인
(5) vCenter 호스트를 제외한 ESXi 계열 호스트, 스토리지 호스트의 사양 조절 필요 / 전원 OFF 후 진행
- 스토리지 서버 RAM : 8GB
- vCenter 호스트를 제외한 ESXi 호스트 : CPU(Processor) : 4 & RAM : 8GB
- ESXi-12, 13 호스트의 경우 NIC 개수를 4개로 확장
(6) 이후 DELL 서버 자원 사용량 수시 확인
2. VM 사용자 규격 생성 후 해당 규격 호스트에 복제 & 호스트 간 마이그레이션
(1) vSphere 클라이언트에서 정책 및 프로파일 메뉴 > VM 사용자 지정 규격 메뉴로 접속한다.
(2) 새로운 규격을 지정할 수 있게 되는데, 이름은 test, SID 보안 생성 옵션은 활성화한다.
(3) 소유자 이름 / 조직은 test로 설정한다.
(4) 복제 / 배포 마법사에 이름 입력 : 이름 : testvm / 고유한 숫자 값 추가 옵션 활성화 진행
(5) Windows 10 라이센스 키 입력 : RTM Generic Key / 서버 라이센스 모드 : 서버 모드
(6) 관리자 암호를 지정한다.
(7) 모든 네트워크 인터페이스에서 DHCP 사용 등으로 게스트 운영체제에 대한 표준 네트워크 설정 사용 옵션을 활성화한다.
(8) 작업 그룹 또는 도메인 영역은 수정없이 다음으로 넘어간다.
(10) 이러한 과정으로 새로운 VM 사용자 규격이 완성된다.
(11) 호스트 탭에서 esxi-12 호스트 기준으로 가상 시스템 복제를 진행한다.
(12) 가상 시스템의 위치는 DataCenter 하단 VM으로 지정한다.
(13) 대상 리소스(호스트)의 경우 esxi-12.rapalab.local로 지정한다.
(14) 스토리지의 경우 esxi-12의 로컬 스토리지를 사용한다.
(15) 운영체제의 경우 이전에 생성한 VM 규격 OS를 사용하기 위해 "운영 체제 사용자 지정" 옵션을 설정한다.
(16) 사용자 지정 규격으로 만들어 놓은 VM의 운영체제를 선택한다.
3. 가상 머신 관리 : VM Snapshot
3-1. 가상 머신(VM) Snapshot
(1) VM 스냅샷(Snapshot)을 사용하면 기존 가상 머신의 상태를 보존할 수 있기 때문에 반복해서 동일한 상태로 가상 머신의 상태를 되돌릴 수 있다.
(2) 예를 들어 소프트웨어 테스트 중 변경 사항이 있는 경우 스냅샷을 사용해서 변경 사항을 반영하기 전으로 되돌릴 수 있다.
3-2. 가상 머신 메모리 파일
(1) 스냅샷은 메모리 상태 파일인 .vmsn, 설명 파일 -00000#.vmdk 및 델타 파일 -00000#-delta.vmdk로 구성된다.
(2) 스냅샷 목록 파일 .vmsd은 가상 머신의 스냅샷을 추적한다.
3-3. 스냅샷 생성
(1) 가상 머신의 전원이 켜지거나 꺼져 있을 때 & 일시 중지되어 있는 동안에도 스냅샷 생성이 가능하다.
(2) 스냅샷은 가상 머신의 현재 상태를 캡쳐하는 작업이다.
- 메모리 상태, 설정 상태, 및 디스크 상태
(3) 스냅샷은 백업이 아니므로 주의한다.
3-4. 스냅샷 관리
(1) 스냅샷 관리자를 사용하면 가상 머신에 대한 모든 스냅샷을 확인하고 다음 작업을 수행할 수 있다.
- 특정 스냅샷으로 복구
- 하나 또는 모든 스냅샷 삭제
3-5. VM 스냅샷 삭제 (1)
3-6. VM 스냅샷 삭제(2)
3-7. VM 스냅샷 삭제 (3)
3-8. 모든 VM의 스냅샷 삭제
3-9. 스냅샷 통합
(1) 스냅샷은 많아지면 많아질 수록 서버에 부담이 된다. 작업이 완료되었다면 관련된 스냅샷은 삭제한다.
(2) 스냅샷 통합은 스냅샷 관리자에서 스냅샷은 없지만 델타 파일이 아직 데이터 스토어에 존재한다고 표시된다면 VM으로 일련의 스냅샷을 커밋할 때 사용되는 방법을 의미한다.
(3) 스냅샷 통합은 스냅샷 관리와 관련된 아래와 같은 문제 해결을 위해 도입되었다.
- 스냅샷 설명자 파일을 올바르게 커밋했지만 스냅샷 관리자가 모든 스냅샷이 삭제되었다고 잘못 표기한 경우
- 스냅샷 파일(-delta.vmdk)이 여전히 가상 머신에 존재하는 경우
- 가상 머신에 데이터 스토어 공간이 부족해질 때까지 스냅샷 파일이 계속 확장되는 경우
4. 가상 머신 관리 : vApp 생성
(1) VMware vSphere vApp 기능 및 실습
4-1. vApp의 기능
- VMware vSphere vApp은 여러 VM을 하나의 단위로 묶어서 관리할 수 있는 기능이다. vApp은 주로 애플리케이션의 여러 구성 요소를 함께 배포하고 운영할 수 있도록 한다. 예를 들어, 웹 서버, 데이터베이스 서버, 애플리케이션 서버 등 여러 VM이 서로 의존하는 경우, 이들을 vApp으로 묶어서 일관된 환경을 제공할 수 있다.
(1) 하나 이상의 VM을 위한 컨테이너를 vApp이라고 한다.
(2) 관련 애플리케이션을 패키징 및 관리하는 데 사용할 수 있다.
(3) vCenter Server 인벤토리의 객체다.
4-2. vApp 테스트를 위한 VM 복제 진행
(1) esxi-12 내부의 Windows 10 vm을 복제 : test-02
4-3. vApp의 특성
(1) 다음과 같은 방법으로 vApp을 구성할 수 있다.
- CPU 및 메모리 등 자원 할당
- IP 할당 정책
- 고급 설정
(2) 또한 VM 시작 및 종료 순서를 구성할 수 있다.
4-4. vApp 실습
(1) vApp 관리 작업 수행
- vApp 생성
- vApp 전원 On
- vApp 삭제
4-5. vApp 생성 / 복제 VM 이름 변경
(1) esxi-12 호스트를 기준으로 새로운 vApp을 생성한다.
(2) 새로운 vApp 생성 옵션을 선택한다.
(3) vApp 이름을 주고 vApp이 생성될 디렉터리를 설정한다.
(4) VM들의 복제가 완료되면 VM들의 이름을 변경할 수 있다.
(5) 우선 위와 같이 변경했다.
(6) 이후 vApp 하단으로 복제 VM을 모두 이동시켰다.
4-6. vApp 설정 편집 작업
(1) vApp 설정 편집으로 들어간다.
(2) WebServer, DBServer, AppServer의 복제 VM에 모두 그룹을 지정해 주고, 시작(전원 켜기) / 종료(게스트 종료) 지연 시간을 모두 30초로 설정한다.
(3) 지연시간 설정
WEB : 시작 : 30초(전원 켜기) / 종료 : 게스트 종료 30초
APP : 시작 : 30초 (전원 켜기) / 종료 : 게스트 종료 30초
DB : 시작 : 30초 (전원 켜기) / 종료 : 게스트 종료 30초
5. 분산 스위치 구성
5-1. 분산 스위치 / esxi-13 로컬 스토리지를 iSCSI Shared Storage로 마이그레이션
(1) 생성한 데이터 센터를 기준으로 분산 스위치를 구성할 수 있다.
(2) 새로운 분산 스위치의 이름을 설정한다.
(3) 분산 스위치의 버전을 설정한다. 가장 최신 버전으로 설정했다.
(4) 업링크 개수, 포트 그룹을 설정한다.
(5) 구성된 분산 스위치에 호스트를 추가할 수 있다.
(6) ESXi-12, 13 호스트를 스위치 구성에 추가한다.
(6) 스위치에 연결할 물리적 NIC 인터페이스를 지정하고 업링크를 할당한다.
(7) VMKernel 관리를 위한 포트 그룹을 할당할 수 있다.
(8) 분산 스위치에서 할당한 호스트를 확인해 보면 분산 포트 그룹이 확인된다.
5-2. ESXi-12,13 호스트의 vMotion VMKernel 스위치 제거 / 분산 스위치의 업링크 포트 재변경
(1) ESXi-12 호스트의 가상 스위치 구성에서 vSwitch-2를 제거한다.
(2) ESXi-13 호스트의 가상 스위치 v-Switch2도 제거한다.
(3) 분산 스위치의 포트 그룹 설정으로 접속한다.
(4) 업링크 3, 4를 활성화시킨다.
5-3. esxi-02, 03 호스트의 네트워크 카드 인터페이스 3개 확인/활성화
(1) ESXi -02 호스트의 DCUI 환경으로 접속해서 NIC 어댑터를 3개로 확장한다.
(2) ESXi-03도 확장한다.
5-4. esxi-02, 03 기준 : vmnic1, vmnic2활성화되지 않은 인터페이스 포트로 이동 & vmnic1은 활성화(IPStorage 포트로 재지정) & vmnic2 활성화(VMKernel Port로 지정)
(1) esxi-02 호스트의 가상 스위치 환경 구성이다.
(2) esxi-03 호스트의 가상 스위치 환경 구성이다.
5-5. esxi-02, 03 기준으로 분산 스위치 적용을 위한 esxi-02, 03 호스트 내부 VM 스토리지를 iSCSI-Share-01로 스토리지 마이그레이션 진행
(1) esxi-02, 03 내부 가상 머신의 스토리지 환경을 iSCSI 환경에서 구성한 스토리지 환경으로 마이그레이션 할 수 있다.
6. vSphere HA (High Availability) 구성 & Fault Tolerance
6-1. vSphere High Availability(HA)
(1) 고가용성 시스템(HA System)은 최적의 시간 동안 지속적으로 작동 가능한 시스템을 의미하는 용어이다.
6-2. vSphere HA Failure Scenario
- vSphere HA은 다음과 같은 장애 상황으로부터 시스템을 보호한다.
(1) ESXi Host Failure
(2) VM 또는 Guest OS Failure
(3) Application Failure
6-3. vSphere HA Scenario : ESXi Host Failure
(1) 호스트에 직접적인 장애 발생 시 vSphere HA는 다른 호스트에서 영향을 받은 VM을 재시작하게 된다.
6-4. vSphere HA Scenario : Guest OS Failure
(1) VM이 HeartBeat 전송을 중지하거나 VM 프로세스에 장애가 발생한 경우(vmx), vSphere HA는 VM을 재설정한다.
6-5. vSphere HA Scenario : Application Failure
(1) 애플리케이션에 장애가 발생한 경우 vSphere HA는 동일한 호스트에서 영향을 받은 VM을 재시작한다.
(2) VMware Tools를 설치해야 한다.
* VMware Tools는 VMware의 가상 머신에서 실행되는 유틸리티 모음으로, 가상 머신의 성능과 관리 효율성을 높이기 위해 설계되었다.
6-6. 이중화 Heartbeat Network의 중요성
* 이중화 Heartbeat Network
- 주로 고가용성(HA) 시스템에서 사용되는 네트워크 구성으로, 서버 간의 상태를 모니터링하고 서로의 가용성을 확인하기 위해 사용한다.
(1) vSphere HA Cluster에서 Heatbeat는 다음과 같은 특성이 있다.
- Master 및 Slave 호스트 간에 전송된다.
- 장애가 발생한 곳이 Master 호스트인지 또는 Slave 호스트인지 확인할 때 사용된다.
- Heartbeat 네트워크를 통해 전송된다.
(2) Heartbeat Network
- 관리용으로 표시된 VMKernel 커널을 사용해서 구현된다.
(3) 이중화 Heartbeat Network
- 신뢰할 수 있는 장애 감지를 허용한다.
6-7. NIC Teaming을 사용해서 이중화
(1) NIC 티밍을 사용해서 ESXi 호스트에서 이중화 Heartbeat 네트워크를 생성할 수 있다.
(2) 사용되는 포트 및 포트 그룹은 VMKernel 포트여야 한다.
6-8. esxi-02, 03 물리 NIC 인터페이스 1개 추가(총 4개)
(1) ESXi 클라이언트에서 물리적 인터페이스 추가 후 DCUI에서 4개 포트 모두 활성화
(2) vmnic0, vmnic1, vmnic2, vmnic3가 활성화되어 있다.
(3) ESXi-02 호스트의 가상 스위치 환경을 VMKernel 포트 환경을 사용하기 위해 위와 같이 설정할 수 있다.
(4) ESXi-03 호스트의 가상 스위치 환경을 VMKernel 포트 환경을 사용하기 위해 위와 같이 설정할 수 있다.
6-9. 추가 네트워크를 사용해서 이중화
(1) 또한 더 많은 HeartBeat 네트워크를 구성해서 이중화 환경을 구성할 수 있다.
(2) 각 ESXi 호스트에서 고유한 물리적 어댑터가 있는 별도의 가상 스위치에서 두 번째 VMKernel 포트를 생성한다.
7. vSphere HA (High Availability) 구성
7-1. Cluster Information
(1) 클러스터는 여러 개의 ESXi 호스트를 그룹화하여 자원을 효율적으로 관리하고 고가용성(HA), 부하 분산(DRS), 가상 머신의 자동 복구 등을 제공하는 VMware vSphere의 기능을 의미한다.
(2) vCenter Server는 단일 리소스 풀과 같은 클러스터 리소스를 관리한다.
(3) vSphere HA 및 VMware vSphere DRS(Distributed Resources Scheduler)와 같은 기능은 클러스터에 구성되어 있다.
7-2. 승인 제어 정책 선택 항목
(1) Define Failover capacity by static nubmer of hosts(정적 호스트 수로 페일 오버 용량 정의)
- 사용자가 지정한 특정 수의 호스트를 장애 발생 시 페일오버를 위해 예약한다.
- 예를 들어 2개의 호스트를 페일오버 용량으로 설정하면, 항상 2개의 호스트가 사용 가능해야 한다.
(2) Define Failover capacity by reserving a percentage of the cluser resources(클러스터 리소스의 백분율을 예약하여 페일 오버 용량 정의)
- 클러스터의 전체 리소스(예: CPU, 메모리)의 일정 비율을 페일오버를 위해 예약한다.
- 동적으로 리소스 요구 사항을 반영하여, 클러스터의 리소스 사용량에 따라 페일오버 용량이 자동으로 조정된다.
(3) Use dedicated failover hosts(전용 페일오버 호스트 사용)
- 특정 호스트를 페일오버 전용으로 설정하여, 장애 발생 시 다른 호스트에 영향을 주지 않도록 한다.
- 전용 호스트가 페일오버 용량을 제공하므로, 다른 가상 머신의 성능에 영향을 주지 않는다.
(4) Do not reserve failover capacity(페일 오버 용량을 예약하지 않음)
- 장애 발생 시 특별히 리소스를 예약하지 않으며, 모든 리소스를 가상 머신에 할당하게 된다.
7-3. vSphere HA Configuration : VM Monitoring
7-4. esxi-02, 03 HA Configuration LAB / vSphere High Availability Failover Troubleshooting
(ESXi-02 VM -> ESXi-03 Host로 이동되지 않음)
(1) Test 디렉터리를 기준으로 새 클러스터 추가를 클릭한다.
(2) 클러스터명은 Service-TEST로 설정하고 vSphere HA는 활성화한다.
(3) esxi-02, 03 호스트를 유지 보수 모드로 변경해야 한다.
- 호스트 내부 가상머신을 모두 종료 후 두 호스트의 유지 보수 모드를 설정한다.
- 현재 Service-TEST 디렉터리 내부에 호스트들이 존재하는데 해당 유지 보수 모드 상태에서 Test 디렉터리로 드래그하여 이동시킨다.
* 유지 보수 모드란?
- VM이나 호스트 유지 보수 작업(특정 작업)을 위해 호스트를 안전한 상태로 유지하는 모드
(4) 현재 유지 보수 모드 상태에서 서비스 테스트 디렉터리 밖으로 호스트를 이동시켰다.
(5) Service-TEST 디렉터리 내부로 추가하고자 한다면 클러스터 구성 메뉴에서 위와 같이 호스트를 직접 추가해준다.
(6) 추가 이후 클러스터 구성 > 분산 스위치 관리 메뉴에서 네트워크 설정은 우선 넘어가고 두 개의 호스트를 클러스터로 구성한다.
(7) 이후 ESXi 두 개의 호스트 하나를 강제 종료하고 나머지 호스트에서 VM 목록들을 보면 죽인 호스트의 VM이 살아서 동작하는 것을 볼 수 있다. 현재 상태에서는 esxi-02 호스트를 강제 종료했으므로 esxi-03의 VM 목록에서 esxi-02 호스트의 VM이 확인되어야 한다. (고가용성이 동작하는 것)
(8) 추가적으로 vSphere HA는 VMkernel 네트워크를 통해 통신한다. vSphere HA는 클러스터 내의 호스트 간에 상태 정보를 주고받기 위해 VMkernel 포트를 사용한다.
(9) 현재 확인해 보면 ESXi-02 호스트를 강제 종료 시켰음에도 불구하고 esxi-02 호스트의 VM이 올라오지 않는다.
(10) 확인해 보면 Esxi-02 host의 VM을 기준으로 vSphere HA VM 페일오버 실패라는 메시지가 확인되며 클러스터의 로그를 보면 DataCenter의 특정 클러스터에 vSphere HA 페일 오버 수준을 충족할만한 리소스가 부족하다는 메시지가 확인된다.
(11) 이 부분이 정확히 어떤 오류 메시지인지 모르겠어서 구글링을 해봤다.
(12) 호스트, 호스트 내부 VM 메모리 리소스를 올린 뒤 esxi-02 호스트를 재부팅해봤다.
- 첫 번째 방법으로 해결되지 않음
(13) 두 번째 방법 : DELL Docs. Reference
(14) Proactive HA를 켜거나 끈 다음 클러스터에서 HA를 비활성화한 다음 HA를 다시 활성화한다.
(14) esxi-03 호스트에 02 호스트 VM이 확인되지만 VM이 켜지지 않는다. 이 부분에 대한 확인이 필요
(15) 해당 부분은 강사님께 여쭤보고 피드백을 받았다.
- 현재 가상 머신에서 작동되는 프로세스가 버벅이는 게 아닌, ESXi의 다른 호스트로 VM 자체가 이동되고 VM의 전원이 켜져야 하는데 현재 확인해 보면 내가 VM의 메모리 용량만 올리고 이전이 된 자체 대상인 ESXi-03 호스트에는 사양을 높여주지 않은 것 같다.
- 따라서 ESXi-02 호스트 내부 VM의 사양을 다시 줄이고 ESXi-03 호스트의 사양을 높여보고 HA 환경을 다시 테스트해 보는 것이 중요할 것 같다고 해 주셨다.
(16) 따라서 각 호스트와 가상 머신의 사양을 조절했다.
- 현재 해당 방법으로도 해결되지 않는다.
(17) 계산된 페일오버 용량 재정의 기준을 25%로 변경했다.
(18) 현재 2번 호스트를 기준으로 vSphere HA 구성 문제 오류가 있어서 이 부분을 재구성시켰다.
- 여기까지 진행했음에도 해결되지 않아서 클러스터 구성을 초기화하고 다시 진행할 예정이다.
7-5. esxi-02, 03 HA Configuration LAB / vSphere High Availability Failover Troubleshooting
(ESXi-03 VM -> ESXi-02 Host로 HA가 실행되는 부분은 확인)
(1) 7-5 과정은 문제없이 수행된다.
(2) 우선 역으로는 HA가 정상 동작하므로 다음 실습에서 이 부분을 다시 확인해본다.
※ 해당 포스팅을 기준으로 내용 추가가 필요하다고 생각되면 기존 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!