您的位置:首页 > 其它

KVM虚拟机的创建、管理与迁移

2013-10-01 09:56 381 查看
[日期:2012-06-01]
KVM虚拟机管理一、环境role hostname ip OSkvm_server target 192.168.32.40/24 rhel6.0_x64vir_guest1 node4 192.168.32.34/24 rhel5.5_i386vir_guest2 node5 192.168.32.35/24 rhel5.5_i386manager manager 192.168.32.33/24 rhel5.5_i386ESXi ESXi 192.168.2.251/24 ESXi 3.5二、安裝kvm[root@target ~]# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 #安装kvm内核[root@target ~]# yum install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 #安装virt管理工具[root@target ~]# modprobe kvm #加载kvm内核[root@target ~]# modprobe kvm-intel #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。[root@target ~]# modprobe kvm-amd #amd cpu加载kvm-intel
[root@target ~]# modprobe -ls | grep kvm #查看内核是否开启kernel/arch/x86/kvm/kvm.kokernel/arch/x86/kvm/kvm-intel.kokernel/arch/x86/kvm/kvm-amd.ko[root@target ~]# modprobe -ls | grep kvm-intelkernel/arch/x86/kvm/kvm-intel.ko三、安装guest虚拟机1、直接通过virt-manager安装、管理虚拟机(略)2、通过命令行安装guest虚拟机[root@target ~]# yum install virt-viewer #开启图形控制台安装虚拟客户机需要,[root@target ~]# virt-install \ #安装选项可用virt-install --help查看--name node4 \ #虚拟机名--ram=1024 \ #分配内存大小,MB--arch=x86_64 \ #模拟的CPU 构架--vcpus=1 \ #配置虚拟机的vcpu 数目--check-cpu \ #检查确定vcpu是否超过物理 CPU数目,如果超过则发出警告。--os-type=linux \ #要安装的操作系统类型,例如:'linux'、'unix'、'windows'--os-variant=rhel5 \ #操作系统版本,如:'Fedora6', 'rhel5', 'solaris10', 'win2k'--disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true \ #虚拟机所用磁盘或镜像文件,size大小G--bridge=br0 \ #指定网络,采用透明网桥--noautoconsole \ #不自动开启控制台--pxe #网络安装四、利用virsh对虚拟机管理1、开关机[root@target ~]# virsh start node4 #开机[root@target ~]# virsh create /etc/libvirt/qemu/node4.xml #直接通过主机配置文档启动主机 [root@target ~]# virsh shutdown node4 #关机[root@target ~]# virsh destroy node4 #强制关闭电源[root@target ~]# virsh list --all #查看虚拟机状态 Id 名称 状态---------------------------------- 18 node4 running - node5 关闭 - win8 关闭
2、添加删除虚拟机[root@target ~]# virsh define /etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机[root@target ~]# virsh list --all #node5已经添加 Id 名称 状态---------------------------------- 18 node4 running - node5 关闭 - win8 关闭 [root@target ~]# virsh undefine node5 #移除虚拟机[root@target ~]# ls /etc/libvirt/qemunetworks node4.xml win8.xml[root@target ~]# virsh list --all #node5已经被移除 Id 名称 状态---------------------------------- 18 node4 running - win8 关闭
3、远程管理虚拟机(qemu+ssh连接)[root@target ~]# yum install virt-viewer[root@target ~]# export DISPLAY=192.168.40.18:0.0[root@target ~]# virt-viewer -c qemu///system node4 #本地管理虚拟机,system:获取system权限,注意qemu后是三个/[root@manager ~]# virt-viewer -c qemu+ssh://root@192.168.32.40/system node4 #远程linux通过virt-viewer+ssh管理虚拟机Xlib: extension "RANDR" missing on display "192.168.40.18:0.0".root@192.168.32.40's password:root@192.168.32.40's password: #会弹出virt-viwer的gtk管理界面
4、使用已存在的虚拟机配置文档安裝新的虚拟机[root@target ~]# qemu-img create -f qcow2 /virhost/kvm_node/node6.img 20G#为新建虚拟机生产磁盘镜像文件
[root@target ~]# virsh list Id 名称 状态---------------------------------- 18 node4 running
[root@target ~]# virsh dumpxml node4 >/etc/libvirt/qemu/node6.xml#导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml
[root@target ~]# vim /etc/libvirt/qemu/node6.xml <domain type='kvm' id='20'> #修改node6的id号 <name>node6</name> #虚拟机node6的name <uuid>4b7e91eb-6521-c2c6-cc64-c1ba72707fc7</uuid> #uuid必须修改,否则会和node4的冲突 <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='rhel5.4.0'>hvm</type> <boot dev='network'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/virhost/node4.img'/> #指定新虚拟机的硬盘文件 <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <mac address='54:52:00:69:d5:c7'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> </interface> <interface type='bridge'> <mac address='54:52:00:69:d5:d7'/> <source bridge='br0'/> <target dev='vnet1'/> <model type='virtio'/> </interface> <serial type='pty'> <source path='/dev/pts/4'/> <target port='0'/> </serial> <console type='pty' tty='/dev/pts/4'> <source path='/dev/pts/4'/> <target port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/> </devices></domain>[root@target ~]# virsh define /etc/libvirt/qemu/node6.xml #使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件[root@target ~]# virsh start node6#启动虚拟机5 为虚拟机开启vnc[root@target ~]# virsh edit node4 #编辑node4的配置文件;不建议直接通过vim node4.xml修改。<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/> #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码改为<graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='xiaobai'/> #固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络2. 远程vnc访问地址:192.168.32.40:5904

