KVM定制OpenStack云主机

  如何定制化OpenStack云主机?从去年10月份刚开始接触OpenStack,到现在也有一年了。虽说目前只是停留在用它,对它的一些组件简单的了解,但谈到制作出一个OpenStack云主机的镜像还真不会。今年年初因为一个比赛需要给云主机安装tomcat、ssh等服务,一头雾水,网上查资料。也有正确的资料,但对于我来说似乎也不管用。记得当时是用libvirt的virsh来实现的。而且云主机用的是网上下载的ubuntu14.04的server版本,而且又看到网上说,OpenStack只能支持server版本的,我把只支持server当理论来记在脑海里,现在想想真是傻的不行。

  前面唠嗑了下,下面我会一步步来讲解如何利用KVM来创建虚拟机(即本文提到的云主机)。本文使用的环境是ubuntu14.04。一些KVM的概念这里就不阐述了,网上资料很多很全。

一、ubuntu14.04中安装tun模块。参考上篇博客,这里不再展开。博客地址

http://www.cnblogs.com/grglym/p/7891253.html

为什么用安装tun模块呢?既然需要对虚拟机进行定制化,即需要安装一些个性化服务,文章开头中有提及的,如tomcat、ssh等等。安装这些就需要网络进行安装,这样更加方便。所以呢,虚拟机需要能够上网呀!在KVM的网络实现中是通过qemu来实现。qemu网络相关的教程很多,可以参考如下链接:

http://www.jianshu.com/p/110b60c14a8b

http://blog.csdn.net/ztsinghua/article/details/49741795

这两个链接把qemu的网络细节说的很清楚。本文选择就是qemu的桥接网络方式来实现KVM虚拟机连接Internet。

二、开启CPU虚拟化服务。(vmware和virtualbox各自的虚拟化服务如何开启可网上查看)

modprobe kvm
cat /proc/cpuinfo |grep vmx

在宿主机中输入如上指令,在flags一栏中查看是否有“vmx”或者“svm”字眼,如图1所示:

图 1

说明CPU是Inter的,如果是AMD的CPU,应该是“svm”。

我所遇到的错误:

modprobe: ERROR: could not insert 'kvm_intel': Operation not supported

通过在宿主机输入如下指令

dmesg | grep kvm

输出为:

kvm: no hardware support

解决办法:看下是否开启CPU虚拟化,如果你是用VMware或者virtualbox,它们有各自的CPU虚拟化选项,勾上即可。如果是在物理机上,则需要进入bios了。

 三、安装kvm-qemu工具

kvm-qemu这是个什么鬼呢?我们应该知道KVM是在linux内核内,KVM自身功能也非常。。。。不夸它了,反正就是很有用的虚拟化工具。但它也有痛点,即实现不了网卡虚拟化等一些必要功能,所以需要借助qemu来实现。kvm-qemu是kvm在用户态下的一个管理工具吧!接下来源码安装kvm-qemu。

1、源码下载

http://sourceforge.net/projects/kvm/files/

下载个最新版本qemu-kvm-1.2.0.tar.gz

tar -zxvf qemu-kvm-1.2.0.tar.gz
cd qemu-kvm-1.2.0

2、对qemu-kvm打补丁。

因为本文用的环境时ubuntu14.04,所以需要对qemu-kvm-1.2.0中的configure进行简单修改,不然会报错。如图2所示,添加黑框中的代码,分别为:

timer_create(CLOCK_REALTIME, NULL, NULL);
$pthread_lib
libs_qga="-lrt $libs_qga"

图 2

需要修改的代码在2681行左右,可通过vim的命令模式下输入/<time.h>,来快速定位需要修改的代码位置。

3、qemu-kvm编译及安装

./configure --prefix=/usr/local/kvm (注,如果报错,需要查看第2步中代码是否修改正确)
make
make install

四、加载KVM内核模块

modprobe kvm-intel
lsmod | grep kvm

图 3

如果modprobe出错,可查看二的开启CPU虚拟化服务。

五、创建br0网桥

1、安装libvirt

apt-get install libvirt-bin

2、创建br0网桥

virsh iface-bridge eth0 br0
brctl show

图 4

图 5

六、KVM创建虚拟机

经过以上五大步骤,终于把准备工作做好了,接下来的才是重头菜。

1、KVM创建虚拟磁盘,磁盘格式为qcow2。kvm的一些指令可以从网上查到,这里不再解释。

/usr/local/kvm/bin/qemu-img create -f qcow2 openstack.img 10G

2、KVM虚拟机开启和关闭的网络脚本配置。

开启脚本 qemu-ifup.sh:

#!/bin/bash
switch=br0
if [ -n "$1" ]; then
#create a tap interface
#tunctl -u $(whoami) -t $1
#start up the tap interface
ip link set $1 up
sleep 1
#add tap interface to the bridge
brctl addif ${switch} $1
exit 0
else
echo "error: no interface specified"
exit 1
fi

关闭脚本 qemu-ifdown.sh :

#!/bin/bash
switch=br0
if [ -n "$1" ]; then
#delete the specified interface
tunctl -d $1
#rlease tap interface from bridge
brctl delif $(switch) $1
#shutdown the tap interface
ip link set $1 down
exit 0
else
echo "error: no interface specified"
exit 1
fi

脚本授权:

chmod +x qemu-ifup.sh
chmod +x qemu-ifdown.sh

3、KVM启动虚拟机安装:

/usr/local/kvm/bin/qemu-system-x86_64 -hda openstack.img -cdrom ubuntu-14.04.5-desktop-amd64.iso -boot d -m 1024 -net nic -net tap,ifname=tap1,script=qemu-ifup.sh,downscript=no

