ToB企服应用市场:ToB评测及商务社交产业平台

标题: 云计算之OpenStack焦点 [打印本页]

作者: 去皮卡多    时间: 2024-6-22 12:58
标题: 云计算之OpenStack焦点
一、OpenStack架构

1.1 OpenStack概念架构



1.2 OpenStack逻辑架构


1.3 拓扑部署


  1. 控制节点 devstack-controller  192.168.104.10
  2. 计算节点 devstak-compute      192.168.104.11
复制代码
参考:https://www.xjimmy.com/openstack-5min-17.html
1.4 使用OpenStack CLI

1.4.1 OpenStack 服务都有自己的 CLI


  1. CMD <obj>-create [parm1] [parm2]…
  2. CMD <obj>-delete [parm]
  3. CMD <obj>-update [parm1] [parm2]…
  4. CMD <obj>-list
  5. CMD <obj>-show [parm]
复制代码

  1. glance image-create
  2. glance image-delete
  3. glance image-update
  4. glance image-list
  5. glance image-show
复制代码

  1. # 网络相关操作
  2. neutron net-create
  3. neutron net -delete
  4. neutron net -update
  5. neutron net -list
  6. neutron net –show
  7. # 子网相关操作
  8. neutron subnet-create
  9. neutron subnet -delete
  10. neutron subnet -update
  11. neutron subnet -list
  12. neutron subnet–show
复制代码

  1. nova boot
  2. nova delete
  3. nova list
  4. nova show
复制代码

  1. CMD help [SUB-CMD]
复制代码
比方查看 glance 都有哪些 SUB-CMD:
查看 glance image-update 的用法:

二、OpenStack焦点折务


2.1 认证服务Keystone

2.1.1 基本功能


2.1.2 基本概念



  1. root@devstack-controller:~# source devstack/openrc admin admin //切换用户
  2. root@devstack-controller:~# openstack catalog list //查询服务的Endpoint
复制代码


2.1.3 举例说明:admin用户查看Project中的image


2.2 镜像服务Image

2.2.1 基本概念


2.2.2 Glance架构


2.2.2.1 glance-api


2.2.2.2 glance-registry


2.2.2.3 Database


2.2.2.4 Store backend


2.2.3 Glance操作


2.2.3.1 Web UI操作

2.2.3.1.1 Web UI 创建 image


2.2.3.1.2 Web UI 删除 image


2.2.3.2 CLI操作

2.2.3.2.1 CLI 创建 image


  1. glance image-create --name cirros --file /tmp/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
复制代码
在创建 image 的 CLI 参数中我们用 –progress 让其显示文件上传的百分比 %。在 /opt/stack/data/glance/images/ 下查看新的 Image:

2.2.3.2.2 CLI 删除 image


2.2.4 怎样 Troubleshooting


2.3 计算服务Nova


2.3.1 Nova架构


2.3.1.1 API


2.3.1.2 Compute Core


2.3.1.3 Console Interface


2.3.1.4 Database


2.3.1.5 Message Queue


2.3.2 Nova 物理部署方案


2.3.3 从虚机创建流程看 nova-* 子服务怎样协同工作


2.3.4 OpenStack 通用计划思路

2.3.4.1 API 前端服务


2.3.4.2 Scheduler 调度服务


2.3.4.3 Worker工作服务


2.3.4.4 Driver 框架


2.3.4.5 Messaging 服务


2.3.4.6 Database


2.3.5 Nova 组件详解

2.3.5.1 nova-api


2.3.5.2 nova-conductor


2.3.5.3 nova-scheduler


2.3.5.4 nova-compute


2.3.6 看懂 OpenStack 日志

2.3.6.1 日志位置


2.3.6.2 日志类型


