KVM安装配置手册.docx

上传人:飞****2 文档编号:60097170 上传时间:2022-11-13 格式:DOCX 页数:16 大小:263.71KB
返回 下载 相关 举报
KVM安装配置手册.docx_第1页
第1页 / 共16页
KVM安装配置手册.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《KVM安装配置手册.docx》由会员分享,可在线阅读,更多相关《KVM安装配置手册.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、KVM安装配置手册1. 安装过程介绍KVM是作为Linux2.6.20以上版本的一个内核模块提供的。因此,安装KVM最直接的办法就是安装Linux2.6.20以上版本或编译新的Linux内核,这样可以避免版本不一致问题。此外,KVM的运行需要qemu的支持,所以要安装qemu以及qemu加速器kqemu。为了方便管理虚拟机,最后还需要安装一个图形化管理界面,目前装的是virt-manager。安装linux5时,输入下列序列号就可以自动安装KVM和XEN+ Red Hat Enterprise Linux Virtualization Platform:49af89414d2. 编译Linux

2、内核Linux内核编译的详细介绍请参见Linux内核编译操作手册.doc。下面简要介绍安装步骤:1. 从http:/www.kernel.org下载新的内核版本(本次实验用的是linux-2.6.32.36,其他版本编译有新的细节,本手册不保证可行)。2. 解压缩核心源码:tar -zxvf linux-2.6.32.36.tar.gz.tar.gz如果你所下载的是.bz2文件,例如linux-2.6.32.36.tar.bz2,请使用下面的命令 #bzip2 -d linux-2.6.32.36.tar.bz2 #tar -xvf linux-2.6.32.36.tar3. 进入源码目录:c

3、d /home/zhk/linux-2.6.32.36./4. make mrproper5. 配置makefilemake menuconfig是菜单方式编辑(需要安装一个rpm请看提示)make xconfig是图形方式编译(需要安装QT,如果Linux上没有建议不用考虑了,qt依赖很多,用rpm根本装不上)上面另个命令中的一个配置完后,会在源码根目录生成.config文件6. 编译时修改.config文件中的“CONFIG_SYSFS_DEPRECATED_V2”,默认该选项为not set,被注释掉的,将其改为y。即修改为“CONFIG_SYSFS_DEPRECATED_V2=y”,修

4、改后再次编译(一定要改,否则起不来)。7. make dep8. make clean9. make bzImage10. make modules11. make modules_install12. depmod a13. cp 源码目录/System.map /boot/System.map-2.6.32.3614. cp 源码目录/arch/i386/bzImage /boot/vmlinuz-2.6.32.36注:如果是64位的i386会是x86_64目录15. 生成initrd文件mkinitrd /boot/initrd-2.6.39-rc1.img 2.6.39-rc1如果在执

5、行mkinitrd命令时,提示“No module dm-mem-cache found for kernel 2.6.29.1, aborting.”时,表明该版本的mkinitrd有bug。解决方法,1是当使用mkinitrd时,使用”without-dmraid”这个参数。2是在使用mkinitrd之前,先创建一个noraid文件。创建方法如下:# echo DMRAID=no /etc/sysconfig/mkinitrd/noraid# chmod 755 /etc/sysconfig/mkinitrd/noraid16. 修改启动管理器 如果用LILO修改/etc/lilo.con

6、f,添加以下项: image=/boot/vmlinuz-2.4.18 label=linux240 read-only root=/dev/hda2 其中root=/dev/hda2一行要根据需要自行加以修改。 运行: #/sbin/lilo -v 确认对/etc/lilo.conf的编辑无误,现在重新启动系统: #shutdown -r now 如果是用Grub启动管理器title Red Hat Linux (2.6.32) root (hd0,0) kernel /vmlinuz-2.6.32.36 ro root=/dev/hda2Grub不需再次调用命令,自动生效。 重启以后就可以

7、用新内核了。注:root后面跟的参数是挂载根目录的设备查看方法是df -lh17. 修改内核头文件新的内核有新的头文件,当在新内核上编译安装其他程序时,头文件非常重要,所以要把旧内核的头文件备份,连接换成新的。只有下面几个头文件目录需要处理:# ln -s /usr/src/linux/arch/x86/include/asm asm # ln -s /usr/src/linux/include/asm-generic asm-generic# ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scs

