注:由于是集群,所以只要在一个控制节点上创建即可
[root@cont02:/root]# mysql -uroot -p"typora#2019"
MariaDB [(none)]> CREATE DATABASE glance;
Query OK, 1 row affected (0.009 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
Bye
8.2 创建glance api
[root@cont02:/root]# source openrc
[root@cont02:/root]# openstack user list
+----------------------------------+--------+
| ID | Name |
+----------------------------------+--------+
| 02c1960ba4c44f46b7152c0a7e52fdba | admin |
| 61c06b9891a64e68b87d84dbcec5e9ac | myuser |
+----------------------------------+--------+
//创建glance用户
[root@cont02:/root]# openstack user create --domain default --password=glance_typora glance
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 34c34fe5d78e4f39bfd63f82ad989585 |
| name | glance |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
//glance用户赋权(为glance用户赋予admin权限)
[root@cont02:/root]# openstack role add --project service --user glance admin
//创建glacne服务实体
[root@cont02:/root]# openstack service create --name glance --description "OpenStack Image" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image |
| enabled | True |
| id | 369d083b4a094c1fb57e189d54305ea9 |
| name | glance |
| type | image |
+-------------+----------------------------------+
//创建glance-api
注:--region与初始化admin用户时生成的region一致;api地址统一采用VIP,服务类型为image
[root@cont02:/root]# openstack endpoint create --region RegionOne image public http://VirtualIP:9293
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 3df1aef87c1a4f069e9742486f200c18 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 369d083b4a094c1fb57e189d54305ea9 |
| service_name | glance |
| service_type | image |
| url | http://VirtualIP:9293 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne image internal http://VirtualIP:9293
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | b7b0084313744b8a91a142b1221e0443 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 369d083b4a094c1fb57e189d54305ea9 |
| service_name | glance |
| service_type | image |
| url | http://VirtualIP:9293 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne image admin http://VirtualIP:9293
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | e137861e214c46ed898a751db74cb70a |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 369d083b4a094c1fb57e189d54305ea9 |
| service_name | glance |
| service_type | image |
| url | http://VirtualIP:9293 |
+--------------+----------------------------------+
[root@cont01:/root]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+----
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+--------------+---------+----
| 2e109052bb4a4affa30fe3b9e3e5fcc3 | RegionOne | keystone | identity | True | internal | http://VirtualIP:5001/v3/ |
| 40e4fa83731d4933afe694481b5e0464 | RegionOne | glance | image | True | admin | http://VirtualIP:9293 |
| 8ddb366df7e94af9af298b5f11774fb4 | RegionOne | keystone | identity | True | admin | http://VirtualIP:5001/v3/ |
| a592cb41c0bb424c9817633ed1946b45 | RegionOne | keystone | identity | True | public | http://VirtualIP:5001/v3/ |
| b7b0084313744b8a91a142b1221e0443 | RegionOne | glance | image | True | internal | http://VirtualIP:9293 |
| fdb2cdadfb7544abad1f216ca719f478 | RegionOne | glance | image | True | public | http://VirtualIP:9293 |
+----------------------------------+-----------+--------------+--------------+---------+----
8.3 安装glance程序
[root@cont01:/root]# yum install openstack-glance -y
[root@cont02:/root]# yum install openstack-glance -y
[root@cont03:/root]# yum install openstack-glance -y
8.3 配置glance-api.conf程序配置文件(三个控制节点全操作cont01,cont02.cont03)
[root@cont01:/etc/glance]# cp -p /etc/glance/glance-api.conf{,.bak}
[root@cont02:/root]# cp -p /etc/glance/glance-api.conf{,.bak}
[root@cont03:/root]# cp -p /etc/glance/glance-api.conf{,.bak}
[root@cont01:/etc/glance]# vim glance-api.conf
1 [DEFAULT]
2 enable_v1_api = false
730 bind_host = 192.168.10.21
1882 [database]
1883 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
2006 [glance_store]
2007 stores = file,http
2008 default_store = file
2009 filesystem_store_datadir = /var/lib/glance/images/
3473 [keystone_authtoken]
3474 www_authenticate_uri = http://VirtualIP:5001
3475 auth_url = http://VirtualIP:5001
3476 memcached_servers = cont01:11211,cont02:11211,cont03:11211
3477 auth_type = password
3478 project_domain_name = Default
3479 user_domain_name = Default
3480 project_name = service
3481 username = glance
3482 password = glance_typora
4398 [paste_deploy]
4399 flavor = keystone
//注: /var/lib/glance/images是默认的存储目录
[root@cont02:/root]# vim /etc/glance/glance-api.conf
1 [DEFAULT]
2 enable_v1_api = false
730 bind_host = 192.168.10.22
1882 [database]
1883 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
2006 [glance_store]
2007 stores = file,http
2008 default_store = file
2009 filesystem_store_datadir = /var/lib/glance/images/
3473 [keystone_authtoken]
3474 www_authenticate_uri = http://VirtualIP:5001
3475 auth_url = http://VirtualIP:5001
3476 memcached_servers = cont01:11211,cont02:11211,cont03:11211
3477 auth_type = password
3478 project_domain_name = Default
3479 user_domain_name = Default
3480 project_name = service
3481 username = glance
3482 password = glance_typora
4398 [paste_deploy]
4399 flavor = keystone
[root@cont03:/root]# vim /etc/glance/glance-api.conf
1 [DEFAULT]
2 enable_v1_api = false
730 bind_host = 192.168.10.23
1882 [database]
1883 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
2006 [glance_store]
2007 stores = file,http
2008 default_store = file
2009 filesystem_store_datadir = /var/lib/glance/images/
3473 [keystone_authtoken]
3474 www_authenticate_uri = http://VirtualIP:5001
3475 auth_url = http://VirtualIP:5001
3476 memcached_servers = cont01:11211,cont02:11211,cont03:11211
3477 auth_type = password
3478 project_domain_name = Default
3479 user_domain_name = Default
3480 project_name = service
3481 username = glance
3482 password = glance_typora
4398 [paste_deploy]
4399 flavor = keystone
//查看[root@cont0$:/root]# egrep -v "^#|^$" /etc/glance/glance-api.conf
配置Ceph为glance****镜像的后端存储(节后参考)
编辑/etc/glance/glance-api.conf
[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
如果你想允许用image的写时复制克隆,再添加下列内容到[DEFAULT]段下:
show_image_direct_url = True
建议把如下属性也加上,加到[default]下:
hw_scsi_model=virtio-scsi #添加 virtio-scsi 控制器以获得更好的性能、并支持 discard 操作
hw_disk_bus=scsi #把所有 cinder 块设备都连到这个控制器;
hw_qemu_guest_agent=yes #启用 QEMU guest agent (访客代理)
os_require_quiesce=yes #通过 QEMU guest agent 发送fs-freeze/thaw调用
测试下上传镜像:
如果镜像cirros-0.3.5-x86_64-disk.img是qcow2格式的,可以先将它转换成raw格式的,因为如果要使用ceph作为后端存储,就应该将它的镜像格式转为raw:
可以使用命令qemu-img info cirros-0.3.5-x86_64-disk.img查看它是什么格式的,使用命令将它从qcow2格式转换成raw格式并保存成另外一个镜像文件:
qemu-img convert -f qcow2 -O raw cirros-0.3.5-x86_64-disk.img image.img
以下进行上传镜像操作:
. admin-openrc.sh
glance image-create --name “imagetest” --file image.img --disk-format raw --container-format bare --visibility public --progress
使用如下命令验证是否创建成功:
openstack image list
8.4 配置glance-registry.conf程序配置文件(三个控制节点全操作cont01,cont02.cont03)[root@cont01:/etc/glance]# cp -p /etc/glance/glance-registry.conf{,.bak}
[root@cont02:/root]# cp -p /etc/glance/glance-registry.conf{,.bak}
[root@cont03:/root]# cp -p /etc/glance/glance-registry.conf{,.bak}
[root@cont01:/etc/glance]# vim /etc/glance/glance-registry.conf
1 [DEFAULT]
603 bind_host = 192.168.10.21
1128 [database]
1129 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
1252 [keystone_authtoken]
1253 www_authenticate_uri = http://VirtualIP:5001
1254 auth_url = http://VirtualIP:5001
1255 memcached_servers = cont01:11211,cont02:11211,cont03:11211
1256 auth_type = password
1257 project_domain_name = Default
1258 user_domain_name = Default
1259 project_name = service
1260 username = glance
1261 password = glance_typora
2150 [paste_deploy]
2151 flavor = keystone
[root@cont02:/root]# vim /etc/glance/glance-registry.conf
1 [DEFAULT]
603 bind_host = 192.168.10.22
1128 [database]
1129 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
1252 [keystone_authtoken]
1253 www_authenticate_uri = http://VirtualIP:5001
1254 auth_url = http://VirtualIP:5001
1255 memcached_servers = cont01:11211,cont02:11211,cont03:11211
1256 auth_type = password
1257 project_domain_name = Default
1258 user_domain_name = Default
1259 project_name = service
1260 username = glance
1261 password = glance_typora
2150 [paste_deploy]
2151 flavor = keystone
[root@cont03:/root]# vim /etc/glance/glance-registry.conf
1 [DEFAULT]
603 bind_host = 192.168.10.23
1128 [database]
1129 connection = mysql+pymysql://glance:GLANCE_typora@VirtualIP:3307/glance
1252 [keystone_authtoken]
1253 www_authenticate_uri = http://VirtualIP:5001
1254 auth_url = http://VirtualIP:5001
1255 memcached_servers = cont01:11211,cont02:11211,cont03:11211
1256 auth_type = password
1257 project_domain_name = Default
1258 user_domain_name = Default
1259 project_name = service
1260 username = glance
1261 password = glance_typora
2150 [paste_deploy]
2151 flavor = keystone
8.5 同步glance数据库(任意控制节点操作即可)
[root@cont02:/root]# su -s /bin/sh -c "glance-manage db_sync" glance
/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1352: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade
expire_on_commit=expire_on_commit, _conf=conf)
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1280, u"Name 'alembic_version_pkc' ignored for PRIMARY key.")
result = self._query(query)
INFO [alembic.runtime.migration] Running upgrade -> liberty, liberty initial
INFO [alembic.runtime.migration] Running upgrade liberty -> mitaka01, add index on created_at and updated_at columns of 'images' table
INFO [alembic.runtime.migration] Running upgrade mitaka01 -> mitaka02, update metadef os_nova_server
INFO [alembic.runtime.migration] Running upgrade mitaka02 -> ocata_expand01, add visibility to images
INFO [alembic.runtime.migration] Running upgrade ocata_expand01 -> pike_expand01, empty expand for symmetry with pike_contract01
INFO [alembic.runtime.migration] Running upgrade pike_expand01 -> queens_expand01
INFO [alembic.runtime.migration] Running upgrade queens_expand01 -> rocky_expand01, add os_hidden column to images table
INFO [alembic.runtime.migration] Running upgrade rocky_expand01 -> rocky_expand02, add os_hash_algo and os_hash_value columns to images table
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Upgraded database to: rocky_expand02, current revision(s): rocky_expand02
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Database migration is up to date. No migration needed.
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade mitaka02 -> ocata_contract01, remove is_public from images
INFO [alembic.runtime.migration] Running upgrade ocata_contract01 -> pike_contract01, drop glare artifacts tables
INFO [alembic.runtime.migration] Running upgrade pike_contract01 -> queens_contract01
INFO [alembic.runtime.migration] Running upgrade queens_contract01 -> rocky_contract01
INFO [alembic.runtime.migration] Running upgrade rocky_contract01 -> rocky_contract02
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Upgraded database to: rocky_contract02, current revision(s): rocky_contract02
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Database is synced successfully.
[root@cont02:/root]# mysql -uroot -ptypora#2019
MariaDB [(none)]> use glance;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [glance]> show tables;
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| alembic_version |
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| metadef_tags |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
15 rows in set (0.001 sec)
MariaDB [glance]> exit
Bye
8.6 启动glance服务
(所有控制节点上操作 cont01,cont02,cont03)
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
systemctl status openstack-glance-api.service openstack-glance-registry.service
8.7 测试镜像
[root@cont02:/root]# cd /var/lib/glance/images/
[root@cont02:/var/lib/glance/images]# openstack image list
[root@cont02:/var/lib/glance/images]# ls
[root@cont02:/var/lib/glance/images]# glance image-list
+----+------+
| ID | Name |
+----+------+
+----+------+
[root@cont02:/var/lib/glance/images]# cd
[root@cont02:/root]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
[root@cont02:/root]# ls
admin-openrc anaconda-ks.cfg cirros-0.4.0-x86_64-disk.img demo-openrc get-pip.py openrc
[root@cont02:/root]# openstack image create "cirros" \
> --file /root/cirros-0.4.0-x86_64-disk.img \
> --disk-format qcow2 --container-format bare \
> --public
[root@cont02:/root]# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| f18d54e0-cf78-4881-9348-f446958a4c4b | cirros | active |
+--------------------------------------+--------+--------+
[root@cont02:/root]# glance image-list
+--------------------------------------+--------+
| ID | Name |
+--------------------------------------+--------+
| f18d54e0-cf78-4881-9348-f446958a4c4b | cirros |
+--------------------------------------+--------+
8.7 设置PCS资源
[root@cont02:/root]# pcs resource create openstack-glance-api systemd:openstack-glance-api --clone interleave=true
[root@cont02:/root]# pcs resource create openstack-glance-registry systemd:openstack-glance-registry --clone interleave=true
[root@cont02:/root]# pcs resource
VirtualIP (ocf::heartbeat:IPaddr2): Started cont01
Clone Set: openstack-glance-api-clone [openstack-glance-api]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-glance-registry-clone [openstack-glance-registry]
Started: [ cont01 cont02 cont03 ]
9、 Nova控制节点集群
9.1 创建Nova相关数据库(任意控制节点操作即可)
注:nova服务含4个数据库,统一授权到nova用户;
[root@cont02:/root]# mysql -uroot -p"typora#2019"
MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.010 sec)
MariaDB [(none)]> CREATE DATABASE nova;
Query OK, 1 row affected (0.009 sec)
MariaDB [(none)]> CREATE DATABASE nova_cell0;
Query OK, 1 row affected (0.009 sec)
MariaDB [(none)]> CREATE DATABASE placement;
Query OK, 1 row affected (0.009 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.011 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.011 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.009 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_typora';
Query OK, 0 rows affected (0.024 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_typora';
Query OK, 0 rows affected (0.010 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.011 sec)
MariaDB [(none)]> exit
Bye
9.2 创建nova/placement-api(任意控制节点操作即可)
[root@cont02:/root]# source openrc
[root@cont02:/root]# openstack user create --domain default --password=nova_typora nova
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | edf5d194c7454a3e81fe5f099cb743b1 |
| name | nova |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
//密码:nova_typora
[root@cont02:/root]# openstack user list
+----------------------------------+--------+
| ID | Name |
+----------------------------------+--------+
| 02c1960ba4c44f46b7152c0a7e52fdba | admin |
| 34c34fe5d78e4f39bfd63f82ad989585 | glance |
| 61c06b9891a64e68b87d84dbcec5e9ac | myuser |
| edf5d194c7454a3e81fe5f099cb743b1 | nova |
+----------------------------------+--------+
[root@cont02:/root]# openstack role add --project service --user nova admin
[root@cont02:/root]# openstack service list
+----------------------------------+----------+----------+
| ID | Name | Type |
+----------------------------------+----------+----------+
| 369d083b4a094c1fb57e189d54305ea9 | glance | image |
| 66fbd70e526f48828b5a18cb7aaf4d1b | keystone | identity |
+----------------------------------+----------+----------+
[root@cont02:/root]# openstack service create --name nova --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | 28ed51dbfde848f791e70a3be574c143 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
[root@cont02:/root]# openstack service list
+----------------------------------+----------+----------+
| ID | Name | Type |
+----------------------------------+----------+----------+
| 28ed51dbfde848f791e70a3be574c143 | nova | compute |
| 369d083b4a094c1fb57e189d54305ea9 | glance | image |
| 66fbd70e526f48828b5a18cb7aaf4d1b | keystone | identity |
+----------------------------------+----------+----------+
[root@cont02:/root]# openstack endpoint create --region RegionOne compute public http://VirtualIP:9774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 3ae6c07e8c1844b3a21c3fc073cd3da9 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 28ed51dbfde848f791e70a3be574c143 |
| service_name | nova |
| service_type | compute |
| url | http://VirtualIP:9774/v2.1 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne compute internal http://VirtualIP:9774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | b0f71d34aedf41a9a8fb9d56313efb00 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 28ed51dbfde848f791e70a3be574c143 |
| service_name | nova |
| service_type | compute |
| url | http://VirtualIP:9774/v2.1 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne compute admin http://VirtualIP:9774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 7bff1a44974a42a59e49eebffad550c0 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 28ed51dbfde848f791e70a3be574c143 |
| service_name | nova |
| service_type | compute |
| url | http://VirtualIP:9774/v2.1 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack catalog list
//查看所有服务端点的服务地址
+----------+----------+----------------------------------------+
| Name | Type | Endpoints |
+----------+----------+----------------------------------------+
| nova | compute | RegionOne |
| | | public: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | admin: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | internal: http://VirtualIP:9774/v2.1 |
| | | |
| glance | image | RegionOne |
| | | admin: http://VirtualIP:9293 |
| | | RegionOne |
| | | internal: http://VirtualIP:9293 |
| | | RegionOne |
| | | public: http://VirtualIP:9293 |
| | | |
| keystone | identity | RegionOne |
| | | internal: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | admin: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | public: http://VirtualIP:5001/v3/ |
| | | |
+----------+----------+----------------------------------------+
[root@cont02:/root]# openstack user create --domain default --password=placement_typora placement
//密码:placement_typora
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 66b6d87d0410419e8070817a9fa6493e |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@cont02:/root]# openstack role add --project service --user placement admin
[root@cont02:/root]# openstack service create --name placement --description "Placement API" placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | dba3c60da5084dfca6b220fe666c2f9b |
| name | placement |
| type | placement |
+-------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne placement public http://VirtualIP:9778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c2a1f308b3c04a448667967afb6016fe |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | dba3c60da5084dfca6b220fe666c2f9b |
| service_name | placement |
| service_type | placement |
| url | http://VirtualIP:9778 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne placement internal http://VirtualIP:9778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 9035afba42be4b4387571d02b16c168c |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | dba3c60da5084dfca6b220fe666c2f9b |
| service_name | placement |
| service_type | placement |
| url | http://VirtualIP:9778 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack endpoint create --region RegionOne placement admin http://VirtualIP:9778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 53be3d592dfa4060b46ca6a488067191 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | dba3c60da5084dfca6b220fe666c2f9b |
| service_name | placement |
| service_type | placement |
| url | http://VirtualIP:9778 |
+--------------+----------------------------------+
[root@cont02:/root]# openstack catalog list
+-----------+-----------+----------------------------------------+
| Name | Type | Endpoints |
+-----------+-----------+----------------------------------------+
| nova | compute | RegionOne |
| | | public: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | admin: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | internal: http://VirtualIP:9774/v2.1 |
| | | |
| glance | image | RegionOne |
| | | admin: http://VirtualIP:9293 |
| | | RegionOne |
| | | internal: http://VirtualIP:9293 |
| | | RegionOne |
| | | public: http://VirtualIP:9293 |
| | | |
| keystone | identity | RegionOne |
| | | internal: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | admin: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | public: http://VirtualIP:5001/v3/ |
| | | |
| placement | placement | RegionOne |
| | | admin: http://VirtualIP:9778 |
| | | RegionOne |
| | | internal: http://VirtualIP:9778 |
| | | RegionOne |
| | | public: http://VirtualIP:9778 |
| | | |
+-----------+-----------+----------------------------------------+
9.3 安装Nova服务(在全部控制节点安装nova相关服务)
[root@cont0$:/root]#
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y
9.4 配置nova.conf(在全部控制节点安装nova相关服务)
[root@cont01:/root]# cp -p /etc/nova/nova.conf{,.bak}
[root@cont02:/etc/nova]# cp -p /etc/nova/nova.conf{,.bak}
[root@cont03:/root]# cp -p /etc/nova/nova.conf{,.bak}
[root@cont02:/etc/nova]# vim /etc/nova/nova.conf
1 [DEFAULT]
2 enabled_apis = osapi_compute,metadata
3 my_ip = 192.168.10.22
4 use_neutron = true
5 firewall_driver = nova.virt.firewall.NoopFirewallDriver
6 transport_url = rabbit://openstack:adminopenstack@cont01:5672,openstack:adminopenstack@cont02:5672,openstack:adminopenstack@cont03:5672
7 osapi_compute_listen=$my_ip
8 osapi_compute_listen_port=8774
9 metadata_listen=$my_ip
10 metadata_listen_port=8775
12 agent_down_time = 30
13 report_interval=15
14 dhcp_agents_per_network = 3
3186 [api]
3187 auth_strategy = keystone
3480 [api_database]
3481 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova_api
3582 [cache]
3583 backend=oslo_cache.memcache_pool
3584 enabled=True
3585 memcached_servers=cont01:11211,cont02:11211,cont03:11211
4566 [database]
4567 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova
5248 [glance]
5249 api_servers = http://VirtualIP:9293
6069 [keystone_authtoken]
6070 auth_url = http://VirtualIP:5001/v3
6071 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6072 auth_type = password
6073 project_domain_name = Default
6074 user_domain_name = Default
6075 project_name = service
6076 username = nova
6077 password = nova_typora
8003 [oslo_concurrency]
8004 lock_path = /var/lib/nova/tmp
8822 [placement]
8823 region_name = RegionOne
8824 project_domain_name = Default
8825 project_name = service
8826 auth_type = password
8827 user_domain_name = Default
8828 auth_url = http://VirtualIP:5001/v3
8829 username = placement
8830 password = placement_typora
8986 ##[placement_database]
8987 ##connection = mysql+pymysql://placement:PLACEMENT_typora@VirtualIP:3307/placement
9602 [scheduler]
9603 discover_hosts_in_cells_interval = 60
10705 [vnc]
10706 enabled = true
10707 server_listen = $my_ip
10708 server_proxyclient_address = $my_ip
10709 ##novncproxy_base_url=http://$my_ip:6080/vnc_auto.html
10710 ##novncproxy_host=$my_ip
10711 ##novncproxy_port=6080
[root@cont01:/etc/nova]# vim /etc/nova/nova.conf
1 [DEFAULT]
2 enabled_apis = osapi_compute,metadata
3 my_ip = 192.168.10.21
4 use_neutron = true
5 firewall_driver = nova.virt.firewall.NoopFirewallDriver
6 transport_url = rabbit://openstack:adminopenstack@cont01:5672,openstack:adminopenstack@cont02:5672,openstack:adminopenstack@cont03:5672
7 osapi_compute_listen=$my_ip
8 osapi_compute_listen_port=8774
9 metadata_listen=$my_ip
10 metadata_listen_port=8775
3186 [api]
3187 auth_strategy = keystone
3480 [api_database]
3481 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova_api
3582 [cache]
3583 backend=oslo_cache.memcache_pool
3584 enabled=True
3585 memcached_servers=cont01:11211,cont02:11211,cont03:11211
4566 [database]
4567 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova
5248 [glance]
5249 api_servers = http://VirtualIP:9293
6069 [keystone_authtoken]
6070 auth_url = http://VirtualIP:5001/v3
6071 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6072 auth_type = password
6073 project_domain_name = Default
6074 user_domain_name = Default
6075 project_name = service
6076 username = nova
6077 password = nova_typora
8003 [oslo_concurrency]
8004 lock_path = /var/lib/nova/tmp
8822 [placement]
8823 region_name = RegionOne
8824 project_domain_name = Default
8825 project_name = service
8826 auth_type = password
8827 user_domain_name = Default
8828 auth_url = http://VirtualIP:5001/v3
8829 username = placement
8830 password = placement_typora
8986 ##[placement_database]
8987 ##connection = mysql+pymysql://placement:PLACEMENT_typora@VirtualIP:3307/placement
9602 [scheduler]
9603 discover_hosts_in_cells_interval = 60
10705 [vnc]
10706 enabled = true
10707 server_listen = $my_ip
10708 server_proxyclient_address = $my_ip
10709 ##novncproxy_base_url=http://$my_ip:6080/vnc_auto.html
10710 ##novncproxy_host=$my_ip
10711 ##novncproxy_port=6080
[root@cont03:/etc/nova]# vim /etc/nova/nova.conf
1 [DEFAULT]
2 enabled_apis = osapi_compute,metadata
3 my_ip = 192.168.10.23
4 use_neutron = true
5 firewall_driver = nova.virt.firewall.NoopFirewallDriver
6 transport_url = rabbit://openstack:adminopenstack@cont01:5672,openstack:adminopenstack@cont02:5672,openstack:adminopenstack@cont03:5672
7 osapi_compute_listen=$my_ip
8 osapi_compute_listen_port=8774
9 metadata_listen=$my_ip
10 metadata_listen_port=8775
3186 [api]
3187 auth_strategy = keystone
3480 [api_database]
3481 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova_api
3582 [cache]
3583 backend=oslo_cache.memcache_pool
3584 enabled=True
3585 memcached_servers=cont01:11211,cont02:11211,cont03:11211
4566 [database]
4567 connection = mysql+pymysql://nova:NOVA_typora@VirtualIP:3307/nova
5248 [glance]
5249 api_servers = http://VirtualIP:9293
6069 [keystone_authtoken]
6070 auth_url = http://VirtualIP:5001/v3
6071 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6072 auth_type = password
6073 project_domain_name = Default
6074 user_domain_name = Default
6075 project_name = service
6076 username = nova
6077 password = nova_typora
8003 [oslo_concurrency]
8004 lock_path = /var/lib/nova/tmp
8822 [placement]
8823 region_name = RegionOne
8824 project_domain_name = Default
8825 project_name = service
8826 auth_type = password
8827 user_domain_name = Default
8828 auth_url = http://VirtualIP:5001/v3
8829 username = placement
8830 password = placement_typora
8986 ##[placement_database]
8987 ##connection = mysql+pymysql://placement:PLACEMENT_typora@VirtualIP:3307/placement
9602 [scheduler]
9603 discover_hosts_in_cells_interval = 60
10705 [vnc]
10706 enabled = true
10707 server_listen = $my_ip
10708 server_proxyclient_address = $my_ip
10709 ##novncproxy_base_url=http://$my_ip:6080/vnc_auto.html
10710 ##novncproxy_host=$my_ip
10711 ##novncproxy_port=6080
9.5 配置00-nova-placement-api.conf
[root@cont01:/root]# cp -p /etc/httpd/conf.d/00-nova-placement-api.conf{,.bak}
[root@cont02:/root]# cp -p /etc/httpd/conf.d/00-nova-placement-api.conf{,.bak}
[root@cont03:/root]# cp -p /etc/httpd/conf.d/00-nova-placement-api.conf{,.bak}
[root@cont02:/root]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
//在最后添加
#Placement API
= 2.4>
Require all granted
<IfVersion
Order allow,deny
Allow from all
[root@cont01:/root]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
//在最后添加
#Placement API
= 2.4>
Require all granted
<IfVersion
Order allow,deny
Allow from all
[root@cont03:/root]# vim /etc/httpd/conf.d/00-nova-placement-api.conf
//在最后添加
#Placement API
= 2.4>
Require all granted
<IfVersion
Order allow,deny
Allow from all
[root@cont01:/root]# systemctl restart httpd
[root@cont02:/root]# systemctl restart httpd
[root@cont03:/root]# systemctl restart httpd
9.6 同步nova相关数据库(任意控制节点操作)
[root@cont02:/root]# su -s /bin/sh -c "nova-manage api_db sync" nova
[root@cont02:/root]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
[root@cont02:/root]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
All hosts must be set with username/password or not at the same time. Hosts with credentials are: ['cont01']. Hosts without credentials are ['cont02', 'cont03'].
All hosts must be set with username/password or not at the same time. Hosts with credentials are: ['cont01']. Hosts without credentials are ['cont02', 'cont03'].
418b9e81-2804-4a9d-9baf-40bfa07066ed
[root@cont02:/root]# su -s /bin/sh -c "nova-manage db sync" nova
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release')
result = self._query(query)
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release')
result = self._query(query)
[root@cont02:/root]# 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:****@VirtualIP/nova_cell0 | False
| cell1 | 418b9e81-2804-4a9d-9baf-40bfa07066ed | rabbit://openstack:****@cont01:5672,cont02:5672,cont03:5672 | mysql+pymysql://nova:****@VirtualIP/nova | False |
+-------+--------------------------------------+-----------------------------------
9.6 启动nova服务(所有控制节点操作cont01 cont02 cont03)
[root@cont0$:/root]#
systemctl enable openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl restart openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl status openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service | grep active
9.7 验证
[root@cont02:/root]# . admin-openrc
[root@cont02:/root]# openstack compute service list
+----+------------------+--------+----------+---------+-------+------------
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+--------+----------+---------+-------+------------
| 1 | nova-scheduler | cont01 | internal | enabled | up | 2020-01-17T05:52:27.000000 |
| 13 | nova-conductor | cont01 | internal | enabled | up | 2020-01-17T05:52:32.000000 |
| 16 | nova-consoleauth | cont01 | internal | enabled | up | 2020-01-17T05:52:25.000000 |
| 28 | nova-scheduler | cont02 | internal | enabled | up | 2020-01-17T05:52:25.000000 |
| 43 | nova-conductor | cont02 | internal | enabled | up | 2020-01-17T05:52:32.000000 |
| 49 | nova-consoleauth | cont02 | internal | enabled | up | 2020-01-17T05:52:31.000000 |
| 67 | nova-conductor | cont03 | internal | enabled | up | 2020-01-17T05:52:27.000000 |
| 70 | nova-scheduler | cont03 | internal | enabled | up | 2020-01-17T05:52:26.000000 |
| 82 | nova-consoleauth | cont03 | internal | enabled | up | 2020-01-17T05:52:32.000000 |
+----+------------------+--------+----------+---------+-------+------------
[root@cont02:/root]# openstack catalog list
+-----------+-----------+----------------------------------------+
| Name | Type | Endpoints |
+-----------+-----------+----------------------------------------+
| nova | compute | RegionOne |
| | | public: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | admin: http://VirtualIP:9774/v2.1 |
| | | RegionOne |
| | | internal: http://VirtualIP:9774/v2.1 |
| | | |
| glance | image | RegionOne |
| | | admin: http://VirtualIP:9293 |
| | | RegionOne |
| | | internal: http://VirtualIP:9293 |
| | | RegionOne |
| | | public: http://VirtualIP:9293 |
| | | |
| keystone | identity | RegionOne |
| | | internal: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | admin: http://VirtualIP:5001/v3/ |
| | | RegionOne |
| | | public: http://VirtualIP:5001/v3/ |
| | | |
| placement | placement | RegionOne |
| | | admin: http://VirtualIP:9778 |
| | | RegionOne |
| | | internal: http://VirtualIP:9778 |
| | | RegionOne |
| | | public: http://VirtualIP:9778 |
| | | |
+-----------+-----------+----------------------------------------+
[root@cont02:/root]# nova-status upgrade check
+--------------------------------------------------------------------+
| Upgrade Check Results |
+--------------------------------------------------------------------+
| Check: Cells v2 |
| Result: Success |
| Details: No host mappings or compute nodes were found. Remember to |
| run command 'nova-manage cell_v2 discover_hosts' when new |
| compute hosts are deployed. |
+--------------------------------------------------------------------+
| Check: Placement API |
| Result: Success |
| Details: None |
+--------------------------------------------------------------------+
| Check: Resource Providers |
| Result: Success |
| Details: There are no compute resource providers in the Placement |
| service nor are there compute nodes in the database. |
| Remember to configure new compute nodes to report into the |
| Placement service. See |
| https://docs.openstack.org/nova/latest/user/placement.html |
| for more details. |
+--------------------------------------------------------------------+
| Check: Ironic Flavor Migration |
| Result: Success |
| Details: None |
+--------------------------------------------------------------------+
| Check: API Service Version |
| Result: Success |
| Details: None |
+--------------------------------------------------------------------+
| Check: Request Spec Migration |
| Result: Success |
| Details: None |
+--------------------------------------------------------------------+
| Check: Console Auths |
| Result: Success |
| Details: None |
+--------------------------------------------------------------------+
9.8 设置PCS资源(任意控制节点操作)
//添加资源openstack-nova-api,openstack-nova-consoleauth,openstack-nova-scheduler,openstack-nova-conductor与openstack-nova-novncproxy
//经验证,建议openstack-nova-api,openstack-nova-consoleauth,openstack-nova-conductor与openstack-nova-novncproxy 等无状态服务以active/active模式运行;
//经验证,建议openstack-nova-scheduler等服务以active/passive模式运行
[root@cont01:/root]# pcs resource create openstack-nova-api systemd:openstack-nova-api --clone interleave=true
[root@cont01:/root]# pcs resource create openstack-nova-consoleauth systemd:openstack-nova-consoleauth --clone interleave=true
[root@cont01:/root]# pcs resource create openstack-nova-scheduler systemd:openstack-nova-scheduler --clone interleave=true
[root@cont01:/root]# pcs resource create openstack-nova-conductor systemd:openstack-nova-conductor --clone interleave=true
[root@cont01:/root]# pcs resource create openstack-nova-novncproxy systemd:openstack-nova-novncproxy --clone interleave=true
[root@cont01:/root]# pcs resource
VirtualIP (ocf::heartbeat:IPaddr2): Started cont01
Clone Set: openstack-glance-api-clone [openstack-glance-api]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-glance-registry-clone [openstack-glance-registry]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-nova-api-clone [openstack-nova-api]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor]
Started: [ cont01 cont02 cont03 ]
Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy]
Started: [ cont01 cont02 cont03 ]
控制nova节点已布置完成
9.8 部署 Nova计算节点(部署计算节点上comp01、comp02、comp03)在计算节点上comp01、comp02、comp03执行:[root@comp0$:/root]
yum install centos-release-openstack-rocky -y
yum update
yum install openstack-nova-compute -y
9.10 计算节点和直接ssh免密认证
ssh-keygen
ssh-copy-id comp01
ssh-copy-id comp02
ssh-copy-id comp03
9.11 配置计算节点的配置nova.conf
[root@comp01:/etc/nova]# cp -p /etc/nova/nova.conf{,.bak}
[root@comp02:/etc/nova]# cp -p /etc/nova/nova.conf{,.bak}
[root@comp03:/etc/nova]# cp -p /etc/nova/nova.conf{,.bak}
[root@comp02:/etc/nova]# vim /etc/nova/nova.conf
1 [DEFAULT]
6 enabled_apis = osapi_compute,metadata
7 my_ip = 192.168.10.18
8 use_neutron = true
9 firewall_driver = nova.virt.firewall.NoopFirewallDriver
10 transport_url = rabbit://openstack:adminopenstack@comp01:5672,openstack:adminopenstack@comp02:5672,openstack:adminopenstack@comp03:5672
3182 [api]
3183 auth_strategy = keystone
5240 [glance]
5241 api_servers = http://VirtualIP:9293
6060 [keystone_authtoken]
6061 auth_url = http://VirtualIP:5001/v3
6062 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6063 auth_type = password
6064 project_domain_name = Default
6065 user_domain_name = Default
6066 project_name = service
6067 username = nova
6068 password = nova_typora
6259 [libvirt]
6260 virt_type = qemu
//注:通过“egrep -c '(vmx|svm)' /proc/cpuinfo”命令查看主机是否支持硬件加速,返回1或者更大的值表示支持,返回0表示不支持;
//注: 支持硬件加速使用”kvm”类型,不支持则使用”qemu”类型;
//注: 一般虚拟机不支持硬件加速
//注:此处正常全用qemu,实验测试时,根据返回结果为8 ,将virt_type = kvm 后,创建实例显示 nova的type错误,实例创建后显示状态为错误
8813 [placement]
8814 region_name = RegionOne
8815 project_domain_name = Default
8816 project_name = service
8817 auth_type = password
8818 user_domain_name = Default
8819 auth_url = http://VirtualIP:5001/v3
8820 username = placement
8821 password = placement_typora
10689 [vnc]
10690 enabled=true
10691 vncserver_listen=0.0.0.0
10692 vncserver_proxyclient_address=$my_ip
10693 novncproxy_base_url=http://192.168.10.20:6081/vnc_auto.html
//注:此处novncproxy_base_url的IP使用数字192.168.10.20,不建议使用VirtualIP;因为用VirtualIP会报错。
#novncproxy_host=$my_ip
#novncproxy_port=6080
[root@comp01:/root]# vim /etc/nova/nova.conf
1 [DEFAULT]
6 enabled_apis = osapi_compute,metadata
7 my_ip = 192.168.10.18
8 use_neutron = true
9 firewall_driver = nova.virt.firewall.NoopFirewallDriver
10 transport_url = rabbit://openstack:adminopenstack@comp01:5672,comp02:5672,comp03:5672
3182 [api]
3183 auth_strategy = keystone
5240 [glance]
5241 api_servers = http://VirtualIP:9293
6060 [keystone_authtoken]
6061 auth_url = http://VirtualIP:5001/v3
6062 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6063 auth_type = password
6064 project_domain_name = Default
6065 user_domain_name = Default
6066 project_name = service
6067 username = nova
6068 password = nova_typora
6259 [libvirt]
6260 virt_type = qemu
//注:通过“egrep -c '(vmx|svm)' /proc/cpuinfo”命令查看主机是否支持硬件加速,返回1或者更大的值表示支持,返回0表示不支持;
//注: 支持硬件加速使用”kvm”类型,不支持则使用”qemu”类型;
//注: 一般虚拟机不支持硬件加速
//注:此处正常全用qemu,实验测试时,根据返回结果为8 ,将virt_type = kvm 后,创建实例显示 nova的type错误,实例创建后显示状态为错误
8813 [placement]
8814 region_name = RegionOne
8815 project_domain_name = Default
8816 project_name = service
8817 auth_type = password
8818 user_domain_name = Default
8819 auth_url = http://VirtualIP:5001/v3
8820 username = placement
8821 password = placement_typora
10689 [vnc]
10690 enabled=true
10691 vncserver_listen=0.0.0.0
10692 vncserver_proxyclient_address=$my_ip
10693 novncproxy_base_url=http://192.168.10.20:6081/vnc_auto.html
//注:此处novncproxy_base_url的IP使用192.168.10.20,不建议使用VirtualIP;因为用VIrtualIP会报错。
[root@comp03:/root]# vim /etc/nova/nova.conf
1 [DEFAULT]
6 enabled_apis = osapi_compute,metadata
7 my_ip = 192.168.10.17
8 use_neutron = true
9 firewall_driver = nova.virt.firewall.NoopFirewallDriver
10 transport_url = rabbit://openstack:adminopenstack@comp01:5672,comp02:5672,comp03:5672
3182 [api]
3183 auth_strategy = keystone
5240 [glance]
5241 api_servers = http://VirtualIP:9293
6060 [keystone_authtoken]
6061 auth_url = http://VirtualIP:5001/v3
6062 memcached_servers=cont01:11211,cont02:11211,cont03:11211
6063 auth_type = password
6064 project_domain_name = Default
6065 user_domain_name = Default
6066 project_name = service
6067 username = nova
6068 password = nova_typora
6259 [libvirt]
6260 virt_type = qemu
//注:通过“egrep -c '(vmx|svm)' /proc/cpuinfo”命令查看主机是否支持硬件加速,返回1或者更大的值表示支持,返回0表示不支持;
//注: 支持硬件加速使用”kvm”类型,不支持则使用”qemu”类型;
//注: 一般虚拟机不支持硬件加速
//注:此处正常全用qemu,实验测试时,根据返回结果为8 ,将virt_type = kvm 后,创建实例显示 nova的type错误,实例创建后显示状态为错误
8813 [placement]
8814 region_name = RegionOne
8815 project_domain_name = Default
8816 project_name = service
8817 auth_type = password
8818 user_domain_name = Default
8819 auth_url = http://VirtualIP:5001/v3
8820 username = placement
8821 password = placement_typora
10689 [vnc]
10690 enabled=true
10691 vncserver_listen=0.0.0.0
10692 vncserver_proxyclient_address=$my_ip
10693 novncproxy_base_url=http://192.168.10.20:6081/vnc_auto.html
//注:此处novncproxy_base_url的IP使用192.168.10.20,不建议使用VirtualIP;因为用VIrtualIP会报错。
9.12 启动计算节点服务 在comp01 comp02 comp03上执行
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl restart libvirtd.service openstack-nova-compute.service
systemctl status libvirtd.service openstack-nova-compute.service
9.13 向cell数据库添加计算节点(在任意控制节点操作)
[root@cont02:/root]# . admin-openrc
[root@cont02:/root]# openstack compute service list --service nova-compute
+----+--------------+--------+------+---------+-------+----------------------------
| ID | Binary | Host | Zone | Status | State | Updated At
| 91 | nova-compute | comp02 | nova | enabled | up | 2020-01-17T12:26:33.000000 |
| 94 | nova-compute | comp01 | nova | enabled | up | 2020-01-17T12:26:29.000000 |
| 97 | nova-compute | comp03 | nova | enabled | up | 2020-01-17T12:26:36.000000 |
+----+--------------+--------+------+---------+-------+----------------------------
//手工发现计算节点主机,即添加到cell数据库
[root@cont02:/root]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
All hosts must be set with username/password or not at the same time. Hosts with credentials are: ['cont01']. Hosts without credentials are ['cont02', 'cont03'].
All hosts must be set with username/password or not at the same time. Hosts with credentials are: ['cont01']. Hosts without credentials are ['cont02', 'cont03'].
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting computes from cell 'cell1': 418b9e81-2804-4a9d-9baf-40bfa07066ed
Found 0 unmapped computes in cell: 418b9e81-2804-4a9d-9baf-40bfa07066ed
[root@cont02:/root]# openstack hypervisor list
+----+---------------------+-----------------+---------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+---------------------+-----------------+---------------+-------+
| 1 | comp01 | QEMU | 192.168.10.19 | up |
| 4 | comp02 | QEMU | 192.168.10.18 | up |
| 7 | comp03 | QEMU | 192.168.10.17 | up |
+----+---------------------+-----------------+---------------+-------+
[root@cont02:/root]# openstack compute service list
//注:此命令为查看计算服务列表 Status表示nova功能已打开 State表示nova功能已运行
+----+------------------+--------+----------+---------+-------+--------------------
| ID | Binary | Host | Zone | Status | State | Updated At
+----+------------------+--------+----------+---------+-------+--------------------
| 1 | nova-scheduler | cont01 | internal | enabled | up | 2020-01-17T12:28:17.000000 |
| 13 | nova-conductor | cont01 | internal | enabled | up | 2020-01-17T12:28:14.000000 |
| 16 | nova-consoleauth | cont01 | internal | enabled | up | 2020-01-17T12:28:18.000000 |
| 28 | nova-scheduler | cont02 | internal | enabled | up | 2020-01-17T12:28:20.000000 |
| 43 | nova-conductor | cont02 | internal | enabled | up | 2020-01-17T12:28:21.000000 |
| 49 | nova-consoleauth | cont02 | internal | enabled | up | 2020-01-17T12:28:19.000000 |
| 67 | nova-conductor | cont03 | internal | enabled | up | 2020-01-17T12:28:18.000000 |
| 70 | nova-scheduler | cont03 | internal | enabled | up | 2020-01-17T12:28:21.000000 |
| 82 | nova-consoleauth | cont03 | internal | enabled | up | 2020-01-17T12:28