OpenStack:Nova服务 1+X实训

来自CloudWiki
Cloud17讨论 | 贡献2021年11月30日 (二) 02:00的版本
跳转至: 导航搜索

案例描述

(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 boot

功能:启动实例。格式:

nova boot [--flavor <flavor>][--image <image>]
[--image-with <key=value>] [--boot-volume <volume_id>][--snapshot <snapshot_id>][--min-count <number>]
[--max-count <number>] [--meta <key=value>]
[--file <dst-path=src-path>] [--key-name <key-name>][--user-data <user-data>]
[--availability-zone <availability-zone>][--security-groups <security-groups>]
[--block-device-mapping <dev-name=mapping>][--block-device key1=value1[,key2=value2..][--swap <swap_size>]
[--ephemeral size=<size>[,format=<format>]][--hint <key=value>]
[--nic
<net-id=net-uuid,net-name=network-name,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid>]
[--config-drive <value>] [--poll] [--admin-pass <value>][--access-ip-v4 <value>] [--access-ip-v6 <value>]
[--description <description>]
name>

固定参数。

<name>:实例名称

可选参数。

[--flavor <flavor>]:虚拟机类型。[--image <image>]:选用的镜像。
[--image-with <key-value>]:镜像的元数据属性。[--boot-volume <volume_id>:启动逻辑卷的ID。[--snapshot <snapshot_id>]快照
[--num-instances <number>]实例数量[--meta <key=value>]元数据
[--file <dst-path=src-path>]文件[--key-name <key-name>]密钥名称[--user-data <user-data>]注入的用户数据[--availability-zone<availability-zone>]可用域[--security-groups<security-groups>]安全组
[--block-device-mapping <dev-name=mapping>1块存储格式化
[--block-device key1=value1[,key2=value2...]]块设备参数[--swap <swap_size>]交换分区大小
[--ephemeral size=<size>[,format=<format>]]连接块存储大小[--hint <key=value>]自定义数据
[--nic ]配置IP
[--config-drive <value>]驱动使能[--poll]显示创建进度


创建密钥

创建一个密钥:

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

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

nova flavor-list

查看现在可用的镜像类型

nova image-list


新建立云主机

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

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

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

删除实例

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).