8、i scsi 注:这个如果有问题需要换回去18. 都配置好了就可以重启了,启动时会让选要进入的内核版本19. 如果启动时报错如下错误,按下面方法修改:解决内核编译dm-region-hash File Exists 错误:编译2.6.33内核后重启出现insmod: error inserting /lib/dm-region-hash.ko : -1 File exists解决方法:1,解压initrd文件rootbogon # cp /boot/initrd-2.6.32.36.img /tmprootbogon # cd /tmp/rootbogon tmp# lsinitrd-2.6.

9、30.4.imgrootbogon tmp# mkdir newinitrdrootbogon tmp# cd newinitrd/rootbogon newinitrd# zcat ./initrd-2.6.32.36.img |cpio -i11537 blocks释放之后看到如下内容rootbogon newinitrd# lsbin dev etc init lib proc sbin sys sysroot2,ok,下边就是编辑init,删掉其中重复的四行中的两行echo Loading dm-region-hash.ko moduleinsmod /lib/dm-region-ha

10、sh.koecho Loading dm-region-hash.ko moduleinsmod /lib/dm-region-hash.ko3,重新打包initrdrootbogon newinitrd# find . | cpio -c -o ./initrd11538 blocksrootbogon newinitrd# cd .rootbogon tmp# gzip -9 initrd.imgrootbogon tmp# lsinitrd-2.6.32.36.img initrd initrd.img newinitrd3. 安装QEMU和KQEMU如果新内核编译启动没有问题,就在新内

11、核上安装QEMU和KQEMU。编译安装方法一致:1. 解压源码包2. 到源码包根目3. 做make的配置:./configureConfigure时要注意输出中提示是否支持KVM。如果上面的头文件没有问题,一般是yes4. make5. make install4. 配置网桥由于虚拟机和主机要共用网络设备,最稳定的方法是在操作系统上建立网桥,然后,虚拟机和主机都通过网桥访问网络。建立网桥的办法如下:1. 网络管理器不支持桥接。必须禁用网络管理器才可使用旧的网络脚本联网。#chkconfig NetworkManager off#chkconfig network on#service Netw

12、orkManager stop#service network start执行完上面命令可以看看network是不是起来了#service network status2. 修改网络脚本,禁止网络设备启动时使用cd /etc/sysconfig/network-scriptsvi ifcfg-eth0 注:修改这个脚本是为了启动时,不直接用以太网设备而是用网桥。文件最后内容如下:DEVICE=eth0# change the hardware address to match the hardware address your NIC usesHWADDR=00:16:76:D6:C9:45O

13、NBOOT=yesBRIDGE=br0Tip您可以在配置文件最后附加 MTU 变量配置设备的最大传输单位(MTU)。MTU=90003. 添加网桥设备配置在 /etc/sysconfig/network-scripts 目录中创类似的新网络脚本ifcfg-br0。br0是桥接名称,它可以是任何名称,只要该文件名称与 DEVICE 参数一致即可。DEVICE=br0TYPE=Bridge-BOOTPROTO=dhcp注:这是用dhcp的配法,如果固定ip请参见下面BROADCAST=192.9.100.255HWADDR=mac地址(不要和网络设备重就可以)IPADDR=192.9.100.12

14、IPV6INIT=yesIPV6_AUTOCNF=yesNETMASK=255.255.255.0NETWORK=192.9.100.0-ONBOOT=yesDELAY=04. 配置后请重启联网或者重新引导# service network restart# sysctl -p /etc/sysctl.conf# service libvirtd reload# brctl show 注:如果有网桥了,会看到类似下面的东西bridge namebridge idSTP enabledinterfacesbr08000.842b2b42f942noeth0virbr08000.0yes请注意:该

15、桥接完全独立于 virbr0 桥接。不要试图将物理设备附加到 virbr0。virbr0 桥接只用于网络地址转换(NAT)连接性。5. 安装virt-manager从安装盘的server目录里找rpm包装就行了,会有些依赖,按照提示找相关的rpm包一个一个装就可以,费点事但半小时内应该可以都装上。装完了会在菜单中发现 应用程序-系统工具-虚拟系统管理。如果qemu安装的位置不对,virt-manager会找不到qemu的执行文件。通过报错可以知道它要找的文件位置,在那个地方建立一个连向执行文件的连接就可以了。Virt-manager操作很简单,创建虚拟机都是图形化向导,按步骤做就可以。这里不详

