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

[经验分享] Ubuntu+KVM+OpenStack

[复制链接]

尚未签到

发表于 2015-10-10 11:47:08 | 显示全部楼层 |阅读模式
  这篇博客的主要讲解如何在一台笔记本电脑上搭建一个完整的OpenStack环境。


  


  一、安装KVM和Libvirt


  首先要在Ubuntu上安装KVM,其实最主要的是apt-get install qemu-kvm, libvirt-bin。


  当然此前可以先检查你的CPU是否支持虚拟化;egrep -c '(vmx|svm)' /proc/cpuinfo

安裝完成后可以使用virsh或者virt-manager来管理安装上的KVM虚拟机,前者命令行,后者GUI.注意,使用这两个之前最好都加上sudo。  


  二、下载镜像
  下载已经安装好OpenStack Grizzly的虚拟机镜像ryuvm3.qcow2
  https://github.com/osrg/ryu/wiki/RYU-OpenStack-Grizzly-environment-VM-image-file-HOWTO
  把镜像放在/var/lib/libvirt/images/目录下,这里是libvirt寻找VM镜像的地方。
  

$ sudo cp ryuvm3.qcow2 /var/lib/libvirt/images/ryu1.qcow2
$ sudo cp ryuvm3.qcow2 /var/lib/libvirt/images/ryu2.qcow2

  
  三、KVM相关配置


  1 首先KVM虚拟机的配置文件都放在/etc/libvirt/qemu/目录下,这样virsh或者virt-manager可以找到。
  

$ sudo cp ryu1.xml ryu2.xml /etc/libvirt/qemu/
这里就是创建两个名字分别为ryu1和ryu2的虚拟机配置文件,其中在ryu1.xml,ryu2.xml里面分别定义了虚拟机的名字(ryu1),uuid,内存,vcpu,os,驱动(<driver name=&quot;qemu&quot; type=&quot;qcow2&quot;/>),虚拟机镜像(<source file=&quot;/var/lib/libvirt/images/ryu1.qcow2&quot;/>),两块网卡NIC(<interface type=&quot;network&quot;>)以及每个接口的mac地址,所属或者所使用的网络配置(<source network=&quot;ryu_pub&quot;/>)等等KVM相关的繁琐配置。
  
  


  2 然后把上面提到的kvm虚拟机使用的虚拟网络配置文件放到/etc/libvirt/qemu/networks/目录下
  

$ sudo cp ryu_pub.xml ryu_priv.xml /etc/libvirt/qemu/networks/
这两个文件就是kvm虚拟机所共同使用的虚拟网络配置,其中主要是ryu_pub.xml,它主要是在宿主系统中创建了一个虚拟网桥(也可以叫做一个最简单的虚拟交换机吧)(<bridge name=&quot;br_ryu_pub&quot;/>),为该网桥指定了对应的mac地址(<mac address=&quot;10:00:00:00:00:01&quot;/>)和ip地址(<ip address=&quot;192.168.0.1&quot; netmask=&quot;255.255.255.0&quot;>).最重要的的是为这个网桥下联的虚拟机指定了其DHCP所获得的IP地址。  
  <dhcp>

      <range start=&quot;192.168.0.100&quot; end=&quot;192.168.0.254&quot;/>

      <host mac=&quot;10:00:00:00:00:11&quot; name=&quot;ryu1&quot; ip=&quot;192.168.0.10&quot;/>

      <host mac=&quot;10:00:00:00:00:21&quot; name=&quot;ryu2&quot; ip=&quot;192.168.0.11&quot;/>

    </dhcp>


  


  所以,如果需要创建新的虚拟机(如ryu3),不但要在/etc/libvirt/qemu/目录下新增对应的ryu3.xml文件,而且要修改/etc/libvirt/qemu/networks/目录下的ryu_pub.xml配置文件。
  


  3 将第2步中的虚拟网络配置文件加载进入libvirt
  使用下面两条命令之一均可把虚拟网络配置文件设置为自启动

sudo virsh net-autostart ryu_pub

  
  

$ sudo ln -s /etc/libvirt/qemu/networks/ryu-pub.xml /etc/libvirt/qemu/networks/autostart/
然后重启libvirtd  
  

$ sudo service libvirt-bin restart

  
  这样即可使用$ sudo virsh net-list看到虚拟网络配置已经生效。


  关于kvm相关配置的其他细节信息可以参见: http://blog.iyunv.com/uid-20917783-id-2560164.html


  


  四 启动虚拟机并安裝openstack


  1 启动kvm虚拟机


  最简单的方式就是直接sudo virt-manager,这时应该可以看到ryu1和 ryu2两个kvm虚拟机,用图形化界面启动并进入即可。
  如果使用命令行方式,sudo virsh start ryu1可以启动ryu1,并可使用sudo virsh list来查看,进入虚拟机则可使用ssh的方式:ssh ubuntu@192.168.0.10.
  2 在kvm虚拟机上安裝openstack
  由于是使用了已经配置好的镜像,因此直接运行devstack脚本即可