-----------------------------------------------------------------
centos6.2安装kvm虚拟机三月 6th, 2012
KVM虚拟机简介 kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。 KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。KVM虚拟机安装与使用1.前期准备 1.1确定机器有VT 不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo 如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。 1.2 确保BIOS里开启VT: Intel(R) Virtualization Tech [Enabled] 如有必要,还需在BIOS中开启VT 2.KVM虚拟机安装 安装相关的软件包 # yum -y groupinstall 'Virtualization' 'Virtualization Client' 'Virtualization Platform' 软件包安装完毕后,加载kvm模块 # modprobe kvm检查模块是否加载成功,执行如下命令, # lsmod |grep kvm 如果显示两行,说明模块正确加载 kvm_intel 47790 0 kvm 300762 1 kvm_intel 如果只显示一行,请检查 1,cpu是否支持VT技术 2,bios中是否将cpu的VT开启 接下来配置桥接网卡,网上有现成的脚本可以使用,这个是我在之前测试convirt时发现的,实际上是convirt的环境配置工具。 先将工具包下载下来下了 wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz然后解压软件包吧 # tar zxvf convirture-tools-2.0.1.tar.gz # /root/convirture-tools/install/managed_server/scripts/convirt-tool --bridge setup 执行完上述命令后,会自动将桥接网卡配置好,跑桥接自动好 启动服务 /etc/init.d/libvirt-guests start /etc/init.d/libvirtd start 到此,kvm虚拟化环境就全部配置完毕了 接下来我们用虚拟机来安装一个windows2003实际体验一下。 首先下载virto for win驱动,下载地址如下 http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/列表中的virtio-win-0.1-22.iso是安装windows完成后,使用的光盘驱动镜像(含virtio网卡和硬盘驱动) 软盘驱动目前从上面的url中移除了(原因不知),好在蚊子将其上传到了115网盘中,下载连接如下 http://115.com/file/annuyfsk#virtio-win-1.1.16.vfd准备工作就绪,下面就开始安装windows2003 执行如下命令# virt-install --name=win2k3 --ram=1024 --vcpus=2 --cpu host --cdrom=/data/win2003-1.iso --os-type=windows --disk /data/vm/win2k3.img,size=10,bus=virtio,cache=writeback --disk /data/virtio-win-1.1.16.vfd,device=floppy --network bridge=br0,model=virtio –graphics vnc,port=9901,listen=192.168.10.100,password=123456 --hvm --force下面对上面的命令进行解读--name 给虚拟机起个名字 --ram 分配给虚拟机的内存,单位MB --vcpus 分配给虚拟机的cpu个数 --cpu host 将宿主机的cpu配置传递给虚拟机,这样虚拟机可以使用宿主机cpu的很多features --cdrom 指定windows安装文件的全路径 --disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行 size 虚拟机文件大小,单位GB bus 虚拟机磁盘使用的总线类型,为了使windows达到好的性能,这里使用virtio cache 虚拟机磁盘的cache类型 之后还有一个--disk参数,这里是加载软驱文件device=floppy --network bridge 指定桥接网卡 model 网卡模式,这里也是使用性能更好的virtio --graphics 图形参数 执行完毕后,如果没有什么报错的话,即可以通过vnc的客户端进行连接了。之后的安装方式就和在真实服务器上安装windows一样了。这里蚊子截了几张图
如果不加载virtio的驱动,硬盘是认不出来的。如上图所示 加载软盘文件后,在安装windows2003时,点击F6,进入到加载驱动的界面。如上图
关于virt-install的命令可以查看man手册,或在线慢手册,地址为:http://linux.die.net/man/1/virt-install
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: