在CentOS上进行虚拟化:QEMU、Xen、KVM、LibVirt、oVirt
在CentOS 6上配置嵌套虚拟化。KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。LXC(LinuX Containers)Linux容器,一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。oVirt是一个虚
Table of Contents
在VM(CentOS-6.2或更高版本)上将Spice与LibVirt一起使用
在CentOS上进行虚拟化
https://wiki.centos.org/HowTos/Virtualization/Introduction
QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。
目前,0.9.1及之前版本的qemu可以使用kqemu加速器。在qemu1.0之后的版本,都无法使用kqemu,主要利用qemu-kvm加速模块,并且加速效果以及稳定性明显好于kqemu。
QEMU有两种主要运作模式:
- * User mode模拟模式,亦即是用户模式。QEMU能启动那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。
- * System mode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为跨平台编写的程序进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。
Qemu下 Win NT 5.0
QEMU的主体部份是在LGPL下发布的,而其系统模式模拟则是在GPL下发布;而kqemu这个加速器则是在免费但闭源的条件下发布的。使用kqemu可使QEMU能模拟至接近实机速度,但其在虚拟的操作系统是 Microsoft Windows 98或以下的情况下是无用的。
1.概述
当前,有两种主要的虚拟化技术可通过CentOS存储库使用,即Xen和KVM(此处不考虑较旧的“ qemu”仿真技术)。该页面提供了对这些技术的基本介绍,以及一些其他概念。要了解这些虚拟化技术,您必须知道有一些不同的虚拟化方法。对于KVM和Xen的讨论,两种方法相关:
-
完全虚拟化:在一定程度上模拟硬件,以便未修改的来宾操作系统可以在虚拟化平台上运行。通常,这意味着要模拟各种硬件设备。通常,这种虚拟化平台会尝试在本机CPU上运行尽可能多的指令(比CPU仿真要快得多),以适当地捕获和处理特权指令。一些虚拟化平台支持或需要CPU扩展来辅助虚拟化。在某些新的x86和x86_64 CPU上,这些是通过VT-X(Intel)和AMD-V(AMD)扩展提供的。这通常称为硬件辅助虚拟化。
-
准虚拟化:在准虚拟化中,来宾操作系统被移植到虚拟机管理程序,该程序位于硬件和虚拟化系统之间。由于这通常不需要完整的设备仿真或动态重新编译即可捕获特权指令,因此半虚拟化通常以接近本机的速度执行。
在大多数情况下,半虚拟化优于全虚拟化,因为它更快。
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。
2.谁做什么?
- Xen支持半虚拟化和硬件辅助的全虚拟化。准虚拟化虚拟机(PVM)和硬件辅助的完全虚拟化机(HVM)可以同时运行。Xen需要在任何Linux内核之前启动的管理程序。然后,系统管理程序将启动一个名为管理域或特权域的CentOS,这意味着它用于启动其他虚拟机,并具有对许多实际硬件设备的事实上的访问权。此管理程序通常称为dom0。可以通过dom0启动其他非特权域。这些非特权域通常称为domU。dom0和半虚拟化domU都必须运行CentOS Xen内核,而不是默认内核。
-
KVM当前仅支持硬件辅助的全虚拟化(尽管正在研究半虚拟化支持)。KVM是内核模块,可与默认(非Xen)内核一起使用。通过/ dev / kvm设备通过qemu-kvm命令创建虚拟机,该命令是为KVM修改的qemu版本。
3. CentOS支持
3.1 CentOS的4
-
从CentOS 4.5开始,CentOS 4可以通过内核xen内核用作domU系统。
3.2 CentOS的5
- CentOS 5包含Xen虚拟机管理程序,可以用作dom0和domU系统。CentOS 5还包括
舒适的管理工具,例如virt-install和virt-manager。
- 自KentOS 5.4起,发行版中包含KVM软件包(仅x86_64)。
Xen4 CentOS快速入门
https://wiki.centos.org/HowTos/Xen/Xen4QuickStart
0.1 范围
本指南将帮助您从CentOS / x86_64的基准安装开始,在不到10分钟的时间内运行完整的Xen-4堆栈,其中包括启动第一个VM。
0.2 先决条件
Xen-4.4和libxl
注意:默认情况下,版本4.4之前的所有Xen版本均启用xm和xend。xen-4.4.1(及更高版本)的rpm改为启用xl支持,并且不再使用xend。有关如何从4.4.1之前的em rpm迁移到新版本的详细信息,请参见/ MigratingToXl
我们假设您已经对虚拟化有了一个不错的主意,半虚拟(pv)和全虚拟(hvm)之间的区别,并且对linux上的网络工作原理(包括网桥utils)有基本的了解。
-
阅读http://wiki.centos.org/Manuals/ReleaseNotes/Xen4-01上的发行说明;它们涵盖了重要说明,已知问题,解决方法以及在需要时从何处获取帮助的详细信息。
- 托管Xen虚拟机管理程序的计算机应至少安装CentOS-6 / x86_64。在继续之前,您应确保仅对yum启用了CentOS仓库,并且已应用了最新更新。用于CentOS的Xen4堆栈仅在CentOS-6.4和更高版本上进行了测试和验证。
- 我们假定该机器在/下的根文件系统具有1.5GB或更多的RAM和超过10GB的磁盘空间。
0.3 安装Xen4CentOS堆栈
为此堆栈发行的软件托管在CentOS镜像网络上自己的独立存储库中。为了启用此存储库,请确保已启用CentOS-Extras存储库,然后键入:
yum install centos-release-xen
Xen需要使用支持“域0”的内核来运行。Xen4提供了更新的内核;因此,第一件事是运行更新以将新内核放入:
yum update
一旦完成,我们现在可以安装xen本身:
yum install xen
在Xen和内核安装期间,应该已经运行了名为grub-bootxen.sh的脚本,以确保更新grub(对于CentOS 6是/boot/grub/grub.conf,对于CentOS 7是/boot/grub2/grub.cfg)。 。对于CentOS 6,如果查看/boot/grub/grub.conf,它应该具有以下内容:
title CentOS (3.4.46-8.el6.centos.alt.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
module /vmlinuz-3.4.46-8.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_xen01-lv_root rd_LVM_LV=vg_xen01/lv_swap rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk rd_NO_MD LANG=en_GB rd_LVM_LV=vg_xen01/lv_root SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM rhgb quiet
module /initramfs-3.4.46-8.el6.centos.alt.x86_64.img
注意:CentOS 6 grub配置脚本中现在存在一个错误,因此许多人发现grub配置缺少最后一行(initramfs行)。您可能需要使用适当的initramfs手动添加上面的一行(第二个“模块”行)。
如果未将其设置为默认内核,请编辑文件并立即进行设置。重新启动后,请验证新内核是否正在运行:
uname -r
并验证xen是否在运行:
xl info
注意:存在一个引起错误日志的气球错误,如错误6893所述,因此dom0_mem = 1024M,max:1536M将消除该错误消息。
0.4 设置桥接
使访客网络联网的标准方法是建立桥接。工具堆栈期望的默认桥称为xenbr0。
基本的操作方法可以在/ Xen4Networking6或/ Xen4Networking7中找到。
可以在RHEL 6文档或RHEL 7文档中找到有关设置和配置网桥的完整文档。
0.5 启动第一个虚拟机
至此,您已经准备好启动您的第一个VM,并且有多种实现方法。对于正在寻找最简单安装路径的新用户,建议使用Libvirt进程。希望手动设置网络,支持文件存储和xen环境的高级用户很可能希望使用xen命令行工具。
-
使用Xen CLI工具,包括xl:/ Xen4Cli
-
在xen4centos中使用!LibVirt / Virt-install和Virt-Manager:/ Xen4Libvirt
0.6 更多信息和支持选项
HowTos/Xen/Xen4QuickStart (last edited 2019-12-09 09:11:36 by anonymous)
安装和使用完全虚拟化的Xen guest虚拟机
https://wiki.centos.org/HowTos/Xen/InstallingHVMDomU
1.简介
Xen除了安装半虚拟客户机系统外,还可以在具有适当硬件的计算机上托管全虚拟客户机。这意味着你可以运行未更改的操作系统,例如CentOS 3或Microsoft Windows。
本方法介绍了如何在不使用virt-manager的情况下安装完全虚拟的guest虚拟机,或其控制台变体virt-install。通常,用户需要比这些工具更多的自定义设置提供,因此通常最好使用下面的工具。这个方法使用virsh libvirt软件包中的工具,它是用于管理虚拟机的通用工具。
我们将看一下CentOS 3的示例安装。对配置的一些潜在更改是 之后讨论。
2.检查硬件
为了能够安装完全虚拟化的guest虚拟机,您将需要具有VT-X(Intel)的CPU或 AMD-V(AMD)扩展。您可以通过查看的标志字段轻松地进行检查/ proc / cpuinfo查看是否具有vmx或svm标志。例如:
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
某些系统默认情况下未启用VT-X或AMD-V支持,请检查BIOS设置以 查看是否启用了CPU扩展。来自cpuinfo的信息不具有指示性为了这。即使禁用了BIOS中的CPU虚拟化支持,也将显示vmx标志。
3.创建镜像
第一步是创建将容纳domU虚拟磁盘的映像。由于这可能只是一个原始的零填充文件,我们通常的朋友dd变得很方便。在此方法中,我们将图像放入/ srv / xen,尽管半官方批准的位置似乎是/ var / lib / xen / images。如果您希望在文件增长时分配磁盘块,则可以创建一个带孔的文件。的以下命令将创建一个4096MB的/srv/xen/centos3.img文件,尽管实际数据块以惰性方式分配:
# dd if=/dev/zero of=/srv/xen/centos3.img oflag=direct bs=1M seek=4095 count=1
如果要立即保留所有数据块,也可以执行以下操作:
# dd if=/dev/zero of=/srv/xen/centos3.img oflag=direct bs=1M count=4096
如果保存映像的卷已满,这将避免数据块分配问题。
如果您使用的是SELinux,请务必检查映像是否正确 安全上下文(xen_image_t),否则将拒绝访问虚拟磁盘到domU系统。您可以使用ls进行检查:
# ls -Z /srv/xen/centos3.img
-rw-r--r-- root root user_u:object_r:xen_image_t /srv/xen/centos3.img
如果您在设置正确的文件上下文时遇到问题,请查看 在Xen的提示和技巧页。无论如何,转弯SELinux,因为有关此主题的一些方法指导意见是一个非常差的解决方法。读两个手册页(semanage(8)和restorecon(8)),提供了额外的安全性是很好的交易!
4.安装访客系统
要开始安装,我们将需要一个定义来宾的配置文件。 系统。您可以使用以下示例安装CentOS 3:
<domain type='xen'>
<name>CentOS3</name>
<os>
<type>hvm</type>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<boot dev='cdrom'/>
</os>
<memory>262144</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<devices>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<interface type='bridge'>
<source bridge='xenbr0'/>
<script path='vif-bridge'/>
</interface>
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/srv/xen/centos3.img'/>
<target dev='hda'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/srv/xen/boot-centos3.iso'/>
<target dev='hdc'/>
<readonly/>
</disk>
<graphics type='vnc' port='5900'/>
</devices>
</domain>
此时,配置的以下方面很重要:
由于尚未填充磁盘映像,因此您必须从其他介质引导。 在此示例中,我们将使用ISO映像(以CD-ROM形式向来宾显示)
系统。可以使用引导标记指定默认的引导设备:
<boot dev='cdrom'/>
来宾系统的内存量是通过以下内存标签指定的:千字节:
<memory>262144</memory>
由于我们不想在安装后使用相同的参数引导来宾 完成后,我们要确保重新启动后虚拟机已销毁。 对于崩溃或关机,我们将做同样的事情:
<on_poweroff>destroy</on_poweroff>
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
将为来宾系统的硬盘添加设备条目。在这种情况下,这是我们先前创建的磁盘映像:
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/srv/xen/centos3.img'/>
<target dev='hda'/>
</disk>
此外,添加了CD-ROM设备。虚拟CD是通过ISO映像提供的(在在这种情况下,我们仅使用了CentOS 3树中可用的boot.iso文件:
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/srv/xen/centos3.img'/>
<target dev='hda'/>
</disk>
最后,我们将图形控制台附加到可以附加到的虚拟机 使用VNC查看器:
<graphics type='vnc' port='5900'/>
现在,您可以使用virsh启动来宾系统。假设配置文件已保存为/srv/xen/centos3.xml,可以使用以下命令启动来宾系统命令:
virsh create /srv/xen/centos3.xml
当命令返回而没有错误时,guest虚拟机正在运行。您将必须附加VNC查看器以查看图形控制台。要附加到该特定域,您将首先需要域名。可以通过virsh list命令来检索它:
$ virsh list
Id Name State
----------------------------------
0 Domain-0 running
12 CentOS3 running
在此示例中,访客系统以ID 12运行。您现在可以使用的vncviewer本地主机:<ID> 。在这种情况下,要使用的命令将是vncviewer localhost:12。幸运的是,将显示ISOLinux提示,使您可以开始安装 因为您习惯了:^)。
安装后,来宾系统将关闭。
5.使用访客系统
您必须稍微调整来宾系统配置才能正常使用。首先,您将必须将启动设备从cdrom更改为hd才能从硬盘映像启动。除此之外,最好更改on_reboot选项以重新启动,以提高便利性,以及on_crash选项。此配置具有以下更改以及cdrom的删除 设备:
<domain type='xen'>
<name>CentOS3</name>
<os>
<type>hvm</type>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<boot dev='hd'/>
</os>
<memory>262144</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<devices>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<interface type='bridge'>
<source bridge='xenbr0'/>
<script path='vif-bridge'/>
</interface>
<disk type='file' device='disk'>
<driver name='file'/>
<source file='/srv/xen/centos3.img'/>
<target dev='hda'/>
</disk>
<graphics type='vnc' port='5900'/>
</devices>
</domain>
然后,您可以使用以下配置启动来宾系统:
virsh create /srv/xen/centos3.xml
您可以按照上述相同的步骤连接到图形控制台。
6.使用真实的CD-ROM驱动器
您也可以在虚拟客户机中使用真实的CD-ROM驱动器。使用以下设备条目对于来宾CD-ROM驱动器,更改source选项以列出设备的名称要使用的CD-ROM驱动器:
<disk type='block' device='cdrom'>
<driver name='phy'/>
<source dev='/dev/hdc'/>
<target dev='hdc'/>
<readonly/>
</disk>
7.安装Windows
如果在引导Windows内核时Windows安装程序挂起(xentop命令)通常会说来宾100%忙),这可以通过禁用ACPI和 来宾中的APIC。您可以通过注释掉配置中的这些选项来做到这一点。更改
<acpi/>
<apic/>
至
<!-- <acpi/> -->
<!-- <apic/> -->
并重新启动安装。
KVM and CentOS-6
https://wiki.centos.org/HowTos/KVM
KVM(用于基于内核的虚拟机)是针对Linux的完整虚拟化解决方案,用于x86硬件上的虚拟化扩展(英特尔VT或AMD-V)。它由提供核心虚拟化基础架构的可加载内核模块kvm.ko和处理器特定模块kvm-intel.ko或kvm-amd.ko组成。基于内核的虚拟机(KVM)是Linux®中内置的一种开源 虚拟化技术。具体来说,KVM使您可以将Linux变成虚拟机管理程序,该虚拟机管理程序允许主机运行多个独立的虚拟环境,称为来宾或虚拟机(VM)。
使用KVM,可以运行多个运行未修改的Linux或Windows映像的虚拟机。每个虚拟机都有专用的虚拟化硬件:网卡,磁盘,图形适配器等。KVM是Linux的一部分。如果您拥有Linux 2.6.20或更高版本,则您拥有KVM。KVM于2006年首次发布,并于一年后合并到主线Linux内核版本中。由于KVM是现有Linux代码的一部分,因此无需额外的工程就可以立即从Linux的每个新功能,修复和改进中受益。
KVM是开源软件。从2.6.20开始,KVM的内核组件包含在主线Linux中。从1.3开始,KVM的用户空间组件包含在主线QEMU中。
活跃于KVM相关虚拟化开发领域的人们的博客发布在http://planet.virt-tools.org/
KVM如何工作?
https://www.redhat.com/en/topics/virtualization/what-is-KVM
KVM将Linux转换为Type-1(裸机)虚拟机管理程序。所有虚拟机管理程序都需要一些操作系统级别的组件(例如内存管理器,进程调度程序,输入/输出(I / O)堆栈,设备驱动程序,安全管理器,网络堆栈等)来运行VM。KVM具有所有这些组件,因为它是Linux内核的一部分。每个VM都是由标准Linux调度程序调度的常规Linux进程,具有专用的虚拟硬件,例如网卡,图形适配器,CPU,内存和磁盘。
实施KVM
简而言之,您必须运行2007年之后发布的Linux版本,并且需要将其安装在支持虚拟化功能的X86硬件上。如果同时选中了这两个框,那么您要做的就是加载2个现有模块(一个主机内核模块和一个特定于处理器的模块),一个仿真器以及任何可以帮助您运行其他系统的驱动程序。
但是,在受支持的Linux发行版(如Red Hat Enterprise Linux)上实现KVM可以扩展KVM的功能,使您可以在来宾之间交换资源,共享公用库,优化系统性能等等。
KVM架构
https://surriel.com/system/files/KVM-Architecture-Chile-2012.pdf
https://networkfaculty.com/static/images/generic/kvm-introduccion-libvirt.jpg
在VM(CentOS-6.2或更高版本)上将Spice与LibVirt一起使用
https://wiki.centos.org/HowTos/Spice-libvirt
https://ubuntu.com/server/docs/virtualization-libvirt
https://tse1-mm.cn.bing.net/th/id/OIP.DAnWl4czLEo0oGvRkmZTSAHaE0?pid=Api&rs=1
libvirt库用于与不同的虚拟化技术对接。在开始使用libvirt之前,最好确保您的硬件支持KVM的必要虚拟化扩展。在终端提示下输入以下内容:
kvm-ok
一条消息将被打印通知你,如果你的CPU做或不支持硬件虚拟化。
注意:在具有支持硬件辅助虚拟化的处理器的许多计算机上,必须激活BIOS中的选项以将其启用。
允许虚拟机访问外部网络的方式有几种。缺省的虚拟网络配置包括使用SLIRP协议实现用户模式网络的桥接规则和iptables规则。流量通过主机接口NAT到外部网络。
为了使外部主机可以直接访问虚拟机上的服务,需要配置与默认类型不同的桥接类型。这允许虚拟接口通过物理接口连接到外部网络,从而使它们在网络的其余部分显示为普通主机。
有一个很好的示例,说明如何配置自己的网桥并将其与libvirt组合,以使来宾可以在netplan.io上使用它。
在CentOS 6上配置嵌套虚拟化
https://wiki.centos.org/HowTos/NestedVirt
http://technotes.nocoffee.nl/2-node-kvm/nested-virtualization-on-centos-6
1.简介
在某些情况下,您需要在裸机上部署虚拟化设置之前对其进行测试或证明。在这些情况下,理想的情况是将虚拟机监控程序主机设置为虚拟机,然后在其上运行虚拟机。在虚拟机内部运行虚拟机的这种情况称为嵌套虚拟化。
嵌套虚拟化是可以使用内核参数启用的功能。不幸的是,当前的CentOS内核不支持该参数。
2.开始之前
您可以通过检查以下文件来验证系统是否支持嵌套参数:/ sys / module / kvm_intel / parameters / nested
在默认的CentOS 6系统上,该文件将不存在。幸运的是,我们有一个xen-c6项目(http://dev.centos.org/centos/6/xen-c6/),该项目具有支持嵌套参数的内核!
3.步骤1:将xen-c6存储库添加到您的系统
- su-
- cd /etc/yum.repos.d
- yum reset
- [可选] vi xen-c6.repo:更改为“ enabled = 0”以默认不启用仓库
4.步骤2:安装新内核
- su-
- yum --enablerepo xen-c6安装内核kernel-firmware
- vi /boot/grub/grub.conf:在内核行末尾添加“ kvm-intel.nested = 1”
- 重启
- 验证操作是否正确:“ cat / sys / module / kvm_intel / parameters / nested”将输出“ Y”
5.步骤3:配置虚拟机监控程序虚拟机
为了使设置正常进行,我们需要在VM内部的虚拟CPU中使用“ vmx”标志。
我将在此HOWTO中使用virt-manager。显然,人们可以使用XML文件和virsh来获得相同的结果。
- 经理
-
打开虚拟机监控程序虚拟机,转到“详细信息”>“处理器”
- 展开“配置”
- 按下“复制主机CPU配置”按钮
- 展开“ CPU功能”
- 验证“ vmx”功能是否设置为“ require”
- 按应用
启动虚拟机管理程序虚拟机,瞧瞧!libvirtd已在VM内启动并运行!
(来源:http : //technotes.nocoffee.nl)
配置LXC Linux容器CentOS 6
https://wiki.centos.org/HowTos/LXC-on-CentOS6
https://blog.csdn.net/L835311324/article/details/84488470
LXC(LinuX Containers)Linux容器,一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。
oVirt
https://wiki.centos.org/HowTos/oVirt
oVirt是一种开源分布式虚拟化解决方案,旨在管理整个企业基础架构。 oVirt使用受信任的KVM管理程序,并基于其他几个社区项目构建,包括libvirt,Gluster,PatternFly和Ansible。
- 为管理员和非管理员用户提供丰富的基于Web的用户界面
- 主机,存储和网络配置的集成管理
- 在主机和存储之间实时迁移虚拟机和磁盘
- 主机发生故障时虚拟机的高可用性
(1)ovirt-engine用于部署,监视,移动,停止和创建VM映像,配置存储,网络等。我们运行虚拟机(VM)的一个或多个主机(节点)一个或多个存储节点,其保存与这些VM对应的图像和ISO。此外,通常在引擎旁边部署身份服务,以对ovirt-engine的用户和管理员进行身份验证。
(2)节点是安装了VDSM和libvirt的Linux发行版,以及一些额外的软件包,可以轻松实现网络和其他系统服务的虚拟化。迄今为止受支持的Linux发行版是Fedora 17或oVirt-node,它基本上是一个精简版本,包含足够的组件以允许虚拟化。
(3)存储节点可以使用块或文件存储,可以是本地或远程,通过NFS访问。 POSIXFS存储类型支持Gluster等存储技术。存储节点分组为存储池,可确保高可用性和冗余。 Vdsm存储术语页面包含更多详细信息。
从总体框架上说明了 oVirt 的工作流程。对外,oVirt 中的 Engine 通过 HTTP 协议向外提供 HTTP API,同时提供内建的网页服务供用户和系统管理员使用。系统管理员通过网页可以创建、修改虚拟机及相关设备或用户权限,用户在拥有权限的情况下可以操作自己的虚拟机,并通过 VNC 或 SSH 登陆自己的虚拟机。
Engine 在整个系统中充当管理者的角色并对外提供管理服务,它挂载了自己的数据库记录整个系统中所有的虚拟机配置,各个节点的自身状态,系统的网络状态,存储器状态。管理的逻辑,状态及策略全部在 Engine 中设置与实现。
Node 只负责功能上的实现,不进行任何状态的记录和任何策略的实现。Engine 与 Node 之间的关系十分像 Linux 中驱动程序与应用程序的功能分割关系:驱动仅仅负责功能的实现,如设备的读、写、开启与关闭,如何使用这些功能留给应用层。同样 Node 仅仅负责实现虚拟机器与设备的创建与修改,资源的共享与保护,如何使用这些功能交给 Engine 处理。Node 暴露两种基于网络的 API 与 Engine 交互,XMLRPC 与 REST。Engine 通过这些接口控制各个 Node 上功能的启动。当然用户也可以调用这些 API 进行第三方程序的开发。
oVirt 里的 Node 可以由一个普通的 Linux 上安装 VDSM(Virtual Desktop Server Manager) 构成,也可以由一个专为 oVirt 定制的 Linux 系统构成。在定制的情况下,Node 上的许多文件系统都是 ramdisk( 基于内存的 Linux 磁盘设备 ),系统重启后其中的内容消失,从而保证了 Node 的无状态性。Engine/Node 的设计不仅方便将来的开发,更简化了用户的安装使用,在定制的情况下 Node 可以快速大量部署。
1.关于oVirt
oVirt是一个虚拟化管理应用程序。这意味着您可以使用oVirt管理界面(oVirt引擎)来管理硬件节点,存储和网络资源,以及部署和监视在数据中心中运行的虚拟机。
如果您熟悉VMware产品,则其在概念上类似于vSphere。oVirt是红帽企业虚拟化产品的基础,并且是“上游”项目,在开发新功能之前,应先开发新功能,然后再将其包含在支持的产品中。
要开始使用oVirt,您可以按照上游快速入门指南进行操作。
oVirt团队目前正在ovirt.org网站存储库上为CentOS 7提供RPM软件包。
2. oVirt和CentOS虚拟化SIG
oVirt加入CentOS虚拟化SIG的目标是:
- 有一个提供实时快照功能的qemu-kvm软件包[完成]
- 在CentOS中具有最新的oVirt RPM,以允许CentOS和oVirt用户使用单个存储库。[DONE主机端] [WIP管理员端]
- 将oVirt节点作为CentOS Spin [DESIGN]
- 利用其他SIG的优势,例如Storage SIG for Gluster支持[DONE]
3.更新的文档
请参考oVirt文档:
Virtualization文章列表
https://wiki.centos.org/HowTos/#Virtualization
- Introduction
- Quickstart for Xen4 on CentOS-6
- Move a native CentOS4 installation into a Xen DomU
- Installing and using a CentOS 5 Xen domU instance
- Installing and using a fully-virtualized Xen guest
- Installing and using KVM on CentOS
- Using Nvidia drivers and Xen at the same time
- Vserver on CentOS
- OpenVZ on CentOS
- VirtualBox on CentOS
- CentOS as a Guest OS in VirtualBox
- Spice with LibVirt for VMs (CentOS-6.2 or Higher)
- Nested Virtualisation on CentOS-6
- Linux Container (aka LXC) Virtualisation on CentOS-6
- oVirt on CentOS
更多推荐
所有评论(0)