xen虚拟化方案及应注意问题
- 格式:pdf
- 大小:90.21 KB
- 文档页数:4
RHEL5.4关于Xen虚拟化关于linux下面中Xen虚拟化的讨论,Xen虚拟化的介绍Xen虚拟化可以提供完全虚拟化和半虚拟化,一些其它的虚拟化,比如说Vmware VPC这些都是完全虚拟化,而半虚拟化可以修改操作系统的内核,半虚拟化更加的优化,大大的节约了系统的开销。
下面我们就开始安装Xen虚拟机在安装Xen虚拟机之前,一定要确保虚拟化这个服务是安装了的。
而且必须系统运行在支持Xen虚拟化的内核上面。
现在来看下我的计算机[root@localhost ~]#[root@localhost ~]# uname -r2.6.18-164.el5[root@localhost ~]#我的机器现在运行在常规的内核上面。
[root@localhost ~]#[root@localhost ~]# cat /boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/sda3# initrd /initrd-version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-164.el5)root (hd0,0)kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quietcrashkernel=128M@16Minitrd /initrd-2.6.18-164.el5.img[root@localhost ~]#可以看到,我们的grub.conf文件中也没有关于Xen虚拟化的内核。
Xen虚拟化入门
Xen虚拟化入门
Xen是一个监视与x86兼容的计算机的开源虚拟机程序。
Xen使用一个叫做hypervisor的软件层来调节对真实硬件的访问,实现在一台单独的计算机上运行多个子操作系统。
本指南将介绍Xen的原理以及虚拟化解决方案之SUSE Linux Enterprise Server。
含义及其工作原理
Xen的来源是什么?工作原理是什么?什么叫做完全虚拟化?什么叫做准虚拟化?本部分将对这些问题作出解答。
什么是Xen?
Xen的工作原理
SUSE Linux Enterprise Server 10
选定Xen为数据中心虚拟化解决方案之后,你需要决定运行何种Xen产品。
一般来说,有三种品牌的Xen可以提供现代数据中心所需的可支持性和稳定性。
本文主要介绍SUSE Linux Enterprise Server。
Xen:为虚拟化准备SUSE Linux Enterprise Server 10
创建并管理虚拟机
创建虚拟机的步骤在Linux版本之间是相当不同的。
本部分将学习使用Virtual Machine Manager工具创建虚拟机并探究xm工具提供的管理选项。
[VT]name=VTbaseurl=file:/misc/cd/VTenabled=1gpgcheck=0[Client]name=Clientbaseurl=file:/misc/cd/Client enabled=1gpgcheck=0[Workstation]name=Workstationbaseurl=file:/misc/cd/Workstation enabled=1gpgcheck=0[root@dhcp-0-122 ~]#先安装虚拟化组件[root@dhcp-0-122 ~]# yum grouplist Loading "rhnplugin" pluginLoading "security" pluginThis system is not registered with RHN. RHN support will be disabled.Setting up Group ProcessInstalled Groups:Office/ProductivityAdministration ToolsEditorsSystem ToolsText-based InternetGames and EntertainmentLegacy Software Development Network ServersLegacy Software SupportX Window SystemWeb ServerPrinting SupportMail ServerServer Configuration ToolsGraphical InternetAvailable Groups:Engineering and ScientificMySQL DatabaseGNOME Software DevelopmentX Software DevelopmentVirtualizationLegacy Network ServerDNS Name ServerAuthoring and PublishingFTP ServerJava DevelopmentOpenFabrics Enterprise DistributionGraphicsWindows File ServerEclipseKDE Software DevelopmentKDE (K Desktop Environment)Sound and VideoPostgreSQL DatabaseDevelopment LibrariesNews ServerDevelopment ToolsDone[root@dhcp-0-122 ~]# yum groupinstall VirtualizationLoading "rhnplugin" pluginLoading "security" pluginThis system is not registered with RHN.RHN support will be disabled.Setting up Group ProcessPackage Virtualization-en-US - 5.2-9.noarch already installed and latest version Resolving Dependencies--> Running transaction check---> Package gnome-applet-vm.i386 0:0.1.2-1.el5 set to be updated--> Processing Dependency: libxenstore.so.3.0 for package: gnome-applet-vm---> Package xen.i386 0:3.0.3-64.el5 set to be updated--> Processing Dependency: python-virtinst for package: xen--> Processing Dependency: bridge-utils for package: xen---> Package kernel-xen.i686 0:2.6.18-92.el5 set to be installed---> Package libvirt.i386 0:0.3.3-7.el5 set to be updated--> Processing Dependency: dnsmasq for package: libvirt---> Package virt-manager.i386 0:0.5.3-8.el5 set to be updated--> Processing Dependency: libvirt-python >= 0.3.3 for package: virt-manager--> Processing Dependency: gtk-vnc-python for package: virt-manager--> Processing Dependency: gnome-python2-gnomekeyring >= 2.15.4 for package: virt-manager---> Package virt-viewer.i386 0:0.0.2-2.el5 set to be updated--> Processing Dependency: libgtk-vnc-1.0.so.0 for package: virt-viewer--> Running transaction check---> Package libvirt-python.i386 0:0.3.3-7.el5 set to be updated---> Package python-virtinst.noarch 0:0.300.2-8.el5 set to be updated---> Package gtk-vnc.i386 0:0.3.2-3.el5 set to be updated---> Package bridge-utils.i386 0:1.1-2 set to be updated---> Package gtk-vnc-python.i386 0:0.3.2-3.el5 set to be updated---> Package xen-libs.i386 0:3.0.3-64.el5 set to be updated---> Package dnsmasq.i386 0:2.39-2.el5 set to be updated---> Package gnome-python2-gnomekeyring.i386 0:2.16.0-2.el5 set to be updated--> Finished Dependency ResolutionDependencies Resolved============================================================== ===============Package Arch Version Repository Size============================================================== ===============Installing:gnome-applet-vm i386 0.1.2-1.el5 VT 75 kInstalling for dependencies:bridge-utils i386 1.1-2 Client 28 kdnsmasq i386 2.39-2.el5 Client 151 kgnome-python2-gnomekeyring i386 2.16.0-2.el5 Client 15 kgtk-vnc i386 0.3.2-3.el5 Client 51 kgtk-vnc-python i386 0.3.2-3.el5 Client 9.8 kkernel-xen i686 2.6.18-92.el5 Client 15 Mlibvirt i386 0.3.3-7.el5 VT 917 klibvirt-python i386 0.3.3-7.el5 VT 74 kpython-virtinst noarch 0.300.2-8.el5 VT 161 kvirt-manager i386 0.5.3-8.el5 VT 1.2 Mvirt-viewer i386 0.0.2-2.el5 VT 24 kxen i386 3.0.3-64.el5 VT 1.8 Mxen-libs i386 3.0.3-64.el5 Client 141 kTransaction Summary============================================================== ===============Install 14 Package(s)Update 0 Package(s)Remove 0 Package(s)Total download size: 20 MIs this ok [y/N]: yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning TransactionInstalling: xen-libs ####################### [ 1/14]Installing: bridge-utils ####################### [ 2/14]Installing: gtk-vnc ####################### [ 3/14]Installing: gtk-vnc-python ####################### [ 4/14]Installing: gnome-python2-gnomekeyring ####################### [ 5/14]Installing: dnsmasq ####################### [ 6/14]Installing: libvirt ####################### [ 7/14]Installing: libvirt-python ####################### [ 8/14]Installing: virt-viewer ####################### [ 9/14]Installing: python-virtinst ####################### [10/14]Installing: virt-manager ####################### [11/14]Installing: kernel-xen ####################### [12/14]Installing: xen ####################### [13/14]Installing: gnome-applet-vm ####################### [14/14]Installed: gnome-applet-vm.i386 0:0.1.2-1.el5Dependency Installed: bridge-utils.i386 0:1.1-2 dnsmasq.i386 0:2.39-2.el5 gnome-python2-gnomekeyring.i386 0:2.16.0-2.el5 gtk-vnc.i386 0:0.3.2-3.el5 gtk-vnc-python.i386 0:0.3.2-3.el5 kernel-xen.i686 0:2.6.18-92.el5 libvirt.i386 0:0.3.3-7.el5 libvirt-python.i386 0:0.3.3-7.el5 python-virtinst.noarch 0:0.300.2-8.el5 virt-manager.i386 0:0.5.3-8.el5 virt-viewer.i386 0:0.0.2-2.el5 xen.i386 0:3.0.3-64.el5 xen-libs.i386 0:3.0.3-64.el5Complete![root@dhcp-0-122 ~]#修改grub配置,使其默认引导hypervisor,而不是普通kernel。
linux 虚拟化XenXen的虚拟化分为半虚拟化以及全虚拟化技术,其中半虚拟化主要是通过修改 Linux 核心来完成的虚拟化技术。
Xen 的半虚拟化技术主要是用在相同发行版本的 Linux 上,如果你想要使用半虚拟化的方式启动多个虚拟机器,那么虚拟机器全部都必须是相同的操作系统,甚至要求相同版本与相同核心的 Linux 发行版本。
如果你想要安装不同版本的 Linux 或者是其他的 OS ( Windows XP) 时,那就得要使用全虚拟化技术了。
全虚拟化技术必须满足以下条件:1.硬件支持 Intel 的 VT 技术 (Virtualization Technology, Intel-VT);2.硬件支持 AMD 的 SVM 技术 (Secure Virtual Machine, AMD-SVM or, AMD-V)。
下面来切实体验一下xen一、确定你的cpu是否支持虚拟化技术1.# cat /proc/cpuinfo |grep flags |egrep -o 'pae|vmx|svm'2.pae3.svm4.pae5.svm显示了PAE以及SVM,说明我的CPU支持全虚拟化技术。
二、安装Xen1.安装Xen的基本程序1.# yum install -y xen*2.安装Xen的内核1.# yum install -y kernel-xen*3.安装Xen的虚拟管理程序1.# yum install -y virt-manager以上安装完毕,就来配置Xen的环境了三、配置Xen环境修改grub.conf文件,以Xen的内核来启动系统1.# grub.conf generated by anaconda2.#3.# Note that you do not have to rerun grub after making changes to this file4.# NOTICE: You do not have a /boot partition. This means that5.# all kernel and initrd paths are relative to /, eg.6.# root (hd0,0)7.# kernel /boot/vmlinuz-version ro root=/dev/sda18.# initrd /boot/initrd-version.img9.#boot=/dev/sda10.default=011.timeout=512.splashimage=(hd0,0)/boot/grub/splash.xpm.gz13.hiddenmenu14.title CentOS (2.6.18-238.12.1.el5xen)15. root (hd0,0)16. kernel /boot/xen.gz-2.6.18-238.12.1.el517. module /boot/vmlinuz-2.6.18-238.12.1.el5xen ro root=LABEL=/18. module /boot/initrd-2.6.18-238.12.1.el5xen.img19.title CentOS (2.6.18-238.el5)20. root (hd0,0)21. kernel /boot/vmlinuz-2.6.18-238.el5 ro root=LABEL=/22. initrd /boot/initrd-2.6.18-238.el5.img修改完毕,重启系统,shell界面就可以看到1.# uname -a2.Linux Xen 2.6.18-238.12.1.el5xen #1 SMP Tue May 31 14:02:29 EDT 2011 x86_64 x86_64x86_64 GNU/Linux再看一下1.# xm list ID Mem(MiB) VCPUs State Time(s)3.Domain-0 0 1228 2 r----- 444.8Xen的log所在地1.# ll /var/log/xen/2.total 443.drwx------ 2 root root 4096 May 10 05:30 console4.-rw-r--r-- 1 root root 9653 Jun 10 15:07 domain-builder-ng.log5.-rw-r--r-- 1 root root 36 Jun 10 14:53 xend-debug.log6.-rw-r--r-- 1 root root 17855 Jun 10 15:07 xend.log7.-rw-r--r-- 1 root root 36 Jun 10 15:07 xen-hotplug.log四、建立虚拟机准备工作这里我们安装虚拟机采用NFS的方式,如果你对你的网络比较自信,也可以采用网络安装的方式,视具体情况而定。
搭建Xen虚拟化平台的步骤引言:虚拟化技术在近些年得到了广泛的应用,并逐渐成为了构建高效、灵活且安全的信息技术基础设施的重要组成部分。
Xen虚拟化平台作为一款开源的虚拟机监视器(Hypervisor),备受业界关注。
搭建Xen虚拟化平台不仅能够实现资源的合理利用,还可以提供更好的系统安全性和管理灵活性。
本文将详细介绍搭建Xen虚拟化平台的步骤。
第一章:准备工作在搭建Xen虚拟化平台之前,我们需要进行一些准备工作来确保搭建的顺利进行。
首先,我们需要明确我们所使用的硬件是否支持虚拟化技术。
通常情况下,我们需要确保CPU支持硬件辅助虚拟化技术,如Intel的VT-x或AMD的AMD-V。
其次,我们需要选择合适的Linux发行版作为虚拟化平台的底层操作系统。
常见的选择包括Ubuntu、CentOS等。
最后,确保我们有合适的网络和存储设备来支持虚拟化平台的运行。
第二章:安装Xen虚拟化平台在完成准备工作后,我们可以开始安装Xen虚拟化平台。
首先,我们需要安装Xen Hypervisor,它是Xen虚拟化平台的核心组件。
可以通过从Xen官方网站下载并编译源代码来安装Xen Hypervisor。
另外,一些Linux发行版(如Ubuntu)也提供了预编译的Xen Hypervisor软件包,我们可以通过包管理器来安装。
安装完成后,我们需要重启系统,选择Xen Hypervisor作为默认的引导选项。
第三章:配置Xen虚拟化平台安装完Xen Hypervisor之后,我们需要进行一些配置来使虚拟化平台能够正常运行。
首先,我们需要创建一个称为"dom0"的虚拟机实例,它将作为我们管理虚拟机的控制域。
我们可以使用virt-manager这样的图形界面工具或者xe命令行工具来创建dom0。
其次,我们需要为dom0分配合适的系统资源,例如CPU、内存和存储空间。
最后,我们需要配置网络和存储设备,以使虚拟机能够访问外部网络和存储资源。
华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 在Xen的虚拟设备模型中,网络设备以虚拟网卡的形式呈现给虚拟系统,虚拟网卡驱动包括前后端驱动,利用Xen提供的一些底层机制(I/O环、共享内存和事件通道等)共同处理虚拟系统网络I/O请求。
Xen在分配虚拟系统带宽时采用基于Credit算法的策略,采取控制虚拟网卡上限的方式进行。
这种策略较好的满足公平性、隔离性和安全性的要求。
但在更复杂的环境下还欠缺灵活性和效率。
通过分析Xen虚拟网卡实现原理和带宽分配策略,针对虚拟机的带宽保证和虚拟网卡的服务能力扩充,提出了一种优化方案,首先修改虚拟网卡在内核中的数据结构,扩展内核接口,使用proc文件系统等技术实现了动态修改带宽。
根据数据差值思想和累积策略,实现了一种检测网卡繁忙程度的方法,并在这个基础上,实现了一种带宽分配方法,弥补了原有策略无法保证虚拟系统最低带宽需求的缺陷。
提出了一种将多网卡绑定和虚拟化技术结合的方法,提高单个虚拟网卡的带宽。
解决了虚拟网卡的带宽无法超越物理网卡带宽,限制了带宽资源的抽象化和虚拟化的问题。
关键字:虚拟化最低带宽服务质量保证华 中 科 技 大 学 硕 士 学 位 论 文 AbstractThere are two main branches in the field of Virtualization technology. One is Full-virtualization and another is Para-virtualization. Para-virtualization based on Xen has been deployed widely which includes three important understructures: virtualization of CPU, RAM and I/O device. Virtualization of I/O device can be implemented by three different models, Virtual device model, Simulating device model and Direct model. In the three of them, Virtual device model has taken obvious advantage.In the Virtual device model, virtual machine drives network device as virtual network device. The driver program has a front-end driver and a back-end driver. Xen provides various low-level mechanisms to support the d river program, such as I/O ring, memory sharing and event channel.There are two factors for network performance, bandwidth and responsibility. This paper focuses on bandwidth. Xen allocates bandwidth resource among virtual machines by a policy based on Credit value algorism. The algorism focuses on fairness, security and isolation. The Credit value indicates the bandwidth of corresponding virtual machine. When a packet is sent, the Credit of corresponding virtual network device will be reduced by the same size. If the Credit is not enough, a timer will be set. Allocating period and the allocated Credit implement control on bandwidth resource. However, the policy lacks of flexibility in some complex scenarios.First, t he Credit value can obtain from configuration file only when the virtual machine starts. And the Credit value can’t be adjusted when the corresponding virtual machine is running. Obviously, that lacks of flexibility. This paper posted an optimized policy by analyzing the current policy and the principle of Xen virtual network device implementation.华 中 科 技 大 学 硕 士 学 位 论 文 Secondly, the optimized policy can provide QoS service and make the Credit value can be adjusted when virtual machine is running. This paper also posts a method todetect whether the virtual NIC is busy or not.Second, bandwidth of a Virtual NIC can’t beyond the bandwidth of corresponding physical NIC that limits the abstraction and virtualization for bandwidth resource. A solution was posted in this paper to address the problem by binding several physical NICs.Third, Xen is using Credit value to manage bandwidth. When some virtual machines are set to provide stream service , such as online video and ftp, Xen can not fix the request. Xen can not provide a QoS service for virtual machine. This paper addressed this by a optimized policy. A mechanism to indicating virtual NIC is busy or not was posted. So the bandwidth could be allocated among virtual machines.This paper addressed the three questions above without any additional resource consumed.Keyword: Xen Virtualization Bandwidth Quality of Service独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。
XEN 虚拟化小结Xen超虚拟化是目前非常流行、最引人注目的虚拟化技术之一,它使用了一个hyperviso r来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。
这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中会相互紧密协作。
通常通过虚拟化(Virtualization)将同一硬件上的应用程序和系统彼此隔离开来。
Xen虚拟化背景知识虚拟化简述通俗说来,虚拟化就是把物理资源转变为逻辑上可以管理的资源,以打破物理结构间的壁垒。
虚拟化技术就其本质而言属于一种资源管理技术,它将硬件、软件、网络、存储等硬件设备隔离开来,使用户能更合理更充分的控制与管理各种资源。
虚拟化技术本身有很多的方向,网络级(VLan)、芯片级(IntelVT/AMD-V)、硬件级(存储设备/服务器)、操作系统级等。
虚拟化的主要目的是简化IT基础设施的控制管理。
虚拟化技术由来已久,从60年代Unix诞生起,虚拟化技术就出现了,经历了从硬件分区、虚拟机、准虚拟机、虚拟操作系统的发展历程。
虚拟化技术的最初应用于大型主机,通过将一台大型服务器分割成若干分区,同时运行多个彼此独立的操作系统实例,以提高硬件利用率。
目前虚拟化主要应用在服务器器虚拟方面。
虚拟化发展阶段1)虚拟化初级阶段:在虚拟化早期,人们采用模拟软件技术模拟出计算机硬件和软件。
模拟层与操作系统对话,而操作系统与计算机硬件对话。
在模拟层中安装的操作系统并不知道自己是被安装在模拟环境下的,你可以按照常规的方法安装操作系统。
这种虚拟化需要付出很大的性能代价。
2)虚拟化高级阶段:随着虚拟技术发展的不断深化,虚拟化被带到了一个更高的级别。
在模拟层(负责被虚拟机器的指令翻译)和硬件之间,不需要任何主机操作系统运行硬件上的虚拟机。
虚拟机监控器直接运行在硬件上。
由此虚拟化变得更加高效。
虚拟化技术主要类型实现虚拟化的方法有多种,可以通过不同层次的抽象来实现相同的结果。
虚拟化技术安全问题及保障措施虚拟化技术的不断发展让更多的企业在考虑部署虚拟化设施,虚拟化的益处如服务器的整合、更快的硬件、使用上的简单、灵活的快照技术等使得虚拟化更加引人注目。
在有些机构中,虚拟化已经成为其架构中的重要组成部分。
这再次证明,技术再次走在了最佳的安全方法的前面。
随着机构对灾难恢复和业务连续性的重视,特别是在金融界,虚拟环境正变得越来越普遍。
我们应该关注这种繁荣背后的隐忧。
使用虚拟化环境时存在的缺陷1.如果主机受到破坏,那么主要的主机所管理的客户端服务器有可能被攻克。
2.如果虚拟网络受到破坏,那么客户端也会受到损害。
3.需要保障客户端共享和主机共享的安全,因为这些共享有可被不法之徒利用其漏洞。
4.如果主机有问题,那么所有的虚拟机都会产生问题。
5.虚拟机被认为是二级主机,它们具有类似的特性,并以与物理机的类似的方式运行。
在以后的几年中,虚拟机和物理机之间的不同点将会逐渐减少。
6.在涉及到虚拟领域时,最少特权技术并没有得到应有的重视,甚至遭到了遗忘。
这项技术可以减少攻击面,并且应当在物理的和类似的虚拟化环境中采用这项技术。
保障虚拟服务器环境安全的措施1.升级你的操作系统和应用程序,这应当在所有的虚拟机和主机上进行。
主机应用程序应当少之又少,仅应当安装所需要的程序。
2.在不同的虚拟机之间,用防火墙进行隔离和防护,并确保只能处理经许可的协议。
3.使每一台虚拟机与其它的虚拟机和主机相隔离。
尽可能地在所有方面都进行隔离。
4.在所有的主机和虚拟机上安装和更新反病毒机制,因为虚拟机如同物理机器一样易受病毒和蠕虫的感染。
5.在主机和虚拟机之间使用IPSEC或强化加密,因为虚拟机之间、虚拟机与主机之间的通信可能被嗅探和破坏。
6.不要从主机浏览互联网,间谍软件和恶意软件所造成的感染仍有可能危害主机。
7.在主机上保障管理员和管理员组账户的安全,因为未授权用户对特权账户的访问能导致严重的安全损害。
调查发现,主机上的管理员(根)账户不如虚拟机上的账户安全。
7.5.2 Xen虚拟化技术本节中将以主流的Xen体系架构为例,说明虚拟化系统的一般技术架构和工作原理。
1.Xen体系结构(Xen Hypervisor)Xen Hypervisor(即Xen的VMM)位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域)之间的相互隔离。
Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为 Domain 0,而其余的域则称为Domain U。
Xen的体系架构如图7-25所示。
Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。
Dom0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与Xen提供的管理API交互,并通过用户模式下的管理工具来管理Xen的虚拟机环境。
Xen向Domain提供了VCPU、虚拟MMU(Memory Management Unit)等基本的虚拟硬件和基本机制(事件通道),并向Domain提供了虚拟域管理API(控制接口)。
对Domain设备的访问,Xen也提供了相应的硬件接口(安全硬件接口),以保证设备访问得以安全进行。
在Xen体系架构中涉及到的基本概念包括:控制接口:仅能被Dom0使用,用于帮助Dom0控制和管理其他的Domain。
控制接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移,对其他Domain的CPU调度、内存分配及设备访问等。
安全硬件接口:提供除虚拟CPU、MMU之外的所有硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。
该接口只能被具有原生设备驱动的Domain使用,而向其他Domain则仅通过设备通道提供虚拟硬件服务。
VCPU:Xen为每个Domain建立了VCPU结构,用以接收Guest OS中传递的指令,其中大部分的指令被VCPU直接提交到物理CPU执行,而对于特权指令则需要经过确认后交由Xen代为执行。
虚拟化技术的使用注意事项与预防措施虚拟化技术已成为现代计算机领域中一个重要的发展趋势。
它通过将物理资源(如服务器、存储设备和网络)进行逻辑上的划分,使得多个虚拟机能够同时运行在同一台物理机上。
虚拟化技术的应用可以提高资源利用率、简化管理、降低成本等多重好处。
然而,在使用虚拟化技术时,我们也需要注意某些事项,并采取一些预防措施,以确保系统的稳定性、安全性和性能。
第一,及时进行虚拟化软件的升级。
虚拟化软件提供商会定期发布新的版本和补丁程序,以修复安全漏洞和性能问题。
因此,使用虚拟化技术的企业应该及时了解并安装这些升级,以确保系统能够拥有最新的安全性和性能优化。
第二,进行安全性的加固和隔离。
虚拟化环境中的虚拟机之间可能存在漏洞利用的风险,一旦其中一个虚拟机受到攻击,整个虚拟化环境可能都会受到影响。
因此,我们需要采取一些安全措施,如实施安全策略、隔离虚拟机和网络流量、限制访问权限等等,以减少潜在的风险。
第三,合理规划和管理资源。
虚拟化技术可以提供弹性和灵活性,但过度分配资源可能会导致性能下降和资源浪费。
使用虚拟化技术时,我们应该对系统进行合理规划和资源管理,包括确定每个虚拟机的资源需求、调整资源分配比例、监控性能指标等,以确保资源的高效利用和系统的稳定运行。
第四,备份和恢复策略的制定。
虚拟化环境中的数据和系统对企业运营至关重要。
在使用虚拟化技术时,我们应该制定备份和恢复策略,包括定期备份关键数据、测试备份的可靠性和可恢复性、制定紧急情况下的恢复计划等,以保障系统数据的安全性和可靠性。
第五,定期进行系统性能和安全性的评估。
虚拟化环境中的虚拟机数量众多,不同的应用程序和服务可能对系统性能和安全性产生不同的影响。
为了保持系统的高性能和良好的安全性,我们应该定期进行系统性能和安全性的评估。
通过监控性能指标、进行安全漏洞扫描、进行风险评估等手段,我们可以及时发现问题并采取相应的措施加以解决。
第六,培训和教育员工。
虚拟化方案及应注意问题
Xen是一款虚拟化软件,支持半虚拟化和完全虚拟化。
它在不支持VT技术的cpu上也能使用,但是只能以半虚拟化模式运行。
VMware是一款完全虚拟化软件。
完全虚拟的弱点是效率不如半虚拟化的高。
半虚拟化系统性能可以接近在裸机上的性能。
同时也因为vmware在基于xen内核的redhat系统上不能安装,因此,此次我给出的方案是xen的方案。
1、机房的选择
建议将服务器摆放在通信线路好而且比较稳定的机房,因为一旦网络中断,将造成多台服务器的服务同时中断。
2、半虚拟化与完全虚拟化的选择
Xen虚拟机有两种运行方式:完全虚拟化(full virtualization)和半虚拟化(para virtualization)。
完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。
不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。
半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。
也因为vmware是完全虚拟化的产品,而且为商业软件,性能也不比xen,所以我采用了xen来实现虚拟化方案。
3、分区采用方式,用lvm方式去创建,boot独立分区,swap独立分区,/挂到lvm下面,分配5G 空间。
待空间不够用的时候,可以挂多个硬盘上去,设置为:
[root@manifold xen]# cat /etc/xen/lv
# Automatically generated xen config file
name = "virt"
memory = "512"
disk = [ 'phy:/dev/VolGroup00/LogVol03,xvda,w', 'phy:/dev/VolGroup01/LogVol12,xvdb,w' ]
vif = [ 'mac=00:16:3e:76:ce:86, bridge=xenbr0', ]
vfb = ["type=vnc,vncunused=1"]
uuid = "7217a051-2514-9e7a-e95e-df3fa7f5b611"
bootloader="/usr/bin/pygrub"
vcpus=2
on_reboot = 'restart'
on_crash = 'restart'
然后在xvdb上创建pv,再将其加入vg,lvextend将所需的空间扩展,再resize2fs就行了。
这种是最灵活的分区解决方案,但灵活的同时,也带来的维护难度的上升,建议运维小心谨慎。
注意:(1)千万别直接在xen系统所在的lv做lvextend的动作,因为那只能是白费空间,因为xen 系统会识别不到硬盘空间的更改,同时因为其找不到superblock,我们不能对其进行数据的恢复,只能采用其他方式。
(2)应注意备份好/etc/xen下的系统配置文件。
4、最好使用支持Intel VT或AMD PT虚拟化技术的CPU,要检查中央处理器是否支持,用命令:INTEL grep vmx /proc/cpuinfo
AMD grep svm /proc/cpuinfo
假如一个svm或者是vmx标志出现的话,就表示您拥有处理器的虚拟化支援。
除了检查中央处理器旗标以外,您也应该要使您系统BIOS 中的完整虚拟化生效。
因为处理器信息中显示的支持,但并不代表你有开启了虚拟化的功能。
预装xen的linux系统的安装规划
预装了xen的rhel系统因为要配置比较简单,我这里就不说了,具体安装步骤请参考我给出的PDF 文档《XEN安装及模版安装》
非预装xen的linux系统的安装规划
说明:
1、此文档以yum为安装前提,所以,必须先安装配置好yum才能继续下面的工作
2、关闭防火墙(否则可能会页面打不开)
3、将selinux设为Permissive或者是Disabled(否则可能页面会报错,显示权限问题,而rhel5.iso 直接挂到/var/www/html下面也会报错)
4、http方式访问要区分大小写
5、开启Xmanager或者是其他图形输出工具
6、以下操作可以在vmware的linux系统上做测试,因为vmware上面的xen可以再在host机上装xen 虚拟系统
[root@manifold xen]# yum -y install xen
修改启动项,用新的xen内核来启动:
[root@manifold ~]# vi /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-128.2.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-128.2.1.el5
module /vmlinuz-2.6.18-128.2.1.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-128.2.1.el5xen.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-92.el5.img
[root@manifold xen]# yum -y install virt-manager
[root@manifold ~]# mount -o loop rhel5.iso /var/www/html/
[root@manifold ~]# service httpd restart
[root@manifold ~]# export DISPLAY=192.168.1.235:0.0
[root@manifold ~]# xhost +
[root@manifold ~]# virt-manager
[root@manifold ~]# virt-install
What is the name of your virtual machine? rhel5
How much RAM should be allocated (in megabytes)? 512 ...................最小为128M What would you like to use as the disk (file path)? /dev/VolGroup00/LogVol01
Would you like to enable graphics support? (yes or no) no ....................注意,如果要使用图形界面安装的话,需要安装virt-viewer
What is the install location? http://192.168.1.210
Starting install...
按着说明设置一下就行了,直接进入安装界面,以后的操作步骤我就不说了。
补充说明:字符界面和图形界面可以同时安装而不会相互干扰,就是说,可以并行安装两个操作系统。
字符界面(图一)和图形界面(图二)安装的模样:
安装完xen虚拟系统后,在开机进入xen虚拟系统时会卡在如下图的地方较长时间,这时请按ctrl+c快速跳过,不会影响启动后系统的使用。
参考文献:
xen官方:
/download/index.html
Installing and using a fully-virtualized Xen guest
/HowTos/Xen/InstallingHVMDomU
hung at "Setup is starting Windows" stage.
/modules/newbb/viewtopic.php?topic_id=9155&forum=38
/faq/docs/DOC-10035
xen救援模式
/kbase/0808/11489.php
/faq/docs/DOC-9995。