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

[经验分享] openstack虚拟化技术和镜像制作

[复制链接]

尚未签到

发表于 2018-6-1 10:13:55 | 显示全部楼层 |阅读模式
一、虚拟化技术简介




应用程序
函数库
操作系统
硬件
  
计算机系统层次结构

  

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



   虚拟化可以发生在上表的各个层次,但对于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



完成!



参考文献:《openstack开源云王者归来》 《openstack设计与实现》









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>


















运维网声明 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-497184-1-1.html 上篇帖子: openstack的neutron相关介绍 下篇帖子: OpenStack学习第一天
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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