2019独角兽企业重金招聘Python工程师标准>>>

八、KVM

这一步,像virsh start命令一样,将虚拟机启动起来了。虚拟机启动之后,还有很多的步骤需要完成。

步骤38:从DHCP Server获取IP

有时候往往数据库里面,VM已经有了IP,很多人就认为虚拟机就得到了IP,可是总是连不进去,不知从何入手,其实界面上能看到VM的IP和VM真正从DHCP获得IP是两回事情。

步骤39:cloud-init连接Metadata Server,并注入Key

Metadata Server有很复杂的架构,cloud-init连接Metadata Server,很容易就会不成功,如果不成功,Key无法注入,所有常出现IP能够ping通,但是就是ssh不上去的情况。

http://niusmallnan.github.io/_build/html/_templates/openstack/metadata_server.html

另外推荐孔令贤的blog

【OpenStack】metadata在OpenStack中的使用(一)

【OpenStack】metadata在OpenStack中的使用(二)

步骤40:通过VNC可以看到启动过程

VNC是一个很好的东西,尤其是在VM没有得到IP的时候,你可以通过VNC连进去,用用户名密码登陆,然后调试为什么DHCP失败。

VNC也是比较复杂的东西,推荐文章

nova vnc proxy基本原理

步骤41:添加一个FLoating IP,可以通过Floating IP SSH进去。

要想Floating IP成功,除了IPTables NAT要正确,br-ex也需要正确配置。

步骤42:在VM里面可以访问外网

要做到这一点,除了gateway要配置正确,dns server也需要正确配置。

如果虚拟机网络有问题,那是很头疼的时候,建议通过下面的流程进行调试:

  1. Security Group全部打开,这是最基本的,但是很多人容易忘记,结果tcpdump了半天,发现security group没打开,真的很冤
  2. 通过界面查看虚拟机的log,也可以在compute节点上查看console.log文件,看看里面是否有DHCP获取IP成功的日志,如果有,还不错,如果没有就惨了
  3. 如果虚拟机连不上DHCP Server,则需要准备一个不使用metadata server,而是用用户名密码可以登录的image,通过VNC登录进去,如果VNC也不通,就需要先调试VNC,这是访问虚拟机最后的方法了。
  4. 通过VNC登录进去后,就可以通过命令行运行dhclient,来重启连接DHCP Server
  5. 在运行dhclient之前,需要通过ovs-vsctl show和brctl来查看,各个网卡和bridge之间关系是否正确,tunnel之间是否能够通,网卡是否都处于up的状态
  6. 如果从虚拟机的虚拟网卡到DHCP Server的网卡一路都是正确的,则需要查看br-tun上ovs-ofctl dumpflows查看flows规则,是否对包的改写正确,是否有正确的规则
  7. 可以再dhclient运行的时候,从compute节点上的网卡和bridge,一个个进行tcpdump,看到底哪个网卡或者bridge没有收到包,收到的包里面的VLAN ID等是否正确,问题往往就是这里
  8. 如果VM能从DHCP Server获得IP,则好事成了一半,接下来换一个有cloud-init的image,看metadata server能够连接成功,能够注入key,也是通过console.log来看
  9. 如果metadata server不能连接成功,就需要顺着metadata server的整个流程,一个一个模块看,看每个模块的log,端口是否正确,是否收到请求,也可以在VM里面用curl来模拟metadata server的请求
  10. 如果metadata server能够连接成功,key成功注入,下一步需要从namespace里面看是否能够ping通,能够ssh
  11. 如果namespace里面能够成功,则在network节点上,ping floating ip和ssh,是否能够成功,如果不成功,看br-ex的网卡是否添加正确,是否配置了ip,路由表是否正确,namespace里面floating ip的iptables规则是否添加正确
  12. 在network节点上能够ssh到floating ip,则需要从其他节点上ssh,如果不成功,可能br-ex的网址配置有问题,很可能是br-ex添加的物理网卡不是混合状态,也可能是路由配置有问题,对于floating ip所在的网段,不指向network节点
  13. 如果floating ip能够成功,则需要进去VM里面运行apt-get update,如果不可以,看能否ping通openstack里面的gateway,然后看能否ping通物理网络环境的gateway
  14. 最后要看DNS Server是否配置正确,是否能够ping通,如果能,apt-get update运行成功,则虚拟机才叫基本可用。

所谓基本可用,就是能运行简单的命令没有问题,但是,如果想里面运行程序,则需要保证kvm的性能

推荐文章http://www-01.ibm.com/support/knowledgecenter/linuxonibm/liaat/liaatkvm.htm

而且虚拟机之间是共享物理机的资源的,我们必须对虚拟机的QoS进行控制,可用通过cgroup来进行控制

推荐文章

[转] Quality Of Service In OpenStack

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/

虚拟机在一个物理机上运行,当资源紧张的时候,可能需要live migration到另外的机器上

QEMU KVM Libvirt(12): Live Migration

九、Cinder

虚拟机创建完毕,我们常会attach一个volume,当然也可以boot from volume,这样volume里面的数据不会随着VM的消失而消失。