2.3.6.3 日志格式


  1. 2015-12-10 20:46:49.566 DEBUG nova.virt.libvirt.config [req-5c973fff-e9ba-4317-bfd9-76678cc96584 None None] Generated XML ('<cpu>\n  <arch>x86_64</arch>\n  <model>Westmere</model>\n
  2. <vendor>Intel</vendor>\n  <topology sockets="2" cores="3" threads="1"/>\n  
  3. <feature name="avx"/>\n  <feature name="ds"/>\n  <feature name="ht"/>\n  
  4. <feature name="hypervisor"/>\n  <feature name="osxsave"/>\n  <feature name="pclmuldq"/>\n
  5. <feature name="rdtscp"/>\n  <feature name="ss"/>\n  <feature name="vme"/>\n  
  6. <feature name="xsave"/>\n</cpu>\n',)  to_xml /opt/stack/nova/nova/virt/libvirt/config.py:82
复制代码
这条日志我们可以得知:代码模块是 nova.virt.libvirt.config,由此可知应该是 Hypervisor Libvirt 相干的操作;日志内容是天生 XML;如果要跟踪源代码,可以到/opt/stack/nova/nova/virt/libvirt/config.py 的 82 行,方法是 to_xml。

  1. 2015-12-10 20:46:49.671 ERROR nova.compute.manager[req-5c973fff-e9ba-4317-bfd9-76678cc96584 None None]No compute node record for host devstack-controller
复制代码
这条日志我们可以得知:这是一个 ERROR 日志;详细内容是 “No compute node record for host devstack-controller”;该日志没有指明源代码位置。
2.3.6.4 日志说明


2.3.7 虚拟机生命周期管理

2.3.7.1 Launch-部署虚拟机


2.3.7.2 Shut Off-关闭虚拟机


2.3.7.3 Start-启动虚拟机


2.3.7.4 Soft/Hard Reboot-软/硬重启虚拟机


2.3.7.5 Lock/Unlock-加锁/解锁虚拟机


2.3.7.6 Terminate -删除虚拟机


2.3.7.7 Pause/Resume-暂停(短时间)/规复(暂停后的规复,非故障时规复)虚拟机


2.3.7.8 Suspend/Resume-暂停(长时间)/规复(暂停后的规复,非故障时规复)虚拟机


2.3.7.9 Rescue/Unrescue-规复(发生故障时规复)/重新引导虚拟机


2.3.7.10 Snapshot -创建虚拟机快照


2.3.7.11 Rebuild -通过快照规复虚拟机


2.3.7.12 Shelve-搁置虚拟机


2.3.7.13 Unshelve-取消搁置虚拟机


2.3.7.14 Migrate -迁移虚拟机


2.3.7.15 Resize-调解虚拟机的vCPU、内存和磁盘资源


2.3.7.16 Live Migrate-在线迁移虚拟机


2.3.7.17 Evacuate-撤离虚拟机


2.3.7.18 Nova操作总结


如上图所示,我们把对 Instance 的管理按运维工作的场景分为两类:通例操作和故障处理。

2.4 块存储服务Cinder:为 instance 提供虚拟磁盘



2.4.1 Cider架构



2.4.2 物理部署方案


2.4.3 Cinder计划思想


2.4.4 Cinder 组件详解

2.4.4.1 cinder-api


2.4.4.2 cinder-scheduler


2.4.4.3 cinder-volume


2.4.5 通过场景学习Cinder

2.4.5.1 准备LVM Volume Provider


2.4.5.2 创建volume


2.4.5.3 Attach附加磁盘

本节讨论 cinder-volume 和 nova-compute 怎样将 volume attach 到 Instance。

2.4.5.4 Detach卸载磁盘


2.4.5.5 Extend扩展磁盘


2.4.5.6 Delete删除磁盘


2.4.5.7 Snapshot磁盘快照


2.4.5.8 Backup磁盘备份


2)cinder-api 发送消息:
cinder-api 发送 backup 消息。cinder-api 没有打印发送消息的日志,只能通过源代码查看
/opt/stack/cinder/cinder/backup/api.py,方法为 create:

3)cinder-backup 执行 backup 操作:
cinder-backup 收到消息后,通过如下步骤完成 backup 操作,日志为 /opt/stack/logs/c-vol.log。
i)启动 backup 操作,mount NFS。

ii)创建 volume 的临时快照。

iii)创建存放 backup 的 container 目录。

iv)对临时快照数据举行压缩,并生存到 container 目录。

v)创建并生存 sha256(加密)文件和 metadata 文件。

vi)删除临时快照。

Backup 完成后,我们可以查看一下 container 目录的内容:内里有三个文件,根据前面的日志我们可以知道:backup-00001,压缩后的 backup 文件。backup_metadata,metadata 文件。backup_sha256file,加密文件。

可以通过 cinder backup-list 查看当前存在的 backup:

另外我们接纳cinder help backup-create下令可以查看一下 cinder backup-create 的用法:

这里有--incremental 选项,表示可以执行增量备份。如果之前做过平凡(全量)备份,之后可以通过增量备份大大淘汰必要备份的数据量,是个很不错的功能。
2.4.5.9 restore磁盘规复


2.4.5.10 Boot From Volume 将Volume作为虚拟机的启动盘


2.4.5.11 NFS Volume Provider


2.5 网络服务Neutron


2.5.1 Neutron概述

2.5.1.1 Neutron功能


2.5.1.2 Neutron网络基本概念


2.5.2 Neutron架构

2.5.2.1 Neutron组件概括


2.5.2.2 Neutron物理部署方案


2.5.3 Neutron组件详细说明

2.5.3.1 Neutron Server


2.5.3.2 Neutron怎样支持多种network provider


2.5.3.3 ML2 Core Plugin


2.5.3.4 Service Plugin/Agent


2.5.3.5 小结



2.5.4 为Neutron准备底层基础设施


2.5.5 Linux Bridge实现Neutron网络


2.5.5.1 设置 Linux-Bridge Mechanism Driver


2.5.5.2 初始网络状态


2.5.5.3 local network


2.5.5.4 flat network


2.5.5.5 DHCP服务


2.5.5.6 vlan network


2.5.5.7 Routing


2.5.5.8 vxlan network


2.5.5.9 Security Group



6)同样的方式添加 ssh 规则:

7)在列表中查看添加成功的规则:

8)接下来设置 cirros-vm1,使用新的安全组 。进入 instance 列表页面,点击 cirros-vm1 下拉操作列表中的 “Edit Security Groups”:

9)可以看到 cirros-vm1 当前使用的安全组为 “default”,可选安全组为 “allow ping & ssh”。点击安全组 “allow ping & ssh” 后面的 “+” 按钮:

10)点击 “Save” 生存:

11)iptables 会立刻更新,下面通过 vimdiff 查看 iptables 前后的变化:

12)“allow ping & ssh” 安全组引入了下面两条 iptables 规则。作用是运行 ingress 的 ssh 和 ping 流量:

13)测试一下,如今能够 ping 和 ssh cirros-vm1 了:


2.5.5.10 Firewall as a Service


2.5.5.11 Load Balancing as a Service

  2.5.6 Open vSwitch实现Neutron网络


2.5.6.1 local network


2.5.6.2 flat network


2.5.6.3 vlan network


2.5.6.4 Routing



route_101_101 上设置了 vlan100 和 vlan101 的网关,两个网络在三层上就通了。


2.5.6.5 vxlan network



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4