kvm网络模式
- 格式:docx
- 大小:182.45 KB
- 文档页数:16
详解虚拟化技术QEMU-KVM⼊门⼀.QEMU、KVM、QEMU-KVMQEMU提供⼀系列的硬件模拟设备(CPU,⽹卡,磁盘等),客户机指令都需要QEMU翻译,因⽽性能较差。
KVM是linux内核提供的虚拟化,可以⽤来进⾏vCPU的创建与运⾏,虚拟内存的地址空间分配,指令执⾏效率较⾼,但缺少IO设备的虚拟化。
QEMU-KVM就是KVM与QEMU的结合,KVM负责CPU虚拟化+内存虚拟化,QEMU模拟其它IO设备。
⼆.安装并创建虚拟机安装qemu-kvm软件faramita2016@linux-l9e6:~> zypper install qemu-kvm // Ubuntu系统使⽤apt-get install qemu-kvm创建qcow2格式虚拟机磁盘⽂件faramita2016@linux-l9e6:~> qemu-img create -f qcow2 vdisk.img 5G // 磁盘⼤⼩5G使⽤debian镜像安装虚拟机,order=dc优先使⽤CD-ROW(d),后使⽤硬盘(c),内存默认128m,使⽤-m 512指定faramita2016@linux-l9e6:~> qemu-kvm -cpu host -cdrom debian-9.4.0.iso -hda vdisk.img -boot order=dc三.设置虚拟机使⽤⽹桥bridge模式宿主机中执⾏,qemu-bridge-helper增加当前⽤户可执⾏权限,⽤来⾃动添加⽹络后端tap设备faramita2016@linux-l9e6:~> sudo chmod o+x /usr/lib/qemu-bridge-helper宿主机中执⾏,-net nic为虚拟机创建nic⽹卡(⽹络前端),-net bridge指定宿主机中使⽤⽹桥(⽹络后端)faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 // 指定⽹桥br0虚拟机中执⾏,编辑/etc/network/interfaces,设置静态IProot@debian:~# vi /etc/network/interfaces# The primary network interfaceallow-hotplug ens3#iface ens3 inet dhcpiface ens3 inet staticaddress 10.0.0.8netmask 255.0.0.0gateway 10.0.0.1hwaddress ether 52:54:00:12:34:56 // 设置mac地址,前3组不变root@debian:~# ifup ens3 // 打开ens3⽹络接⼝,ifdown关闭⽹络接⼝root@debian:~# /etc/init.d/networking restart // 重启⽹络服务虚拟机中执⾏,编辑/etc/resolv.conf,设置DNSroot@debian:~# vi /etc/resolv.confnameserver 8.8.8.8 // Google DNS四.设置虚拟机为⾮图形模式虚拟机中执⾏,编辑/etc/default/grub⽂件,添加console=ttyS0启动参数root@debian:~# vi /etc/default/grubGRUB_DEFAULT=0 // 默认启动项GRUB_TIMEOUT=0 // 默认菜单项停留时间GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT="quiet" // 默认内核启动参数GRUB_CMDLINE_LINUX="console=ttyS0" // ⼿动添加内核启动参数,添加console=ttyS0虚拟机中执⾏,更新grub配置,并重启root@debian:~# update-grubroot@debian:~# shutdown -h nowa.宿主机中执⾏,添加-nographic参数创建虚拟机,当前shell前台创建虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -nographicb.宿主机中执⾏,添加-display none -daemonize参数创建虚拟机,当前shell后台创建虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -display none -daemonize五.以只读⽅式启动虚拟机a.创建⼀个快照⽤qemu-img命令创建⼀个原始镜像的快照faramita2016@linux-l9e6:~> qemu-img create -f qcow2 -b vdisk.img snapshot.img使⽤快照⽂件启动虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda snapshot.img -net nic -net bridge,br=br0 -nographicb.使⽤临时快照原理:创建⼀个临时快照,虚拟机启动之后,⾃动删除快照⽂件faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
台湾EZ-LINK K8/16 IP 8/16口数字KVM控制器产品资料
产品特点:
• 1数字用户、1本地用户控制8/16台服务器
•从任意地点远程访问KVM,控制电脑和服务器
•以色列MINICOM公司IP模块
• 支持BIOS基本输出输入
• 高品质画面以及鼠标实时同步功能
• 安全性, 128位SSL数据加密系统
• 远程串口控制电源切换器,路由器,以及其他设备
•支持多平台:PS/2或USB
• 1U机架式设计,方便安装
产品功能:
本地或远程访问服务器
IP K8/16可以帮助系统管理者在安全状态下,对8/16台服务器进行本地或远程的BIOS等级访问。
创新的,机架式,1U高。
BL专用KVM线缆避免机柜中出现线材杂乱现象,可以IP K16直接控制机柜中每台服务器,服务器与KVM切换器之间最远距离可以达到10m。
从独立的机柜到全球分散式数据中心
对于大型应用机房,比如全球分散式数据中心或机房,IP K8/16 可以在Minicom' 集中系统下管理所有设备-不但可以满足当今市场对多功能,高品质KVM切换器的要求,而且是未来集中式机房管理的发展趋势。
工业安全标准
支持工业最高安全加密,128-bit SSL协议,保证你公司的数据远离各类网络安全漏洞和黑客袭击。
BIOS等级,多平台访问
作为一个优秀的解决方案,IP K8/16可以让您通过BIOS直接访问,并控制多平台服务器,包括PS/2 和USB设备。
系统拓扑图
规格表。
深度实践kvm期末考试试题### 深度实践KVM期末考试试题一、选择题1. KVM是一个:- A. 虚拟化管理工具- B. 操作系统- C. 文件系统- D. 网络协议2. KVM可以运行在以下哪种操作系统上?- A. Windows- B. macOS- C. Linux- D. 以上都是3. KVM虚拟化技术中,哪个组件负责管理虚拟机的创建和删除? - A. QEMU- B. libvirt- C. virt-manager- D. KVM模块4. 在KVM虚拟化中,以下哪个不是虚拟机的组成部分?- A. 虚拟CPU- B. 虚拟内存- C. 虚拟硬盘- D. 物理硬盘5. KVM虚拟化技术中,以下哪个是用于网络虚拟化的组件?- A. VirtIO- B. QEMU- C. libvirt- D. Bridge二、填空题1. KVM的全称是______,它是一种基于Linux内核的虚拟化技术。
2. KVM虚拟化技术可以实现______和______的虚拟化。
3. KVM虚拟化技术中,虚拟机的磁盘文件通常以______格式存储。
4. KVM虚拟化技术中,虚拟机的网络可以通过______实现。
5. KVM虚拟化技术中,虚拟机的快照功能可以通过______实现。
三、简答题1. 描述KVM虚拟化技术的基本工作原理。
2. 解释KVM虚拟化技术中,虚拟机的CPU和内存是如何被虚拟化的。
3. 说明KVM虚拟化技术中,虚拟机的存储是如何实现的。
四、实践题1. 请描述如何在Linux系统中安装和配置KVM虚拟化环境。
2. 请说明如何使用virt-manager管理工具创建一个新的虚拟机,并为其安装操作系统。
3. 请解释如何为KVM虚拟机配置网络,并确保其能够访问外部网络。
参考答案一、选择题1. A2. C3. B4. D5. D二、填空题1. Kernel-based Virtual Machine2. CPU、内存3. qcow24. NAT5. qemu-img三、简答题1. KVM虚拟化技术通过Linux内核的KVM模块,将物理硬件资源虚拟化成多个独立的虚拟机,每个虚拟机都有自己的虚拟CPU、内存、硬盘等资源,可以独立运行操作系统和应用程序。
linux下配置和安装KVM虚拟机的步骤最近要在外⽹搞⼀套监控系统,正好有⼀台服务器配置⽐较⾼,也没跑什么重要的业务,就拿来划了⼀个KVM虚拟机,可能是平时各种虚拟机⽤的⽐较多,配置起来感觉⽐想象中简单的多,简单记录下过程准备⼯作宿主机为centos 6.8 64位,检查宿主机CPU是否⽀持虚拟化:cat /proc/cpuinfo | egrep '(vmx|svm)' | wc -l;结果⼤于0表⽰⽀持安装kvmKVM核⼼软件包:复制代码代码如下:yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils如果服务器上有桌⾯环境,想使⽤图形界⾯管理器virt-manager,可以安装完整的KVM环境:复制代码代码如下:yum groupinstall Virtualization 'Virtualization Client' 'Virtualization Platform' 'Virtualization Tools'验证内核模块是否加载:lsmod | grep kvm启动虚拟机管理接⼝服务:/etc/init.d/libvirtd start设置开机启动:chkconfig libvirtd on启动libvirtd后,会⾃动创建了⼀个⽹卡,并启动dnsmasq服务,⽤来为虚拟机分配IP地址创建虚拟机下载虚拟机要安装的ISO系统镜像⽂件,之后需创建存储池,指定在宿主机上虚拟机磁盘的存储位置,创建存储⽬录:mkdir -p /opt/kvm定义⼀个储存池和绑定⽬录:virsh pool-define-as vmspool --type dir --target /opt/kvm建⽴并激活存储池:virsh pool-build vmspoolvirsh pool-start vmspool使⽤存储池创建虚拟机,并通过vnc连接:virt-install \--hvm \ #全虚拟化--name=zabbix \#虚拟机名字--ram=4096 \ #分配内存--vcpus=4 \ #分配CPU数--cdrom=/opt/kvm/iso/CentOS-7-x86_64-DVD-1511.iso \ #使⽤的ISO--virt-type=kvm \ #虚拟机类型--disk path=/opt/kvm/zabbix.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=100 \ #磁盘⼤⼩,格式--network netwrok=default \ #⽹络设置,defalut为NAT模式--accelerate \ #KVM内核加速--graphics vnc,listen=0.0.0.0,port=5922,password=123123\ #vnc配置--force \--autostart之后使⽤vnc客户端连接宿主机IP:5922,即可使⽤图形安装系统;也可以选择nographics模式,⽆需vnc在命令⾏下安装,建议使⽤vnc安装完成后会⽣成:虚拟机的配置⽂件:/etc/libvirt/qemu/zabbix.xml虚拟硬盘⽂件:/opt/kvm/zabbix.qcow2NAT⽹络配置⽂件:/etc/libvirt/qemu/networks/default.xml配置⽹络KVM可以配置两种:NAT⽹络: 虚拟机使⽤宿主机的⽹络访问公⽹,宿主机和虚拟机能互相访问,但不⽀持外部访问虚拟机桥接⽹络:虚拟机复⽤宿主机物理⽹卡,虚拟机与宿主机在⽹络中⾓⾊完全相同,⽀持外部访问配置NAT⽹络默认会有⼀个叫default的NAT虚拟⽹络,查看NAT⽹络:virsh net-list --all如果要创建或者修改NAT⽹络,要先编辑default.xml:virsh net-edit default重新加载和激活配置:virsh net-define /etc/libvirt/qemu/networks/default.xml启动NAT⽹络:virsh net-start defaultvirsh net-autostart default启动NAT后会⾃动⽣成⼀个虚拟桥接设备virbr0,并分配IP地址,查看状态:brctl show正常情况下libirtd启动后就会启动virbr0,并⾃动添加IPtables规则来实现NAT,要保证打开ip_forward,在/etc/sysctl.conf中:net.ipv4.ip_forward = 1sysctl -p启动虚机并设置⾃动获取IP即可,如果想⼿动指定虚拟机IP,要注意配置的IP需在NAT⽹段内配置桥接⽹络系统如果安装了桌⾯环境,⽹络会由NetworkManager进⾏管理,NetworkManager不⽀持桥接,需要关闭NetworkManger:chkconfig NetworkManager offchkconfig network onservice NetworkManager stopservice network start不想关闭NetworkManager,也可以在ifcfg-br0中⼿动添加参数"NM_CONTROLLED=no"创建⽹桥:virsh iface-bridge eth0 br0创建完后ifconfig会看到br0⽹桥,如果eth0上有多个IP,更改下相应的⽂件名,如:ifcfg-eth0:1改为ifcfg-br0:1编辑虚拟机的配置⽂件,使⽤新的⽹桥:virsh edit zabbix找到⽹卡配置,改为:<interface type='bridge'><mac address='52:54:00:7a:f4:9b'/><source bridge='br0'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>我是⽤的br0,为虚拟机添加多块⽹卡只需复制多个interface,并确保mac address和PCI地址不同即可重新加载配置:virsh define /etc/libvirt/qemu/zabbix.xml重启虚拟机:virsh shutdown zabbixvirsh start zabbix之后使⽤VNC连接虚拟机并设置下⽹络即可常⽤操作KVM相关操作都通过vish命令完成,参数虽然多,但是功能⼀⽬了然,很直观创建虚拟机快照:virsh snapshot-create-as --domain zabbix --name init_snap_1也可以简写成:virsh snapshot-create-as zabbix init_snap_1快照创建后配置⽂件在/var/lib/libvirt/qemu/snapshot/zabbix/init_snap_1.xml查看快照:snapshot-list zabbix删除快照:snapshot-delete zabbix init_snap_1排错1、ERROR Format cannot be specified for unmanaged storage.virt-manager 没有找到存储池,创建储存池即可2、KVM VNC客户端连接闪退使⽤real vnc或者其它vnc客户端连接kvm闪退,把客户端设置中的ColourLevel值设置为rgb222或full即可3、virsh shutdown ⽆法关闭虚拟机使⽤该命令关闭虚拟机时,KVM是向虚拟机发送⼀个ACPI的指令,需要虚拟机安装acpid服务:yum -y install acpid && /etc/init.d/acpid start否则只能使⽤virsh destroy 强制关闭虚拟机以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
迈拓维矩KVM切换器的原理与用处
迈拓维矩KVM切换器的原理:
迈拓维矩KVM的工作,主要是协调键盘、鼠标和显示器的配置,实现不同服务器之间自由和多种方式的切换器连接。
使用迈拓维矩KVM的原因:
看了迈拓维矩KVM切换器的工作原理介绍,那么会有人问,我们为什么要使用迈拓维矩KVM呢?现在就让我们看看用迈拓维矩KVM的原因:
现状:
1、机房内服务器和PC密度越来越大——归结于房产租赁成本越来越高;
2、单个机房内服务器种类和数量越来越多,操作手段更加复杂;
两个IDC中心机柜内服务器放置状况:
随着服务器数量的增加,传统方式单机对应显示器等产生的功耗总量也相应增加,运营成本上升;
使用迈拓维矩KVM切换器的优点:
1.迈拓维矩KVM摒弃了多余的键盘、监视器和鼠标,节约机房面积,降低能源消耗。
2.采用迈拓维矩KVM设备,可以简化了机房的操作管理模式,从而提高管理维护的工作
效率,进而提升了管理的安全性和可靠性;
3.使用迈拓维矩KVM可以使得扩展服务器网络机房容量得以更方便的进行。
结合以上情况,使用迈拓维矩KVM切换器能让企业IT人员方便管理服务器机房和数据中心中的服务器,降低企业对服务器管理的成本和提高效率。
1、DKX2系列产品1.1、DKX2系列架构DKX2由两大组件组成:数字式KVM切换器与计算机接口模块(CIM)。
DKX2是一款安全的企业级数字式切换器,可以让2名、3名、5名或10名使用者同时进行BIOS层级的控制,最多可以让一台KVM操作台控制64台服务器及其它IT设备以及给目标服务器作虚拟映射,远程安装软件或补丁。
它将服务器的控制权安全地放在通过验证的使用者手中,无论他们是在公司外、公司内,还是在机架旁,当本地使用者对切换器进行访问时,都不会阻塞远程使用者的访问。
DKX2可以通过各种常用的网络浏览器进行访问,可以使用大部份主要的操作系统。
DKX2是一款业内唯一的双电源、双千兆以太网口高冗余的即插即用、1U、2U的设备,完全可以自给自足,几分钟内即可安装完毕。
它结合了坚固的安全性、灵活性、整合了远程电源控制,以及目前最高品质的视频(远程与本地均支持1600X1200的分辨率)。
调制解调器能确保在无法使用网络或网际网络之时,仍然能够对重要服务器进行紧急访问。
当与力登的CommandCenter® Secure Gateway整合时,DKX2则提供单一浏览的全企业控制功能。
CIM内置发送器,一端直接连接每台电脑,另一端通过五类双绞线输出到DKX2系列切换器服务器端口。
并且内置检测程序,可以自动检测所连接服务器的信号类型,其信号仿真技术可以模拟服务器正常运行所需要的键盘、鼠标信号。
当DKX2设备意外掉电或5类双绞线脱落的情况下,此项技术确保服务器仍然正常运行,从而维护了服务器运行的稳定性和数据的安全性。
CIM有多种规格可选,以适应不同种类的机型,实现多平台兼容操作。
KX2配合D2CIM-VUSB模块还有智能鼠标同步效果,无需改变服务器的任何鼠标属性,也可做到远程鼠标与本地鼠标的同步。
KX连接拓扑:1.2、DKX2技术特点DKX2系列产品是目前RARITAN公司数字KVM产品线中的最高端产品,DKX2基本上集成了RARITAN公司20余年KVM开发经验,并融会了许多客户的意见,所以在产品的许多方面做到了创新。
学习KVM 的系列文章:(1)介绍和安装(2)CPU 和内存虚拟化(3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton)(4)I/O PCI/PCIe设备直接分配和SR-IOV(5)libvirt 介绍(6)Nova 通过libvirt 管理QEMU/KVM 虚机(7)快照(snapshot)(8)迁移(migration)1. 为什么需要CPU 虚拟化X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。
x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。
Ring 是指CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之……就Linux+x86 来说,操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别 Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等等。
应用程序的代码运行在最低运行级别上ring3上,不能做受控操作。
如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。
这个过程也称作用户态和内核态的切换。
那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在ring0 的,客户操作系统就不能也在ring0 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。
所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。
虚机怎么通过VMM 实现Guest CPU 对硬件的访问,根据其原理不同有三种实现技术:1. 全虚拟化2. 半虚拟化3. 硬件辅助的虚拟化1.1 基于二进制翻译的全虚拟化(Full Virtualization with Binary Translation)客户操作系统运行在 Ring 1,它在执行特权指令时,会触发异常(CPU的机制,没权限的指令会触发异常),然后VMM 捕获这个异常,在异常里面做翻译,模拟,最后返回到客户操作系统内,客户操作系统认为自己的特权指令工作正常,继续运行。
KVM虚拟机源代码分析1,KVM结构及工作原理1.1K VM结构KVM基本结构有两部分组成。
一个是KVM Driver ,已经成为Linux 内核的一个模块。
负责虚拟机的创建,虚拟内存的分配,虚拟CPU寄存器的读写以及虚拟CPU的运行等。
另外一个是稍微修改过的Qemu,用于模拟PC硬件的用户空间组件,提供I/O设备模型以及访问外设的途径。
图1 KVM基本结构KVM基本结构如图1所示。
其中KVM加入到标准的Linux内核中,被组织成Linux中标准的字符设备(/dev/kvm)。
Qemu通KVM提供的LibKvm应用程序接口,通过ioctl系统调用创建和运行虚拟机。
KVM Driver使得整个Linux成为一个虚拟机监控器。
并且在原有的Linux两种执行模式(内核模式和用户模式)的基础上,新增加了客户模式,客户模式拥有自己的内核模式和用户模式。
在虚拟机运行下,三种模式的分工如下:客户模式:执行非I/O的客户代码。
虚拟机运行在客户模式下。
内核模式:实现到客户模式的切换。
处理因为I/O或者其它指令引起的从客户模式的退出。
KVM Driver工作在这种模式下。
用户模式:代表客户执行I/O指令Qemu运行在这种模式下。
在KVM模型中,每一个Guest OS 都作为一个标准的Linux进程,可以使用Linux的进程管理指令管理。
在图1中./dev/kvm在内核中创建的标准字符设备,通过ioctl系统调用来访问内核虚拟机,进行虚拟机的创建和初始化;kvm_vm fd是创建的指向特定虚拟机实例的文件描述符,通过这个文件描述符对特定虚拟机进行访问控制;kvm_vcpu fd指向为虚拟机创建的虚拟处理器的文件描述符,通过该描述符使用ioctl系统调用设置和调度虚拟处理器的运行。
1.2K VM工作原理KVM的基本工作原理:用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。
KVM Driver为虚拟机创建虚拟内存和虚拟CPU后执行VMLAUCH指令进入客户模式。
CLOUD云版本部署KVM虚拟机switch模式手册网测科技2021.09.271.安装centos系统1.1 使用光盘驱动安装系统使用光盘驱动安装centos系统,开机后点delete进入bios,选取光盘驱动为启动盘1.2 点击保存退出1.3 选择语言启动后进入centos系统安装步骤,选择语言1.4 选择安装分区点击安装位置,选择系统储存分区1.5 软件选择点击软件选择,创建系统软件的环境,按图中的勾选选项1.6 开始安装点击开始安装后,设置root用户账号密码为netitest,等待安装完成。
安装完成后点击重启,centos系统就装好了1.7 给虚拟机配置ip地址给主机连接网线,进入终端,配置管理口的ip地址。
选择一个口作为管理口,按图中编辑此网口IP地址,修改完后重启服务,这样就可以在外部电脑中连接此地址啦2.下载secureCRT Application2.1解压安装secureCRT安装包或者下载安装secureCRT2.2添加ip地址登陆之前添加centos系统的ip地址2.3登录crt登录的账号密码为root,netitest3.安装VNC Viewer命令:yum install -y tigervnc-server3.1关闭防火墙命令:systemctl stop firewalldsystemctl disable firewalld3.2复制配置文件命令:cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service 编辑复制出来的配置文件命令:vi /etc/systemd/system/vncserver@:1.service3.4重新加载配置文件命令:systemctl daemon-reload3.5设置VNC密码命令:vncpasswd root3.6开启VNC并设置成开机启动命令:systemctl start vncserver@:1.servicesystemctl enable vncserver@:1.service3.7启动命令:vncserver3.8如果启动成功端口是监听状态(VNC端口号默认5900+1)命令:netstat -an |grep 59013.9客户端连接测试连接成功。
ProxmoxVEQemuKVM虚拟机设置要求Qemu(Quick Emulator 的缩写)是⼀种模拟物理计算机的开源虚拟机管理程序。
从运⾏ Qemu 的主机系统的⾓度来看,Qemu 是⼀个⽤户程序,它可以访问许多本地资源,如分区、⽂件、⽹卡,然后将这些资源传递给模拟计算机,模拟计算机将它们视为真实设备.在模拟计算机中运⾏的来宾操作系统访问这些设备,并像在真实硬件上运⾏⼀样运⾏。
例如,您可以将 ISO 映像作为参数传递给 Qemu,在模拟计算机中运⾏的操作系统将看到插⼊ CD 驱动器的真实 CD-ROM。
Qemu 可以模拟从 ARM 到 Sparc 的多种硬件,但 Proxmox VE 只关注 32 位和 64 位 PC 克隆模拟,因为它代表了绝⼤多数服务器硬件。
由于处理器扩展的可⽤性,当模拟架构与主机架构相同时,PC 克隆的仿真也是最快的之⼀。
您有时可能会遇到术语KVM(基于内核的虚拟机)。
这意味着 Qemu 通过 Linux KVM 模块在虚拟化处理器扩展的⽀持下运⾏。
在 Proxmox VE 的上下⽂中,Qemu和 KVM可以互换使⽤,因为 Proxmox VE 中的 Qemu 将始终尝试加载 KVM 模块。
Proxmox VE 中的 Qemu 作为根进程运⾏,因为这是访问块和 PCI 设备所必需的。
仿真设备和半虚拟化设备Qemu 模拟的 PC 硬件包括主板、⽹络控制器、SCSI、IDE 和 SATA 控制器、串⾏端⼝(完整列表可以在kvm(1)⼿册页中看到),所有这些都在软件中进⾏了模拟。
所有这些设备都是与现有硬件设备完全等效的软件,如果来宾中运⾏的操作系统具有适当的驱动程序,它将像在真实硬件上运⾏⼀样使⽤这些设备。
这允许 Qemu 运⾏未经修改的操作系统。
然⽽,这会带来性能成本,因为在软件中运⾏本应在硬件中运⾏的内容涉及主机 CPU 的⼤量额外⼯作。
为了缓解这种情况,Qemu 可以呈现给来宾操作系统半虚拟化设备,其中来宾操作系统识别出它在 Qemu 内部运⾏并与管理程序合作。
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。
Bridge模式 问题 客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。
KVM 客户机网络连接有两种方式: 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。
本文主要解释Bridge方式的配置。
Bridge方式原理 Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。
桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。 如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
Bridge方式的适用范围 服务器主机虚拟化。
网桥方式配置步骤 1、编辑修改网络设备脚本文件,增加网桥设备br0 vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=static IPADDR=10.0.112.39 NETMASK=255.255.255.0 GATEWAY=10.0.112.1 DEFROUTE=yes
上述配置将虚拟网卡配置在了10.0.112.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:
DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=dhcp
2、编辑修改网络设备脚本文件,修改网卡设备eth0 DEVICE="eth0" NM_CONTROLLED="no" ONBOOT="yes" TYPE=Ethernet BOOTPROTO=none BRIDGE="br0" NAME="System eth0" HWADDR=44:37:E6:4A:62:AD
NM_CONTROLLED这个属性值,根据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务 #service network restart 4、校验桥接接口 #brctl show bridge name bridge id STP enabled interfaces br0 8000.4437e64a62ad no eth0
客户机配置 客户机安装时注意,网络要选择用br0桥接方式。 图形化的方式: 文本方式: 编辑修改虚拟机配置文件 /etc/libvirt/qemu/v1.xml,增加如下内容 function='0x0'/>
虚拟机启动后,验证网络接口是否正常: # brctl show bridge name bridge id STP enabled interfaces br0 8000.4437e64a62ad no eth0 vnet0
NAT方式的影响 网桥方式的配置与虚拟机支持模块安装时预置的虚拟网络桥接接口virbr0没有任何关系,配置网桥方式时,可以把virbr0接口(即NAT方式里面的default虚拟网络)删除。
# virsh net-destroy default # virsh net-undefine default # service libvirtd restart
NAT模式 问题 客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。
KVM 客户机网络连接有两种方式: 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。
本文主要解释NAT方式的配置。 NAT方式原理
NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。 检查当前的网络设置: #virsh net-list --all Name State Autostart ----------------------------------------- default active yes
default是宿主机安装虚拟机支持模块的时候自动安装的。 检查当前的网络接口: #ifconfig eth0 Link encap:EthernetHWaddr 44:37:E6:4A:62:AD inet6 addr: fe80::4637:e6ff:fe4a:62ad/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:987782 errors:0 dropped:0 overruns:0 frame:0 TX packets:84155 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109919111 (104.8 MiB) TX bytes:12695454 (12.1 MiB) Interrupt:17
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)
virbr0 Link encap:EthernetHWaddr 52:54:00:B9:B0:96 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2126 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:100387 (98.0 KiB) virbr0-nic Link encap:EthernetHWaddr 52:54:00:B9:B0:96 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。
几个虚拟机管理模块产生的接口关系如下图:
从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。
virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证: