OpenStack:Nova服务 1+X实训
目录
案例描述
(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).