openstack虚拟化技术和镜像制作

一、虚拟化技术简介

应用程序
函数库
操作系统
硬件

计算机系统层次结构

现在计算机系统是一个庞大的整体, 整个系统非常复杂,因此计算机系统被自下而上分为多个层次,每一个层次都像上一个层次呈现一个抽象,并且每一层只需要知道下层抽象的接口,而并不需要了解其内部机制。虚拟化技术就是下层的软件模块,根据上层软件模块的需求,抽象出一个虚拟的软件或者硬件接口,使上一层软件可以运行在与自己所期待的运行环境完全一致的虚拟环境上。

虚拟化可以发生在上表的各个层次,但对于openstack这样的云计算服务而言,更关心的是硬件抽象层上面的虚拟化。因为只有把物理计算机系统虚拟化为多台虚拟计算机系统,通过网络将这些虚拟计算机系统互联,才能形成现代意义的服务云计算系统。硬件抽象层上面的虚拟化是指通过虚拟硬件抽象层来实现虚拟机,为客户机操作系统呈现出与物理硬件相同或者相似的硬件抽象层。由于客户机操作系统索尼呢个看到的只是硬件抽象层,因此客户操作系统的行为和其在物理平台上没有什么区别。

应用程序 应用程序 应用程序
函数库 函数库 函数库
操作系统1 操作系统2 操作系统3
虚拟化层
硬件

加入虚拟化层

硬件抽象层的虚拟化又被称为系统虚拟化,指将一台物理计算机系统虚拟化为一台或者多台虚拟计算机系统,每个虚拟机都具有都拥有自己的虚拟硬件,如CPU、内存和设备等,并提供一个独立的虚拟机执行环境。通过虚拟监控器(Virtual Machine Monitor,也称为Hypervisor)的模拟,虚拟机中的操作系统认为自己仍然独占一个系统在运行。在一台物理机上运行的每个虚拟机中的操作系统可以完全不同,并且他们的执行环境完全独立。KVM和Xen就是这样的两种Hypervisor。由于openstack主要采用了KVM作为虚拟化技术,故只介绍KVM。

基于内核的虚拟机(Kernel-Based Virtual Machine)需要两个条件:硬件支持全虚拟化;操作系统为linux。KVM是基于Intel VT等技术的硬件虚拟化,本身关注虚拟机调度、内存管理两大方面,并利用Qemu等来提供设备虚拟化。

而在一个数据中心里面,有可能使用了不同的hypervisor,管理起来可能并不是那么容易,Libvirt就是一个统一的管理工具,用来管理各种各样的hypervisor,并且能够提供统一的API支持上层应用。Libvirt是一个软件集合,包含了:1.一个库文件,实现管理接口;2.一个守护进程(libvirtd);3.一个命令行工具(virsh)。

二、镜像制作,以创建centos7镜像为例

1.首先需要一个镜像文件用于安装操作系统,格式为iso,其次建立一个虚拟磁盘:

qemu-img create -f qcow2 -o size=5G centos7.qcow2

2.编写xml文件,vim centos7.xml 样例参见附件

3.安装操作系统

virsh define centos7.xml

virsh start centos7

virsh vncdisplay 产生一个端口号,在物理机用这个端口号使用图形界面安装操作系统

6.安装完毕后需要修改启动方式

virsh destroy centos7

virsh undefine centos7

修改xml文件boot那行,由cdrom改为hd

virsh define centos7.xml

virsh start centos7

完成!

xml文件样例:

<domain type=‘kvm‘>

<name>centos7</name>   镜像名称,修改

<memory unit=‘GiB‘>8</memory>  内存容量,根据需要修改

<vcpu placement=‘static‘>4</vcpu>  CPU个数,根据需要修改

<os> 定义系统

<type arch=‘x86_64‘ machine=‘rhel6.5.0‘>hvm</type>  系统架构和使用的机器类型

<boot dev=‘cdrom‘/>  启动方式,从iso文件启动就设置cdrom

</os>

<features> 定义硬件特性信息

<acpi/>  Advanced Configuration and Power Interface

<apic/>  Advanced Programmable Interrupt Controller

<pae/>  Physical Address Extension

</features>

<clock offset=‘utc‘/>  时钟,使用utc时间

<on_poweroff>destroy</on_poweroff> 定义突发事件处理,关机则采用destroy的处理方式

<on_reboot>restart</on_reboot>

<on_crash>restart</on_crash>

<devices> 定义虚拟外设

<emulator>/usr/libexec/qemu-kvm</emulator> 定义Hypervisor,这里为KVM

<disk type=‘file‘ device=‘cdrom‘>  指定虚拟光盘

<driver name=‘qemu‘ type=‘raw‘/>  iso格式属于raw格式的一种

<source file=‘/home/iso/ubuntu-14.04.3-server-amd64.iso‘/>

<target dev=‘hdc‘ bus=‘ide‘/>

<readonly/>

<address type=‘drive‘ controller=‘0‘ bus=‘1‘ target=‘0‘ unit=‘0‘/>

</disk>  定义磁盘

<disk type=‘file‘ device=‘disk‘>

