kvn

虚拟化技术有两种类型的实现:
Type-I
hypervisor --> vm
Type-II
host --> vmm --> vms

Xen:
hypervisor, Dom0 kernel

KVM:Kernel-based Virtual Machine,Qumrane公司,依赖于HVM;Inter VT-x,ADM ADM-V;

KVM模块载入后的系统运行模式:
内核模式:GuestOS执行I/O类操作,或其他的特殊指令的操作;称作“来宾-内核”模式;
用户模式:代表GuestOS请求I/O类操作,
来兵模式:GuestOS的非I/O类操作;事实上,它被称作“来宾-用户”模式;

KVM的组件:
两类组件:
/dev/kvm:工作于hypervisor在用户空间,可通过ioctl()系统调用来完成VM创建、启动等管理功能;它是字符设备;
功能:创建VM,为VM分配内存,读写VCPU的寄存器、向VCPU注入终端,运行VCPU等等;
qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备;

KVM特性:
内存管理:
将分配给VM的内存交换至SWAP;
支持使用Huge Page;
支持使用Inter EPT或AMD RVI技术完成内存地址映像;GVA–>GPA–>HPA
支持KSM(Kernel Same-Page Merging)
硬件支持:
取决于Linux内核;
存储:
本地存储:
网络附加存储:
存储区域网络:
分布式存储:例如GlustFS
实时迁移:
支持的GuestOS:
Linux,Windows,OpenBSD,FreeBSD,OpenSolaris;
设备驱动:
IO设备的完全虚拟化:模拟应急
IO设备的半虚拟化:在GuestOS中安装驱动;virtio
virtio-blk,virtio-net,virtio-pci,virtio-console,virtio-ballon

KVM内存管理:
KVM继承了Linux系统管理内存的诸多特性,比如,分配给虚拟实用的内存可以被交换至交换空间、能够实用大内存页以实现更好的性能,以及对NUMA的支持能够让虚拟机高效访问更大的内存空间等。

内存虚拟化:

KVM局限性:
一般局限性:
CPU overcommit
时间记录难以精确,依赖于时间同步机制
MAC地址:
VM量特别大时,存在冲突的可能性;
实时迁移:
性能局限性:

KVM的工具栈:
qemu:
qemu-kvm
qemu-img
libvirt
GUI:virt-manager,virt-viewer
CLI:virt-install,virsh

	QEMU主要提供以下几个部分:
	    处理器模拟器
		  仿真IO设备
			关联模拟的设备至真实设备;
			调试器
			与模拟器交互的用户接口

安装:
(1) 确保CPU支持HVM
# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo
(2) 装载模块

		    # modprobe kvm
				# modprobe kvm-intel
	(3) 验证:
	    `/dev/kvm`
	
管理工具栈:
[root@kvm ~]# yum grouplist | grep -i "virtualization"

Virtualization: qemu-kvm,
Virtualization Client: python-virtinst,virt-manager,virt-viewer
Virtualization Platform: libvirt, libvirt-client
Virtualization Tools: libguestfs
#fff

fdafdsafdsa

KVM管理工具

virsh的本地模式与远程模式

KVM:hvm
kvm,kvm-intel,/dev/kvm

管理工具栈:
	    qemu-kvm
			libvirt
	管理Kvm虚拟的方案:
	    qemu: /usr/libexec/
			libvirt:
			    安装工具:
			        virt-install
					    virt-manager
				  管理工具:
					    virsh
							virt-manager
							virt-viewer

qemu-kvm:
qemu-kvm [ options ] [ disk_image ]

使用qemu-kvm管理工具:
yum install qemu-kvm
/usr/libexec/qemu-kvm
命令选项:
标准选项:
显示选项:
块设备选项:
网络选项:
i386平台专用选项:
字符设备选项:
蓝牙设备选项:
Linux启动专用选项:
调试/专家模式选项:

