OpenStack (CPU family 다른 host 간 Live migration 수정 - Ubuntu 기반)
페이지 정보
작성자 infopower 작성일 21-01-25 14:17 조회 11,146 댓글 0본문
Ubuntu KVM Base의 OpenStack 에서 수정이 필요한 부분 정리내용입니다. 아래 참고하시기 바랍니다.
1. 테스트할 신규 컴퓨트노드 1대로 root ssh 접속
cd /usr/share/libvirt
cp cpu_map.xml cpu_map_backup_0408.xml
vi cpu_map.xml
# 맨 아래로 이동하면 </model> </arch> 부분이 보이는데, </model>과 </arch> 사이에 아래 cpu template 추가
<model name='Broadwell_custom'>
<signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
<feature name='bmi2'/>
<feature name='clflush'/>
<feature name='cmov'/>
<feature name='cx16'/>
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
<feature name='fxsr'/>
<feature name='hle'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
<feature name='pcid'/>
<feature name='pclmuldq'/>
<feature name='pge'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
<feature name='sep'/>
<feature name='smap'/>
<feature name='smep'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='sse4.1'/>
<feature name='sse4.2'/>
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
<feature name='x2apic'/>
<feature name='xsave'/>
<feature name='invtsc'/>
<feature name='abm'/>
<feature name='pdpe1gb'/>
<feature name='rdrand'/>
<feature name='f16c'/>
<feature name='osxsave'/>
<feature name='dca'/>
<feature name='pdcm'/>
<feature name='xtpr'/>
<feature name='tm2'/>
<feature name='est'/>
<feature name='smx'/>
<feature name='vmx'/>
<feature name='ds_cpl'/>
<feature name='monitor'/>
<feature name='dtes64'/>
<feature name='pbe'/>
<feature name='tm'/>
<feature name='ht'/>
<feature name='ss'/>
<feature name='acpi'/>
<feature name='ds'/>
<feature name='vme'/>
</model>
systemctl restart libvirtd
virsh cpu-models x86_64
# 아래와 같이 cpu model에 Broadwell_custom이 정상적으로 등록되었는지 확인
root@compute2:/usr/share/libvirt# virsh cpu-models x86_64
Broadwell_custom
Opteron_G5
Opteron_G4
Opteron_G3
Opteron_G2
Opteron_G1
phenom
athlon
Broadwell-IBRS
Broadwell
Broadwell-noTSX-IBRS
Broadwell-noTSX
Haswell-IBRS
Haswell
Haswell-noTSX-IBRS
Haswell-noTSX
IvyBridge-IBRS
IvyBridge
SandyBridge-IBRS
SandyBridge
Westmere-IBRS
Westmere
Nehalem-IBRS
Nehalem
Penryn
Conroe
qemu64
kvm64
cpu64-rhel6
cpu64-rhel5
kvm32
qemu32
core2duo
n270
coreduo
pentiumpro
pentium3
pentium2
pentium
486
cd /etc/nova/
cp nova.conf nova_backup_0408.conf
vi nova.conf
cpu_mode=none => #cpu_mode=none
아래줄에 다음추가
cpu_mode=custom
cpu_model=Broadwell_custom
systemctl restart nova-compute
virsh capabilities | sed -n '/<cpu>/,/cpu/p'
#아래와 같이 cpu model이 Broadwell_custom 으로 변경이 되었는지 확인
<cpu>
<arch>x86_64</arch>
<model>Broadwell_custom</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='14' threads='2'/>
<pages unit='KiB' size='4'/>
<pages unit='KiB' size='2048'/>
<pages unit='KiB' size='1048576'/>
</cpu>
systemctl status nova-compute
systemctl status libvirtd
Horizon에서 해당 테스트 컴퓨트노드에서 VM을 생성 가능하도록 Availibilityzone && hypervisor 설정 변경
VM 생성
# 컴퓨트노드에서 다음 명령어를 수행하여 방금 생성한 vm이 Broadwell cpu 타입을 물고 올라오는지 확인
ps -ef | grep -i qemu | grep -i Broadwell
# vm에서 아래 명령어 수행
lscpu | egrep -i "avx512cd|avx512f|mpx"
flag 검출 시 신컴퓨트노드 -> 구컴퓨트노드로의 라이브 마이그레이션 실패됨 => 설정 원복
flag 검출 안되면, 신컴퓨트노드에서 구컴퓨트노드로 라이브 마이그레이션 테스트, 구컴퓨트노드에서 다시 신컴퓨트노드로 라이브 마이그레이션 테스트 수행
1. 테스트할 신규 컴퓨트노드 1대로 root ssh 접속
cd /usr/share/libvirt
cp cpu_map.xml cpu_map_backup_0408.xml
vi cpu_map.xml
# 맨 아래로 이동하면 </model> </arch> 부분이 보이는데, </model>과 </arch> 사이에 아래 cpu template 추가
<model name='Broadwell_custom'>
<signature family='6' model='61'/>
<vendor name='Intel'/>
<feature name='3dnowprefetch'/>
<feature name='adx'/>
<feature name='aes'/>
<feature name='apic'/>
<feature name='avx'/>
<feature name='avx2'/>
<feature name='bmi1'/>
<feature name='bmi2'/>
<feature name='clflush'/>
<feature name='cmov'/>
<feature name='cx16'/>
<feature name='cx8'/>
<feature name='de'/>
<feature name='erms'/>
<feature name='fma'/>
<feature name='fpu'/>
<feature name='fsgsbase'/>
<feature name='fxsr'/>
<feature name='hle'/>
<feature name='invpcid'/>
<feature name='lahf_lm'/>
<feature name='lm'/>
<feature name='mca'/>
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
<feature name='pae'/>
<feature name='pat'/>
<feature name='pcid'/>
<feature name='pclmuldq'/>
<feature name='pge'/>
<feature name='pni'/>
<feature name='popcnt'/>
<feature name='pse'/>
<feature name='pse36'/>
<feature name='rdseed'/>
<feature name='rdtscp'/>
<feature name='rtm'/>
<feature name='sep'/>
<feature name='smap'/>
<feature name='smep'/>
<feature name='sse'/>
<feature name='sse2'/>
<feature name='sse4.1'/>
<feature name='sse4.2'/>
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='tsc'/>
<feature name='tsc-deadline'/>
<feature name='x2apic'/>
<feature name='xsave'/>
<feature name='invtsc'/>
<feature name='abm'/>
<feature name='pdpe1gb'/>
<feature name='rdrand'/>
<feature name='f16c'/>
<feature name='osxsave'/>
<feature name='dca'/>
<feature name='pdcm'/>
<feature name='xtpr'/>
<feature name='tm2'/>
<feature name='est'/>
<feature name='smx'/>
<feature name='vmx'/>
<feature name='ds_cpl'/>
<feature name='monitor'/>
<feature name='dtes64'/>
<feature name='pbe'/>
<feature name='tm'/>
<feature name='ht'/>
<feature name='ss'/>
<feature name='acpi'/>
<feature name='ds'/>
<feature name='vme'/>
</model>
systemctl restart libvirtd
virsh cpu-models x86_64
# 아래와 같이 cpu model에 Broadwell_custom이 정상적으로 등록되었는지 확인
root@compute2:/usr/share/libvirt# virsh cpu-models x86_64
Broadwell_custom
Opteron_G5
Opteron_G4
Opteron_G3
Opteron_G2
Opteron_G1
phenom
athlon
Broadwell-IBRS
Broadwell
Broadwell-noTSX-IBRS
Broadwell-noTSX
Haswell-IBRS
Haswell
Haswell-noTSX-IBRS
Haswell-noTSX
IvyBridge-IBRS
IvyBridge
SandyBridge-IBRS
SandyBridge
Westmere-IBRS
Westmere
Nehalem-IBRS
Nehalem
Penryn
Conroe
qemu64
kvm64
cpu64-rhel6
cpu64-rhel5
kvm32
qemu32
core2duo
n270
coreduo
pentiumpro
pentium3
pentium2
pentium
486
cd /etc/nova/
cp nova.conf nova_backup_0408.conf
vi nova.conf
cpu_mode=none => #cpu_mode=none
아래줄에 다음추가
cpu_mode=custom
cpu_model=Broadwell_custom
systemctl restart nova-compute
virsh capabilities | sed -n '/<cpu>/,/cpu/p'
#아래와 같이 cpu model이 Broadwell_custom 으로 변경이 되었는지 확인
<cpu>
<arch>x86_64</arch>
<model>Broadwell_custom</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='14' threads='2'/>
<pages unit='KiB' size='4'/>
<pages unit='KiB' size='2048'/>
<pages unit='KiB' size='1048576'/>
</cpu>
systemctl status nova-compute
systemctl status libvirtd
Horizon에서 해당 테스트 컴퓨트노드에서 VM을 생성 가능하도록 Availibilityzone && hypervisor 설정 변경
VM 생성
# 컴퓨트노드에서 다음 명령어를 수행하여 방금 생성한 vm이 Broadwell cpu 타입을 물고 올라오는지 확인
ps -ef | grep -i qemu | grep -i Broadwell
# vm에서 아래 명령어 수행
lscpu | egrep -i "avx512cd|avx512f|mpx"
flag 검출 시 신컴퓨트노드 -> 구컴퓨트노드로의 라이브 마이그레이션 실패됨 => 설정 원복
flag 검출 안되면, 신컴퓨트노드에서 구컴퓨트노드로 라이브 마이그레이션 테스트, 구컴퓨트노드에서 다시 신컴퓨트노드로 라이브 마이그레이션 테스트 수행
댓글목록 0
등록된 댓글이 없습니다.