Openstack服务
服务的基本使用
Nova
管理VM的生命周期,是Openstack的核心组件之一
计算服务是OpenStack最核心的服务之一,负责维护和管理云环境的计算资源,它在OpenStack项目中代号是nova。
Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等)。
Nova需要Keystone、Glance、Neutron、Cinder和Swift等其他服务的支持,能与这些服务集成,实现如加密磁盘、裸金属计算实例等。
1. 创建flavor类型
openstack help flavor create
usage: openstack flavor create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty] [--noindent]
[--prefix PREFIX] [--id <id>] [--ram <size-mb>]
[--disk <size-gb>] [--ephemeral <size-gb>]
[--swap <size-mb>] [--vcpus <vcpus>]
[--rxtx-factor <factor>] [--public | --private]
[--property <key=value>] [--project <project>]
[--description <description>]
[--project-domain <project-domain>]
<flavor-name>
Create new flavor2. 查看flavor类型
openstack flavor list3. 访问安全组
openstack security group list查看任意规则的详细信息
openstack security group rule show4. 创建访问安全组
openstack help security group create
usage: openstack security group create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty]
[--noindent] [--prefix PREFIX]
[--description <description>]
[--project <project>]
[--project-domain <project-domain>]
[--tag <tag> | --no-tag]
<name>
Create a new security group5.删除访问安全组
openstack security group delete <name>6.添加安全规则
openstack help security group rule create
usage: openstack security group rule create [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN]
[--max-width <integer>]
[--fit-width] [--print-empty]
[--noindent] [--prefix PREFIX]
[--remote-ip <ip-address> | --remote-group <group>]
[--description <description>]
[--dst-port <port-range>]
[--icmp-type <icmp-type>]
[--icmp-code <icmp-code>]
[--protocol <protocol>]
[--ingress | --egress]
[--ethertype <ethertype>]
[--project <project>]
[--project-domain <project-domain>]
<group>从入口方向放行所有ICMP规则,命令如下:
openstack security group rule create --protocol icmp --ingress default从入口方向放行所有TCP规则,命令如下:
openstack security group rule create --protocol tcp --ingress default从入口方向放行所有UDP规则,命令如下:
openstack security group rule create --protocol udp --ingress default查看“default”安全组中所有的规则列表信息,命令如下:
openstack security group rule list default7.查询可用镜像
openstack image list上传镜像有关详见Glance服务
8.创建网络与子网
openstack help network create
sage: openstack network create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty] [--noindent]
[--prefix PREFIX] [--share | --no-share]
[--enable | --disable] [--project <project>]
[--description <description>] [--mtu <mtu>]
[--project-domain <project-domain>]
[--availability-zone-hint <availability-zone>]
[--enable-port-security | --disable-port-securit
y]
[--external | --internal]
[--default | --no-default]
[--qos-policy <qos-policy>]
[--transparent-vlan | --no-transparent-vlan]
[--provider-network-type <provider-network-type>
]
[--provider-physical-network <provider-physical-
network>]
[--provider-segment <provider-segment>]
[--dns-domain <dns-domain>]
[--tag <tag> | --no-tag]
<name>创建子网
openstack subnet create修改OpenStack平台
修改Nova服务配置文件,设置参数“virt_type=qemu”。命令参数如下:
crudini --set /etc/nova/nova.conf libvirt virt_type qemu
systemctl restart openstack-nova-compute9.启动云主机
openstack help server create
usage: openstack server create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty] [--noindent]
[--prefix PREFIX]
(--image <image> | --volume <volume>) --flavor
<flavor> [--security-group <security-group>]
[--key-name <key-name>]
[--property <key=value>]
[--file <dest-filename=source-filename>]
[--user-data <user-data>]
[--availability-zone <zone-name>]
[--block-device-mapping <dev-name=mapping>]
[--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid,auto,none>]
[--network <network>] [--port <port>]
[--hint <key=value>]
[--config-drive <config-drive-volume>|True]
[--min <count>] [--max <count>] [--wait]
<server-name>10.管理虚拟机
查看虚拟机列表信息
openstack server list看虚拟机的具体信息,包括使用的安全组、flavor以及网络信息
openstack server show <server-name>操作虚拟机
openstack server stop <server-name>
openstack server start <server-name>
openstack server reboot <server-name>调整虚拟机
修改配置文件
修改controller节点nova.conf配置文件,添加调整类型大小的参数,controller节点设置参数
[root@controller ~]# crudini --set /etc/nova/nova.conf DEFAULT allow_resize_to_same_host True
[root@controller ~]# crudini --set /etc/nova/nova.conf DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFiltersystemctl restart openstack-nova*现有云主机硬盘和内存不满足使用,需要对现有云主机进行资源扩容,将内存扩容至1G,硬盘扩容至15G大小,类型名称为“centos1”首先创建一个新的云主机类型满足扩容资源的需求。通过命令创建新云主机类型,命令如下所示:
[root@controller ~]# openstack flavor create --disk 15 --ram 1024 --vcpus 2 centos1
+-----------------------------+---------------------------------------+
| Field | Value |
+-----------------------------+---------------------------------------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 15 |
| id | a99a75ba-5afb-448b-bfc8-6bc656471476 |
| name | centos1 |
| os-flavor-access:is_public | True |
| properties | |
| ram | 1024 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 2 |
+-----------------------------+--------------------------------------调整云主机类型
openstack help server resize
usage: openstack server resize [-h] [--flavor <flavor> | --confirm | --revert]
[--wait]
<server>
<server> Server (name or ID)
optional arguments:
-h, --help show this help message and exit
--flavor <flavor> Resize server to specified flavor
--confirm Confirm server resize is complete
--revert Restore server state before resize
--wait Wait for resize to complete使用命令调整云主机“cirros-test”类型为centos1,使用–wait参数,在命令执行后,调整云主机需要一定时间,添加–wait参数后会在确认时回馈“complete”。命令如下所示:
[root@controller ~]# openstack server resize --flavor centos1 --wait cirros-test
Complete
[root@controller ~]# openstack server list
+--------------------------------------+-------------+---------------+------------------------------+--------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------+---------------+------------------------------+--------------+---------+
| d152e1e5-7ff2-4f4e-9a1f-4133d8c4d6fe | cirros-test | VERIFY_RESIZE | network-vlan=192.168.200.187 | cirros-0.3.4 | centos1 |
+--------------------------------------+-------------+---------------+------------------------------+--------------+---------+Glance
为虚拟机进行镜像管理
Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个REST API,使读者能够查询虚拟机镜像元数据和检索的实际镜像。通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。
通过命令创建镜像
glance help image-create
usage: glance image-create [--architecture ]
[--protected [True|False]] [--name ]
[--instance-uuid ]
[--min-disk ] [--visibility ]
[--kernel-id ]
[--tags [ ...]]
[--os-version ]
[--disk-format ]
[--os-distro ] [--id ]
[--owner ] [--ramdisk-id ]
[--min-ram ]
[--container-format ]
[--property ] [--file ]
[--progress]管理镜像
查看镜像
glance image-list <id>查看镜像的详细信息
glance image-show <id>修改镜像
glance help image-update
usage: glance image-update [--architecture ]
[--protected [True|False]] [--name ]
[--instance-uuid ]
[--min-disk ] [--visibility ]
[--kernel-id ]
[--os-version ]
[--disk-format ]
[--os-distro ] [--owner ]
[--ramdisk-id ] [--min-ram ]
[--container-format ]
[--property ] [--remove-property key]删除镜像
glance image-delete <id>Swift
为虚拟机提供存储资源
Keystone
为虚拟机进行权限服务
Cellometer
提供Openstack的报警、计算
Cinder
为虚拟机提供存储资源
1. 块存储服务
创建镜像和网络:
[root@controller ~]# glance image-create --name cirros-0.3.4 --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img
…
[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider network-vlan --provider-segment 200
…
[root@controller ~]# openstack subnet create --network network-vlan --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan修改OpenStack平台
crudini --set /etc/nova/nova.conf libvirt virt_type qemu
systemctl restart openstack-nova-compute启动云主机:
openstack server create --image cirros-0.3.4 --flavor 2 --network network-vlan cirros-test查看Cinder服务状态
openstack volume service list创建块存储
openstack help volume create
usage: openstack volume create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--fit-width] [--print-empty] [--noindent]
[--prefix PREFIX] [--size <size>]
[--type <volume-type>]
[--image <image> | --snapshot <snapshot> | --source <volume> | --source-replicated <replicated-volume>]
[--description <description>] [--user <user>]
[--project <project>]
[--availability-zone <availability-zone>]
[--consistency-group consistency-group>]
[--property <key=value>] [--hint <key=value>]
[--multi-attach] [--bootable | --non-bootable]
[--read-only | --read-write]
<name>//通过命令创建块存储,大小为2G,名称为“volume”
openstack volume create --size 2 volume
查看块存储
openstack volume list查看某一块存储的详细信息
openstack volume show volume挂载云硬盘
块存储设备创建成功后,可以在OpenStack上将该设备挂载至云主机上,可以作为一块云硬盘来进行使用。给云主机添加一块磁盘。
openstack help server add volume
usage: openstack server add volume [-h] [--device <device>] <server> <volume>
Add volume to server
positional arguments:
<server> Server (name or ID)
<volume> Volume to add (name or ID)使用命令将创建的“volume”块存储添加至云主机“cirros-test”上
openstack server add volume cirros-test volume2. 扩展卷
创建完卷后可能因为需求的变更,需要对已有的卷进行扩容操作,这时需要用到“openstack volume set”命令修改卷的信息。命令格式如下:
openstack help volume set
usage: openstack volume set [-h] [--name <name>] [--size <size>]
[--description <description>] [--no-property]
[--property <key=value>]
[--image-property <key=value>] [--state <state>]
[--type <volume-type>]
[--retype-policy <retype-policy>]
[--bootable | --non-bootable]
[--read-only | --read-write]
<volume>分离卷,通过命令将“volume”卷大小从2G扩容至3G,使用–size参数可修改已创建好的卷大小。
openstack server remove volume cirros-test volume
openstack volume set --size 3 volume再次挂载卷
openstack server add volume cirros-test volumeNeutron
为Openstack提供网络服务
Horizon Dashboard
提供基于web的自服务门户,与底层交互,如果启动一个实例,来分配IP地址以及来配置访问控制等。