<driver name=‘qemu‘ type=‘raw‘ cache=‘none‘/>

<source file=‘/home/centos.img‘/>   若创建的磁盘是qcow2格式,则要把type改为qcow2

<target dev=‘vda‘ bus=‘virtio‘/>

</disk>

<controller type=‘usb‘ index=‘0‘>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x01‘ function=‘0x2‘/>

</controller>

<controller type=‘ide‘ index=‘0‘>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x01‘ function=‘0x1‘/>

</controller>

<interface type=‘bridge‘>  配置桥接网络

<mac address=‘52:54:00:C0:6F:ED‘/>

<source bridge=‘br0‘/>

<model type=‘virtio‘/>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>

</interface>

<serial type=‘pty‘>

<target port=‘0‘/>

</serial>

<console type=‘pty‘>

<target type=‘serial‘ port=‘0‘/>

</console>

<input type=‘mouse‘ bus=‘ps2‘/>

<graphics type=‘vnc‘ port=‘5900‘ autoport=‘yes‘ listen=‘0.0.0.0‘>

<listen type=‘address‘ address=‘0.0.0.0‘/>

</graphics>

<sound model=‘ich6‘>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x04‘ function=‘0x0‘/>

</sound>

<video>

<model type=‘cirrus‘ vram=‘9216‘ heads=‘1‘/>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x02‘ function=‘0x0‘/>

</video>

<memballoon model=‘virtio‘>

<address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x06‘ function=‘0x0‘/>

</memballoon>

</devices>

</domain>

时间: 2024-10-13 03:26:06

openstack虚拟化技术和镜像制作的相关文章

#openstack centos6 centos7 kvm镜像制作

#openstack centos6 centos7 kvm 镜像制作 openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html #openstack centos6 centos7 镜像制作 #################################### #KVM环境 yum install -y kvm virt-* libvirt bridge-utils qemu-img qemu-kvm-

Openstack window 2008 R2 镜像制作说明

制作说明: 母系统:centos 6.5 x86_64 1.安装软件 #在镜像制作服务器 安装qemu libvirtd 及window virt驱动 yum install libvirt libguestfs-tools qemu-kvm qemu-img yum groupinstall Virtualization "Virtualization Client" -y yum -y install libvirt libguestfs-tools -y #window默认不支持

openstack windows 2008镜像 制作

openstack centos6 centos7 kvm 镜像制作 http://www.cnblogs.com/elvi/p/7922421.html openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html ################################################# #win2008镜像制作 #openstack windows 2008镜像 制作 #准备Wind

openstack成长之旅 - 2 虚拟化技术介绍及KVM安装

openstack作为一个开源的云计算平台,利用虚拟化和底层的存储服务,提供了可扩展.灵活.适应性强的云计算服务,因此学好虚拟化技术就是掌握openstack开源云计算平台的关键,今天就说说虚拟化技术. 相信只要是现在做IT行业的人,多多少少的应该都会知道些虚拟化,若是你知道,那么我很郑重的告诉你 "你OUT了",对于现在来说虚拟化已经相对于成熟了,出现了很多开源的虚拟化软件,就像我们平时自己做实验的vmware workstation,virtualbox等等,都是可以虚拟出主机来帮

制作openstack使用的coreOS镜像

本篇文章是使用ISO镜像手动制作openstack使用的qcow2镜像文件,关于coreOS的介绍,可以看这里 1.下载coreOS镜像(444.5.0版本) 可能需要FQ #coreOS安装文件(coreos-install脚本会自动下载,这里手动下载,节省时间)wget http://stable.release.core-os.net/amd64-usr/444.5.0/coreos_production_image.bin.bz2wget http://stable.release.co

OpenStack镜像制作-CentOS

云平台中镜像还是很重要的,提供各种定制化的镜像使得用户体验更好. 最开始玩OpenStack的时候用的是安装文档中提到的cirros,其密码cubswin:) 刚开始感觉很怪,现在已经可以随手打出.ps:打的还很熟练:-) 然后慢慢开始想尝试各种镜像,于是乎在网上搜了很多.如下: 官方文档  http://docs.openstack.org/image-guide/content/ch_obtaining_images.html官方文档给的镜像的链接挺多的,包括CirrOS (test) im

中小企业openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

之所以要只有C盘分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 参考http://www.iyunv.com/thread-45149-1-1.html的灵感 在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: yum groupinstall Virtualization "Virtualization Client" -y yum install libvirt libguestfs-tools q

中小企业openstack私有云布署实践【16.2 Ubuntu1404 只有根分区镜像制作】

之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: yum groupinstall Virtualization "Virtualization Client" -y yum install libvirt libguestfs-tools qemu virt-manager virt-viewer qemu-kvm virt-instal

openstack镜像制作

镜像制作 1.使用vmware workstation或者vmvirtua box创建虚拟机 2.将虚拟机vmdk文件或者vdi文件上传已经安装qume-img的虚拟机上 3.使用qemu-img convert 更改镜像格式,例如: qemu-img convert -f vdi -O qcow2 qcow2.vdi image.raw 镜像上传 1.上传vmdk示例 openstack image create "centos7" \ --file os_test-disk1.vm