cirros project:为cloud环境测试vm提供的微缩版Linux:
启动第一个虚拟:
qemu-kvm -m 128 -smp 2 -name test -hda /images/kvm/cirros-0.3.4-i386.disk.img
用-drive制定磁盘映像文件:
# qemu-kvm -m 128 -name test -smp 2 -drive file=/images/kvm/cirros-0.3.4-i386-disk.img,if=virtio,media=disk,cache=writeback,format=qcow2
通过cdrom启动winxp安装:
# qemu-kvm -name winxp -smp 4,sockets=1,cores=2,threads=2 -m 512 -drive file=/images/kvm/winxp.img,if=ide,media=disk,cache=writeback,format=qcow2 -drive file=/root/winxp_ghost.iso,media=cdrom
指定使用桥接网络接口:
qemu-kvm -m 128 -name test -smp 2 -drive file=/images/kvm/cirros-0.3.4-i386-disk.img,if=virtio,media=disk,cache=writeback,format=qcow2 -net nic -net tap,script=/etc/if-up,downscript=no -nographic

显示选项:
SDL:Simple DirectMedia Layer:C语言开发,夸平台且开元多媒体程序库文件;
在qemu中使用"-sdl"即可

VNC:Virtual Network Computing,使用RFB(Remote FrameBuffer)协议远程控制另外的主机;
CentOS 6.6
(1) yum install tigervnc-server
(2) vncpasswd
(3) vncserver :N

	qemu-kvm
	    -vnc display,option,option
			示例:-nvc -N,password
			启动qemu-kvm时,额外使用-monitor stdio选项,并使用change vnc password命令设置密码;

补充资料:qemu-kvm使用文档
2.5.6 使用qemu-kvm管理KVM虚拟机
Qemu时一个广泛使用的开源计算机仿真器和虚拟机,当做仿真器时,可以在一种架构(如PC机)下运行另一种架构(如PC机)下运行另一种架构(如ARM)下的操作系统和程序,而通过动态转换,其可以获得很高的运行效率。当作为一个虚拟机时,qemu可以通过直接使用真机的系统资源,让虚拟系统能够获得接近于物理机的性能表现,qemu支持xen或者kvm模式下的虚拟化。当用kvm时,qemu可以虚拟x86、服务器和嵌入式powerpc,以及s390的系统。

QEMU当运行与主机架构相同的目标架构时可以使用KVM,例如,当在一个x86兼容处理器上运行qemu-system-x86时,可以利用KVM加速为宿主机和客户机提供更好的性能。

Qemu有如下几个部分组成:
处理器模拟器(x86、PowerPC和Sparc);
仿真设备(显卡、网卡、硬盘、鼠标等);
用于将仿真设备连接至主机设备(真实设备)的通用设备;
模拟卷的描述信息;
调试器;
与模拟器交互的用户接口;

2.5.6.1 使用qemu-kvm安装Guest
如2.5.5中所述,给予libvirt的工具如virt-manager何virt-install提供了非常便捷的虚拟机管理接口,但它们事实上经过二次开发后又封装了qemu-kvm的工具,因此,直接使用qemu-kvm命令也能够完成此前的任务。

2.5.6.1.1 qemu-kvm命令
在RHEL6上,qemu-kvm位于/usr/libexec目录中,由于此目录不属于PATH环境变量,故无法直接使用,这样也阻止了可以直接使用qemu作为创建并管理虚拟机。如若想使用qemu虚拟机,可以通过将/usr/libexec/qemu-kvm链接为/usr/bin/qemu实现。

# ln -sv /usr/lib/exec/qemu-kvm /usr/bin/qemu-kvm

qemu-kvm命令使用格式为"qemu-kvm [options] [disk_image]",其选项非常多,不过,大致可分为如下几类。
标准选项:
USB选项:
显示选项:
i386平台专用选项:
网络选项:
字符设备选项:
蓝牙相关选项:
Linux系统引导专用选项:
调试/专家模式选项:
PowerPC专用选项:
Sparc32专用选项:

考虑到篇幅及使用需要,这里介绍的选项主要涉及到标准选项、显示选项、i386平台专用选项及Linux系统引导专用选项相关的选项。

2.5.6.1.2 qemu-kvm的标准选项
qemu-kvm的标准选项主要涉及制定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。
-name name:设定虚拟机名称;
-M machine:制定要模拟的主机类型,如Standard PC、ISA-only PC或Intel-Mac等,可以使用"qemu-kvm -M ?"获取所支持的所有类型;
-m megs:设定虚拟机的RAM大小;
-cpu model:设定CPU模型,如coreduo、qemu64等,可以使用"qemu-kvm -cpu ?"获取所支持的所有模型;
-smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]:设定模拟的SMP架构中CPU的个数等、每个CPU的核心数及CPU的socket数目等;PC机上最多可以模拟255颗CPU;maxcpus用于指定热插入的CPU个数上限;
-numa opts:指定模拟多节点的numa设备;
-fda file
-fdb file:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱;
-hda file
-hdb file
-hdc file
-hdd file:使用指定file作为硬盘镜像;
-cdrom file:使用指定file作为CD-ROM进行,需要注意的是-cdrom和-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱;
-drive option[,option[,option[,…]]]:定义一个硬盘设备;可用子选项有很多。
file=/path/to/somefile:硬件映像文件路径;
if=interface:指定硬盘设备所连接的接口类型,既控制器类型,如ide、scsi、sd、mtd、floppy、pflash及virtio等;
index=index:设定同一种控制器类型中不同设备的索引号,即标识号;
media=media:定义介质类型为硬盘(disk)还是光驱(cdrom);
snapshot=snapshot:指定当前硬盘设备是否支持快照功能:on或off;
cache=cache:定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe和writethrough四个;
format=format:指定映像文件的格式,具体格式可参见qemu-img命令;
-boot [order=drives][,once=drives][,menu=of|off]:定义启动设备的引导次序,每种设备使用一个字符表示;不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备,n-p表示网络适配器,默认为硬盘设备;
-boot order=dc,once=d

2.5.6.1.3 qemu-kvm的显示选项
显示选项用力啊定义虚拟机启动后的显示接口相关类型及属性等。
-nographic:默认情况下,qemu使用SDL来显示VGA输出,而此选项用于禁用图形接口,此时,qemu类似一个简单的命令行程序,其仿真串口设备将被重定向到控制台;
-curses:禁止图形接口,并使用curses/ncurses作为交互接口;
-alt-grab:使用Ctrl+Alt+Shift组合键释放鼠标;
-ctrl-grab:使用右Ctrl键释放鼠标;
-sdl:启动SDL;
-spice option[,option[,…]]:启动spice远程桌面协议,其有许多子选项,具体参照qemu-kvm的手册;
-vga type:指定要仿真的VGA接口类型,常见类型有;
cirrus:Cirrus Logic GD5446显示卡
std:带有Bochs VBI扩展的标准VGA显示卡
vmware:VMWare SVGA-II兼容的显示适配器;
qxl:QXL半虚拟化显示卡,与VGA兼容,在Guest中安装qxl驱动后能以很好的方式工作,在使用spice协议时推荐使用此类型;
none:禁用VGA卡;
vnc display[,option[,option[,…]]]:默认情况下,qemu使用SDL显示VGA输出,使用-vnc选项,可以让qemu监听在VNC上,并将VGA输出重定向至VNC会话;使用此选项时,必须使用-k选项制定键盘布局类型,其有许多子选项,具体请参照qemu-kvm的手册;
display:
(1) host:N
172.16.100.67:1,监听于172.16.100.67主的5900+N的端口上
(2) unix:/path/to/socket_file
(3) none
options:
password:连接时需要验证密码,设定密码通过monitor接口使用change
reverse: "反向"连接至某处于监听状态的vncview上;
-monitor stdio:表示在标准输入输出上显示monitor界面
-nographic:
Ctrl-a, c:在console和monitor之间切换
Ctrl-a, h:显示帮助信息

