NOVA计算服务
计算服务是云平台的工作负载的核心。
Nova中包含了7个子组件:NovaAPI、NovaCert、NovaCompute、NovaConductor、NovaScheduler、NovaConsoleauth和NovaVNC proxy。
(1)NovaAPI:是一个http服务,用来接受和处理客户端发送的HTTP请求;他接受用户的请求,将指令发送给消息队列,并由Nova服务的自服务执行创建的相关操作。
(2)NovaCert:用来管理证书的认证,保证所有的应用程序能在云上运行。
(3)NovaCompute:是Nova服务的核心子组件,通过novaclient进行交互,实现虚拟机的管理。负责在计算节点上对虚拟机实例的一系列操作,包括虚拟机迁移、快照的管理等。
(4)NovaConductor:Openstack中的RPC服务,提供对数据库的查询和权限的分配等。
(5)NovaScheduler:核心调度组件,包括虚拟机硬件资源的调度、节点调度等。同时,他还决定了虚拟机创建的具体位置。
(6)NovaConsoleauth:nova控制台的操作管理认证。
(7)NovaVNC proxy:Nova的控制台组件。实现了客户端和虚拟机实例的通信。
Nova把nova-compute单独部署在计算节点,其他服务部署在了控制节点。为了实现计算节点的nova-compute服务与控制节点上的其他子服务进行通信,需要在配置文件中配置rabbit消息队列服务。
[root@controller ~]# vi /etc/nova/nova.conf
[DEFAULT]
enabled_apis = osapi_compute,metadata
my_ip = 192.168.100.10
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
transport_url = rabbit://openstack:000000@controller //配置消息队列服务
[keystone_authtoken] //nova对接keystone
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = demo
user_domain_name = demo
project_name = service
username = nova
password = 000000
2.运维nova服务
[root@controller ~]# openstack image list //查看镜像
+--------------------------------------+-----------+--------+
| ID | Name | Status |
+--------------------------------------+-----------+--------+
| 5b556f8f-6ddf-4139-972a-0eb61407ad23 | centos7.2 | active |
| 3b983a5e-8c0c-4d1f-b2fa-f47e9d29e3a9 | centos7.9 | active |
+--------------------------------------+-----------+--------+
[root@controller ~]# glance image-list
+--------------------------------------+-----------+
| ID | Name |
+--------------------------------------+-----------+
| 5b556f8f-6ddf-4139-972a-0eb61407ad23 | centos7.2 |
| 3b983a5e-8c0c-4d1f-b2fa-f47e9d29e3a9 | centos7.9 |
+--------------------------------------+-----------+
[root@controller ~]# openstack network list //查看网络
+--------------------------------------+---------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------+--------------------------------------+
| ce867fed-1561-46c0-b686-b02fdd0bb473 | ext-net | 09f2e786-82b9-4872-90b5-d7e451946bac |
+--------------------------------------+---------+--------------------------------------+
[root@controller ~]# openstack flavor list //查询实例类型
+----+-----------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+------+------+-----------+-------+-----------+
| 1 | m1.tiny | 512 | 10 | 0 | 1 | True |
| 2 | m1.small | 1024 | 20 | 0 | 1 | True |
| 3 | m1.medium | 2048 | 40 | 0 | 2 | True |
+----+-----------+------+------+-----------+-------+-----------+
[root@controller ~]# nova flavor-list //使用nova命令查看实例类型
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| 1 | m1.tiny | 512 | 10 | 0 | 0 | 1 | 1.0 | True | - |
| 2 | m1.small | 1024 | 20 | 0 | 0 | 1 | 1.0 | True | - |
| 3 | m1.medium | 2048 | 40 | 0 | 0 | 2 | 1.0 | True | - |
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
[root@controller ~]# openstack server create --flavor m1.small --image centos7.2 --nic net-id=ce867fed-1561-46c0-b686-b02fdd0bb473 centos7 //创建云主机
[root@controller ~]# nova flavor-create m1.test 4 2048 20 2 //创建云主机类型,<name><ID><内存大小><磁盘大小><cpu数量>
+----+---------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+----+---------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| 4 | m1.test | 2048 | 20 | 0 | 0 | 2 | 1.0 | True | - |
+----+---------+------------+------+-----------+------+-------+-------------+-----------+-------------+
[root@controller ~]# nova flavor-show m1.test //查看实例的详细信息
+----------------------------+---------+
| Property | Value |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| description | - |
| disk | 20 |
| extra_specs | {} |
| id | 4 |
| name | m1.test |
| os-flavor-access:is_public | True |
| ram | 2048 |
| rxtx_factor | 1.0 |
| swap | 0 |
| vcpus | 2 |
+----------------------------+---------+
[root@controller ~]# nova boot --flavor m1.small --image centos7.9 --nic net-id=ce867fed-1561-46c0-b686-b02fdd0bb473 centos7.9
[root@openstack ~]# openstack compute service list
+----+------------------+-----------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+-----------+----------+---------+-------+----------------------------+
| 1 | nova-scheduler | openstack | internal | enabled | up | 2023-04-10T05:59:15.000000 |
| 2 | nova-conductor | openstack | internal | enabled | up | 2023-04-10T05:59:12.000000 |
| 3 | nova-consoleauth | openstack | internal | enabled | up | 2023-04-10T05:59:12.000000 |
| 6 | nova-compute | openstack | nova | enabled | up | 2023-04-10T05:59:14.000000 |
+----+------------------+-----------+----------+---------+-------+----------------------------+
[root@controller ~]# openstack server list //查询云主机列表
+--------------------------------------+-----------+---------+-------------------------+-----------+----------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------+---------+-------------------------+-----------+----------+
| d7ece902-f53e-4c0e-a63d-db1395fd072e | centos7.9 | ACTIVE | ext-net=192.168.200.135 | centos7.9 | m1.small |
| 038562a2-99d7-434f-b374-53af5bec659b | centos7 | ACTIVE | ext-net=192.168.200.44 | centos7.2 | m1.small |
| 06cc6990-558a-47cd-be10-f4ce88a5f5da | centos7.2 | SHUTOFF | ext-net=192.168.200.221 | centos7.2 | m1.small |
+--------------------------------------+-----------+---------+-------------------------+-----------+----------+
[root@compute ~]# virsh list --all //在计算节点上查看虚拟机
Id Name State
----------------------------------------------------
1 instance-00000005 running
2 instance-00000006 running
- instance-00000004 shut off
[root@controller ~]# nova show centos7.9 //查看云主机详细信息