kvm 安装和配置

宿主机环境:Centos 6.6


最近在玩kvm,小小总结一下。


1、检查CPU是否支持


KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持:

# egrep 'vmx|svm' /proc/cpuinfo

# modprobe -ls | grep kvm   #查看内核是否开启

kernel/arch/x86/kvm/kvm.ko

kernel/arch/x86/kvm/kvm-intel.ko

kernel/arch/x86/kvm/kvm-amd.ko

# /usr/libexec/qemu-kvm -cpu ?  #查看kvm可以虚拟的CPU


注:VMware安装的话,需要开启处理器Intel VT 或 AMD SVM,具体方法google一下


2、确认关闭selinux


# vi /etc/sysconfig/selinux

SELINUX=disabled


3、安装KVM


# yum -y install qemu-kvm libvirt python-virtinst bridge-utils


4、确认KVM安装成功

# lsmod | grep kvm

# stat /dev/kvm


5、启动libvirtd(虚拟化工具包服务)


/etc/init.d/libvirtd start


6、创建硬盘文件(找了很多网上资料都没有这一步)


# qemu-img create -f qcow2 /opt/guest01.qcow2 20G


7、安装虚拟机


首先,修改 qemu.conf 配置,把下面几个地方的注释去掉,然后把 dynamic_ownership 的值改成0,禁止 libvirtd 动态修改文件的归属,不然会报错“Permission denied”

# vi /etc/libvirt/qemu.conf

...

user = "root"

group = "root"

dynamic_ownership = 0

...


默认网络方式安装

# virt-install --virt-type=kvm --name=guest01 --os-type=linux --ram=2048 --vcpus=2 --disk path=/opt/guest01.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --cdrom=/root/CentOS-6.7-x86_64-bin-DVD1.iso --noautoconsole


桥接网络方式安装


参考连接:https://www.chenyudong.com/archives/libvirt-kvm-bridge-network.html


# virt-install --virt-type=kvm --name=guest01 --os-type=linux --ram=2048 --vcpus=2 --disk path=/opt/guest01.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --cdrom=/root/CentOS-6.7-x86_64-bin-DVD1.iso --noautoconsole


8、vnc客户端登录服务器,安装系统即可


访问:IP:5900(一般第一台虚拟机访问端口是5900,可以通过netstat -tnlp查看)

vnc参考下载连接:http://www.tightvnc.com/download.php


注意:

1、dns要配置,不然无法访问网址

2、磁盘挂载要确认,有时分区启动后为挂载



补充三个重要命令:

qemu-img 命令:

创建硬盘文件

create [-f 硬盘格式] [-o 选项] <路径及文件名> [空间大小]

例:qemu-img create -f raw /tmp/testdisk.raw 10G //raw格式的优点:

一、寻址简单,访问效率高 

二、可以通过格式转换工具方便的转换为其他格式 

三、可以方便挂载,可以直接进行数据传输 缺点:不支持压缩、快照、加密和cow等特性,而且是立即占用空间的

例:qemu-img create -f qcow2 /tmp/testdisk.qcow2 10G

转换硬盘文件格式

convert [-c] [-p] <-f 原格式> <-O 新格式> <原文件> <新文件> //-c cow类格式使用 -p 查看进度

例:qemu-img convert -c -f raw -O qcow2 /tmp/testdisk.raw /tmp/testdisk.qcow2

创建查看恢复硬盘文件快照

snapshot <参数> <原文件> //常用参数:-c <快照名>(创建快照)-a <快照名>(恢复快照)-d <快照名>(删除快照)-l(列出快照)

例:qemu-img snapshot -c newkuaizhao /tmp/testdisk.qcow2 //给testdisk.qcow2创建newkuaizhao的快照

查看硬盘文件信息

info [-f 硬盘格式] [--output=ofmt] <路径及文件名>

例:qemu-img info /tmp/testdisk.raw

查看硬盘文件是否有错误

check [-f 硬盘格式] <路径及文件名>

例:qemu-img check /tmp/testdisk.raw

更改硬盘文件空间大小(生产环境不建议使用,使用也必须建立原文件备份,需要用分区工具添加才能使用)

resize <路径及文件名> <+ | -空间大小>

例:qemu-img resize /tmp/testdisk.raw +1G



virt-install命令常用选项:

--virt-type=kvm 使用哪种虚拟化: (kvm, qemu, xen, ...)

--name=虚拟机名

--os-type=linux 系统类型:'linux', 'unix', 'windows'

--ram=1024 内存大小M为单位

--network bridge=mybr0

--disk path=/my/existing/disk 指定磁盘文件

--cdrom=/tmp/centos6.6.iso 指定系统镜像文件

--graphics=GRAPHICS 开启图形化配置

Configure guest display settings. Ex:

--graphics vnc

--graphics spice,port=5901,tlsport=5902

--graphics none

--graphics vnc,password=foobar,port=5910,keymap=ja

--noautoconsole 开启不自动连接虚拟机控制台

例:virt-install --virt-type=kvm --name=kvmtest --os-type=linux --ram=1024 --disk path=/root/kvmsys02.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --cdrom=/tmp/CentOS-6.6-x86_64-bin-DVD1.iso --noautoconsole


virsh命令

start <虚拟机名> #启动虚拟机

shutdown <虚拟机名> #关闭虚拟机

destroy <虚拟机> #强制关闭虚拟机

reboot <虚拟机名> #重启虚拟机

suspend <虚拟机> #暂停虚拟机

resume <虚拟机> #恢复暂停的虚拟机

save <虚拟机> <文件> #把虚拟机当前状态保存到快照文件中

restore <快照文件> #从以前保存的快照中恢复虚拟机

list [选项] #列出虚拟机 常用选项--all

dumpxml <虚拟机> [>XML文件]#导入XML配置文件

define <虚拟机XML文件> #从XML文件创建一个虚拟机如果有相同的需改内容:虚拟机名、uuid、磁盘文件、网卡MAC。

undefine <虚拟机> #删除与虚拟机相关的所有文件

migrate #迁移虚拟机 建议直接cp硬盘文件 dumpxml导出xml文件

内存:

setmem <虚拟机> <内存大小> #给虚拟机设置内存大小

setmaxmem <虚拟机> <内存大小> #给虚拟机设置最大使用内存大小

CPU:

setvcpus <虚拟机> <数量> #给虚拟机设置虚拟CPU数量

vcpuinfo <虚拟机> #显示虚拟机虚拟CPU信息

vcpupin <虚拟机> #控制虚拟机虚拟CPU亲和性

磁盘光盘等:

attach-disk <虚拟机> <磁盘文件> <挂载设备名> [--live] [--config] #添加磁盘设备 挂载设备名:如sda、sdb等 --live 给运行中的虚拟机添加磁盘 --config下次重启也生效

例:virsh attach-disk kvmtest3 /tmp/testdisk3-2.raw sdb --live --config

detach-disk <虚拟机> <挂载设备名> [--live] #删除磁盘设备 挂载设备名:如sda、sdb等 --live 给运行中的虚拟机添加磁盘

domblklist <虚拟机> #显示虚拟机块设备

change-media <虚拟机> <光驱设备> [<光盘文件>] #详细操作参看更换光盘

网卡:

attach-interface <虚拟机> <虚拟网卡模式> <寄主机网卡文件> [--model 网卡模式] [--config] #添加网卡设备 虚拟网卡模式:如bridge、network等 网卡模式:如virtio等 --config下次重启也生效

detach-interface <虚拟机> <虚拟网卡模式> [--mac <string>] #卸载网卡设备

例:virsh detach-interface kvmtest3 --type bridge --mac 52:54:00:37:d1:8a

domiflist <虚拟机> #显示虚拟机网卡设备信息

domif-setlink <虚拟机> <虚拟机内网卡设备名> <up启动或down关闭> [--config] #启动或关闭网卡设备 --config下次重启也生效

domif-getlink <虚拟机> <虚拟机内网卡设备名> #查看网卡状态