이 문서에서는 노트북 2대로 RHV 테스트 환경을 구축하다가 발견된 내용을 기술하고 있으며,
KVM Host 에서 중첩 가상화 미설정으로 인해 발생한 RHV Host 추가 문제를 해결하는 방법을 안내하고 있다.
RHV Version :
rhvm-4.3.7.2-0.1.el7
ovirt-host-4.3.2-1.el7ev.x86_64
구성은 아래와 같다.
증상 :
RHVM(RHV Manager)의 Admin Portal - Web Console에서 Host 추가 시 아래와 같은 메시지 발생하면서 Host Install에 실패함.
Installation failed. Command returned failure code 1 during ssh session.
이 문제는 nested virtualization(중첩 가상화)와 관련된 것으로 RHV-Manager가 Host를 추가하는 과정에서 Virtualization 지원여부를 사전 체크하는 부분에서 Pass하지 못해서 발생하는 것이다.
아래와 같이 확인 및 설정을 하여 해결하면 된다.
먼저 사전에 Laptop(하드웨어)의 BIOS에서 VT-X, VT-D 와 같은 가상화 설정이 Enable 되어 있어야 한다.
1. RHV-Manager 에서 로그 확인
Ovirt-Engine이 수행되는 Manager 서버에서 ovirt-host-deploy 로그를 확인해 보자 아래와 같은 메시지가 발견된다.
[root@RHVM ~]# Cat /var/log/ovirt-engine/host-deploy/ovirt-host-deploy-20200226181551-10.76.161.147-42df0ad1.log | grep Error RuntimeError: Hardware does not support virtualization
2. RHV-Host 에서 가상화 지원 여부 확인
[root@RHVH-02 ~]# virt-host-validate QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited) ~~ 아래 생략 ~~
H/W virtualization 실패로 체크됨
3. KVM-Host에서 nested 가상화 지원 여부 확인 및 수정
[root@KVM-HOST ~]# cat /sys/module/kvm_intel/parameters/nested N
지원하지 않음으로 확인
4. 설정 수정 및 리부팅
[root@KVM-HOST ~]# vim /etc/modprobe.d/kvmintel.conf options kvm_intel nested=1 options kvm_intel enable_shadow_vmcs=1 options kvm_intel enable_apicv=1 options kvm_intel ept=1 [root@KVM-HOST ~]# reboot [root@KVM-HOST ~]# cat /sys/module/kvm_intel/parameters/nested Y
설정, 리부팅 후 nested 가상화 지원을 확인하자 Yes로 확인된다.
5. RHV-Host VM의 CPU Mode 설정 수정
[root@KVM-HOST ~]# virsh edit RHVH-02 <cpu mode='host-passthrough' check='partial'/>
--> RHV-Host VM을 끄고서 cpu mode 부분을 위와 같이 수정하고 부팅한다.
* 만약 virsh 명령이 없으면 아래와 같이 패키지 설치
[root@KVM-HOST ~]# yum install virt-install
6. RHV-Host 에서 가상화 지원 여부 재확인
[root@RHVH-02 ~]# virt-host-validate QEMU: Checking for hardware virtualization : PASS ~~ 아래 생략 ~~
정리하자면 아래와 같다.
1) Laptop 의 BIOS 에서 가상화 관련 옵션 활성화
2) RHV-Host의 Hypervisor인 KVM-Host 에서 nested Virtualization 활성화
3) KVM-Host 위에서 돌아가는 RHV-Host VM의 Config(XML)를 virsh를 통해 cpu mode 부분을 수정
결국엔 이 글은 KVM 기반 하이퍼바이저 위에서 돌아가는 VM에 대한 중첩 가상화를 활성화 하는 방법에 대한 내용이다.
[ Reference ]
Nested Virtualization on RHV 4.3
[ovirt-users] Nested KVM for oVirt 4.1.2
https://lists.ovirt.org/pipermail/users/2017-May/082238.html
RHEV-M with nested VM for OSP
https://iranzo.github.io/blog/2015/07/17/rhev-m-with-nested-vm-for-osp/
ADMINISTRATION GUIDE
https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.2/html-single/administration_guide/index
Network Filter - Red Hat no longer supports disabling filters by setting the EnableMACAntiSpoofingFilterRules parameter to false using the engine-config tool. Use the <No Network Filter> option instead.