KVM虚拟机使用帮助
准备工作:在处理器虚拟化引擎勾选:虚拟化Intel VT-x/EPT或AMD-V/RVI(V),再准备一个CentOS7的系统,上传一个7的镜像放入该系统里。vnc客户端下载。grep -E '(vmx|svm)' /proc/cpuinfo//查看是否有输出下面开始安装虚拟机:yum list | grep kvmyum install -y qemu-kvm qem...
·
准备工作:在处理器虚拟化引擎勾选:虚拟化Intel VT-x/EPT或AMD-V/RVI(V),再准备一个CentOS7的系统,上传一个7的镜像放入该系统里。vnc客户端下载。
grep -E '(vmx|svm)' /proc/cpuinfo //查看是否有输出
下面开始安装虚拟机:
yum list | grep kvm
yum install -y qemu-kvm qemu-kvm-tools libvirt virt-install //安装软件
yum install -y net-tools //ifconfig命令有了后好干活
systemctl start libvirtd //管理kvm的工具
systemctl enable libvirtd //开机自启动
第一步://创建虚拟磁盘
qemu-img create -f qcow2 /opt/kvm.qcow2 9G //创建一个名称为kvm1.qcow2的qcow2格式的9G虚拟磁盘
qemu-img info kvm.qcow2 //查看该虚拟磁盘的信息
第二步://安装虚拟机
virt-install --virt-type kvm --name kvmdeName --ram 1024 --vcpus 2 \
--cdrom=/opt/CentOS-7-x86_64-DVD-1511_7.2.iso --disk path=/opt/kvm.qcow2 \
--network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole //创建一个2核cpu和1G内存的虚拟机
如果有报错:ERROR Host does not support any virtualization options
现象:virt-install创建新虚拟机时,提示Host does not support any virtualization options。
环境:CentOS7,KVM,CPU:Intel(R) Xeon(R) CPU E5-2609,qemu-kvm、qemu-kvm-tools、
virt-manager、libvirt virt-install四大件已正常yum安装,selinux已关,iptables已经全放通。
处理步骤:
1、常规步骤,先进bios看cpu是否开启了虚拟化,确认已开启
2、grep -E '(vmx|svm)' /proc/cpuinfo,
查看是否有回显信息,发现是有的,也说明步骤1没看眼花。
3、dmesg |grep kvm,实际作用和步骤1、步骤2一致,
再次确认主机是否支持虚拟化,不支持的话会显示kvm:disabled by bios,此处我这里没有任何回显。
4、此时百度和Google上常规的解决方法完结,问题并没有解决...只有自己想办法了,此处略去瞎忙步骤一万步。
5、systemctl status libvirtd 忽然发现原来libvirt日志里有报错:internal error: Failed to probe QEMU binary with QMP:
/usr/libexec/qemu-kvm: relocation error: /lib64/libspice-server.so.1这个,难道问题出在程序包上?
6、百度得知spice server是作为一个库提供给qemu使用的,编译出来就是libspice(新知识点get)。
然而这玩意咋调试排错是完全不懂的,那么先看看qemu-kvm有没有问题吧。
7、ll /usr/libexec/qemu-kvm 先看qemu-kvm是否有执行权限,发现是有的,那么正常。
8、/usr/libexec/qemu-kvm --version 手动运行下试试,发现报错:version libssl.so.10 not defined in file libssl.so.10
9、依然通过百度获得解决方法解决办法:yum -y install openssl如果已经安装,就更新一下yum -y update openssl
10、我这里直接yum upgrade openssl,神奇的事情发生了,/usr/libexec/qemu-kvm --version 正常显示版本virt-install 成功通过故障解决!
第三步:使用vnc工具连接上去进行KVM系统的安装
光标放入Install Centos7按tab键按空格键输入以下代码:
net.ifnames=0 biosdevname=0 //为了使网卡名称为eth0
只需要分一个根分区即可
虚拟机基本命令:
virsh list --all //查看都有哪些kvm虚拟机
virsh start kvmdeName //开启虚拟机
virsh shutdown kvmdeName //关闭虚拟机
virsh autostart kvmdeName //设置虚拟机(kvmdeName)跟随系统自启
virsh autostart --disable kvmdeName //关闭虚拟机跟随系统自启
virsh dumpxml kvmdeName > backup.xml //备份虚拟机
virsh defined virsh kvmdeName //还原虚拟机
virsh undefine kvmdeName //彻底删除虚拟机
virsh suspend kvmdeName //挂起虚拟机
virsh resume kvmdeName //继续虚拟机
virsh snapshot-create-as kvmdeName kuaizhao0624 //创建一个快照
virsh snapshot-list kvmdeName kuaizhao0624 //查看快照
virsh snapshot-revert kvmdeName kuaizhao0624 //恢复到快照
virsh snapshot-delete kvmdeName kuaizhao0801 //删除快照
第四步:创建一个桥接网卡并绑定到eth0上
看看有没有ifconfig命令,没有执行:yum install net-tools -y
iptables -t nat -vnL //现在是通过iptables的nat转发让虚拟机上网的
brctl show //查看网卡
brctl addbr br0 //创建一个桥接网卡
brctl addif br0 eth0 //将桥接网卡绑定到eth0也可以是eno.... br0关联eno 网络会断开
brctl show //这时br0和eth0已经关联起来了
ip addr del dev eth0 192.168.22.22/24 //eth0/eno的ip删除掉
ifconfig br0 192.168.22.22/24 up //br0网卡启动
ping www.baidu.com 发现ping不通
ip ro li //查看能不能出去,发现没网关route -n也可以查看
route add default gw 192.168.22.2 //添加网关
virsh autostart kvmdeName //随宿主机的启动而启动
以上命令重启后就没了,需要进行修改/etc/rc.local
chmod +x /etc/rc.d/rc.local
vi /etc/rc.local
brctl addbr br0
brctl addif br0 eno16777736 //eno是自己网卡名字
ip addr del dev eno16777736 192.168.22.22/24 //eno是自己网卡名字
ifconfig br0 192.168.22.22/24 up
route add default gw 192.168.22.2
第五步:编辑kvm虚拟机
virsh edit 虚拟机名称
搜索:interface
修改为:
<interface type=’bridge’>
<source bridge=’br0’/>
第六步:重启虚拟机
virsh shutdown kvmdeName
virsh start kvmdeName
第七步:用vnc登录虚拟机做网卡的修改
快速制造多台虚拟机
1、为原虚拟机所在的lv做一个快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm (一般快照大小是宿主的15-20%)
2、复制/etc/libvirt/qemu/虚拟机名.xml并改名为/etc/libvirt/qemu/虚拟机名1.xml
cp /etc/libvirt/qemu/虚拟机名.xml /etc/libvirt/qemu/虚拟机名1.xml
3、修改 /etc/libvirt/qemu/虚拟机名1.xml
vim /etc/libvirt/qemu/虚拟机1.xml (修改一下几项,随便改只要与原来不一样就可以了。)比如:
<name>1kvmSS</name>
<uuid>395ae05e-c118-e460-4de4-7f58e08f8aa1</uuid>
<source dev=‘虚拟机快照名’>
<macaddress='52:54:00:a7:11:cb'/>
4、virsh define 虚拟机名1.xml (定义虚拟机)
5、virsh start 虚拟机名1 (新的虚拟机就可以使用啦。呵呵)
如果遇到虚拟机网卡启动失败提示device eth0 does not seem
可以ifconfig -a 查看网卡的名字是否不是eth0.
如果不是,ip link set ethX name eth0
最后补充:如果需要修改cpu和内存的信息,需修改xml文件
修改xml文件
vim /etc/libvirt/qemu/kvmdeName.xml //也可以用下面的命令来修改,我们用命令修改:
virsh edit kvmdeName
第6行修改为:
<vcpu placement=’auto’ current=”1”>2 </vcpu> //最大是2个cpu,当前1个cpu,修改完需要重启查看
virsh setvcpus 虚拟机名 2 --live //修改为2个cpu
virsh qemu-monitor-command kvmdeName --hmp --cmd balloon 1024 //增加和缩小内存
virsh qemu-monitor-command kvmdeName --hmp --cmd info balloon //查看内存
qemu-img convert -f raw -O qcow2 原始.raw 将要转换的.qcow2 //转换raw数据格式为qcow2
KVM优化:
cpu缓存:
kvm是一个qemu-kvm的进程,它是靠cpu调度的,可能会调度到任何一个cpu上,cpu有三级缓存
一级缓存:静态内存
二级缓存:动态高速内存
下一刻有可能从cpu1上到cpu2上,这时缓存就失效了,缓存命中率降低,性能会受到影响,所以我们需要做qemu-kvm进程和cpu绑定来提高性能。
taskset --help
cpu优化:
ps -ef |grep kvm
taskset -cp 0 6573 //-c 0指定第0个cpu,-p 6573:表示qemu-kvm的进程号
内存优化:直接在BIOS设置中打开EPT即可
内存EPT技术,Linux内存是虚拟内存,包含物理内存和交换分区,kvm有虚拟内存和物理内存。
内存合并:减少了内存碎片
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never //默认是开启的
IO优化:
cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
更多推荐
已为社区贡献1条内容
所有评论(0)