kvm 安装和配置
宿主机环境:Centos 6.6
最近在玩kvm,小小总结一下。
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,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。
migrate #迁移虚拟机 建议直接cp硬盘文件 dumpxml导出xml文件
内存:
setmem <虚拟机> <内存大小> #给虚拟机设置内存大小
setmaxmem <虚拟机> <内存大小> #给虚拟机设置最大使用内存大小
cpu:
setvcpus <虚拟机> <数量> #给虚拟机设置虚拟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 <虚拟机> <虚拟机内网卡设备名> #查看网卡状态