设为首页 收藏本站
查看: 1870|回复: 0

[经验分享] 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)

[复制链接]

尚未签到

发表于 2015-4-11 14:02:31 | 显示全部楼层 |阅读模式
八、KVM
DSC0000.png
  这一步,像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不上去的情况。
DSC0001.png
  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基本原理
DSC0002.png
步骤41:添加一个FLoating IP,可以通过Floating IP SSH进去。
  要想Floating IP成功,除了IPTables NAT要正确,br-ex也需要正确配置。
DSC0003.png
步骤42:在VM里面可以访问外网
  要做到这一点,除了gateway要配置正确,dns server也需要正确配置。
  如果虚拟机网络有问题,那是很头疼的时候,建议通过下面的流程进行调试:

  • Security Group全部打开,这是最基本的,但是很多人容易忘记,结果tcpdump了半天,发现security group没打开,真的很冤
  • 通过界面查看虚拟机的log,也可以在compute节点上查看console.log文件,看看里面是否有DHCP获取IP成功的日志,如果有,还不错,如果没有就惨了
  • 如果虚拟机连不上DHCP Server,则需要准备一个不使用metadata server,而是用用户名密码可以登录的image,通过VNC登录进去,如果VNC也不通,就需要先调试VNC,这是访问虚拟机最后的方法了。
  • 通过VNC登录进去后,就可以通过命令行运行dhclient,来重启连接DHCP Server
  • 在运行dhclient之前,需要通过ovs-vsctl show和brctl来查看,各个网卡和bridge之间关系是否正确,tunnel之间是否能够通,网卡是否都处于up的状态
  • 如果从虚拟机的虚拟网卡到DHCP Server的网卡一路都是正确的,则需要查看br-tun上ovs-ofctl dumpflows查看flows规则,是否对包的改写正确,是否有正确的规则
  • 可以再dhclient运行的时候,从compute节点上的网卡和bridge,一个个进行tcpdump,看到底哪个网卡或者bridge没有收到包,收到的包里面的VLAN ID等是否正确,问题往往就是这里
  • 如果VM能从DHCP Server获得IP,则好事成了一半,接下来换一个有cloud-init的image,看metadata server能够连接成功,能够注入key,也是通过console.log来看
  • 如果metadata server不能连接成功,就需要顺着metadata server的整个流程,一个一个模块看,看每个模块的log,端口是否正确,是否收到请求,也可以在VM里面用curl来模拟metadata server的请求
  • 如果metadata server能够连接成功,key成功注入,下一步需要从namespace里面看是否能够ping通,能够ssh
  • 如果namespace里面能够成功,则在network节点上,ping floating ip和ssh,是否能够成功,如果不成功,看br-ex的网卡是否添加正确,是否配置了ip,路由表是否正确,namespace里面floating ip的iptables规则是否添加正确
  • 在network节点上能够ssh到floating ip,则需要从其他节点上ssh,如果不成功,可能br-ex的网址配置有问题,很可能是br-ex添加的物理网卡不是混合状态,也可能是路由配置有问题,对于floating ip所在的网段,不指向network节点
  • 如果floating ip能够成功,则需要进去VM里面运行apt-get update,如果不可以,看能否ping通openstack里面的gateway,然后看能否ping通物理网络环境的gateway
  • 最后要看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
DSC0004.png
  
  
  
  虚拟机创建完毕,我们常会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架构
DSC0005.png
  对于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/
  
DSC0006.png
DSC0007.png
  对于ISCSI
  推荐
  Using iSCSI On Ubuntu 10.04 (Initiator And Target)
  Linux tgtadm: Setup iSCSI Target ( SAN )
DSC0008.png
DSC0009.png
  Cinder跟其他的存储
DSC00010.png
DSC00011.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56005-1-1.html 上篇帖子: OpenStack之虚机热迁移代码解析 下篇帖子: 【openstack】openstack网络详解(Essex版)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表