본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Manually Install OpenStack

Openstack Nova on Centos (Rocky) 2 [Compute Node]

by iamlucia 2020. 8. 21.

 

Nova: Compute Service (컴퓨트 서비스) 


 

<< ⭕ 본 Nova 서비스 설치 내용은 컴퓨트 노드에서 진행 >>

 


🔨 Compute 서비스 구성요소 설치 및 구성 

 

🟢 Nova compute 패키지 설치 : 

 

# yum -y install openstack-nova-compute

 

 

🟢 nova.conf 파일 수정 : 

 

더보기

[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:[rabbitmq 오프스택 계정 비밀번호]@[컨트롤러 노드 관리용 ip]
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
my_ip =  [컴퓨트 노드 관리용 ip] 

[api]
auth_strategy = keystone


[keystone_authtoken]
auth_url = http://[컨트롤러 노드 관리용 ip]:5000/v3
memcached_servers = [컨트롤러 노드 관리용 ip]:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = [nova계정 비밀번호]


[vnc]
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip

novncproxy_base_url = http://[컨트롤러 노드 관리용 ip]:6080/vnc_auto.html

 

[glance]
api_servers = http://[컨트롤러 노드 관리용 ip]:9292

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://[컨트롤러 노드 관리용 ip]:5000/v3
username = placement
password = [placement 계정 비밀번호]

 


🔨 설치 마무리 1 @ compute node 

컴퓨트 노드에서는 하이퍼바이저가 설치된다.
따라서  해당 가상 머신(노드)이 가상화를 지원하는지 확인이 필요하다. 

 

🟢 가상화 지원 여부 및 하이퍼바이저 kvm이 설치 여부 확인: 

# egrep -c '(vmx|svm)' /proc/cpuinfo // 이때 1이상의 숫자가 출력된다면 가상화 지원 가능함을 의미 
# lsmod | grep kvm // kvm 이 있는지 확인

 

 

🟢 Compute 관련 서비스 활성화 및 실행:

 

# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service

 


🔨 설치 마무리 2 @ controller node 

컴퓨트 노드들을 컨트롤러 노드에 추가하기

 

 

🟢 admin credential 스크립트 실행 :

# source key_adminrc

 

 

🟢 Compute 호스트들이 데이터베이스에 입력되어있는지 확인 :

 

# openstack compute service list 

 

 

🟢 Compute 호스트 Discover : 

 

# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

 

명령문 처음 실행 시, 컴퓨트가 매핑되지 않았다고 떠서 다시 한 번 더 실행하여 모두 매핑 완료

 

🟢 인증서비스의 API endpotint 리스트를 통해 인증 서비스와의 연결 확인 :

 

# openstack catalog list

 

 

🟢 이미지 서비스 리스트를 통해 이미지 서비스와의 연결 확인 :

 

# openstack image list 

 

 

🟢 이미지 서비스 리스트를 통해 이미지 서비스와의 연결 확인 :

 

# nova-status upgrade check 

 

 


🔫 Trouble Shooting  

 

warning 화면

 

🔴 WARNING : Resource Providers Check 시
There are 1 compute resource providers and 2 compute nodes in the deployment. ~ 

 

🙋‍♀️warning 뜨는 이유? 
컴퓨트 노드를 삭제할 때, placement API는 계속 그 정보를 추가할뿐 삭제하지 않기 때문에 나타나는 결과.

 

🟠 각 컴퓨트 노드의 placement api 확인 => compute 1 에서 자원을 받아오지 못한다는 오류 확인 

 

# vi /var/log/nova/nova-compute.log

 

@ compute 1

ERROR nova.compute.manager ResourceProviderCreationFailed: Failed to create resource provider compute1

 

@ compute 2

INFO nova.scheduler.client.report [req-db5577ff-8905-44f3-8212-361b37336062 - - - - -] [req-70937ab7-61f4-4c74-9ed9-1ccffe399ebb] Created resource provider record via placement API for resource provider with UUID f8394286-a71c-45b2-ab8d-477dbbcb62d7 and name compute2.

 

🟠 컨트롤러 노드에서 mariadb 접속하여 두 개의 compute 노드의 nova 테이블 정상 등록 여부 확인 => 문제 없음! 

 

🟠 공식 문서에서는 컨트롤러 노드 1개에 컴퓨트 노드 1개로 진행 => 본 프로젝트에서는 컴퓨트 노드 2개로 진행중이기 때문에
컴퓨트 노드를 하나 더 추가한다는 명령어 실행이 필요 

 

🟢 Trouble shooting : Compute 노드 하나 추가 명령어 실행 (단, 컴퓨트 노드의 사양이 동일해야 함)  

 

# nova-manage cell_v2 discover_hosts

 

compute 노드 추가할 때마다 명령어 치지 말고, 간단하게 스케줄러 옵션을 활용할 수도 있다. 

 

@ compute 1

 INFO nova.compute.resource_tracker [req-46115d35-8e63-486e-b1ff-f686b6d276f3 - - - - -] Final resource view: name=compute1 phys_ram=3770MB used_ram=512MB phys_disk=49GB used_disk=0GB total_vcpus=4 used_vcpus=0 pci_stats=[]

 

@ compute 2

INFO nova.compute.resource_tracker [req-b636b45f-80c4-433f-bf18-6136eec0a3f1 - - - - -] Final resource view: name=compute2 phys_ram=3770MB used_ram=512MB phys_disk=49GB used_disk=0GB total_vcpus=4 used_vcpus=0 pci_stats=[]