kvm是虚拟化技术的一个典型实现,功能非常强大,使用很方便。kvm本身主要实现对CPU的虚拟化,内存和IO的虚拟化使用了开源软件qemu,qemu是纯软件层面的虚拟化,其实就是个模拟器。kvm要求cpu必须支持硬件虚拟化,可以通过Linux命令查看。
说到kvm必须提及libvirt程序集,它是用来管理kvm虚拟机的,当然其实也可以管理xen等其它虚拟化的虚拟机。libvirt包括三部分:
(1).libvirtd是后台服务程序;
(2).libvirt是管理虚拟机的API接口,可以通过pythoncjava等语言来编写程序管理虚拟机,比较典型的virt-manager就是使用python写的可视化工具;
(3).virsh等命令行管理工具。
操作系统:CentOS6.4x86_64mini宿主机:vmwareworkstation虚拟机
CPU:2-4core开启cpu虚拟化(bios设置或vmware设置)内存:4-8GB硬盘:100GB
如果没有加载,可以尝试执行命令:modprobekvm_intel,不行的话,试试重启宿主机。
关于虚拟机镜像,有很多种类型:raw、qcow2、vmdk等,我们推荐使用qcow2格式的镜像,因为qcow2格式的镜像支持快照,使用的比较广泛。在创建虚拟机之前需要手动去创建qcow2格式的镜像磁盘文件,以供安装虚拟机时使用。按照如下命令进行创建:
本方式创建img镜像的时候没有指定preallocation=metadata选项,这样存储文件空间显示比较小,方便拷贝,不加这个选项时,在virt-install时候需要在--disk选项后边加上bus=virtio,如果不加在安装操作系统的时候似乎是识别不出来磁盘空间,会提示磁盘空间不足。采用这种方式安装的速度非常快,其实就是从已经存在的操作系统镜像启动虚拟机并define一个新的虚拟机liwei01,可以通过脚本快速创建出多个相同配置的虚拟机。当然可以在基础镜像中安装公共的软件包和设置相同的配置,这样后续基于这个img安装的虚拟机都有类似的配置,省去重复安装软件包的麻烦。
在创建镜像liwei01.qcow2指定了backing_file=liwei.qcow2选项,表示以liwei.qcow2为后端镜像,以后对虚机liwei01的所有的写操作都会记录到liwei01镜像,实际操作系统是在liwei.qcow2镜像中,liwei.qcow2镜像是只读的。也就是说后续以liwei.qcow2镜像为后端的虚机都共享这个镜像,而具体某个虚机的写操作内容都要记录到对应自己的镜像文件中去。注意和方式4的区别。
方式一:通过文本控制台进行管理安装virshconsoleliwei01后续也能用此方式进行登陆管理虚拟机。方式二:通过vnc客户端进行连接,virshvncdisplayliwei01:20客户端通过url:172.16.1.8:20进行连接。方式三:同方式二一样,具体安装过程与普通操作系统安装过程一样,过程略。
开机:m关机:virshshutdownvm如果不生效,需要在vm中执行:yuminstall-yacpid强关:virshdestroyvm删除:virshundefinevm定义:virshdefinevm挂起:virshsuspendvm恢复:virshresumevm
虚拟机列表:virshlist包含关机的虚机:virshlist--all设置自动启动:m关闭自动启动:virshautostart--disablevm登陆虚机控制台:virshconsolevm#只对指定了console的虚机才管用,方式一退出虚机控制台:ctrl ]
在虚拟机中使用fdisk-l查看,通过观察block块id可以发现存储空间多了,还必须将多余部分分区、格式化使用,默认使用lvm。
如果要调整的cpu核数和内存超过安装虚机时指定的最大值,则需要关闭虚机来修改最大值,动态调整的值不能超过设置最大值,擦,一般使用值和最大值都是保持一致,一起修改。所以在线动态修改没什么意义,推荐直接修改配置文件就OK。
网卡默认类型是rtl品牌的网卡,这里设置为intel网卡e系列。修改如下配置文件即可。