1. 概览

Openstack作为常见的IAAS服务,其最核心的对象就是虚机实例,而Openstack下支持的虚机操作有很多种,有些是特别常见的虚机操作比如创建虚机、启动虚机、删除虚机等,而有些虚机操作则是针对特定场景下比如出现故障而提供的保护/恢复虚拟机资源的各种解决方案,下面先通过一张图总体了解一下Openstack的各种虚机操作及及其应用场景:

文章余下部分将借助上图中常规操作和故障操作这两大应用场景来对Openstack各种虚机实例的操作一一展开说明。

2. 常规操作

所谓常规操作,这里是指日常对Openstack虚机最基本的操作,且Openstack集群及虚机运行状态良好的情况下。

2.1 创建

创建虚机,Openstack专业术语:启动虚机实例,根据已经定义好的主机类型、存储资源、网络资源等从无到有新建一个虚拟机。如果底层的虚拟化基于KVM,相当于先编辑一个虚机的XML文件然后进行DEFINE

2.2 启动/关闭/重启/删除

  • 启动:跟上文中创建启动虚机实例不是一个概念,可以理解成类似物理机的开机的操作;
  • 关闭:类似物理机的关机操作;
  • 重启:有软重启和硬重启之分,软重启只是重启虚机的OS,虚机仍处于运行状态,相当于执行reboot,而硬重启则是关机之后再开机;
  • 删除:从宿主机上删除虚机实例;

2.3 暂停/挂起

  • 暂停:Pause操作,短时间暂停虚机实例,将其状态保存到宿主机的内存中,操作之后虚机对外显示状态为Paused;
  • 挂起:Suspend操作,长时间暂停虚机实例,将其状态保存到宿主机的磁盘上,操作之后虚机对外显示状态为Shut Down;

以上两种操作后的虚机实例,都可以通过其他Openstack的接口重新恢复(Pause--> Unpause,Suspend--> Resume)虚机,并且显然经过Pause操作的虚机实例恢复要快的多。

2.4 调整虚机大小

对应Openstack Resize操作,用来修改虚机实例的规格,当原始的主机类型(Flavor)无法满足其上运行的业务需求时,通过新的Flavor在当前宿主机或者新的宿主机上重新启动一个新的虚机,但是这个虚机的资源比如网络资源、OS版本等还是跟之前的虚机是一样的,只是扩展了CPU Core数目、内存和磁盘大小,提高了虚机性能。

2.5 快照

对应Openstack Snapshot操作,用来作备份恢复的,将某个状态下的虚机导出image并上传至Glance管理,方便以后通过快照来恢复一个出现故障的虚机,另外Openstack快照跟传统意义的快照不是一个含义。

2.6 锁定

对应Openstack Lock操作,用来作资源保护,如果为防止误操作或者不想让某些人操作虚机实例可以执行此操作,当然可以通过Unlock操作来解除锁定。

3. 故障操作

首先解释一下,这里的故障操作不是指错误操作或者误操作,而是Openstack虚机实例或者其它组件出现故障时应对的措施或者操作。

3.1 冷迁移/热迁移

冷迁移(Migrate)和热迁移(Live Migrate)最大的区别在于将虚机实例从一个计算节点迁移到另一个计算节点的过程中是不是做了虚机关闭的操作。

3.2 搁置

对应Openstack Shelve操作,用作释放暂不使用的虚机资源。

对于暂时不用的虚机如前文所述可以通过Pause/Suspend来暂停以节约成本,不过这两种操作下虚机实例需要的比如CPU、内存等资源宿主机仍然要维护,如果想从底层来释放这些资源可以执行Shelve操作,它的原理是释放虚机之前先会对虚机做快照并上传Glance,然后才从宿主机删除虚机,当然如果想恢复则可以执行Unshelve操作。

3.3 Rescue

当虚机实例因为某个文件系统误删或者权限导致虚机实例无法正常开启时,可以执行Rescue操作来尝试恢复:选择一个虚机image来引导虚机正常起来,同时把之前的系统盘作为数据盘挂载到起来的虚机OS下,修复好之后使用Unrescue操作从原启动盘重新引导虚机。

3.4 重建

对应Openstack Rebuild操作,当虚机实例损坏无法正常开启,而一般的修复操作比如Rescue不起作用,此时可以考虑在原先虚机实例的基础上利用虚机镜像或者快照进行Rebuild操作,它的原理替换原先虚机实例的镜像文件,同时保持虚机其他比如网络资源、其他分配属性不变而实现虚机正常开启。

3.5 Evacuate

上述的操作都是在宿主机ok的情况下进行的,如果虚机实例的宿主机直接挂掉该怎么办呢?还好有Evacuate操作,它能够在当前宿主机宕掉的情况,将其上的虚机实例迁移到其它正常的计算节点,不过它需要满足共享存储(比如后端采用NFS、CEPH等)。

以上基本上就是目前Openstack所支持的对虚机实例的所有操作,实际使用中需要结合具体的业务场景。

openstack实例状态错误_Openstack虚机操作总结相关推荐

  1. Openstack虚机实例状态错误手工恢复vm_state:error

    Openstack虚机实例状态错误手工恢复vm_state:error Openstack虚机实例状态错误手工恢复vm_state:error 1.找到状态为出错状态的VM.在数据库里面表现Statu ...

  2. VMware错误:无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错

    看了网上各路大神的解决方案,总结出最靠谱的解决方法--重新安装VMware tools 环境 CentOS 6.5 GUI 1.点击重新安装 点击后会弹出一个窗口 2.在窗口里右键打开控制台. 3.用 ...

  3. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  4. Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]

    本文梳理一下 Nova 主要操作的流程. 0. Nova REST-CLI-Horizon 操作对照表 Nova 基本的 CRUD 操作和 extensions: # 类别 Nova V2 REST ...

  5. openstack ubuntu虚机重启卡在booting from hard disk问题解决

    openstack ubuntu虚机重启卡在booting from hard disk问题解决 openstack ubuntu虚机重启卡在booting from hard disk问题解决 问题 ...

  6. 【云计算 | OpenStack】从零开始使用libvirt创建一个kvm虚机

    环境: os镜像:CentOS-7-x86_64-Minimal-2009.iso qemu-kvm:qemu-kvm.x86_64 10:1.5.3-175.el7_9.6 Libvirt:libv ...

  7. 【KVM系列06】Nova 通过 libvirt 管理 QEMU/KVM 虚机

    第六章 Nova 通过 libvirt 管理 QEMU/KVM 虚机 1. Libvirt 在 OpenStack 架构中的位置 2. Nova 中 libvirt 的使用 2.1 创建 QEMU/K ...

  8. 创建虚机时间_云原生虚机应用托管设计篇

    基于kubernetes托管虚机有一些现成的方案,不过今天笔者要聊的是在虚机交付后,该如何实现后续的管理,包括如何实现环境和代码的部署与更新,感兴趣的可以一起看看,本篇是设计篇 1. 虚机应用的托管 ...

  9. KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]

    KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain] 学习 KVM 的系列文章: (1)介绍和安装 (2)CP ...

最新文章

  1. iOS自动化测试之Appium的安装和使用
  2. android button背景随心搭配
  3. 操作多个表_3_查询两个表共同的行
  4. 2019年1月14日【第一天正式学习】
  5. ajax请求是宏任务还是微任务_微服务-如何解决链路追踪问题
  6. 华为鸿蒙全能家居,能兑现多少?华为智慧屏十年不过时,用鸿蒙理念做智能家居...
  7. java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字
  8. [react] 在React中我们怎么做静态类型检测?都有哪些方法可以做到?
  9. c++ curl 超时_cc++写网络爬虫,curl+gumbo配合使用
  10. 信息学奥赛一本通(1114:白细胞计数)
  11. JavaScript学习系列之执行上下文与变量对象篇
  12. 由于找不到appvisvsubsystems32.dll_终于熬到孩子上幼儿园,宝妈却找不到工作了,背后原因让人心酸...
  13. Python学习【第2篇】:基本数据类型(详解)
  14. ajax请求sql数据库数据类型,ajax请求mysql文件数据库
  15. 计算机机房安全设计规范,弱电机房建设规范要求
  16. ESP32使用SDIO接口注意事项
  17. 解决windows防火墙拦截FTP连接
  18. 关于内部排序的小总结
  19. 利用js制作动态小时钟
  20. 计算机未安装打印机,Win7使用打印机突然提示“尚未安装打印机”怎么回事

热门文章

  1. Netty源码学习(零)前言
  2. iOS开源照片浏览器框架SGPhotoBrowser的设计与实现
  3. Linux之Json20160705
  4. Spring3系列12-Spring AOP AspectJ
  5. jsp 中提交表单后在firefox、chrome 中中文显示为正常,但在IE中中文显示为乱码?...
  6. g++和gcc的区别
  7. 多线程死锁及解决办法
  8. 用GPIO口模拟串口通信,它真的来了
  9. 为什么读书了,还不如那些初中毕业的同学
  10. class_create和class_device_create