Nova - Controller Node 설치
Database 생성
1. 데이터베이스 액세스 클라이언트를 사용하여 root사용자로 데이터베이스 서버에 연결합니다.
# mysql
2. nova데이터베이스 생성 :
MariaDB [(none)]> CREATE DATABASE nova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> CREATE DATABASE nova_cell0;
3. nova데이터베이스에 액세스 권한 부여 :
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
4. admin관리자 전용 CLI 명령을 사용하기 위해 아래 명령어 실행합니다.
# . admin-openrc
5. 사용자 생성
# openstack user create --domain default --password-prompt nova
6. 프로젝트에 사용자를 admin 역할로 추가합니다.
# openstack role add --project service --user nova admin
7. nova service를 추가해줍니다.
# openstack service create --name nova \
--description "OpenStack Compute" compute
8. nova API 서비스 엔드포인트를 생성합니다.
# openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1
# openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1
# openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1
구성 요소 설치 및 구성
1. 패키지 설치 :
# apt install nova-api nova-conductor nova-novncproxy nova-scheduler
2. /etc/nova/nova.conf 파일을 아래와 같이 수정해줍니다.
[api_database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
# ...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller:5672/
my_ip = 10.0.2.4
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
[vnc]
enabled = true
# ...
server_listen = $my_ip
server_proxyclient_address = $my_ip
[glance]
# ...
api_servers = http://controller: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://controller:5000/v3
username = placement
password = PLACEMENT_PASS
3. nova-api database를 채워줍니다.
# su -s /bin/sh -c "nova-manage api_db sync" nova
4. cell0데이터베이스 등록 :
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
5. cell1셀 만들기 :
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
6. nova 데이터베이스를 채웁니다.
# su -s /bin/sh -c "nova-manage db sync" nova
7. nova cell0 및 cell1이 올바르게 등록되었는지 확인합니다.
# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
| Name | UUID | Transport URL | Database Connection | Disabled |
+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
| cell0 | 00000000-0000-0000-0000-000000000000 | none:/ | mysql+pymysql://nova:****@controller/nova_cell0?charset=utf8 | False |
| cell1 | f690f4fd-2bc5-4f15-8145-db561a7b9d3d | rabbit://openstack:****@controller:5672/nova_cell1 | mysql+pymysql://nova:****@controller/nova_cell1?charset=utf8 | False |
+-------+--------------------------------------+----------------------------------------------------+--------------------------------------------------------------+----------+
설치완료
- 컴퓨팅 서비스를 다시 시작합니다.
systemctl restart nova-api
systemctl restart nova-scheduler
systemctl restart nova-conductor
systemctl restart nova-novncproxy
Nova - Compute Node 설치
이 서비스는 인스턴스 또는 가상 머신(VM)을 배포하기 위해 여러 하이퍼바이저를 지원합니다. 단순성을 위해 이 구성은 가상 머신에 대한 하드웨어 가속을 지원하는 컴퓨팅 노드에서 커널 기반 VM(KVM) 확장과 함께 QEMU(Quick EMUlator) 하이퍼바이저를 사용합니다. 레거시 하드웨어에서 이 구성은 일반 QEMU 하이퍼바이저를 사용합니다.
여기선 컨트롤러 노드와 컴퓨트노드를 합쳐서 구축할 예정이라 아래 섹션에서 중복된 옵션이 있을 수 있습니다. 중복되는것은 무시하고 새로 추가되는 옵션만 넣으면 됩니다.
구성 요소 설치 및 구성
1. 패키지 설치 :
# apt install nova-compute
2. /etc/nova/nova.conf 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
[vnc]
# ...
enabled = true
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
[glance]
# ...
api_servers = http://controller: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://controller:5000/v3
username = placement
password = PLACEMENT_PASS
설치완료
1. 컴퓨팅 노드가 가상 머신에 대한 하드웨어 가속을 지원하는지 확인합니다.
$ egrep -c '(vmx|svm)' /proc/cpuinfo
이 명령이 one or greater을 반환하면 컴퓨팅 노드는 일반적으로 추가 구성이 필요하지 않은 하드웨어 가속을 지원합니다.
이 명령이 zero를 반환하는 경우 컴퓨팅 노드는 하드웨어 가속을 지원하지 않으며 libvirt KVM 대신 QEMU를 사용하도록 구성해야 합니다.
- /etc/nova/nova-compute.conf파일의 [libvirt] 섹션을 다음과 같이 수정합니다 .
[libvirt]
# ...
virt_type = qemu
- 컴퓨팅 서비스를 다시 시작합니다.
systemctl restart nova-compute
cell database에 컴퓨팅 노드 추가(controller node에서 실행)
1. 관리자 자격 증명을 소싱하여 관리자 전용 CLI 명령을 활성화한 다음 데이터베이스에 컴퓨팅 호스트가 있는지 확인합니다.
# . admin-openrc
# openstack compute service list --service nova-compute
+--------------------------------------+--------------+-----------------------+------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+--------------------------------------+--------------+-----------------------+------+---------+-------+----------------------------+
| 8b5bd797-318a-4aa9-ab29-c41dedbc2cd8 | nova-compute | localhost.localdomain | nova | enabled | up | 2022-05-10T06:18:27.000000 |
+--------------------------------------+--------------+-----------------------+------+---------+-------+----------------------------+
2. 컴퓨팅 호스트 검색:
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting computes from cell 'cell1': 906187b0-de1c-4676-a868-330a735d29a5
Checking host mapping for compute host 'localhost.localdomain': 783025d7-8aba-4fa6-9af3-d07dd01169a9
Creating host mapping for compute host 'localhost.localdomain': 783025d7-8aba-4fa6-9af3-d07dd01169a9
Found 1 unmapped computes in cell: 906187b0-de1c-4676-a868-330a735d29a5
- 추가사항
새 compute 노드를 추가할 때는 컨트롤러 노드에서 nova-management cell_v2 discover_hosts를 실행하여 새 compute 노드를 등록해야 합니다. 또는 /etc/nova/nova.conf에서 적절한 간격을 설정할 수 있습니다.
[scheduler]
discover_hosts_in_cells_interval = 300
'Cloud > Openstack' 카테고리의 다른 글
openstack 최신 yoga버전 수동 설치 - Horizon (0) | 2022.05.11 |
---|---|
openstack 최신 yoga버전 수동 설치 - Neutron(linux-bridge) (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Placement (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Glance (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Keystone (0) | 2022.05.11 |