4、安装完成后,下次如需重新进入系统,可用如下命令:

/usr/local/kvm/bin/qemu-system-x86_64 -hda openstack.img -boot d -m 1024 -net nic -net tap,ifname=tap1,script=qemu-ifup.sh,downscript=no

5、KVM虚拟机运行结果展示如图6所示:

图 6

6、KVM虚拟机访问Internet效果展示如图7所示:

图 7

七、总结

利用KVM的整个过程还是有些麻烦,以后会尝试用KVM的管理工具libvirt来实现更加便捷的定制化云主机。网上资料会有很多,可能不同的环境需要参考不同的资料,这个过程需要踩过很多个坑,这里记录下在本文环境中可行的处理步骤。

八、参考链接

http://blog.csdn.net/ztsinghua/article/details/49741795
http://royluo.org/2014/06/15/kvm-install-1/
http://blog.csdn.net/zhaihaifei/article/details/23168621

KVM安装启动虚拟机的更多相关文章

  1. 【原创】linux mint 17.3 kvm 安装windows7虚拟机

    一.安装windows7虚拟机 linux mint 17.3是一个不错的桌面发行版本,我下载了 linux mint 17.3 for xfce 桌面版本,运行速度没得说,而且安装设置都挺简单,非常 ...

  2. kvm 安装 windows 虚拟机

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211108848062/ 相关话题:https://ww ...

  3. KVM 安装 VMware 虚拟机

    去掉了“双引号”改为:vmx.allowNested = TRUE 打开在其中创建虚拟机的文件夹VMDISK和搜索与您的虚拟机的名称. vmx 文件. 用记事本打开它,并添加上述条目. 所以 vmx. ...

  4. 云计算之KVM安装(二)

    云计算之KVM安装(二) 调整虚拟机 虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V 创建虚拟机步骤 1.准备虚拟机硬盘 2.需要系统iso镜像 3.需要安装一个vnc的客户端 ...

  5. CentOS7.2上用KVM安装虚拟机window10踩过的坑

    最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...

  6. 云计算虚拟机技术-KVM安装

    云计算虚拟机技术-KVM安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维的小伙伴估计大家都清楚KVM,因为在CentOS里面KVM还算很折腾的一个软件,早期CentOS ...

  7. KVM -> 虚拟化简介&虚拟机安装_01

    什么是虚拟化? 在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU.内存.磁盘空间.网络适配器等),予以抽象.转换后呈现 ...

  8. 安装kvm安装虚拟机centos

    1 安装阿里云的镜像站 #将原来的镜像备份 cd /etc/yum.repos.d/ mkdir back mv CentOS-Base.repo ./back/ # 安装阿里的镜像 wget -O ...

  9. KVM | centos 安装 window 虚拟机

    KVM | centos 安装 window 虚拟机 环境: CENTOS 7.3 1. 准备 1.1 检查是否支持虚拟化 cat /proc/cpuinfo | egrep 'vmx|svm' 要求 ...

随机推荐

  1. vi简短教程

    1.模式 命令行模式:光标的移动.内容删除移动复制操作 插入模式:文字输入,即编辑状态 底行模式:文件保存或退出vi,设置编辑环境 2.基本操作 vi myfile,输入vi 文件名,则进入vi. 3 ...

  2. 【建模应用】PLS偏最小二乘回归原理与应用

    @author:Andrew.Du 声明:本文为原创,转载请注明出处:http://www.cnblogs.com/duye/p/9031511.html,谢谢. 一.前言 1.目的: 我写这篇文章的 ...

  3. 欧拉筛,线性筛,洛谷P2158仪仗队

    题目 首先我们先把题目分析一下. emmmm,这应该是一个找规律,应该可以打表,然后我们再分析一下图片,发现如果这个点可以被看到,那它的横坐标和纵坐标应该互质,而互质的条件就是它的横坐标和纵坐标的最大 ...

  4. 继承&派生 属性查找

    # 在单继承背景下,无论是新式类还是经典类属性查找顺序都一样 # 先object->类->父类->... 实例: class Foo: def f1(self): print('Fo ...

  5. [HDU2065] "红色病毒"问题

    传送门:>Here< 题意:现在有一长度为N的字符串,满足一下条件: (1) 字符串仅由A,B,C,D四个字母组成; (2) A出现偶数次(也可以不出现); (3) C出现偶数次(也可以不 ...

  6. 接口压测初识java GC

    1.先用Spring Boot 搭建 web 服务,构建api 服务 @RequestMapping("/index") @ResponseBody public String i ...

  7. 【XSY1162】鬼计之夜 最短路

    题目描述 给你一个\(n\)个点\(m\)条边的有向图,有\(k\)个关键点.求一条最短的从一个关键点到另一个关键点的路径. \(n,m,k\leq 100000\) 题解 跑\(k^2\)次最短路显 ...

  8. DevOps 10秒钟进阶大师之路

    简介:DevOps(Development开发和Operations运维的组合词),是一种文化.原则.思维.理念.组织. DevOps 是一个完整的面向开发.运维的工作流,以 IT 自动化以及持续集成 ...

  9. 自学华为IoT物联网_09 OceanConnect业务流程

    点击返回自学华为IoT物流网 自学华为IoT物联网_09 OceanConnect业务流程 1.  物流网重要的连个协议介绍 1.1  重要物联网协议介绍----MQTT MQTT(消息队列遥测传输) ...

  10. Atlantis HDU - 1542 (扫描线,线段树)

    扫描线的模板题,先把信息接收,然后排序,记录下上边和下边,然后用一条虚拟的线从下往上扫.如果我扫到的是下边,那么久用线段树在这个区间内加上1,表示这个区间现在是有的,等我扫描到上边的时候在加上-1,把 ...