16、述了。6. 关闭防火墙和SELinux由于防火墙和SELinux会阻止libvirt为虚拟机创建虚拟的网络设备,所以要禁用掉。禁用办法如下:用setup命令可以进入配置界面,在防火墙配置里面,修改安全级别为禁用,SELinux为禁用。7. 通过命令管理虚拟机1. 创建虚拟机命令#virt-install -n cloud -r 256 -f cloud.img -s 4 -c jeos.iso -accelerate -connect=qemu:/system -vnc -noautoconsolel -n :本例中的新虚拟机的名字将是cloud。l -r 256:指定虚拟机将使用的内存大小。

17、l -f cloud.img: indicates the path to the virtual disk which can be a file, partition, or logical volume. In this example a file named cloud.img. l -s 4:虚拟磁盘的大小。l -c jeos.iso:文件将被当作虚拟的CDROM。此文件可以是一个ISO文件或是通往主机的CDROM设备。l -accelerate:应用内核加速技术。l -vnc:用VNC输出客机的虚拟控制台。l -noautoconsole:将不会自动连接到虚拟机的控制台。当启动v

18、irt-install后,你可以通过使用GUI进行本地或者使用virt-viewer工具来连接到虚拟机。2. 虚拟机克隆(virt-clone程序可从一个虚拟机复制成另一个)sudo virt-clone -o cloud -n database_devel -f /path/to/database_devel.img -connect=qemu:/system l -o:原始虚拟机。l -n:新的虚拟机的名字。l -f:文件、逻辑卷或新虚拟机使用的分区的路径。l -connect:指定要连接的管理程序。还有,用-d或debug选项来为virt-clone寻找故障。3. 命令行的虚拟机管理方式

19、virsh有几个工具可以用来管理虚拟机和libvirt。virsh工具要顺命令行下使用。一些例子:l 列出正运行的虚拟机:virsh -c qemu:/system listl 启动一个虚拟机:virsh -c qemu:/system start cloudl 类似地,在启动时开始一个虚拟机:virsh -c qemu:/system autostart cloudl 重启一个虚拟机:virsh -c qemu:/system reboot cloudl 虚拟机的状态可被保存到一个文件中以方便稍后恢复。如下命令会将虚拟机的状态保存到一个以日期命名的文件中:virsh -c qemu:/sys

20、tem save cloud cloud-.state一旦保存,虚拟机将不再运行。l 一个经保存后的虚拟机可以用如下命令唤醒:virsh -c qemu:/system restore cloud-.statel 要关闭一个虚拟机,输入:virsh -c qemu:/system shutdown cloudl CDROM设备可以通过如下命令挂载到虚拟机上:virsh -c qemu:/system attach-disk cloud /dev/cdrom /media/cdrom8. 查看虚拟机virt-viewer 程序使您能够连接到虚拟机。 运行virt-viewer需要您的虚拟机具备图

21、形(GUI)支持。要从命令行安装virt-viewer,输入:sudo apt-get install virt-viewer当虚拟机安装并运行后,你可以通过如下命令连接到虚拟机的控制台:virt-viewer qemu:/system cloud和virt-manager相似,virt-viewer也可以通过键授权的SSH连接到远方主机:virt-viewer -c qemu+ssh:/ cloud要用相应的虚拟机名字替换cloud。9. virt-manager做KVM动态迁移l 什么是动态迁移动态迁移(Live Migration):也叫在线迁移(Online Migration)。就是

22、在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机的虚拟机上运行,当迁移进行到一定阶段,目的主机已经具备了运行虚拟机系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,虚拟机系统在目的主机上继续运行。对于虚拟机服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。动态迁

