-
KVM使用原生CPU - [Linux]
2012-01-10
默认情况下 CentOS 6 安装虚拟机后的CPU是:QEMU Virtual CPU,一般使用是没有问题的,只是性能低下,PHP一个10万次循环的脚本居然需要执行50多秒,而母系统执行只需2秒多,差距有点儿太大。
# virsh edit vm_name <domain type='kvm'> ...... <qemu:commandline> <qemu:arg value='-cpu'/> <qemu:arg value='host'/> </qemu:commandline> </domain>一般建议使用 virsh edit 编辑虚拟机配置文件,避免文件被破坏。
-
CentOS 6 安装配置KVM小记 - [Linux]
2011-12-10
作为一名半调子系统管理员,XEN那dom0,domU还要编译内核,这简直要了我的亲命,KVM作为一个CentOS 6开始唯一内置支持的虚拟化,安装配置简单,很适合我。
安装:
KVM需要CPU支持vmx(Intel)或svm(AMD)。
$ cat /proc/cpuinfo | egrep 'vmx|svm' flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
安装KVM组件
# yum groupinstall Virtualization # yum groupinstall "Virtualization Platform"
重启后检查是否安装成功,若使用Intel CPU会显示 kvm_intel。
# lsmod | grep kvm kvm_amd 37434 4 kvm 292815 1 kvm_amd
OK,就这么简单,KVM安装完成。
周边工具:
virt-manger与virt-viewer是基于X Window的图形化管理工具,优点呢就是操作简单、鼠标点点,坏处自然就是要装一堆图形组件,对于服务器来说这些东西有些太多余。
服务器上最好用的当然是命令行工具
yum install libvirt-client python-virtinst
libvirt-client 提供了 virsh,主要功能为:启动、重启、停止等管理功能。
python-virtinst 提供了 virt-install 安装工具。
安装虚拟机
# virt-install \ --name gentoo6 \ --ram 512 \ --vcpus=1 \ --disk path=/var/vps/gentoo6.img,size=4 \ --network network:default \ --os-variant=generic26 \ --accelerate \ --cdrom /var/vps/install-amd64-minimal-20111201.iso \ --vnc \ --vncport=5911 \ --vnclisten=0.0.0.0
--name 指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。
--ram 分配内存大小,安装完成后可以用 virsh 调整。
--vcpus 分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用 virsh 调整。
--disk 指定虚拟机镜像, size 指定分配大小单位为G。
--network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接,这个下次再说。
--os-variant 指定操作系统类型,此处使用的是标准Linux 2.6,其他的可以通过 man virt-install 详细查看。
--accelerate 呃,加速,具体什么原理还不太清楚。
--cdrom 指定安装镜像所在。
--vnc 启用VNC远程管理,一般安装系统都要启用。
--vncport 指定 VNC 监控端口,默认端口为 5900。
--vnclisten 指定 VNC 绑定IP,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接。
执行后如果没有安装 virt-viewer 或没有 X Window 系统可能会提示 virt-viewer 启动失败,不过没关系,使用 VNC Viewer 或者 MAC 下使用Chicken of the VNC连接到实体机,端口使用上面指定的就可以操作安装过程。另外需要注意的是,某些系统安装盘有等待输入时间,超过时间会自动使用硬盘启动,所以VNC连接一定要快,否则就需要 virsh destroy 然后 virsh start 再启动,因为系统尚未安装成功,此时的 virsh reboot 执行是无效的。
virsh 常用命令
virsh list 列出当前虚拟机列表,貌似不包括未启动的。
virsh start domain-name 启动指定虚拟机。
virsh shutdown domain-name 停止指定虚拟机,执行此命令后 virsh list 里将不出现。
virsh reboot domain-name 重新启动指定虚拟机,这个命令貌似必须系统安装完成后才有效。
virsh autostart domain-name 指定虚拟机开机自动启动,需要 libvirtd 服务默认启动。
还有更多,一时也没全搞明白,全写出来估计可以写本手册了。
其他
虚拟机配置存储在 /etc/libvirt/qemu 目录,配置文件为XML格式。
自动启动的虚拟机在 /etc/libvirt/qemu/autostart 目录。