CentOS7.2上用KVM安装虚拟机windows10踩过的坑

最近两个星期一直在琢磨kvm安装window10操做系统,而且经过桥接模式与外界通讯,经历了九九八十一难,终于搞定。下面就记录如下咱们在探索的过程当中踩过的坑。php

安装KVM

前期准备,首先须要配置好网卡python

[root@SH-DMZ-03 network-scripts]# egrep -v '^#|^$' ifcfg-em1
DEVICE=em1
HWADDR=d4:be:d9:b0:13:df
TYPE=Ethernet
UUID=4398f8a3-e10d-4674-9533-44ae1da13fdd
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
BRIDGE=br0



[root@SH-DMZ-03 network-scripts]# egrep -v '^#|^$' ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.11
PREFIX=24
GATEWAY=192.168.0.1

 这里须要根据本身的实际状况进行配置linux

 

1.es6

系统要求:须要一台能够运行最新linux内核的intel处理器(含VT虚拟化技术)或者AMD处理器(含SVM安全虚拟化技术的AMD处理器,也能够叫AMD-V)。(若是没有配置能够在BIOS中进行配置)windows

使用命令进行检查:centos

[root@corehadoop31 ~]# cat /proc/cpuinfo |egrep  "vmx|svm"
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt

......

  通常都会有大量输出,表明系统中是支持的。api

 

2.安全

安装kvm所需的各类依赖包bash

yum -y install qemu-kvm kvm
yum -y install virt-manager python-virtinst qemu-kvm-tools      # 安装KVM的管理工具
yum -y install libvirt libvirt-python libguestfs-tools bridge-utils virt-viewer virt-2v

  缺什么包就安装什么包,搭建一个本地的yum仓库,以便一键解决各类依赖。服务器

 

3.

肯定是否正确加载kvm模块

[root@corehadoop31 ~]# lsmod |grep kvm
kvm_intel             170181  3 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm

  表示已经正确加载

注意:

若是该命令什么都不返回,则须要手动加载模块,参见内核模块#Manual模块处理

提示: 若是modprobing  kvm_intel kvm_amd 失败但modprobing  kvm 成功,并 lscpu 声称支持硬件加速,请检查BIOS设置。某些供应商,尤为是笔记本电脑供应商,默认禁用这些处 要肯定是否没有硬件支持或者是否在BIOS中禁用了扩展,那么 dmesg 在没法使用modprobe以后的输出将告诉您。

 

开始安装虚拟机

1,建立磁盘并检查是否成功建立

qemu-img create -f raw /opt/kvm.raw 10G
# 注意类型为raw,10G容量其实没有意义
 

[root@corehadoop opt]# qemu-img info /opt/kvm.raw 
image: /opt/kvm.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 0

证实已经成功建立!注意在生产环境通常采用 qcow2格式,由于这个格式的硬盘是动态扩容的。

qemu-img create -f qcow2 vdisk.img 10G 

  

 

2,拷贝镜像

dd if=/dev/cdrom of=/opt/CentOS-6.5-x86_64-bin-DVD1.iso
dd if=/dev/cdrom of=/opt/cn_windows_10_enterprise_x64_dvd_6846957.iso

  注意这里若是是window10要用window10的镜像,若是要装CentOS6就要用CentOS6的镜像。咱们线上已经存在镜像,所以此步能够省略。

 

3,启动libvirt进程。

Libvirt是管理虚拟机和其余虚拟化功能,好比存储管理,网络管理的软件集合。它包括一个API库,一个守护程序(libvirtd)和一个命令行工具(virsh);libvirt自己构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的经常使用功能提供通用的API。这个进程说直白了就是管理虚拟机的,所以必须启动,不然没法安装。

systemctl restart libvirtd

 

4,开始建立虚拟机

  • window10虚拟机
virt-install --virt-type kvm --name window10 --ram 2048 --cdrom=/opt/cn_windows_10_enterprise_x64_dvd_6846957.iso --boot cdrom --cpu core2duo --network bridge=br0,model='e1000' --graphics vnc,listen=0.0.0.0 --disk path=/opt/kvm.raw,bus='ide' --noautoconsole --os-type=windows
  • CentOS6虚拟机
virt-install --virt-type kvm --name kvm-demo --ram 512 --cdrom=/opt/CentOS-6.5-x86_64-bin-DVD1.iso --boot cdrom --network bridge=br0 --graphics vnc,listen=0.0.0.0 --disk path=/opt/kvm.raw --noautoconsole --os-type=linux

  注意:必定要了解这么一大行安装虚拟机命令,根据本身状况进行调整。

virt-install 

	--virt-type kvm 		# 指定安装的类型不管是centos和window都同样
	--name window10 		# 指定安装的虚拟机名称,只要便于识别就好
	--ram 2048 				# 指定分配给虚拟机的内存大小
	--cdrom=/opt/cn_windows_10_enterprise_x64_dvd_6846957.iso	# 指定安装须要镜像的路径
	--boot cdrom 			# 指出从哪里进行启动,这里指定从硬盘进行启动
	--cpu core2duo 			# 指定所需的cpu型号,这个须要根据本身的物理机的CPU型号来进行调整。
	--network bridge=br0,model='e1000'	# 网络的链接模式,注意安装虚拟机的前提是必须配置好br0桥接的模式,不然没法安装。网卡类型选择千兆虚拟网卡
	--graphics vnc,listen=0.0.0.0 	# 设置vnc,默认端口5900
	--disk path=/opt/kvm.raw,bus='ide' 	# 指定硬盘位置,硬盘类型为IDE
	--noautoconsole 
	--os-type=windows

  

若是是window就会卡住,此时须要用VNC,链接上。咱们线上在其余机器上安装的有window-server,因此输入:IP地址,默认为5900端口便可链接上进行安装。安装完成以后,任务并无结束,还须要能使window和外界的进行通讯,若是你也像我同样配置好br0桥接模式就能够进行通讯了。下面来谈如下咱们遇到的坑,首先说同样咱们线上的双网卡使用的team模式,当配置好了桥接以后,window虚拟机能够和咱们的宿主机的业务网卡进行通讯,可是没法和其余的主机的业务网卡进行通讯,折腾了两天,有安装了centos6的虚拟机也发现有相似的问题。后来经过转包发现,window虚拟机的网卡和本机的网卡能够进行通讯,arp能够正常响应,可是和其余区主机没法进行arp的响应。后来咱们怀疑是因为team模式的双网卡形成的,果真后来配置bond的双网卡就解决这个问题。可是发现配置bond0模式起不来,提早说明一下咱们有四块网卡,两块管理的网卡作的是team模式的主备模式,业务的两块网卡作的bond的负载均衡(mode=6)的模式。后来关闭了NetworkManager服务以后bond就起来了,可是team模式严重的依赖NetworkManager服务。后这天服务器直接全部的网卡所有作成了bond模式就解决了,得出了如下几点经验。

1,安装虚拟时,建议在那台物理机上装上桌面,而后再装上(yum install tigervnc-server),在本地vnc去链接,ip:1  (此时默认的端口为1)  , 而后以图像界面的方式进行安装kvm虚拟机的安装,好处是能够在虚拟机安装时进行动态的调整和尝试。

2,kvm虚拟机的桥接模式目前还不支持team模式,虽然team模式是红帽新推出的模式,是将来,可是目前kvm桥接还不能很好的支持

 

若是你也遇到相似的问题,欢迎留言,咱们一块儿探讨!

相关文章
相关标签/搜索