
가상 머신(VM) 인스턴스를 생성, 관리, 배포하는 컴퓨팅 자원 관리 서비스
주요 기능
- VM 인스턴스 생성, 삭제, 스케일링
- 하이퍼바이저와 연동을 통해 물리적 자원을 가상화
- 스케줄러를 통해 적절한 호스트에 인스턴스 배치
연계
- Keystone을 통해 인증 및 권한 관리
- Neutron을 통해 네트워크 설정
- Cinder를 통해 블록 스토리지 연결
- Glance를 통해 VM 이미지 관리
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
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
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