21.6. 인스턴스 마이그레이션
OpenStack과 기본 가상화 계층은 OpenStack 노드 간에 이미지를 실시간 마이그레이션을 제공하므로 인스턴스 다운타임 없이 컴퓨팅 노드의 롤링 업그레이드를 원활하게 수행할 수 있습니다. 그러나 실시간 마이그레이션에도 상당한 위험이 있습니다. 다음은 실시간 마이그레이션 중에 수행되는 높은 수준의 단계입니다.
- 대상 호스트에서 인스턴스 시작
- 전송 메모리
- 게스트 및 동기화 디스크 중지
- 상태 전송
- 게스트 시작
콜드 마이그레이션, 크기 조정 및 보류와 같은 특정 작업은 모두 인스턴스의 데이터를 네트워크를 통해 다른 서비스로 전송할 수 있습니다.
21.6.1. 실시간 마이그레이션 위험
실시간 마이그레이션 프로세스의 다양한 단계에서 인스턴스의 런타임 메모리 및 디스크 내용이 일반 텍스트로 네트워크를 통해 전송됩니다. 따라서 실시간 마이그레이션을 사용할 때 처리해야 하는 여러 가지 위험이 있습니다. 다음의 비-기타적인 목록은 이러한 위험 중 일부를 자세히 설명합니다.
- 서비스 거부(DoS): 마이그레이션 프로세스 중에 문제가 발생하면 인스턴스가 손실될 수 있습니다.
- 데이터 노출: 메모리 또는 디스크 전송은 안전하게 처리되어야 합니다.
- 데이터 조작: 메모리 또는 디스크 전송이 안전하게 처리되지 않으면 공격자는 마이그레이션 중에 사용자 데이터를 조작할 수 있습니다.
- 코드 삽입: 메모리 또는 디스크 전송이 안전하게 처리되지 않으면 공격자는 디스크 또는 메모리에 실행 파일을 조작할 수 있습니다.
21.6.2. 암호화된 실시간 마이그레이션
실시간 마이그레이션 트래픽은 실행 중인 인스턴스의 디스크 및 메모리 내용을 일반 텍스트로 전송하며 현재 기본적으로 내부 API 네트워크에서 호스팅됩니다.
실시간 마이그레이션을 활성화하기 위해 충분한 업그레이드(예: 업그레이드)가 있는 경우 libvirtd에서 실시간 마이그레이션에 암호화된 터널을 제공할 수 있습니다. 그러나 이 기능은 OpenStack Dashboard 또는 nova-client 명령에는 노출되지 않으며 libvirtd의 수동 구성을 통해서만 액세스할 수 있습니다. 그러면 실시간 마이그레이션 프로세스가 다음과 같은 상위 수준 단계로 변경됩니다.
- 인스턴스 데이터는 하이퍼바이저에서 libvirtd로 복사됩니다.
- 암호화된 터널은 소스 및 대상 호스트의 libvirtd 프로세스 간에 생성됩니다.
- 대상 libvirtd 호스트는 인스턴스를 기본 하이퍼바이저에 다시 복사합니다.
Red Hat OpenStack Platform 13의 경우 권장되는 접근 방식은 Ceph를 백엔드로 사용할 때 기본적으로 활성화되어 있는 터널링된 마이그레이션을 사용하는 것입니다. 자세한 내용은 https://docs.openstack.org/nova/queens/configuration/config.html#libvirt.live_migration_tunnelled 을 참조하십시오.