23、移适用于对虚拟机服务可用性要求很高的场合。l 在集中式共享外部存储的环境下,基于共享存储的动态迁移技术会实现更高效的迁移效果,因此kvm动态迁移只研究基于共享存储的实现。共享存储的配置方式如下:n 利用virt-manager建立共享存储池。双击一台物理节点,可以配置其存储。见下图:n 注意类型要设置为网络的。见下图:n 设置具体位置信息。主机名是nfs主机的ip。目标路径是程序自己定义的。源路径是nfs上共享文件夹路径。因为建立的是nfs服务器,所以格式选nfs。l 用共享存储实现虚拟机动态迁移,虚拟机的磁盘镜像文件必须在共享存储池中。如果没有镜像文件可以利用“新建卷”建立一个镜像文件,然后

24、在建立虚拟机选择磁盘时选择该文件。l 基于virt-manager图形界面的迁移操作。右键要迁移的虚拟机,可以看到迁移菜单。选择该菜单可以进行迁移配置。新主机是迁移的目标主机,可选的主机包括virt-manager接入的所有主机。一定要配置高级选项,地址为新主机ip地址,端口可以默认,带宽是网络可用带宽。设置好后选择“迁移”,就可以等待管理平台进行迁移操作了。迁移后会发现目标主机下将多出一个和迁移虚拟机同名的虚拟机,并且是运行状态,这证明迁移成功。10. 配置网络桥禁用 Xen 网络脚本如果您的系统使用 Xen 桥接,则建议您编辑 /etc/xen/xend-config.sxp 文件并更改以

25、下行禁用默认 Xen网络桥接:(network-script network-bridge)To:(network-script /bin/true)禁用网络管理器(NetworkManager)网络管理器不支持桥接。必须禁用网络管理器才可使用旧的网络脚本联网。#chkconfig NetworkManager off#chkconfig network on#service NetworkManager stop#service network startNoteInstead of turning off NetworkManager, you can add NM_CONTROLLED=

26、no to the ifcfg-* scriptsused in the examples.生成网络初始化脚本创建或者编辑以下两个网络配置文件。可重复这一步(使用不同名称)添加额外网络桥接。改为 /etc/sysconfig/network-scripts 目录:# cd /etc/sysconfig/network-scripts为您添加到桥接中的设备打开网络脚本。在这个示例中,ifcfg-eth0 定义已被设定为桥接一部分的物理网络接口:DEVICE=eth0# change the hardware address to match the hardware address your N

27、IC usesHWADDR=00:16:76:D6:C9:45ONBOOT=yesBRIDGE=br0Tip您可以在配置文件最后附加 MTU 变量配置设备的最大传输单位(MTU)。MTU=9000在 /etc/sysconfig/network-scripts 目录中创建名为 ifcfg-br0 和类似的新网络脚本。br0 是桥接名称,它可以是任何名称,只要该文件名称与 DEVICE 参数一致即可。DEVICE=br0TYPE=BridgeBOOTPROTO=dhcpONBOOT=yesDELAY=0WarningThe line, TYPE=Bridge, is case-sensitive

28、. It must have uppercase B and lower case ridge.配置后请重启联网或者重新引导。# service network restartConfigure iptables to allow all traffic to be forwarded across the bridge.# iptables -I FORWARD -m physdev -physdev-is-bridged -j ACCEPT# service iptables save# service iptables restartDisable iptables on bridges

29、Alternatively, prevent bridged traffic from being processed by iptables rules. In /etc/sysctl.confappend the following lines:net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0Reload the kernel parameters configured with sysctl# sysctl

30、 -p /etc/sysctl.confRestart the libvirt daemon.# service libvirtd reloadYou should now have a shared physical device, which guests can be attached and have full LAN access.Verify your new bridge:# brctl showbridge namebridge idSTP enabledinterfacesbr08000.842b2b42f942noeth0virbr08000.0yes请注意:该桥接完全独立

31、于 virbr0 桥接。不要试图将物理设备附加到 virbr0。virbr0 桥接只用于网络地址转换(NAT)连接性。我的笔记错误排除Virt-install报错virt-install -name cloud_rel5.5_1 -hvm -ram 256 -vcpus 2 -disk path=/vm/rel5.5.img,size=4 -network network:default -accelerate -vnc -vncport=5911 -os-variant rhel5.4 -l /var/www/html/RHEL_5.5_x86_64.iso d出现:ERROR unsupp

32、orted configuration: Only PCI device addresses with function=0 are supported with this QEMU binary一, 03 6月 2013 11:23:43 DEBUG Traceback (most recent call last): File /usr/sbin/virt-install, line 629, in start_install noboot=options.noreboot) File /usr/lib/python2.6/site-packages/virtinst/Guest.py,

