此次涉及到的KVM安装使用,前前后后大概花了5天时间,其中包括了重装了两次系统,搞蹦了三台机器的桌面环境,包括重装的这台。
背景环境,在centos6.2的64位下安装的,文档说32位的无法安装,就选择了64位的。
在安装之前要确认机器开启硬件虚拟化,进入系统的BIOS进行开启
查看机器的CPU是否支持KVM
[root@linux-216 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo
红色的VMX就代表inter的支持
进行安装
第一次安装步骤导致了桌面崩溃
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
这个是把virt-viewer virt-manager都安装进去了,这是虚拟机的桌面管理工具,因为是yum安装的,安装之后估计是导致了其他软件也升级了,桌面直接崩溃掉
用网上的方法
yum groupinstall "GNOME Desktop Environment"
并不能正常恢复桌面环境
一开始我以为在kvm环境下安装虚拟系统必须要用桌面环境,所有在这里卡了两天一直在想办法把桌面恢复,包括了重装系统的步骤。
在尝试几次桌面崩溃后,后群里有人指点,其实KVM根本不用桌面环境都是可以安装虚拟机系统的,多方查找之后进入了第二种安装,也是用yum安装的方式,只不过这次没有安装kvm的桌面环境
yum install qemu-kvm libvirt python-virtinst bridge-utils
检测安装成果
检测模块是否加载 [root@linux-216 ~]# lsmod | grep kvm kvm_intel 50380 4 kvm 305081 1 kvm_intel 若只看到第一行,没有第二行,说明没开启硬件虚拟化,需要从BIOS开启 检测KVM是否安装成功 [root@linux-216 ~]# virsh -c qemu:///system list Id 名称 状态 ----------------------------------------------------
修改网卡配置,添加虚拟网卡br0
[root@linux-216 ~]# cd /etc/sysconfig/network-scripts/ [root@linux-216 network-scripts]# cat ifcfg-em1 DEVICE="em1" NM_CONTROLLED="yes" ONBOOT="yes" TYPE=Ethernet BOOTPROTO=none BRIDGE=br0 [root@linux-216 network-scripts]# cat ifcfg-br0 DEVICE="br0" NM_CONTROLLED="yes" ONBOOT="yes" TYPE=Bridge BOOTPROTO=static IPADDR=192.168.1.216 PREFIX=24 GATEWAY=192.168.1.1 DNS1=202.96.128.86
em1不配实际的ip信息,在br0中配置ip信息,删掉网卡信息。
要关闭NetworkManager ,否则会影响网络的使用
[root@linux-216 network-scripts]# chkconfig NetworkManager off
在虚拟机中安装XP系统,这个是我要安装KVM最主要原因
在安装前要先VNC,远程桌面工具
直接下载后安装即可
http://pan.baidu.com/s/17qaKD
开始安装XP
WINDOWS环境安装参数 [root@linux-216 network-scripts]# virt-install --name=wintest04 --ram 512 --vcpus=2 --check-cpu --disk path=/data/vm_winxp_1/wintest04.img,size=8 --accelerate --cdrom /data/soft/DEEPBBS_GHOST_XP_SP3_2012.08.iso --vnc --vncport=5912 --vnclisten=0.0.0.0 --network bridge=br0 --force --autostart 开始安装...... 创建域...... | 0 B 00:00 WARNING 无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。 域安装仍在进行。您可以重新连接 到控制台以便完成安装进程。
参数说明 --name指定虚拟机名称 --ram分配内存大小。 --vcpus分配CPU核心数,最大与实体机CPU核心数相同 --disk指定虚拟机镜像,size指定分配大小单位为G。 --network网络类型,此处用的是默认,一般用的应该是bridge桥接。 --accelerate加速 --cdrom指定安装镜像iso --vnc启用VNC远程管理,一般安装系统都要启用。 --vncport指定VNC监控端口,默认端口为5900,端口不能重复。 --vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。 --os-type=linux,windows --os-variant= win7:MicrosoftWindows7 vista:MicrosoftWindowsVista winxp64:MicrosoftWindowsXP(x86_64) winxp:MicrosoftWindowsXP win2k8:MicrosoftWindowsServer2008 win2k3:MicrosoftWindowsServer2003 freebsd8:FreeBSD8.x generic:Generic debiansqueeze:DebianSqueeze debianlenny:DebianLenny fedora16:Fedora16 fedora15:Fedora15 fedora14:Fedora14 mes5.1:MandrivaEnterpriseServer5.1andlater mandriva2010:MandrivaLinux2010andlater rhel6:RedHatEnterpriseLinux6 rhel5.4:RedHatEnterpriseLinux5.4orlater rhel4:RedHatEnterpriseLinux4 sles11:SuseLinuxEnterpriseServer11 sles10:SuseLinuxEnterpriseServer ubuntuoneiric:Ubuntu11.10(OneiricOcelot) ubuntunatty:Ubuntu11.04(NattyNarwhal) ubuntumaverick:Ubuntu10.10(MaverickMeerkat) ubuntulucid:Ubuntu10.04(LucidLynx) ubuntuhardy:Ubuntu8.04LTS(HardyHeron)
看到最后提示 “域安装仍在进行。您可以重新连接到控制台以便完成安装进程。”
此时,用VNC工具进行连接进去,关于VNC使用可以自行查找资料
注意后面所带的端口号
然后就像平常安装系统那样安装完即可
安装完还有会用另一个重启的操作,此时要从linux主机进行用命令触发它,让xp虚拟机启动
最开始一直以为这一步必须要用桌面环境才能触发启动的,所以一直卡在这一步,后来发现其实这边也是可以用命令完成的,所以之存在的问题都不是问题了。
进入虚拟机控制台命令环境
[root@linux-216 network-scripts]# virsh 欢迎使用 virsh,虚拟化的交互式终端。 输入:'help' 来获得命令的帮助信息 'quit' 退出 列出所有的虚拟机 virsh # list --all Id 名称 状态 ---------------------------------------------------- 1 wintest03 running 5 wintest04 running - wintest01 关闭 - wintest02 关闭 停止wintest04虚拟机 virsh # destroy wintest04 域 wintest04 被删除 virsh # list --all Id 名称 状态 ---------------------------------------------------- 1 wintest03 running - wintest01 关闭 - wintest02 关闭 - wintest04 关闭 启动wintest04虚拟机 virsh # start wintest04 域 wintest04 已开始
用这种方式就可以不用桌面环境进行启动关闭虚拟机了。
然后等到安装完后,用vnc配置远程桌面后就可以使用了。
virsh控制台管理虚拟机
virsh # list --all Id 名称 状态 ---------------------------------------------------- 1 wintest02 running 4 wintest04 running - wintest01 关闭 - wintest03 关闭 virsh # shutdown wintest02 域 wintest02 被关闭 virsh # list --all Id 名称 状态 ---------------------------------------------------- 4 wintest04 running - wintest01 关闭 - wintest02 关闭 - wintest03 关闭 virsh # start wintest02 域 wintest02 已开始
正常的话,shutdown是无法使用的
需要开启acpi进程
[root@linux-216 ~]# service acpid restart 正在关闭 acpi 守护进程: [确定] 启动 acpi 守护进程: [确定] [root@linux-216 ~]# chkconfig acpid on
接下来就是虚拟机的复制问题了,要做多个虚拟机,就要复制这个已安装好的,就不用重做系统了。
待续。。。。
续篇~~
三步走克隆虚拟机
第一步,复制虚拟机的镜像文件
创建新的镜像文件为 214_vir_202.img
[root@linux-214 vm_winxp_1]# ll 总用量 3579124 -rwxr-xr-x. 1 qemu qemu 8589934592 11月 20 20:21 214_vir_201.img -rwxr-xr-x. 1 root root 8589934592 11月 20 19:44 wintxp01.img [root@linux-214 vm_winxp_1]# pwd /data/vm_winxp_1 [root@linux-214 vm_winxp_1]# cp wintxp01.img 214_vir_202.img [root@linux-214 vm_winxp_1]# ll 总用量 5358520 -rwxr-xr-x. 1 qemu qemu 8589934592 11月 20 20:22 214_vir_201.img -rwxr-xr-x. 1 root root 8589934592 11月 20 20:22 214_vir_202.img -rwxr-xr-x. 1 root root 8589934592 11月 20 19:44 wintxp01.img
第二步,添加新虚拟机 214_vir_202 的配置文件
进入配置文件的目录
/etc/libvirt/qemu
创建214_vir_202的配置文件
[root@linux-214 qemu]# virsh dumpxml winxp01 > /etc/libvirt/qemu/214_vir_202.xml [root@linux-214 qemu]# ll 总用量 24 -rw-r--r--. 1 root root 2144 11月 20 20:07 214_vir_201.xml -rw-r--r--. 1 root root 2137 11月 20 20:26 214_vir_202.xml drwxr-xr-x. 2 root root 4096 11月 19 19:07 autostart drwx------. 3 root root 4096 11月 19 16:35 networks -rw-------. 1 root root 2362 11月 20 19:36 winxp01.xml -rw-------. 1 root root 2362 11月 20 19:30 winxp01.xml.bak
修改214_vir_202的配置文件
包括:name,uuid,disk,vnc
其中uuid需要用命令生成
[root@linux-214 vm_winxp_1]# uuidgen -r febf42d9-677d-41db-8f01-bf4d505cb21a
保存退出
用配置文件方法启动 214_vir_202 虚拟机
[root@linux-214 vm_winxp_1]# virsh create /etc/libvirt/qemu/214_vir_202.xml 域 214_vir_202 被创建(从 /etc/libvirt/qemu/214_vir_202.xml)
第三步,用VNC连接进去,端口为12,进行修改虚拟机的ip跟主机名,否则会有冲突。
在使用过程中发现一个问题,使用virsh create 方式启动虚拟机的话,当关闭后virsh控制台中没有这个虚拟机
运行状态时
virsh # list --all Id 名称 状态 ---------------------------------------------------- 8 214_vir_201 running - winxp01 关闭
当关闭214_vir_201后控制台中就没有这个虚拟
virsh # list --all Id 名称 状态 ---------------------------------------------------- - winxp01 关闭
所以要把 214_vir_201 使用define命令加入到控制台中
[root@linux-214 vm_winxp_1]# virsh define /etc/libvirt/qemu/214_vir_202.xml 定义域 214_vir_202(从 /etc/libvirt/qemu/214_vir_202.xml) [root@linux-214 vm_winxp_1]# virsh define /etc/libvirt/qemu/214_vir_201.xml 定义域 214_vir_201(从 /etc/libvirt/qemu/214_vir_201.xml)
virsh # list --all Id 名称 状态 ---------------------------------------------------- - 214_vir_201 关闭 - 214_vir_202 关闭 - winxp01 关闭
加入控制台后,就可以直接启动,关闭虚拟机
virsh # start 214_vir_201 域 214_vir_201 已开始 virsh # list --all Id 名称 状态 ---------------------------------------------------- 12 214_vir_201 running - 214_vir_202 关闭 - winxp01 关闭
其他东西 待续~~
查看虚拟机状态
virsh # list --all Id 名称 状态 ---------------------------------------------------- 5 216_vir_207 running 7 216_vir_206 running - wintest03 关闭 - wintest08 关闭 - winxp04 关闭 virsh # dominfo 216_vir_206 Id: 7 名称: 216_vir_206 UUID: 2e457976-366e-4cce-92fd-3b6b0e4d1f6e OS 类型: hvm 状态: running CPU: 4 CPU 时间: 214.2s 最大内存: 524288 KiB 使用的内存: 524288 KiB Persistent: no 自动启动: 禁用 Managed save: no 安全性模式: none 安全性 DOI: 0
修改虚拟机的内存大小
计算2G的内存值,随便用什么计算都行
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 2*1024*1024 2097152 >>>
修改配置文件
[root@linux-216 vm_winxp_1]# vim 216_vir_206.img
查看下修改后想信息
virsh # dominfo 216_vir_206 Id: 8 名称: 216_vir_206 UUID: 2e457976-366e-4cce-92fd-3b6b0e4d1f6e OS 类型: hvm 状态: running CPU: 4 CPU 时间: 428.0s 最大内存: 2097152 KiB 使用的内存: 2097152 KiB Persistent: no 自动启动: 禁用 Managed save: no 安全性模式: none 安全性 DOI: 0
添加开机自启动
virsh # autostart 214_vir_201 域 214_vir_201标记为自动开始
注:在控制命令中添加到开机启动的话,必须先进行定义到控制面板中,否则无法设定。
取消开机启动
virsh # autostart --disable winxp01 域 winxp01取消标记为自动开始 virsh # autostart --disable 214_vir_201 域 214_vir_201取消标记为自动开始 virsh # autostart --disable 214_vir_202 域 214_vir_202取消标记为自动开始 virsh # autostart --disable 214_vir_203 域 214_vir_203取消标记为自动开始
安装centos
[root@linux-216 vm_linux]# pwd /data/vm_linux [root@linux-216 vm_linux]# qemu-img create -f qcow2 centos6.2_01.img 7G Formatting 'centos6.2_01.img', fmt=qcow2 size=7516192768 encryption=off cluster_size=65536 [root@linux-216 vm_linux]# virt-install --name=centos6.2_01 --os-variant=centos6.2 --ram 512 --vcpus=1 --disk path=/data/vm_linux/centos6.2_01.img,format=qcow2,size=7,bus=virtio --accelerate --cdrom /data/soft/CentOS-6.2-x86_64-bin-DVD1.iso --vnc --vncport=5919 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole