在Linux系统 CentOS 6 下安装KVM虚拟机

时间:2022-12-24 13:04:33

一、KVM简介

KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机),是一个开源的系统虚拟化模块,基于硬件的完全虚拟化,不过需要硬件支持(如Intel VT技术或者AMD V技术)。自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

二、KVM安装

1. 准备工作

  • 关闭iptables防火墙

  • BIOS开启CPU支持虚拟化(一般默认是开启的)

  • 查看CPU是否支持KVM完全虚拟化

查看方法:

# cat /proc/cpuinfo | egrep --color=always 'vmx|svm'   #如有信息输出则可判断支持

2. 安装虚拟化相关软件包

系统yum升级

#yum update #或是用yum upgrade

安装虚拟化和图形桌面软件包组

#yum -y groupinstall "Virtualization" "Desktop" "X Window System" "Desktop Platform"

安装KVM相关

#yum -y install kvm libvirt libvirt-python python-virtinst virt-manager qemu-kvm-tools virt-viewer virt-v2v

安装完成后重启系统

#reboot

3. 查看加载的KVM模块

# lsmod|grep kvmkvm_intel              55656  6 kvm                   345659  1 kvm_intel
# stat /dev/kvm  File: "/dev/kvm"  Size: 0               Blocks: 0          IO Block: 4096   character special fileDevice: 5h/5d   Inode: 10640       Links: 1     Device type: a,e8Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (   36/     kvm)Access: 2016-04-21 17:20:39.789558372 +0800Modify: 2016-04-21 17:20:39.789558372 +0800Change: 2016-04-21 17:20:39.789558372 +0800


4. 查看libvirtd运行状态

#/etc/init.d/libvirtd statuslibvirtd (pid  2491) is running...


5. 配置网络桥接

备份ifcfg-eth0

#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root

创建br0

#cd /etc/sysconfig/network-scripts/#cp ifcfg-eth0 ifcfg-br0

查看配置的内容,这里选择了自动获取IP地址,

[root@node4 network-scripts]# cat ifcfg-eth0 DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBRIDGE=br0[root@node4 network-scripts]# cat ifcfg-br0  DEVICE=br0TYPE=BridgeONBOOT=yesNM_CONTROLLED=noBOOTPROTO=dhcp


6.禁用网络过滤器

编辑/etc/sysctl.conf添加如下内容

#sysctl -p ...net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0


7.重启网络服务

#/etc/init.d/network restart


三、安装虚拟机


在/data/vm目录下创建2个用于安装虚拟机的磁盘镜像:

#qemu-img create -f raw /data/vm/vm01.img 10G   #用于图形化安装虚拟机#qemu-img create -f qcow2 /data/vm/vm02.img 10G #用于命令行安装虚拟机#qemu-img info /data/vm/vm01.img #查看镜像信息


1. 用virt-manager图形化安装虚拟机

打开应用程序->系统工具->虚拟系统管理器

在Linux系统 CentOS 6 下安装KVM虚拟机

点击创建虚拟机按钮,输入虚拟机名称,点前进,

在Linux系统 CentOS 6 下安装KVM虚拟机

选择挂载的CD光盘和操作系统选项,点前进,

在Linux系统 CentOS 6 下安装KVM虚拟机

确定虚拟机的内存和CPU,点前进,

在Linux系统 CentOS 6 下安装KVM虚拟机

为虚拟机启用已经建好的存储硬盘,点前进,

在Linux系统 CentOS 6 下安装KVM虚拟机

下一步确认虚拟机的信息,点击完成后就进入到安装系统的界面,安装系统步骤这里就不介绍了。


2. 命令行安装虚拟机的命令如下:

#virt-install --virt-type kvm -n vm02 -r 1024 --disk path=/data/vm/vm02.img,size=10,format=qcow2 -w bridge:br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --location=http://192.168.1.166/centos6

参数说明:

--virt-type kvm  #The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.

-n --name= #虚拟机实例名称,即虚拟机的name

-r --ram= #给虚拟机分配的内存大小,单位为M

--disk #Specifies media to use as storage for the guest

-w --network= #设置使用的网络

--graphics 确定图形展示的类型,默认就是VNC,监听在0.0.0.0

--os-type= #系统类型

--os-variant= #确定系统系列类型,以优化虚拟机的配置,--os-variant list可查看支持哪些类型值

-l --location= #确定安装介质或是说安装源,这里用了http服务做了系统的安装源,就是把光盘挂载目录链接到了网站根目录下。


命令执行后可以用VNC客户端软件访问VNC界面,就是正常安装系统的界面。

查看 vnc 启动在哪个端口

#virsh vncdisplay vm02


不用VNC,直接在命令行启动一个console用文本状态的界面安装,命令:

#virt-install --virt-type kvm -n vm03 -r 1024 --vcpus 1 --os-variant=rhel6 --accelerate -v -w bridge:br0 --disk path=/data/vm/vm03.img,size=10,format=qcow2 --location=http://192.168.1.166/centos6 --nographics -x "console=ttyS0"


virt-install 相关参数可以查看帮助,

#man virt-install#virt-install -h

3. virsh 管理虚拟机的命令

virsh list 列出当前虚拟机列表,不包括没有启动的

virsh list --all  列出所有虚拟机列表,包含没有启动的

virsh start vm01  启动虚拟机vm01

virsh shutdown vm01 正常关闭虚拟机vm01

virsh destroy vm01  强制关闭虚拟机vm01,相当于断电式关机

virsh undefine vm01 删除虚拟机vm01,即删除对vm01的定义,vm01镜像文件并没删除

virsh reboot vm01 重启vm01

virsh autostart vm01 虚拟机随宿主机启动

virsh# 查看dominfo的子命令

  • domid  查看虚拟机的标识符

  • domname  查看虚拟机的名称

  • domuuid  查看虚拟机的 UUI

  • domstate  查看虚拟机目前的状

  • dominfo  查看虚拟机的信息

virsh dumpxml vm01  > file.xml 导出虚拟机vm01的配置到一个xml文件
virsh define file.xml 从xml文件从新定义一个虚拟机实例,file.xml需要修改相关配置以避免与vm01冲突