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

   2023-02-09 学习力0
核心提示:最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定。下面就记录以下我们在探索的过程中踩过的坑。安装KVM前期准备,首先需要配置好网卡[root@SH-DMZ-03 network-scripts]# egrep -v '^#|^$' ifcfg-e

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

安装KVM

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

[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

 这里需要根据自己的实际情况进行配置

 

1.

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

使用命令进行检查:

[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

......

  一般都会有大量输出,代表系统中是支持的。

 

2.

安装kvm所需的各种依赖包

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_intelkvm_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桥接还不能很好的支持

 

如果你也遇到类似的问题,欢迎留言,我们一起探讨!

 

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 云计算中的OpenStack和KVM到底是什么
    云计算中的OpenStack和KVM到底是什么
    OpenStack是一个开放源代码云计算平台 openstack是云管理平台,其本身并不提供虚拟化功能,真正的虚拟化能力是由底层的hypervisor(如KVM、Qemu、Xen等)提供。 以下内容真的的背了一遍又一遍的内容,openstart组件介绍Nova:Nova是OpenStack的主要计算引擎,
    03-08
  • KVM 虚拟机联网方式:NAT 和 Bridge
    KVM 客户机网络连接有两种方式:用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些
    03-08
  • 如何在 CentOS 7 / RHEL 7 终端服务器上安装 KVM
    如何在 CentOS 7 / RHEL 7 终端服务器上安装 KV
    如何在 CnetOS 7 或 RHEL 7(Red Hat 企业版 Linux)服务器上安装和配置 KVM(基于内核的虚拟机)?如何在 CentOS 7 上设置 KVM 并使用云镜像 / cloud-init 来安装客户虚拟机?基于内核的虚拟机(KVM)是 CentOS 或 RHEL 7 的虚拟化软件。KVM 可以将你的服务
    03-08
  • kvm虚拟机扩容系统盘 虚拟机扩容c盘
    kvm虚拟机扩容系统盘 虚拟机扩容c盘
     一,宿主机扩容虚拟机系统盘环境文件系统CentOS 7XFS1.1查看虚拟机(以下操作在宿主机上)[root@office-prd-kvm-01 ~]# virsh list 4 office-com-ldap-01 running1.2查看虚拟机系统盘[root@office-prd-kvm-01 ~]# virsh domblklist office-com-ldap-01 目标 源
    03-08
  • kvm虚拟化介绍 kvm开源虚拟化系统
  • Linux中KVM桥接的配置
    Linux中KVM桥接的配置
    1. 原理1.1 说明在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法:1.在光盘安装的时候安装好虚拟化包或者PXE服务器上配置好虚拟化包2.手动在没有安装虚拟化组件的系统中安装虚拟化组件1.2 目的 如果我们搭建的环境是必须使
    02-10
  • kvm学习笔记(一,基础概念) kvm 原理
    kvm学习笔记(一,基础概念) kvm 原理
    前言   阿里云的云主机,采用的kvm,今天就花了点时间研究了下。一、安装官方文档参考:http://www.linux-kvm.org/page/HOWTO二、快速建立一个基于vnc的虚拟机安装 桥接网卡命令创建虚拟机 virt-install \#--network bridge:br0如果主机网卡不是桥接模式
    02-10
  • KVM 内存虚拟化
    KVM 内存虚拟化
    内存虚拟化的概念    除了 CPU 虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机。虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存地址空间,这个地址空间无需和下面的物理机器内存直
    02-10
  • 在Ubuntu1804中通过KVM创建bridge型的网络虚拟机
    在Ubuntu1804中通过KVM创建bridge型的网络虚拟
    桥接网络可以运行在宿主机上的虚拟机使用和宿主机同网段的IP,并且可以从外部直接访问到虚拟机。目前企业中大部分场景都是使用桥接网络第一步:首先在宿主机上创建桥接网卡,如下:Ubuntu1804创建桥接网卡 1 # cat/etc/netplan/01-netcfg.yaml 23 # This file
    02-10
  • 通过python-libvirt管理KVM虚拟机 代码实现
    初步代码 [python] view plain copy span style="font-size:18px;"''''' Work with virtual machines managed by libvirt     :depends: libvirt Python module '''  # Special Thanks to Michael Dehann, many of the conce
    02-10
点击排行