2.5.6.1.4 386平台专用选项
-no-acpi:禁用ACPI功能,GuestOS与ACPI出席兼容问题时使用此选项;
-balloon none:禁用balloon设备;
-balloon virtio[,addr=addr]:启用virtio balloon设备;

2.5.6.1.5 网络属性相关选项
网络属性相关选项用于定义网络设备接口类型其相关的各属性等信息,这里只介绍nic、tap和user三种类型网络接口的属性,其它类型请参照qemu-kvm手册。
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]:创建一个新的网卡设备并连接至vlan n中;PC架构上默认的NIC为e1000,macaddr用于为其制定MAC地址,name用于指定一个在监控时显示的网上设备名称;emu可以模拟多个类型的网卡设备,如virtio、i82551、i82557b、i82559er、ne2k_isa、pcnet、rt18139、e1000、smc91c111、lance及mcf_fec等;不过,不同平台架构上,其支持的类型可能只包含前述列表的一部分,可以使用"qemu-kvm -net nic,model=?"来获取当前平台支持的类型;
-net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]:通过物理机的TAP网络接口连接至vlan n中,使用script=file指定的脚本(默认为/etc/qemu-ifup)来配置当前网络接口,并使用downscript=file指定的脚本(默认为/tc/qemu-ifdown)来撤销接口配置;使用script=no和downscript=no可分别用来禁止执行脚本;
-net user[,option][,option][,…]:在用户模式配置网络栈,其不依赖于管理权限;有效选项有:
vlan=n:连接至vlan n,默认n=0;
name=name[/mask]:设定GuestOS可见的IP网络,掩码可选,默认为10.0.2.0/8;
host=addr[/mask]:设定GuestOS中看到的物理机的IP地址,默认为指定网络中的第二个,即x.x.x.2;
dhcpstart=addr:指定DHCP服务地址池中16个地址的起始IP,默认为第16个至第31个,即x.x.x.16-x.x.x.31;
dns=addr:指定GuestOS可见的dns服务器地址,默认为GuestOS网络中的第三个地址,即x.x.x.3;
tftp=dir:激活内置的tftp服务器,并使用指定的dir作为tftp服务器的默认根目录;
bootfile=file:BOOTP文件名称,用于实现网络引导GuestOS;如:qemu -hda linux.img -boot n -net user,tftp=/tftpserver/pub,bootfile=/pxelinux.0

# cat /etc/qemu-ifup
#!/bin/bash
#
bridge=br0

网络模型:
隔离模型

路由模型:

NAT模型(NAT Mode)

桥接模型

实验环境:
操作系统:Centos7.5
IP地址:172.16.100.67
内核:2.6.32-504.el6.x86_64

我这里使用VMware Workstation实验操作,需要在虚拟机Inter VT-x/EPT或AMD-V/RVI(V);

