1).KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。 2).是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。 3).它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。 4).KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。 5).KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。 6).在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。
#modprobe kvm-intel # lsmod |grep kvm kvm_intel 55496 0 kvm 337772 1 kvm_intel
# ifconfig
eth0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26
inet addr:172.16.31.7 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25460 errors:0 dropped:0overruns:0 frame:0
TX packets:9728 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:35156437 (33.5 MiB) TXbytes:800196 (781.4 KiB)
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:65536 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1024 (1024.0 b) TXbytes:1024 (1024.0 b)
virbr0 Link encap:Ethernet HWaddr52:54:00:30:54:41
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:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.525400305441 yes virbr0-nic
# chkconfig NetworkManager off # service NetworkManager stop
# ifconfig
br0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26
inet addr:172.16.31.7 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:76 errors:0 dropped:0 overruns:0 frame:0
TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9781 (9.5 KiB) TXbytes:8957 (8.7 KiB)
eth0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26
inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link
UP BROADCAST RUNNINGMULTICAST MTU:1500 Metric:1
RX packets:176 errors:0 dropped:0 overruns:0 frame:0
TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26793 (26.1 KiB) TXbytes:11385 (11.1 KiB)
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:65536 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:344 (344.0 b) TXbytes:344 (344.0 b)
virbr0 Link encap:Ethernet HWaddr52:54:00:30:54:41
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:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c293e6326 yes eth0 virbr0 8000.525400305441 yes virbr0-nic
-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=on|off]:定义启动设备的引导次序,每种设备使用一个字符表示;不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备,n-p表示网络适配器;默认为硬盘设备; -boot order=dc,once=d
-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的手册;
-no-acpi:禁用ACPI功能,GuestOS与ACPI出现兼容问题时使用此选项; -balloon none:禁用balloon设备; -balloon virtio[,addr=addr]:启用virtio balloon设备;
-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、rtl8139、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指定的脚本(默认为/etc/qemu-ifdown)来撤消接口配置;使用script=no和downscript=no可分别用来禁止执行脚本; -net user[,option][,option][,...]:在用户模式配置网络栈,其不依赖于管理权限;有效选项有: vlan=n:连接至vlan n,默认n=0; name=name:指定接口的显示名称,常用于监控模式中; net=addr[/mask]:设定GuestOS可见的IP网络,掩码可选,默认为10.0.2.0/8; host=addr:指定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
# qemu-img create -o preallocation=metadata -f qcow2 /kvm/images/winxp.qcow2 60G # ll -h /kvm/images/ total 9.6M -rw-r--r-- 1 root root 61G Feb 7 23:50 winxp.qcow2
# yum install vnc-server tigervnc -y 设置vncserver的密码; # vncpasswd Password: Verify: 启动vncserver # vncserver New 'createOS:1 (root)' desktop iscreateOS:1 Creating default startup script/root/.vnc/xstartup Starting applications specified in/root/.vnc/xstartup Log file is /root/.vnc/createOS:1.log
#qemu-kvm -cpu host -smp 1 -name winxp -m 512 -drive file=/kvm/images/winxp.qcow2,if=ide,meida=disk,format=qcow2 -drive file=/root/winxp_ghost.iso,media=cdrom -boot dc -usbdevice tablet
# qemu-imginfocirros-0.3.0-x86_64-disk.img image: cirros-0.3.0-x86_64-disk.img file format: qcow2 virtual size: 39M (41126400 bytes) disk size: 9.3M cluster_size: 65536
# mv cirros-0.3.0-x86_64-disk.img /kvm/images
# cat /etc/qemu-ifup #!/bin/bash # bridge=br0 if [ -n "$1" ]; then ip link set $1 up sleep 1 brctl addif $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1 else echo "Error: no interfacespecified." exit 1 fi
# cat/etc/qemu-ifdown #!/bin/bash # bridge=br0 if [ -n "$1" ];then brctl delif $bridge $1 ip link set $1 down exit 0 else echo "Error: no interfacespecified." exit 1 fi
#chmod +x /etc/qemu-ifup #chmod +x /etc/qemu-ifdown
help:显示帮助
info:显示一些虚拟机系统信息的
如:infocpus,infotlb
savevm,loadvm,delvm:保存、装载、删除虚拟机快照
commit:提交虚拟机修改部分
change:改变虚拟机配置
如:changevncpassword
device_add&device_del:实现动态添加和移除设备
usb_add&usb_del:添加和移除usb设备
migrate,migrate_cancel:迁移和取消迁移指令
cpu:设定默认CPU
log&logfile:记录日志和将日志记录到日志文件中
sendkey:向虚拟机发送指令
system_powerdown:向客户端发送关闭电源通知
system_reset:重启虚拟机
system_wakeup:唤醒虚拟机
q or quit:退出qemu监视器,qemu进程会终止;
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有