실제 물리 서버를 이용한 OpenStack 구축(7) : Nova

NOHHYEONGJUN·2025년 2월 21일

OpenStack

목록 보기
11/23
post-thumbnail

1. Nova

https://docs.openstack.org/nova/2023.1/install/

가상 머신(VM) 인스턴스를 생성, 관리, 배포하는 컴퓨팅 자원 관리 서비스

주요 기능
- VM 인스턴스 생성, 삭제, 스케일링
- 하이퍼바이저와 연동을 통해 물리적 자원을 가상화
- 스케줄러를 통해 적절한 호스트에 인스턴스 배치

연계
- Keystone을 통해 인증 및 권한 관리
- Neutron을 통해 네트워크 설정
- Cinder를 통해 블록 스토리지 연결
- Glance를 통해 VM 이미지 관리

 

1. con01

mysql

CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'openstack';
  
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'openstack';
  
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
  IDENTIFIED BY 'openstack';
  
exit

 

cd /nfs/
. admin-openrc

openstack user create --domain default --password-prompt nova
User Password: openstack
Repeat User Password: openstack

openstack role add --project service --user nova admin

openstack service create --name nova \
  --description "OpenStack Compute" compute
  
openstack endpoint create --region RegionOne \
  compute public http://con01:8774/v2.1
  
openstack endpoint create --region RegionOne \
  compute internal http://con01:8774/v2.1
  
openstack endpoint create --region RegionOne \
  compute admin http://con01:8774/v2.1

 

apt install nova-api nova-conductor nova-novncproxy nova-scheduler

cd /etc/nova/

cp nova.conf nova.conf.v0

/nfs/sed.sh nova.conf

vi /etc/nova/nova.conf
[os_region_name]
openstack = RegionOne

[DEFAULT]
transport_url = rabbit://openstack:openstack@con01:5672/

[api_database]
connection = mysql+pymysql://nova:openstack@con01/nova_api

[database]
connection = mysql+pymysql://nova:openstack@con01/nova

[api]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = http://con01:5000/
auth_url = http://con01:5000/
memcached_servers = con01:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = openstack

[service_user]
send_service_user_token = true
auth_url = https://con01/identity
auth_strategy = keystone
auth_type = password
project_domain_name = Default
project_name = service
user_domain_name = Default
username = nova
password = openstack

[DEFAULT]
my_ip = 10.0.0.1

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

[glance]
api_servers = http://con01: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://con01:5000/v3
username = placement
password = openstack

 

su -s /bin/sh -c "nova-manage api_db sync" nova

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

su -s /bin/sh -c "nova-manage db sync" nova

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

service nova-api restart
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart

 

2. com01

apt install nova-compute

cd /etc/nova/

cp nova.conf nova.conf.v0

/nfs/sed.sh nova.conf

vi /etc/nova/nova.conf

[DEFAULT]
transport_url = rabbit://openstack:openstack@con01

[api]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = http://con01:5000/
auth_url = http://con01:5000/
memcached_servers = con01:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = openstack

[service_user]
send_service_user_token = true
auth_url = https://con01/identity
auth_strategy = keystone
auth_type = password
project_domain_name = Default
project_name = service
user_domain_name = Default
username = nova
password = openstack

[DEFAULT]
my_ip = 10.0.0.2

[vnc]
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://con01:6080/vnc_auto.html

[glance]
api_servers = http://con01: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://con01:5000/v3
username = placement
password = openstack

service nova-compute restart

 

3. con01

openstack compute service list --service nova-compute
+--------------------------------------+--------------+-------+------+---------+-------+----------------------------+
| ID                                   | Binary       | Host  | Zone | Status  | State | Updated At                 |
+--------------------------------------+--------------+-------+------+---------+-------+----------------------------+
| ------------------------------------ | nova-compute | com01 | nova | enabled | up    | 2025-02-20T03:51:22.000000 |
+--------------------------------------+--------------+-------+------+---------+-------+----------------------------+

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
profile
Cloud/DevOps & Network Virtualization에 관심 있는 Engineer입니다. 🐳⚓️👨‍✈️

0개의 댓글