[root@kvm ~]# hostname kvm.server.com
NETWORKING=yes
[root@localhost ~]# vim /etc/hostname
kvm.server.com
[root@kvm ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.100.6    kvm kvm.server.com

查看是否支持硬件辅助虚拟化;

[root@kvm ~]#  grep -E --color=auto "(vmx|svm)" /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic                                  popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep arat
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic                                  popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep arat
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic                                  popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep arat
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic                                  popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep arat

加载kvm核心模块,如果CPU是intel加载相关kvm模块;

[root@kvm ~]# modprobe kvm
[root@kvm ~]# modprobe kvm-intel
[root@kvm ~]# lsmod | grep kvm
kvm_intel             174841  0
kvm                   578518  1 kvm_intel
[root@kvm ~]# ls /dev/kvm
/dev/kvm
[root@kvm ~]# yum grouplist | grep -i "virtualization"
   Virtualization
   Virtualization Client
   Virtualization Platform
   Virtualization Tools
[root@kvm ~]# yum -y install qemu-kvm
[root@kvm ~]# ln -sv /usr/libexec/qemu-kvm /usr/bin/

到http://download.cirros-cloud.net/0.4.0/ 下载cirros-0.4.0-x86_64-disk.img文件;

[root@kvm ~]# qemu-img info cirros-0.4.0-x86_64-disk.img
image: cirros-0.4.0-x86_64-disk.img
file format: qcow2
virtual size: 44M (46137344 bytes)
disk size: 12M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@kvm ~]# qemu-kvm -m 128 -smp 2 -name "test" -hda cirros-0.4.0-x86_64-disk.img
VNC server running on `::1:5900'
[root@kvm ~]#  ss -tnl
State      Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port
LISTEN     0      128                                    *:22                                                 *:*
LISTEN     0      100                            127.0.0.1:25                                                 *:*
LISTEN     0      1                                    ::1:5900                                              :::*
LISTEN     0      128                                   :::22                                                :::*
LISTEN     0      100                                  ::1:25                                                :::*
[root@kvm ~]# yum -y install tigervnc
[root@kvm ~]# vncviewer :5900

ctrl+alt+2可以完成控制台切换(监控接口)

可以使用help查看监控命令,可以使用info查看虚拟机相关信息,切换回去使用ctrl+alt+1;;

[root@kvm ~]# ps aux | grep qemu-kvm
root      14212  6.3  3.1 807032 121556 pts/0   Sl+  12:38   1:12 qemu-kvm -m 128 -smp 2 -name test -hda cirros-0.4.0-x86_64-disk.img
root      15423  0.0  0.0 112720   984 pts/2    S+   12:57   0:00 grep --color=auto qemu-kvm
[root@kvm ~]# kill -9 14212
[root@kvm ~]# qemu-kvm -m 128 -smp 2 -name "test" -hda cirros-0.4.0-x86_64-disk.img
VNC server running on `::1:5900'
[root@kvm ~]# vncviewer :5900

不指定cpu类型,cpu类型为qemu virtual cpu;

使用底层物理主机cpu;