步骤44:Cinder API请求创建一个Volume

步骤45: Cinder Scheduler在多个Cinder Volume里面选择一个,也是先Filter再weighting的过程,可以根据总空间的大小,也可以根据分配的情况

步骤46:Cinder Volume创建一个iscsi target

步骤47:Cinder Volume创建一个LVM volume,加入iscsi target

步骤48:compute节点连接iscsi target,从而volume出现在compute节点上

步骤49:将compute节点上的volume attach到虚拟机上

对于Cinder

手动模拟attach cinder volume的过程

nova boot from volume

Cinder架构

对于LVM,推荐文章

LVM学习笔记

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/

[转] Linux 内核中的 Device Mapper 机制

http://www.ibm.com/developerworks/cn/linux/l-devmapper/

对于ISCSI

推荐

Using iSCSI On Ubuntu 10.04 (Initiator And Target)

Linux tgtadm: Setup iSCSI Target ( SAN )

Cinder跟其他的存储

转载于:https://my.oschina.net/u/2381034/blog/477240

别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)相关推荐

  1. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)

    还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code ...

  2. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)

    二.nova-api 步骤3:nova-api接收请求 nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里 ...

  3. 虚拟机创建的50个步骤以及100个知识点(仅作为个人笔记使用)

    网上大侠们分享的资料都非常好,就看你会不会用,如何使用,再次对本文所引用资料的作者表示感谢,如有侵权,请告知. 大致过程 参考资料 Icehouse 创建Instance代码分析 http://www ...

  4. 大牛写的Openstack虚拟机创建细节

    别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5) (1) http://www.cnblogs.com/popsuper1982/p/3927390.html (2) ht ...

  5. 在openstack上创建第一个虚拟机

    一.创建虚拟网络 第一次创建虚拟机,使用命令行来创建 在控制节点上,加载 admin 凭证来获取管理员能执行的命令访问权限 [root@linux-node1 ~]# source admin-ope ...

  6. openstack云主机无法绑定ip_智汇华云|OpenStack 虚拟机 GPU 性能优化

    随着大数据.人工智能技术的发展,越来越多的用户产生了获取拥有GPU算力的弹性计算服务的需求,GPU云主机具有突出的图形处理和高性能计算能力,适用于科学计算.视频处理.深度学习等应用场景,受到了市场的青 ...

  7. 使用虚拟机备份软件备份OpenStack虚拟机

    1.进入虚拟机备份系统 2.选择[虚拟机保护]--[备份],新建备份任务.选择虚拟化类型[OpenStack],再选择需要备份的虚拟机,点击[下一步] 3.设置备份目的地,选择[目标节点]与[目标存储 ...

  8. 使用虚拟机备份软件恢复OpenStack虚拟机

    1.进入虚拟机备份系统 2.选择[虚拟机保护]--[恢复],新建恢复任务,选择选择虚拟化类型[OpenStack],勾选需要恢复的备份点,点击[下一步] 3. 设置恢复目标宿主机,并按需配置恢复虚拟机 ...

  9. Openstack虚拟机镜像深度实践

    转载:http://geek.csdn.net/news/detail/52407?ref=myread 虚拟机镜像(以下简称镜像)是Openstack云计算平台不可或缺的一部分.利用各种定制化的镜像 ...

最新文章

  1. qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...
  2. c语言结构体中的ps,练习结构体的时候出错,(ps有两个函数还没写)
  3. oracle occi出现乱码,linux下occi操作oracle数据库,中文乱码的问题
  4. 头条二面:宕机后,Redis如何实现快速恢复?
  5. C语言中关于字符串常量的进一步分析 转
  6. python xlsxwriter使用方法汇总
  7. 转帖Jmeter中的几个重要测试指标释义
  8. 《程序员面试金典》最大和子矩阵
  9. 前端学习(3252):vs code中插件的使用
  10. [label][JavaScript]七个JavaScript技巧
  11. react admin项目部署到tomcat_一个tomcat同时部署多个项目
  12. ioprofile mysql_使用pt-ioprofile对MySQL作IO剖析
  13. 包邮送72本R语言和Python的书籍
  14. Win11系统Microsoft Store应用商店加载空白,不能下载软件.
  15. win7西捷硬盘测试软件,Seagate希捷SeaTools硬盘检测工具
  16. Uint 和 int 的区别
  17. 三极管流水灯电路设计
  18. 在香港不能用GPRS上網(转)
  19. 正则表达式匹配,2位数字,单个字符-华图在线试题修改
  20. 基于SpringBoot的宿舍管理系统

热门文章

  1. 使用 Google Gears 开发离线应用
  2. Maven常用参数及其说明
  3. sed替换每行最后一个字符
  4. 利用JavaScript的复制
  5. css 命名规范 BEM
  6. 《深入理解java虚拟机》
  7. str_repeat() 函数
  8. 您的用户配置文件没有正确加载
  9. BCH推出BCH粉丝互动平台
  10. BCH阵营对立将导致共识失败?Cobra有话说!