$ cd devstack
$ ./stack.sh
devstack是一套用来给开发人员快速部署Openstack开发环境的脚本,其实对于整个安装过程没有什么好说的,因为脚本写的很完善,全程无脑式安装也没什么大问题,但是根据不同的网速,可能过程会比较长。
  
  3 控制节点和计算节点都要运行stack.sh进行初次安裝,由于日本人已经配置好了,所以ryu1和ryu2运行stack.sh后所进行的配置是不一样的。


  五 使用单机虚拟版openstack
  devstack运行成功后,openstack就已经安裝完成了。不过每次重新启动控制节点和计算节点的虚拟机,还都必须再次运行
  

$ cd devstack
$ ./stack.sh
以启动openstack,不过以后这个过程就比首次快许多,因为只是配置没有下載了。  
  


  1 命令行
  重要的几个命令如下


  首先切换到特定的用户,比如admin
  

$ cd devstack
$ . ./openrc admin admin
  
  查看openstack各个服务是否启动,以及各个计算节点是否启动
  

$ nova host-list
  
  


  查看openstack中已经运行着的虚拟机
  

$ nova list

  
  通过下面几条命令查看创建虚拟机的镜像和网络信息:
  

$ nova flavor-list
$ nova image-list
$ quantum net-list
  
  


  在openstack中创建虚拟机
  

$ nova boot --flavor m1.nano --image 6739e47b-e529-46f3-95d4-892d302c1453 --nic net-id=620f0387-2848-447c-9872-e457ba8609c9 vm1
  
  2 GUI
  当然上面的整个过程也可以在darshboard图形化界面中进行,直接lauch instance即可。


  


  六 基于单机虚拟版openstack的虚拟机迁移


  主要参考文献:
  (1)官网configuring migration: http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-migrations.html
  (2)博文: http://blog.iyunv.com/zoushidexing/article/details/7814181


  


  配置NFS共享存储,目标是让控制节点上存放的虚拟机实例可以被其他计算节点共享访问到。
  1 首先要找到控制节点nova中的instances放在什么位置。
  在NOVA配置文件/etc/nova/nova.conf中state_path指定了NOVA的安裝目录,在Ryu的虚拟机镜像里,这个目录是/opt/stack/data/nova/instances。
  


  2   配置控制节点


  在控制节点上安裝NFS
  
apt-get install nfs-kernel-server

  


  在/etc/exports中加入一行
  /opt/stack/data/nova/instances 192.168.0.10/255.255.255.0(rw,sync,fsid=0,no_root_squash),其中192.168.0.10是控制节点的ip地址
  重新启动nfs服务:
/etc/init.d/nfs-kernel-server restart

/etc/init.d/idmapd restart



  3 配置计算节点
  在计算节点上安裝NFS
  sudo apt-get install nfs-common


  确保计算节点有执行和查找目录的权限。
  chmod o&#43;x /var/lib/nova/instances

在计算节点的/etc/fstab的目录中加入一行  192.168.0.10:/opt/stack/data/nova/instances /opt/stack/data/nova/instances nfs defaults 0 0


  
  挂载目录:
  mount –a -v
  检查NFS共享目录是否挂载成功。
  df -k

最后一行应该可以看到http://blog.iyunv.com/neterpaole/article/details/


  


  4 配置计算节点libvirt
  这个步骤上面两个参考文献中都是一样的,这里就略去了。


  


  七 再增加一个计算节点
  除了按照https://github.com/osrg/ryu/wiki/RYU-OpenStack-Grizzly-environment-VM-image-file-HOWTO文档中第7步进行配置外,注意两点:
  1 所有virsh前都记得加sudo,要不然直接sudo到virsh里面去操作也可以。
  2 在最后如果virsh net-dumpxml ryu_pub查看运行时配置文件没有生效时,可以手动先删除掉原来的kvm网络配置,然后重新再创建一遍
  paole@paole:~$ sudo virsh

virsh # net-destroy ryu_pub
  virsh # net-start ryu_pub


  
  
  其他


  使用rejion-stack.sh重新登陆openstack darshboard
  Horizion是基于keyston来进行认证的,devstack是基于screen session来识别服务的,因为要重启控制节点虚拟机后,运行rejion-stack.sh,这样就可以登录dashbord了。
  


  有必要系统了解和学习一下KVM virsh工具和Openstack的常用命令都有哪些?
  



版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-125049-1-1.html 上篇帖子: KVM-KMOD 编译出错问题的解决 下篇帖子: kvm迁移
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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