




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Archlinux上安装和使用Xen其实网上有很多安装Xen的教程,从老版本到新版本,有关xen、dom0、domu等安装都有。大多数发行版都提供了简便的安装方法,一般在官方Wiki或者Documentation都可以找到,例如Fedora/Debian/Gentoo/Ubuntu等等,地址可以上网找,在此就不提供了。因为本文是基于Archlinux发现版安装Xen,因此可能不大一样,但是殊途同归,大致的过程是一样的,在这我先例举下本文要做的事情:1. 安装Xen 4 hypervisor和tools。2. 安装Dom0。3. 安装Domu,包括全虚拟化(full-virtualization)及类虚拟化(para-virtualization) 两种方式安装。当然在这过程中,肯定需要安装一些必须的依赖包,如果是属于编译安装一类的包,例如gcc、binutils等,就不说了,但是如果是其它必须的包,在安装的过程中会提及。在具体介绍安装方法之前,首先从宏观来介绍下Xen的整个安装过程。我们知道,Xen是基于混合模型的,混合模型的特征是VMM(hypervisor)位于最底层(硬件之上),拥有所有的物理资源,但是与直接的hypervisor模型不一样的是,VMM会主动让出大部分I/O的控制权,将它们交由一个运行在特权虚拟机中的特权操作系统来控制(Xen中的dom0)。Xen的结构如下图所示:图1 Xen虚拟化模型你可以简单地把Xen Hypervisor+Dom0想像成一个整体,共同提供一个完整的虚拟化环境,然后在此基础上安装Domu,即非特权级虚拟机。还有一个使用混合模型的虚拟化案例,即Windows Server 2008,其中Hyper-V作为hypervisor运行在最底层,而win server 2008作为特权级操作系统运行在Hyper-V之上。以上都是题外话,只是想说明一下Xen的基础架构,以及为什么要以本文开头所列的安装顺序进行安装。相比与Vmware workstation及Virtualbox的安装方式,Xen的安装(包括1、2、3)相对比较复杂, 因为Xen本身并没有提供像Virtualbox等图形化的安装界面(可以使用第三方的图形安装工具,在本文也会介绍),而且Virtualbox采用的是宿主模型,它作为一个模块或者应用软件运行在操作系统之上。但是,Xen的安装只要理解了,顺序搞清楚了,也就不会显得那么麻烦了。准备工作:你有一台装有Archlinux的电脑(Linux环境),有网络连接(可以下载包),有浏览器(遇到问题网上搜索)。一、安装Xen Hypervisor 及 Tools标题可能给人误解以为是要安装两个东西,其实只是安装一个包,这个包不仅提供了Xen hypervisor,同时也提供了相应的管理工具。首先安装必须的开发编译环境pacman -S gcc make patch python2然后开始安装Xen 4.1.0,在Archlinux官方软件仓库中并没有提供Xen的包,但是可以在AUR上下载到,要安装AUR上的软件,需要使用yaourt安装工具(关于如何使用yaourt请自行参考官方Wiki):yaourt xen然后选择Xen 4.1.0确定安装,yaourt会自动从网上下载Xen的源码并编译安装。安装好之后,你会发现在/boot目录下面有一个xen.gz,这个是xen的核心,同时你也可以发现有一些xen的管理命令,例如xm、xend,但是这些在当前系统下面都没用的,因为未进入xen的虚拟环境(xen hypervisor+dom0)。如果安装或者编译的过程中出现问题,请将问题放到Google中搜索,找到解决方法。我在编译的过程中遇到了一个问题,在这和大家分享下:问题1:编译过程中xxxx 变量 unused_but_set_variable 错误。造成这个问题的原因是我所安装的gcc 默认开启了-Werror= unused_but_set_variable选项,这个选项的结果就是把编译过程中的警告也当作错误处理,最直接的解决方法是设置gcc关闭这个选项。当时没有去找怎么关闭,而是采用了downgrading gcc的方法,因为我的电脑上打开了testing仓库,因此安装了gcc测试版本4.6.0。所以方法是在/etc/pacman.conf中关闭testing仓库,然后执行以下命令:Pacman Sy gcc到此为止,Xen hypervisor就安装完成了。二、安装Dom0Dom0是一个拥有特权的客户操作系统,在Xen hypervisor启动之后会首先引导Dom0启动。Dom0拥有一些直接访问物理意资源的特权,与此同时,它也同样承担一些责任,比如在Dom0上运行一些管理工具对Xen Hypervisor以及其它非特权级虚拟机进行管理。Dom0通常是一个Linux操作系统,也可以是NetBSD或者OpenSolaris。但是Dom0必须包含一个支持Xen Dom0功能的内核。本文只介绍Linux作为Dom 0的安装。因此Dom0是一个类虚拟化的VM。一般网上比较旧的教程安装Linux Dom 0,都是先下载标准的Linux内核源代码包,然后再下载Xen的补丁,并打上。但是按照Xen官方Wiki上的说法,在Linux 2.6.23版本之后, 内核已经默认提供了类虚拟化的功能:/xenwiki/XenParavirtOpsparavirt_ops是Linux提供的一组功能,它允许Linux内核以类虚拟化的方式运行在Hypervisor之上。目前该功能运行VMWare的VMI、Rusty的lguest以及Xen。该功能允许你编译一个内核映像,它即可以同普通的内核一样直接运行在硬件之上(或者以hvm模式运行在Xen上),同时也可以运行在类虚拟化的环境之上,更进一步地打上补丁之后可以作为Xen Dom0。总结一下:1. Dom0是一个拥有特权的客户操作系统。2. Dom0一般是Linux内核,而且是支持类虚拟化和Xen Dom0的内核。3. Linux 2.6.23版本之后,提供了paravirt_ops,已经提供了类虚拟化的功能。4. 在3的基础上打上补丁之后,就可以作为Xen Dom0的Linux内核。5. 支持Xen Dom0 的Linux内核依然是一个Linux内核。在介绍了以上内容之后,下面就开始安装Xen Dom0。1. 下载Linux Dom 0内核源代码从网上下载加入了Xen Dom 0支持的内核源代码:git clone git://pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xencd linux-2.6-xengit reset -hardgit checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.xgit pull但是,使用git下载可能会速度很慢,可以直接通过http下载,下载地址为:/?p=linux/kernel/git/jeremy/xen.git;a=snapshot;h=xen/stable-2.6.32.x;sf=tgz2编译内核进入linux-2.6-xen目录开始配置内核选项。首先拷贝Archlinux系统上已有的内核配置文件到当前目录下,重命名成.config:zcat /proc/config.gz .configmake oldconfig在出现的提示中,如果不了解就直接回车,使用默认的选项设置。接着,开始配置Xen Dom0相关的内核选项:make menuconfig确保选中以下选项:(具体参考2)CONFIG_X86_IO_APIC CONFIG_ACPI CONFIG_XEN_DEV_EVTCHN CONFIG_XENFS CONFIG_XEN_SYS_HYPERVISOR CONFIG_XEN_GNTDEV CONFIG_ACPI_PROCFS=yCONFIG_XEN=yCONFIG_XEN_MAX_DOMAIN_MEMORY=32CONFIG_XEN_SAVE_RESTORE=yCONFIG_XEN_DOM0=yCONFIG_XEN_PRIVILEGED_GUEST=yCONFIG_PCI_XEN=yCONFIG_XEN_BLKDEV_FRONTEND=mCONFIG_NETXEN_NIC=mCONFIG_XEN_NETDEV_FRONTEND=mCONFIG_XEN_KBDDEV_FRONTEND=mCONFIG_HVC_XEN=yCONFIG_XEN_FBDEV_FRONTEND=mCONFIG_XEN_BALLOON=yCONFIG_XEN_SCRUB_PAGES=yCONFIG_XEN_DEV_EVTCHN=yCONFIG_XEN_BACKEND=yCONFIG_XEN_BLKDEV_BACKEND=yCONFIG_XEN_NETDEV_BACKEND=yCONFIG_XEN_PCIDEV_BACKEND=y CONFIG_XEN_PCIDEV_BACKEND_VPCI=yCONFIG_XENFS=yCONFIG_XEN_COMPAT_XENFS=yCONFIG_XEN_XENBUS_FRONTEND=mCONFIG_XEN_PCIDEV_FRONTEND=y注意1,如果编译32位的内核版本,首先需要在内核中启动PAE支持,因为目前Xen只支持32位的PAE内核。(Processor type and features - High Memory Support - 64GB)注意2,在1的基础上,确保CONFIG_HIGHPTE=N。配置完成后,就是常规的编译内核步骤了:make bzImagemake modulesmake modules_installcp -a .config /boot/config-versioncp -a System.map /boot/System.map-versioncp -a arch/x86/boot/bzImage /boot/vmlinuz-versionmkinitcpio k version g /boot/initrd-version.img其中version为你当前所编译的内核版本。最后在grub中添加启动项(grub2的设置在此不提):title Archlinux Xen Dom0root (hd0,2)kernel /xen-4.0.gz dom0_mem=1024M module /boot/vmlinuz-7 root=/dev/sda3 ro nomodesetmodule /boot/initrd-7.img以上设置请根据实际情况修改硬盘分区及文件名。注意在内核映像后面添加nomodeset选项,禁用KMS,目前Xen对KMS支持不大好。至此,Dom 0就安装完成了,你可以重启进入Dom0。3. 显卡问题如果是n卡或者a卡,确保在内核映像后面添加nomodeset参数。如果是intel的显卡,请安装vesa驱动,并同样在内核映像后面添加nomodeset或者i915.modeset=0参数。pacman s xf86-video-vesa然后重启到grub界面,选择Dom0内核,按e,在内核映像后面添加single参数,按b启动进入文本模式,然后以root权限执行以下命令生成Xorg.conf:X configurecp Xorg.conf.new /etc/X11/Xorg.confreboot4. 进入Dom0执行几个命令验证下已经进入了Xen Dom0,首先启动必须的服务:/etc/rc.d/xencommons start/etc/rc.d/xend start然后使用xm list看看当前运行的domain虚拟机,目前应该只包括Domain 0:Name ID Mem VCPUs State Time(s)Domain-0 0 1863 2 r- 295.2然后执行以下命令验证当前电脑支持intel vt-x技术:xm info | grep I virt_caps如果执行结果如下,则说明支持,否则请上网搜索确认你的CPU是否支持,或者BIOS中是否启用:virt_caps : hvm三、安装DomU相比Dom0的安装,DomU的安装方式就非常多了,有全虚拟化和类虚拟化两种技术,有命令行安装和图形界面安装两种安装方式,当然DomU可以采用的操作系统也多种多样,包括Fedora、Debian、Ubuntu、Centos、Archlinux、Windows等等。本文档将会能一一介绍不同的安装方法。1. virrt-manager相信大家在Windows或者Linux下都是安装过VMWare或者Virtualbox的,virt-manager提供的图形化安装方式就和它们差不多。Virtual Machine Manageg,简称为virt-manager,是RedHat公司共享的一个开源虚拟化管理软件。它不仅提供了当前运行的虚拟机的概况,同时也包括它们当前的性能及资源利用率等统计。该工具还包含图形化的安装向导,可以通过这种方式更加方便地安装与配置虚拟机,如虚拟机资源的分配和虚拟硬件的设置。内嵌的VNC viewer客户端提供了对客户虚拟机的图形化终端的支持。virt-manager是用Python编写的GUI程序,底层通过libvirt库对各类Hypervisor进行交互管理.通过这种方式virt-manager的开发可以完全独立于不同的hypervisor。目前支持Xen,KVM及QEMU。接下来开始安装virt-manager,首先需要安装libvirt及一些需要的包:pacman -S libvirt urlgrabber qemu-kvm dnsmasq bridge-utils然后安装virt-manager/virt-install/virtviewer,virt-manager前面已经说过了,virt-install其实是命令行的virt-manager,而virtviewer就是VNC viewer。pacman -S virtviewer virtinst virt-manager但是要注意的是默认的Archlinux仓库中libvirt包没有在编译的时候加入对Xen的支持,即它在配置过程中使用了”-without-xen”的选项,因此需要自己重新编译过。推荐使用abs抓下libvirt的打包文件,自行打包安装: abs community/libvirt cd /var/abs/community/libvirtvim PKGBUID #把without-xen去掉makepkg & pacman -U libvirt-0.9.0-2-i686.pkg.tar.xz安装好后不要急着打开virt-manager, 首先需要修改/etc/xen/xend-config.sxp, 去掉下面 几行的注释:(xend-http-server yes) (xend-unix-server yes) (xend-unix-path /var/lib/xend/xend-socket) (xend-port 8000) (network-script network-bridge)然后启动一些服务:sudo /etc/rc.d/xencommons startsudo /etc/rc.d/xend startsudo /etc/rc.d/libvirtd start最后使用virsh命令确认Xen环境配置正确,如下代表配置成功:/etc/xen$ sudo virsh versionCompiled against library: libvir 0.9.0Using library: libvir 0.9.0Using API: Xen 3.0.1Running hypervisor: Xen 4.1.0然后在命令行中输入virt-manager开始安装虚拟机,在工具栏选择新建按钮就进入了安装向导,之后的过程就很简单了,和VBox差不多。其中完全虚拟化可以选择从本地ISO映像或者光驱启动安装,这是最简单的了,因此就不多说了。这里主要说下类虚拟化的安装方式,类虚拟化的安装方式和全虚拟化不,只能通过网络的方式安装。(尚未成功)2使用XM命令(1)全虚拟化安装任务:以全虚拟化的方式安装Archlinux,安装ISO为archlinux-2010.05-core-dual.iso。 安装步骤如下:a. 创建虚拟硬盘在这里使用dd命令创建虚拟硬盘,使用seek选项创建稀疏文件:dd if=/dev/zero of=archlinux.img bs=1M seek=20480 count=1注:稀疏文件与VBox的动态增长大小的虚拟硬盘类似。以通过du命令查看实际的大小: du -h archlinux.img 1.0Marchlinux.imgb. 创建虚拟机安装的配置文件(与下面的虚拟机启动的配置文件有区别)可以在xen自带的全虚拟机配置文件例子的基础上按自己的需要做修改,在这些配置文件中有相关选项的注释:cp /etc/xen/xmexample.hvm arch.hvm 确保有以下内容:# -*- mode: python; -*-kernel = /usr/lib/xen/boot/hvmloader # 全虚拟化特有的loaderbuilder=hvm # 全虚拟化要选择”hvm”memory = 1024 # 内存,以M为单位name = arch # 虚拟机名称vcpus=8 # 虚拟CPU个数cpus=1-7 # 使用实际CPU的范围vif = type=ioemu, bridge=xenbr0 # 虚拟网卡设置disk = # 硬盘设置 file:/sdc1/drs_ltt/archlinux.img,hda,w, # 虚拟硬盘路径 #file:/sdc1/drs_ltt/archlinux.iso,hdc:cdrom,r # ISO映像路径device_model = /usr/lib64/xen/bin/qemu-dmboot=dca # 启动顺序,以d(光盘)/c(硬盘)/a(软盘)vnc=1serial=ptyvncunused=1vncpasswd=注:红色的地方请按实际情况修改c. 安装Archlinux DomU安装的使用需要用vncviewer连接到所创建的虚拟机,因此系统上必须有vncviewer的软件:pacman -S tightvnc 使用xm create命令创建虚拟机:(小技巧, 使用命令缩写xm cr)xm create arch.hvm 通过 xm list查看虚拟机列表:xm listName ID Mem VCPUs State Time(s)Domain-0 0 1720 2 r- 2342.5arch-01 7 256 1 - 0.5 表明虚拟机创建成功,ID为7,接下来通过xm vncviewer命令连接到虚拟机开始系统安装:xm vncviewer 7关于系统安装过程在此就不多加赘述了,同普通的系统安装一样。安装好之后,需要做一些配置,以方便以后的虚拟机访问。在此之前,先讲下在dom0上连接全虚拟化虚拟机的三种方法:第一种是之前用到的xm vncviewer,需要在图形环境下使用;第二种是通过xm console命令,需要在虚拟机中配置好串口ttyS0;第三种是通过ssh命令,需要在虚拟机中配置ssh服务。 配置console:1) 修改/etc/inittab# Serial Virtual Console for KVM and others VMs s0:2345:respawn:/sbin/agetty -8 9600 ttyS0 linux # 去掉这行的注释2) 修改/boot/grub/menu.lst在启动项目的kernel尾端添加console=ttyS0配置 ssh服务:1) 安装opensshpacman S openssh2) 开机自启动sshd服务在rc.conf的最后一行dameons中添加sshd:DAEMONS=(syslog-ng network sshd !netfs !crond)3) 配置sshd在/etc/hosts.allow中添加一行: sshd: ALL修改/etc/ssh/sshd_config文件,去掉以下两行的注释:Port 22Protocol 2 配置好之后, 关闭虚拟机:xm shut 7d. 创建虚拟机启动的配置文件在虚拟机安装的配置文件基础上修改(只列出需要修改的部分,其余一样):disk = file:/your/path/archlinux.img,hda,w # boot=dcae. 启动虚拟机xm cr c arch.hvm # -c选项表示以串口的形式启动要从串口连接方式中退出,按ctrl+,然后试试ssh连接是否可用。ssh rootip_address_of_domu(2)类虚拟化安装任务:以类虚拟化的方式启动Arch DomU因为之前已经以全虚拟化的方式安装好Arch,在这些就通过一些技巧将HVM的虚拟机转换成PV形式的虚拟机。a. 启动之前创建的虚拟机:xm cr arch.hvm # 假设虚拟机ID为8,IP为1ssh root1 或者 xm console 8b. 安装类虚拟机的Linux内核yaourt kernel26-xen并在/boot/grub/menu.lst中添加相应的启动项:# (0) Arch Linux (PV DomU)title Arch Linux (PV DomU)root (hd0,0)kernel /boot/vmlinuz26-xen root=/dev/sda1 roinitrd /boot/kernel26-xen.img然后将/boot目录下面的kernel26-xe.img和vmlinuz26-xen两个文件拷贝到dom0中。scp root1:/boot/*xen* ./ # 在dom0中执行c. 修改配置文件touch /etc/rc.xen /etc/fstab.hvm /etc/fstab.pvrc.xen的内容如下:#/bin/bash/bin/mount -n -o remount,rw /uname -r | grep xen &/dev/nullif $? -eq 0 ; then cp /etc/fstab.pv /etc/fstab #sed -i s/#s*h0/h0/ /etc/inittab #sed -i s/#?s*s0/# s0/ /etc/inittabelse cp /etc/fstab.hvm /etc/fstab 3sed -i s/#s*s0/s0/ /etc/inittab #sed -i s/#?s*h0/# h0/ /etc/inittabfi/bin/findmnt / -options ro &/dev/null | /bin/mount -n -o remount,ro /etc/fstab.hvm的内容如下:/dev/sda1 / ext4 defaults 0 1/dev/sda5 swap swap defaults 0 0/etc/fstab.pv的内容如下:/dev/xvda1 / ext4 defaults 0 1/dev/xvda5 swap swap defaults 0 0d. 修改arch的启动脚本./etc/rc.sysinit和/etc/rc.multi在/etc/rc.sysiniit开头下面的内容之后添加:. /etc/rc.conf. /etc/rc.d/functions. /etc/rc.xen # 所添加的行注释掉下面这一行:# /sbin/bootlogd -p /run/bootlogd.pid修改/etc/rc.multi,注释掉以下几行:#/bin/touch /var/log/boot#kill /bin/cat /run/bootlogd.pid#/bin/rm /run/bootlogd.pide. 修改/etc/inittab文件去掉下面这行的注释:h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linuxf. 关闭虚拟机xm des 8g. 创建PV类型的虚拟机启动的配置文件内容如下:kernel = vmlinuz26-xenramdisk = kernel26-xen.imgmemory = 1024name = pvarch#bootloader=/usr/bin/pygrubvcpus = 8vif = mac=00:16:36:64:5e:ef, bridge=xenbr0 disk = file:/sdc1/drs_ltt/archlinux.img,xvda,w root = /dev/xvda1 roconsole = hvc0 或者以pygrub的方式启动#kernel = vmlinuz26-xen#ramdisk = kernel26-xen.imgmemory = 1024name = pvarchbootloader=/usr/bin/pygrubvcpus = 8vif = mac=00:16:36:64:5e:ef, bridge=xenbr0 disk = file:/sdc1/drs_ltt/archlinux.img,xvda,w root = /dev/xvda1 roconsole = hvc0h. 启动PV虚拟机xm cr c pvarch.cfg关于ubuntu 11.05 natty的domu 安装 (PV形式),请参考:http:/www.mmacleod.ca/blog/2011/05/ubuntu-natty-narwhal-and-xen/四、参考资料1. Xen - Archlinux wiki /index.php/Xen2. PV_OPS /xenwiki/XenParavirtOps3. Redhat Enterprise Linux 6 Xen 4.0 tutorial/xenwiki/RHEL6Xen4Tutorial4. Ubuntu 安装 xen (中文)/space.php?uid=25573859&do=blog&id=1867835. Set up Ubuntu 10.04 Server PV DomU at Xen 4.0 Dom0 (pvops 2 kernel) Dom0 on top of Ubuntu 10.04 Server/2010/04/24/set-up-ubuntu-10-04-server-pv-domu-at-xen-4-0-dom0-pvops-2-6-32-10-kernel-dom0-on-top-of-ubuntu-10-04-server/6. Installation XEN 4.0 from source/2010/07/installation-xen-40-from-source.html7. libvirt /index.php/Libvirt8. Gentoo Linux Documentation - Configuring Gentoo with Xen/doc/en/xen-guide.xml9. /archives/html/xen-users/2010-08/msg00602.html10. /blog/239820779/72298723911. /blog/239820779/72839009612. http:/www.mmacleod.ca/blog/2011/05/ubuntu-natty-narwhal-and-xen/五、附录1.根据MAC地址改变domU的IP地址背景:在局域网内批量创建虚拟机,IP地址如果一台一台修改,非常麻烦,如果能够自动地改变domu IP地址,就非常方便了。规则: 根据虚拟机启动配置文件中指定的MAC地址生成IP:vif = mac=00:16:0a:d6:10:0b, bridge=xenbr0 即00:16:0a:d6:10:0b, MAC地址一共6个字段,这里使用后四个字段与IP地址对应,即IP地址为1 (转换成十进制)。以下在虚拟机domU (archlinux) 中执行获取MAC地址的C代码 (getmacaddr.c):#include #include #include #include #include #include #include #include int main(void) int sfd; unsigned char *u; struct ifreq ifr; struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr; memset(&ifr, 0, sizeof ifr); if (0 (sfd = socket(AF_INET, SOCK_STREAM, 0) perror(socket(); exit(EXIT_FAILURE); strcpy(ifr.ifr_name, eth0); sin-sin_family = AF_INET; if (0 ioctl(sfd, SIOCGIFHWADDR, &ifr) return EXIT_FAILURE; u = (unsigned char *) &ifr.ifr_addr.sa_data; if (u0 + u1 + u2 + u3 + u4 + u5) printf(%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2xn, u0, u1, u2, u3, u4, u5); return EXIT_SUCCESS; 编译生成getmacaddr:gcc getmacaddr.c o getmacaddrchmod +x getmacaddrcp getmacaddr /usr/bin/创建启动脚本rc.xen,内容如下:#/bin/bash# Configure NetworkMAC=$(/usr/bin/getmacaddr)for i in $(echo $MAC | cut -d: -f3- | tr : ); do if -z $IP ; then IP=$(16#$i) else IP=$IP.$(16#$i) fidonesed -i -r s/eth0s+(0-9+.)30-9+/eth0 $IP/ /etc/rc.conf修改/etc/rc.multi启动脚本,在开头添加. /etc/rc.xen重启虚拟机,改变MAC值,虚拟机的IP与会随之改变。2.批量创建虚拟机参考:/%B0%B5%D4%C2%C1%F7%B9%E2/blog/item/8a0992b5589d2d668bd4b29e.html/cmtid/995e9c2bc57e5894033bf6ab 引用背景:在服务器上,经常需要启动数十个甚至上百个虚拟机,按照我们现有的方式可以安装一个虚拟机,然后复制相应的份数。在全虚拟化情况下,每个虚拟机至少需要4G以上空间,为了支持里面的应用,一般要分配10G左右,这样10个虚拟机就需要100G空间。事实上在目前为止里面还没有执行任何程序,这些空间都是分配,实际并不一定都要使用。是否能够实现用多少分配多少呢?分析下可以发现,每个虚拟机里面的内核都是一样的,大部分时候我们都不需要去修改里面的内核,是否能够共用内核? Copy-On-Write模式为我们提供了很好的解决方式,通过创建一个基础镜像(base image),里面把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建立起一个个增量镜像,每个增量镜像对应一个虚拟机,虚拟机对镜像中所有的改变都记录在增量镜像里面,基础镜像始终保持不变。这样我们建立10个虚拟机,需要的空间为:10G+10*52K(增量镜像的起始大小 可能偏差)=10G,一下节省了近90G的空间。 解决方法+结合1中的自动配置IP地址 代码 (create_vm_auto.py)(暂时只支持全虚拟化)#!/usr/bin/pythonimport osimport sysimport getopt# Default settingostype = hvmpath = /sdc1/drs_ltt/qcow-imgmem = 1024start = 2end = -1size = -1quiet = Falsedef usage(): print nusage: -sttStart number, from 2 to 254, default 2. -ettEnd number, from 2 to 254, default the same as start number. -mttSpecify vm memory in M, default 256. -tttSpecify vm type (hvm or pv), default hvm. -pttSpecify vm image base directory. -ittSpecify vm image size, like 40M, 1G etc. default the same size as b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司月度生日会策划方案
- 公司春节返工活动方案
- 公司晚上团建活动方案
- 公司相互送福字活动方案
- 公司组织种菜活动方案
- 公司短视频运营策划方案
- 公司文娱团建活动方案
- 公司管理层旅游策划方案
- 2025年自动化控制技术人员招聘考试试题及答案
- 拓展任务-避难场所
- 江西省吉安市遂川县2024-2025学年数学三下期末达标检测试题含解析
- EPC项目-总体实施方案
- 2024年青海省省直机关遴选公务员考试真题
- 2025年保健按摩师(初级)资格认证考试题库-上(单选题)
- 消除艾滋病、梅毒和乙肝母婴传播项目工作制度及流程(模板)
- 2024风电建设项目水土保持技术标准
- 高中英语新课标3000词汇表(新高考)
- 大豆病虫害的综合防治
- 妊娠期用药安全课件
- 体育场馆消防控制室操作规范
- 《中国政法大学》课件
评论
0/150
提交评论