33、line 1223, in start_install noboot) File /usr/lib/python2.6/site-packages/virtinst/Guest.py, line 1291, in _create_guest dom = self.conn.createLinux(start_xml or final_xml, 0) File /usr/lib64/python2.6/site-packages/libvirt.py, line 2622, in createLinux if ret is None:raise libvirtError(virDomainCre

34、ateLinux() failed, conn=self)libvirtError: unsupported configuration: Only PCI device addresses with function=0 are supported with this QEMU binary一, 03 6月 2013 11:23:43 DEBUG Domain installation does not appear to have been successful.If it was, you can restart your domain by running: virsh -connec

35、t qemu:/system start cloud_rel5.5_1otherwise, please restart your installation.Domain installation does not appear to have been successful.If it was, you can restart your domain by running: virsh -connect qemu:/system start cloud_rel5.5_1otherwise, please restart your installation.原因分析:virt-install工

36、具在进行客户机系统安装的时候错误地将客户机的网卡连接到libvirtd服务起的网桥virbr0上排查原因,因为开VM时,用到了网桥的连接方式,所以通过下面的命令查看网桥信息:rootlocalhost vm# brctl showbridge name bridge id STP enabled interfacesvirbr0 /sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/br

37、idge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or dir

38、ectory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory/sys/class/net/virbr0/bridge: No such file or directory8000.ace682 yes virbr0-nic问题是:Bridge problems and errors with custom dom0

39、kernel This problem happens because Redhat added bridge IGMP snooping support to rhel6 2.6.32 kernel, and also to rhel6 bridge-utils. If you use mainline or custom Linux 2.6.32 kernel with el6 distro then you wont have that bridge IGMP snooping support in the kernel, and bridge-utils (brctl) will gi

40、ve errors like above. There are two workarounds: 1.Use Xen dom0 kernel based on actual rhel6 kernel/patches, mayoung does have xendom0 kernel available for el6 distros based on actual rhel6 kernel, with xen dom0 pvops patches added on top, so it includes bridge IGMP snooping support and the default

41、el6 bridge-utils works OK without errors. See the end of this wiki tutorial page for links to xendom0 kernel rpms.2. If using custom dom0 kernel (xen.git xen/stable-2.6.32.x) then rebuild the el6 bridge-utils src.rpm and remove the IGMP snooping patch from the spec file: 解决方法:这里,我采用了第2种方法:根据链接文档中的说明

42、“Luckily, Fedora 14s bridge-utils-1.2-9.fc13 RPM doesnt expect the IGMP snooping stuff and works perfectly on the dom0 kernel”,因此从 bridge-utils-1.2-9.fc13.x86_64.rpm (from Fedora 14),替换已安装的bridge-utils(若没有安装,则直接安装即可)。之所以选择这个版本,是因为我的CentOS中已有版本为bridge-utils-1.2-9.el6.x86_64.rpm。 替换步骤: (1) 删除已安装的bridg

43、e-utils roott400 # yum remove bridge-utils-1.2-9.el6.x86_64 (2) 安装新的bridge-utils-1.2-9.fc13.x86_64.rpm roott400 # rpm -ivh bridge-utils-1.2-9.fc13.x86_64.rpm (3) 查看安装后的版本 roott400 # rpm -qa | grep bridge-utils若安装birdge-utils报如下错误:rootlocalhost zhk# rpm -ivh bridge-utils-1.5-4.fc18.x86_64.rpm warning

44、: bridge-utils-1.5-4.fc18.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID de7f38bd: NOKEYerror: Failed dependencies: libc.so.6(GLIBC_2.14)(64bit) is needed by bridge-utils-1.5-4.fc18.x86_64rootlocalhost zhk# strings /lib64/libc.so.6 |grep GLIBC_GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.

45、3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_PRIVATE解决方法:实现方法virt-install -name cloud_rel5.5_1 -hvm -ram 256 -vcpus 2 -disk path=/vm/rel5.5.img,size=4 -network network:default -accelerate -vnc -vncport=5911 -os-variant rhel5.4 -l /var/www/html/RHEL_5.5_x

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