赞
踩
openstack volume list
2.新建卷(size的单位为GB)
openstack volume create --size <size> <name>
3.删除卷
openstack volume delete <id>
4.将卷连接到instance
openstack server add volume <instance_id> <volume_id>
openstack user list
2.列出认证服务目录
openstack catalog list
openstack image list
2.删除指定镜像
openstack image delete <image_id>
3.查看指定镜像的详细信息
openstack image show <image_id>
4.更新镜像
openstack image set <image_id>
openstack server list
2.创建规格
openstack flavor create --ram <ram_size_MB> --disk <disk_size_GB> --vcpus <vcpu_num> <flavor_name>
3.列出所有规格
openstack flavor list
4.创建并启动云主机
openstack server create --image <image_id> --flavor <flavor_id> <server_name>
5.显示实例的详细信息
openstack server show <server_name>
6.查看云主机的控制台日志
openstack server show <server_name>
7.设置云主机的元数据
nova meta <server_id> set <meta_key>=<meta_value>
8.创建云主机快照
openstack image create <server_id> <snapshot_name>
9.查看云主机快照
openstack image show <snapshot_name>
10.暂停云主机
openstack server pause <server_id>
11.取消暂停
openstack server unpause <server_id>
12.挂起云主机
openstack server suspend <server_id>
13.取消挂起
openstack server resume <server_id>
14.关闭云主机
openstack server stop <server_id>
15.开启云主机
openstack server start <server_id>
16.恢复云主机
openstack server rescue <server_id> --rescue_image_ref <rescue_image>
17.调整云主机大小
openstack server resize <server_id> <flavor_name>
18.重建云主机
openstack server rebuild <server_id> <image_id>
19.重启云主机
openstack server reboot <server_id>
20.将用户数据文件注入云主机
openstack server create --user-data <datafile_name> --image <iamge_id> --flavor <flavor_name> <server_name>
openstack network create <network_name>
2.创建子网
openstack network create --subnet-pool <subnet> --network <network_name> <subnet_name>
- Opnestack三大核心
-
- 1.计算服务(compute) 服务名 Nova #用于为用户管理虚拟机实例 提供虚拟服务 负责虚拟机创建 开机关机等操作 (计算资源分配资源 cpu,mem)
-
- 2.网络服务(networking) 服务名 Neutron #为云平台提供网络虚拟化 为用户提供网络接口 (cloud连接的网络) 服务名 Designate #DNS服务
-
- 3.存储(storage) 分为 1.文件存储 服务名 Manila
- 2.块存储 Block Storage 服务名 Cinder #管理块设备,列入创建卷,删除卷等
- (系统盘)
- 3.对象存储 Object Storage 服务名 Swift #允许使用进行文件粗出及检索
-
- 4.身份认证服务 (ldentity) 服务名 keystone #为openstack替他服务提供身份验证,服务注册等功能 (各组件互相通信的身份认证与协调)
-
- 5.镜像服务 (image service) 服务名 Glance #为云平台提供镜像服务器,上传镜像 ,删除镜像等 (镜像服务)
-
- 6.UI界面 (Dashboard) 服务名 Horizon #为openstack 提供管理门户,例如启动云主机,创建网络,访问控制等 (提供图形操作界面)
-
- 7.测量 (metering ) 服务名 Ceilometer #内部发生的资源进行统计,然后计费和监控提供数据支撑等
-
- 8.编排部署 (orchestration) 服务名 Heat # 为云平台提供软件运行环境自动化部署
-
- 9.数据库 (database server) 服务名Trove # 提供可扩展和可靠的关系型数据库或非关系型数据库引擎
Neutron 是 Openstack 的虚拟网络服务。
Neutron 的设计目标是实现“网络即服务(Networking as a Service)”。为了达到这一目标,在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。
Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。
与openstack其他服务和组件的设计思路一样,Neutron也采用分布式架构,由多个组件(服务)共同对外提供网络服务,Neutron架构非常灵活,层次多,一方面是为了支持各种现有或者将来会出现的先进网络技术,另一方面支持分布式部署,获得足够的拓展性。示意图如下:
neutron server:对外提供 OpenStack 网络API,接收请求,并调用Plugin处理请求。
queue:Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。
neutron plugin:处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络的状态, 并调用 Agent 处理请求。
neutron agent:处理 Plugin请求,负责在 network provider 上真正实现各种网络功能。
neutron provider:提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch或者其他支持 Neutron 的物理交换机。
neutron database:存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router等。
1.使用Neutron相关命令查询网络服务列表中的“binary”一列
[root@controller ~]# neutron agent-list -c binary
+---------------------------+
| binary |
+---------------------------+
| neutron-openvswitch-agent |
| neutron-dhcp-agent |
| neutron-l3-agent |
| neutron-metadata-agent |
| neutron-lbaas-agent |
+---------------------------+
//如果一开始查报错,建议重启一下服务
[root@controller ~]# systemctl restart neutron-server.service
2.查询网络详细信息
[root@xiandian ~]# neutron net-list //列出当前租户所有的网络
+--------------------------------------+------------+---------+
| id | name | subnets |
+--------------------------------------+------------+---------+
| bd923693-d9b1-4094-bd5b-22a038c44827 | sharednet1 | |
+--------------------------------------+------------+---------+
[root@xiandian ~]# neutron net-show bd923693-d9b1-4094-bd5b-22a038c44827
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2017-02-23T04:58:17 |
| description | |
| id | bd923693-d9b1-4094-bd5b-22a038c44827 |
| ipv4_address_scope | |
| ipv6_address_scope | |
| mtu | 1500 |
| name | sharednet1 |
| port_security_enabled | True |
| provider:network_type | flat |
| provider:physical_network | physnet1 |
| provider:segmentation_id | |
| router:external | False |
| shared | True |
| status | ACTIVE |
| subnets | |
| tags | |
| tenant_id | 20b1ab08ea644670addb52f6d2f2ed61 |
| updated_at | 2017-02-23T04:58:17 |
+---------------------------+--------------------------------------+
3.查询Neutron相关命令查询网络服务DHCP agent的详细信息
[root@controller ~]# neutron agent-list
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 1ccc8d2d-b40a-4406-b15b-ab4b2b8e8398 | Open vSwitch agent | controller | | :-) | True | neutron-openvswitch-agent |
| 245ae2f9-6220-4c00-a36d-542a746a3f9e | DHCP agent | controller | nova | :-) | True | neutron-dhcp-agent |
| 26f38d05-3553-46f6-8740-847f97741f89 | L3 agent | controller | nova | :-) | True | neutron-l3-agent |
| 5bd0c9e2-a2ef-4890-a4ac-a4cb6bccf71b | Metadata agent | controller | | :-) | True | neutron-metadata-agent |
| f1d1fc34-6e9d-46b5-8370-0579f3b46b6f | Loadbalancer agent | controller | | :-) | True | neutron-lbaas-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
[root@controller ~]# neutron agent-show 245ae2f9-6220-4c00-a36d-542a746a3f9e
+---------------------+----------------------------------------------------------+
| Field | Value |
+---------------------+----------------------------------------------------------+
| admin_state_up | True |
| agent_type | DHCP agent |
| alive | True |
| availability_zone | nova |
| binary | neutron-dhcp-agent |
| configurations | { |
| | "subnets": 0, |
| | "dhcp_lease_duration": 86400, |
| | "dhcp_driver": "neutron.agent.linux.dhcp.Dnsmasq", |
| | "networks": 0, |
| | "log_agent_heartbeats": false, |
| | "ports": 0 |
| | } |
| created_at | 2019-12-03 17:43:37 |
| description | |
| heartbeat_timestamp | 2022-04-10 22:41:26 |
| host | controller |
| id | 245ae2f9-6220-4c00-a36d-542a746a3f9e |
| started_at | 2022-04-10 22:38:56 |
| topic | dhcp_agent |
+---------------------+----------------------------------------------------------+
cinder 是提供块存储的服务。存储的分配和消耗是由块存储驱动器或者多后端配置的驱动器决定的。还有很多驱动程序可以用:NAS/SAN、NFS、CEPH等。一般运行在openstack的控制节点上。其驱动可以运行在控制节点、计算节点或者单独的存储节点上。
cinder的核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行处理。它为后端不同的存储设备提供了统一的接口,不同的块设备服务厂商在 cinder 中实现其驱动支持以与 OpenStack 进行整合。
1.创建云硬盘
创建一个2 GB的云硬盘extend-demo,并且查看云硬盘信息。
[root@controller ~]# cinder create --name cinder-volume-demo 2
[root@controller ~]# cinder list
2.创建云硬盘类型
创建了一个名为“lvm”的卷类型。通过cinder命令查看现有的卷类型。
[root@controller ~]# cinder type-create lvm
[root@controller ~]# cinder type-list
3.创建带标识云硬盘
创建一块带“lvm”标识名为type_test_demo的云硬盘,最后使用命令查看所创建的云硬盘。
[root@controller ~]# cinder create --name type_test_demo --volume-type lvm 1
[root@controller ~]# cinder show type_test_demo
4.删除指定的Cinder卷
[root@controller ~]# cinder delete cinder-volume-demo
在 Glance 里镜像被当做模板来存储,用于启动新实例。Glance 还可以从正在运行的实例建立快照用于备份虚拟机的状态。
Glance 具体功能如下:
提供 RESTful API 让用户能够查询和获取镜像的元数据和镜像本身;
支持多种方式存储镜像,包括普通的文件系统、Swift、Ceph 等;
对实例执行快照创建新的镜像。
Clance 在整个 OpenStack 架构中的位置如下图:
二:架构
在 Newton 之前的版本中,Glance 支持两种 RESTful API V1和V2,两者区别为:
V1只提供了基本的镜像和用户操作功能:
镜像创建、删除、下载、列表、详细信息查询、更新,以及镜像租户成员的创建、删除和列表。
V2除了支持V1的所有功能外,主要是增加了如下功能
镜像 location 的添加、删除和修改等操作;
metadata namespace 操作;
镜像 tag 操作。
V1 和V2对镜像后端存储的支持是相同的。
V1版本的实现,具有 glance-api 和 glance-registry 两个 WSGI 服务,二者都提供 RESTful API,但需要强调的一点是,glance-registry 提供的 RESTful API 是给 glance-api 使用的,并不开放给外部用户。
glance-api
glance-api 是系统后台运行的服务进程。 对外提供 RESTful API,响应镜像查询、获取和存储作用。glance-api 不会真正处理请求。 如果是与镜像 metadata(元数据)相关的操作,glance-api 会把请求转发给glance-registry;如果是与镜像自身存取相关的操作,glance-api 会把请求转发给该 image 的存储后端。
glance-registry
Glance的DB模块存储的是镜像的元数据,可以选用Mysql、MariaDB、SQLite等数据库。元数据是指镜像相关的一些信息(如id,size, status,location,checksum,min_disk,min_ram,owner等)真正的镜像数据保存在实际所使用的后端存储里(如Swift,S3,Filesystem等)。默认绑定的端口是9191。镜像的元数据通过glance-registry存放在数据库中。镜像本身(chunk数据)是通过glance存储在驱动存放到各种存储后端中的。
store adapter‘
严格来说Image Store不属于Glance的组件,这里把它单独分出来只是为了方便理解,它只是一个接口层,提供镜像存储和查询的接口。具体的实现则需要外部存储(Swift,S3)的支持。
存储后端Glance自身并不存储镜像,它将镜像存放在后端存储系统中。镜像本身的数据通glance_store存放在各种后端,并可从中获取。支持本地存储、对象存储、RBD块设备、Sheepdog分布式存储、Cinder块存储】VMware数据存储。
2.1:glance有哪些常见的镜像格式
格式 | 描述 |
RAW(常用) | 出色的原始文件格式,方便转换成其他格式 |
QCOW2(常用) | 占用的磁盘空间可以动态按需增长 |
VHD格式 | 微软公司的磁盘格式,如果在openstack上使用Hyper-V类型的虚拟化,就需要上传VHD格式的镜像文件 |
VMDK格式 | VMware公司的磁盘格式(virtualbox和QEM也支持VMDK格式) |
VDI格式 | oracle公司的virtualbox虚拟软件使用的格式 |
ISO格式 | 一种存档数据文件在光盘上的格式 |
AKI,ARI,AMI格式 | Amazon公司的AWS所使用的镜像格式 |
2.2:glance的常用管理命令有哪些
命令 | 作用 |
openstack image list | 查看已有镜像列表 |
openstack image show 镜像名 | 查看镜像的详细信息 |
openstack image create --file 镜像文件名 --disk-format qcow2 --container-format bare --public centos7 生产一个qcow2格式的镜像,名字为centos7 | 创建镜像 |
glance image-create --name “centos7” --file centos.img --disk-format raw --container-format bare --progress | 创建镜像并查看百分比进度 |
openstack image delete 镜像名 | 删除镜像 |
openstack image create --file 镜像 --disk-format qcow2 --container-format bare --public 镜像名 | 修改镜像格式(例如raw修改为qcow2) |
qemu-img convert -f raw -O qcow2 centos7.img centos7.qcow2 | 修改镜像格式(例如将裸格式镜像文件centos7.img转为qcow2格式) |
2.3:镜像访问权限
命令 | 作用 |
public公共的 | 可以被所有的项目使用 |
private私有的 | 只有被镜像所有者所在的项目使用 |
shared共享的 | 一个非共有的镜像,可以共享给其他项目,通过项目成员(member-*)操作来实现的 |
projected(受保护的) | 这种镜像不能被删除 |
2.4:glance的工作流程
glance是一个C/S架构,给外部提供服务,用户通过REST API获取glance所有服务。
镜像上传服务
调度器
- [root@ct ~]# mysql -u root -p
- MariaDB [(none)]> CREATE DATABASE glance;
- MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
- MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
- MariaDB [(none)]> flush privileges;
- MariaDB [(none)]> exit
- [root@ct ~]# openstack user create --domain default --password GLANCE_PASS glance ###创建glance用户
- root@ct ~]# openstack role add --project service --user glance admin
- #将glance用户添加到service项目中,并且针对这个项目拥有admin权限;注册glance的API,需要对service项目有admin权限
-
- [root@ct ~]# openstack service create --name glance --description "OpenStack Image" image
- #创建一个service服务,service名称为glance,类型为image;创建完成后可以通过 openstack service list 查看
- [root@ct ~]# openstack endpoint create --region RegionOne image public http://ct:9292
- [root@ct ~]# openstack endpoint create --region RegionOne image internal http://ct:9292
- [root@ct ~]# openstack endpoint create --region RegionOne image admin http://ct:9292
[root@ct ~]# yum -y install openstack-glance
- /etc/glance/glance-api.conf
- /etc/glance/glance-registry.conf
- [root@ct ~]# cp -a /etc/glance/glance-api.conf{,.bak}
- [root@ct ~]# grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf
-
- openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://ct:5000
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://ct:5000
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct:11211
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
- openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
- openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
- openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
- openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
- openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
- cp -a /etc/glance/glance-registry.conf{,.bak}
- grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf
-
- #修改配置文件参数
- openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://ct:5000
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://ct:5000
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers ct:11211
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
- openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS
- openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
- openstack-config --set /etc/glance/glance-registry.conf glance_store stores file,http
- openstack-config --set /etc/glance/glance-registry.conf glance_store default_store file
- openstack-config --set /etc/glance/glance-registry.conf glance_store filesystem_store_datadir /var/lib/glance/images/
su -s /bin/sh -c "glance-manage db_sync" glance
- [root@ct ~]# systemctl enable openstack-glance-api.service
- [root@ct ~]# systemctl start openstack-glance-api.service
- [root@ct ~]# netstat -natp | grep 9292
- tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 33846/python2
[root@ct ~]# chown -hR glance:glance /var/lib/glance/
[root@ct ~]# openstack image create --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros
- [root@ct ~]# glance image-list
- +--------------------------------------+--------+
- | ID | Name |
- +--------------------------------------+--------+
- | 238703c7-8128-4284-aed8-65c1f683a700 | cirros |
- +--------------------------------------+--------+
- [root@ct ~]# openstack image list
- +--------------------------------------+--------+--------+
- | ID | Name | Status |
- +--------------------------------------+--------+--------+
- | 238703c7-8128-4284-aed8-65c1f683a700 | cirros | active |
- +--------------------------------------+--------+--------+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。