OpenStack:Nova服务 1+X实训

来自CloudWiki
跳转至: 导航搜索

案例描述

(1)了解 Nova服务的用处。

(2)学习Nova服务的基础命令。

(3)使用Nova命令完成相应运维任务。

Nova运维命令

Nova管理安全组规则

安全组(security group)是一些规则的集合,用来对虚拟机的访问流量加以限制,这反映到底层,就是使用iptables,给虚拟机所在的宿主机添加 iptables规则。可以定义n个安全组,每个安全组可以有n个规则,可以给每个实例绑定n个安全组.Nova中总是有一个default安全组,这个是不能被删除的。创建实例的时候,如果不指定安全组,会默认使用这个default安全组。现在Nova中安全组应该会移到Neutron中,并且会增加对虚拟机外出流量的控制。

注意:Nova中的安全组只是对进入虚拟机的流量加以控制,对虚拟机外出流量没有加以限制。

常用的安全组命令。

nova secgroup-create功能:创建安全组。

创建一个名为test的安全组,描述为'test the nova command about the rules',命令及执行结果如下所示:

source /etc/keystone/admin-openrc.sh

nova secgroup-create test 'test the nova command about the rules'

------------------------------+
Id
| Name | Description
|dlce4ef1-26c8-4b3d-958b-bc778bf283f3 | test | test the nova command about the rules l

---—--—---------------------十

故障:

ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'keystoneauth1.exceptions.connection.ConnectFailure'> (HTTP 500) (Request-ID: req-4f001370-53c1-4f76-8ddb-b7e782b186e9)

Nova管理虚拟机类型

虚拟机类型是在创建实例的时候,分配给实例的资源情况,接下来介绍Nova对虚拟机类型的管理。

[root@controller ~]# nova flavor-list

+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1  | m1.tiny   | 512       | 1    | 0         |      | 1     | 1.0         | True      |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+


nova flavor-create

功能:创建一个虚拟机类型。

使用命令创建一个名为test,ID为6,内存为512 MB,磁盘为1GB,vCPU 数量为2的云主机类型。具体命令及执行结果如下所示。

[root@controller ~]# openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.verytiny

+----------------------------+--------------------------------------+
| Field                      | Value                                |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled   | False                                |
| OS-FLV-EXT-DATA:ephemeral  | 0                                    |
| disk                       | 1                                    |
| id                         | cf893ae4-b330-4c7f-a864-86c8a584ed1a |
| name                       | m1.verytiny                          |
| os-flavor-access:is_public | True                                 |
| ram                        | 512                                  |
| rxtx_factor                | 1.0                                  |
| swap                       |                                      |
| vcpus                      | 1                                    |
+----------------------------+--------------------------------------+


Nova实例管理

启动实例

Nova可对云平台中的实例进行管理,包括创建实例、启动实例、删除实例和实例迁移等操作。

创建密钥

创建一个密钥:

     nova keypair-add oskey > oskey.priv
     chmod 600 oskey.priv

你查看所有可用的云主机类型

nova flavor-list

查看现在可用的镜像类型

nova image-list


新建立云主机

最后,你利用刚才查到的云主机类型和镜像信息,在后台新建立一个云主机,


nova boot

功能:启动实例。格式:

nova boot --flavor [flavor-id]  --key_name  oskey  --image  [image-id]  hostname

其中,flavor-id 就是上上步云主机类型表里的id号,建议选tiny的那个,oskey是你刚才创建的密钥,image-id就是上步镜像表里的id号,建议选cirros的那个,hostname换成你自己想起的云主机的名字。

[root@controller ~]# nova boot --flavor cf893ae4-b330-4c7f-a864-86c8a584ed1a --key_name oskey --image 7d4e66dd-a134-46f0-9521-a84e4dbc6281 helloworld

WARNING: Option "--key_name" is deprecated; use "--key-name"; this option will be removed in novaclient 3.3.0.
+--------------------------------------+----------------------------------------------------+
| Property                             | Value                                              |
+--------------------------------------+----------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                             |
| OS-EXT-AZ:availability_zone          |                                                    |
| OS-EXT-SRV-ATTR:host                 | -                                                  |
| OS-EXT-SRV-ATTR:hostname             | helloworld                                         |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                                  |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000002                                  |
| OS-EXT-SRV-ATTR:kernel_id            |                                                    |
| OS-EXT-SRV-ATTR:launch_index         | 0                                                  |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                    |
| OS-EXT-SRV-ATTR:reservation_id       | r-pzthd0ge                                         |
| OS-EXT-SRV-ATTR:root_device_name     | -                                                  |
| OS-EXT-SRV-ATTR:user_data            | -                                                  |
| OS-EXT-STS:power_state               | 0                                                  |
| OS-EXT-STS:task_state                | scheduling                                         |
| OS-EXT-STS:vm_state                  | building                                           |
| OS-SRV-USG:launched_at               | -                                                  |
| OS-SRV-USG:terminated_at             | -                                                  |
| accessIPv4                           |                                                    |
| accessIPv6                           |                                                    |
| adminPass                            | isFF7YcbT9Cc                                       |
| config_drive                         |                                                    |
| created                              | 2021-11-27T11:59:50Z                               |
| description                          | -                                                  |
| flavor                               | m1.verytiny (cf893ae4-b330-4c7f-a864-86c8a584ed1a) |
| hostId                               |                                                    |
| host_status                          |                                                    |
| id                                   | 27e64e5f-9e7b-44dc-8441-52d67cc46d82               |
| image                                | cirros (7d4e66dd-a134-46f0-9521-a84e4dbc6281)      |
| key_name                             | oskey                                              |
| locked                               | False                                              |
| metadata                             | {}                                                 |
| name                                 | helloworld                                         |
| os-extended-volumes:volumes_attached | []                                                 |
| progress                             | 0                                                  |
| security_groups                      | default                                            |
| status                               | BUILD                                              |
| tenant_id                            | f9ff39ba9daa4e5a8fee1fc50e2d2b34                   |
| updated                              | 2021-11-27T11:59:50Z                               |
| user_id                              | 0befa70f767848e39df8224107b71858                   |
+--------------------------------------+----------------------------------------------------+

管理实例

检查云主机状态

检查一下当前云主机的状态。

openstack server list

截图如下:

开启云主机

openstack server start hostname

执行命令 openstack server list ,如果当前云主机在Status那一栏显示Active,表示开启成功,截图如下:

重启云主机

openstack server reboot hostname

挂起云主机

openstack server suspend NAME

取消挂起

openstack server resume NAME

关闭云主机

openstack server stop NAME

删除实例

nova delete

功能:删除实例


格式:

usage: nova delete [--all-tenants] <server> [<server> ...]Immediately shut down and delete specified server(s).Positional arguments: <server> Name or ID of server(s). Optional arguments: --all-tenants Delete server(s) in another tenant by name (Admin only).