[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -hda cirros-0.4.0-x86_64-disk.img
VNC server running on `::1:5900'
[root@kvm ~]# vncviewer :5900

cpu类型为物理机cpu型号;

virtio使用半虚拟化;

[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback
VNC server running on `::1:5901'

安装windows xp:
[root@kvm ~]# mkdir -pv /images/windows
[root@kvm ~]# qemu-img create -f qcow2 /images/windows/winxp.qcow2 -o ?
Supported options:
size Virtual disk size
compat Compatibility level (0.10 or 1.1)
backing_file File name of a base image
backing_fmt Image format of the base image
encryption Encrypt the image
cluster_size qcow2 cluster size
preallocation Preallocation mode (allowed values: off, metadata, falloc, full)
lazy_refcounts Postpone refcount updates
[root@kvm ~]# qemu-img create -f qcow2 /images/windows/winxp.qcow2 -o size=20G,preallocation=metadata
[root@kvm ~]# ll -h /images/windows/winxp.qcow2
-rw-r–r--. 1 root root 21G 12月 25 11:09 /images/windows/winxp.qcow2
[root@kvm ~]# du -sh /images/windows/winxp.qcow2
4.1M /images/windows/winxp.qcow2
[root@kvm ~]# qemu-kvm -m 512 -smp 2 -cpu host -drive file=/images/windows/winxp.qcow2,media=disk -drive file=/root/winxp_ghost.iso,media=cdrom -boot order=dc,once=d
[root@kvm ~]# vncviewer :5900

启用SDL功能,默认SDL是禁用的,应该是编译qemu-kvm时候没有启用SDL功能;

[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -sdl
SDL support is disabled

修改vnc监听端口;

[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -vnc 172.16.100.67:0
[root@kvm ~]# ss -tnl
State      Recv-Q Send-Q           Local Address:Port                          Peer Address:Port
LISTEN     0      128                  127.0.0.1:6013                                     *:*
LISTEN     0      1                172.16.100.67:5900                                     *:*
LISTEN     0      128                          *:22                                       *:*
LISTEN     0      100                  127.0.0.1:25                                       *:*
LISTEN     0      128                  127.0.0.1:6010                                     *:*
LISTEN     0      128                        ::1:6013                                    :::*
LISTEN     0      128                         :::22                                      :::*
LISTEN     0      100                        ::1:25                                      :::*
LISTEN     0      128                        ::1:6010                                    :::*

使用windows的VNC Viewer进行连接;

设置vnc登录密码;
[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -vnc 172.16.100.67:0,password

直接显示monitor;

[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -vnc 172.16.100.67:0,password -monitor stdio
QEMU 1.5.3 monitor - type 'help' for more information
(qemu) change vnc password    #设置登录密码
Password: ********    #smoke520
[root@kvm ~]# vncviewer 172.16.100.67 port 5900

打开控制台;
[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -monitor stdio

使用ctl+a,c在console和monitor之间切换,如果不能切换,可以通过图形界面操作一次再进行测试;

使用vgs显示类型cirrus;
[root@kvm ~]# qemu-kvm -m 128 -cpu host -smp 2 -name "test" -drive file=cirros-0.4.0-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -vga cirrus

$ lspci
00:00.0 Class 0600: 8086:1237
00:01.0 Class 0601: 8086:7000
00:01.1 Class 0101: 8086:7010
00:01.3 Class 0680: 8086:7113
00:02.0 Class 0300: 1013:00b8
00:03.0 Class 0200: 8086:100e
00:04.0 Class 0100: 1af4:1001
$ ls /sys/bus
acpi          event_source  mipi-dsi      pci_express   sdio          vme
clockevents   i2c           mmc           platform      serio         workqueue
clocksource   machinecheck  nd            pnp           spi           xen
container     mdio_bus      node          rapidio       usb           xen-backend
cpu           memory        pci           scsi          virtio
$ ls /sys/bus/pci
devices             drivers_autoprobe   rescan              slots
drivers             drivers_probe       resource_alignment  uevent
$ lsmod
Module                  Size  Used by    Not tainted
nls_iso8859_1          16384  0
isofs                  40960  0
ip_tables              24576  0
x_tables               36864  1 ip_tables
pcnet32                45056  0
8139cp                 28672  0
mii                    16384  2 pcnet32,8139cp
ne2k_pci               16384  0
8390                   20480  1 ne2k_pci
e1000                 135168  0
virtio_scsi            20480  0
# poweroff

创建桥;
[root@kvm ~]# yum list all | grep -i bridge
bridge-utils.x86_64 1.5-9.el7 base
cockpit-bridge.x86_64 176-4.el7.centos extras
[root@kvm ~]# modinfo bridge
filename: /lib/modules/3.10.0-862.el7.x86_64/kernel/net/bridge/bridge.ko.xz
alias: rtnl-link-bridge
version: 2.3
license: GPL
retpoline: Y
rhelversion: 7.5
srcversion: A0B6183F98024E85CD123C5
depends: stp,llc
intree: Y
vermagic: 3.10.0-862.el7.x86_64 SMP mod_unload modversions
signer: CentOS Linux kernel signing key
sig_key: 3A:F3:CE:8A:74:69:6E:F1:BD:0F:37:E5:52:62:7B:71:09:E3:2B:96
sig_hashalgo: sha256
[root@kvm ~]# yum -y install bridge-utils
[root@kvm ~]# brctl addbr br0
[root@kvm ~]# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 32:41:58:12:f2:2d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值