环境准备

需要勾选CPU的虚拟化支持,支持cpu虚拟化的CPU列表:

intel支持虚拟化技术CPU列表:

Intel 6 Cores / 12 Threads CPU Number:

Code Name:Nehalem-EX
Xeon E6540
Xeon E7530
Xeon E7540
Xeon L7545 Code Name:Gulftown
Core i7-970
Core i7-980
Core i7-980X Extreme Edition
Core i7-990X Extreme Edition
Xeon W3690 Code Name:Westmere-EP
Xeon E5645
Xeon E5649
Xeon L5638
Xeon L5640
Xeon W3670
Xeon W3680
Xeon X5650
Xeon X5660
Xeon X5670
Xeon X5675
Xeon X5680
Xeon X5690 Code Name:Westmere-EX
Xeon E7-2803
Xeon E7-4807 Code Name:Sandy Bridge-E
Core i7-3930K
Core i7-3960X Extreme Edition
Core i7-3970X Extreme Edition Code Name:Sandy Bridge-EN
Xeon E5-1428L
Xeon E5-2420
Xeon E5-2428L
Xeon E5-2430
Xeon E5-2430L
Xeon E5-2440 Code Name:Sandy Bridge-EP
Xeon E5-1650
Xeon E5-1660
Xeon E5-2620
Xeon E5-2630
Xeon E5-2630L
Xeon E5-2640
Xeon E5-2667
Xeon E5-4607
Xeon E5-4610 Code Name:Ivy Bridge
Xeon E5-1650V2
Xeon E5-1660V2
Xeon E5-2618LV2
Xeon E5-2620V2
Xeon E5-2630V2
Xeon E5-2630LV2
Xeon E5-2643V2 Code Name:Ivy Bridge-E
Core i7-4930K
Core i7-4960X Extreme Edition
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=on|off]:定义启动设备的引导次序,每种设备使用一个字符表示;不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备,n-p表示网络适配器;默认为硬盘设备; 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的手册; i386平台专用选项 ◇ -no-acpi:禁用ACPI功能,GuestOS与ACPI出现兼容问题时使用此选项;
◇ -balloon none:禁用balloon设备;
◇ -balloon virtio[,addr=addr]:启用virtio balloon设备; 网络属性相关选项 网络属性相关选项用于定义网络设备接口类型及其相关的各属性等信息。这里只介绍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、rtl8139、e1000、smc91c111、lance及mcf_fec等;不过,不同平台架构上,其支持的类型可能只包含前述列表的一部分,可以使用“qemu-kvm -net nic,mode=?”来获取当前平台支持的类型;
◇ -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 使用示例 下面的命令创建了一个名为rhel5.8的虚拟机,其RAM大小为512MB,有两颗CPU的SMP架构,默认引导设备为硬盘,有一个硬盘设备和一个光驱设备,网络接口类型为virtio,VGA模式为cirrus,并启用了balloon功能。 # qemu-kvm -name "rhel5.8" -m 512 \
-smp 2 -boot d \
-drive file=/VM/images/rhel5.8/hda,if=virtio,index=0,media=disk,format=qcow2 \
-drive file=/isos/rhel-5.8.iso,index=1,media=cdrom \
-net nic,model=virtio,macaddr=52:54:00:A5:41:1E \
-vga cirrus -balloon virtio 需要注意的是,上述命令中使用的硬盘映像文件/VM/images/rhel5.8/hda需要事先使用qemu-img命令创建,其具体使用格式请见下节介绍。 在虚拟机创建并安装GuestOS完成之后,可以免去光驱设备直接启动之。命令如下所示。 # qemu-kvm -name "rhel5.8" -m 512 \
-smp 2 -boot d \
-drive file=/VM/images/rhel5.8/hda,if=virtio,index=0,media=disk,format=qcow2 \
-net nic,model=virtio,macaddr=52:54:00:A5:41:1E \
-vga cirrus -balloon virtio 使用qemu-img管理磁盘映像
qemu-img是qemu用来实现磁盘映像管理的工具组件,其有许多子命令,分别用于实现不同的管理功能,而每一个子命令也都有一系列不同的选项。其使用语法格式为“qemu-img subcommand [options]”,支持的子命令如下。 ◇ create:创建一个新的磁盘映像文件;
◇ check:检查磁盘映像文件中的错误;
◇ convert:转换磁盘映像的格式;
◇ info:显示指定磁盘映像的信息;
◇ snapshot:管理磁盘映像的快照;
◇ commit:提交磁盘映像的所有改变;
◇ rbase:基于某磁盘映像创建新的映像文件;
◇ resize:增大或缩减磁盘映像文件的大小; 使用create子命令创建磁盘映像的命令格式为“create [-f fmt] [-o options] filename [size]”,例如下面的命令创建了一个格式为qcow2的120G的稀疏磁盘映像文件。

1、网络配置

添加网桥设备br0

# cd /etc/sysconfig/network-scripts/

# cp ifcfg-eth0 ifcfg-br0





# vim ifcfg-br0





DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

IPV6INIT=no

IPADDR=192.168.8.46

BROADCAST=192.168.8.255

NETMASK=255.255.255.0

GATEWAY=192.168.8.254

USERCTL=no





# vim ifcfg-eth0





DEVICE=eth0

NM_CONTROLLED=no

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

IPV6INIT=no

USERCTL=no

BRIDGE=br0





# service network restart





验证配置是否成功

# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:4D:E2:88
inet addr:192.168.8.46 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe4d:e288/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:119 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8131 (7.9 KiB) TX bytes:4302 (4.2 KiB) eth0 Link encap:Ethernet HWaddr 00:0C:29:4D:E2:88
inet6 addr: fe80::20c:29ff:fe4d:e288/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6232 errors:0 dropped:0 overruns:0 frame:0
TX packets:493 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:796837 (778.1 KiB) TX bytes:81011 (79.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: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)

2、加载kvm模块

# modprobe kvm
# modprobe kvm_intel
# lsmod | grep kvm
kvm_intel 55624 0
kvm 341551 1 kvm_intel

安装kvm管理相关组件

# yum install -y qemu-kvm qemu-kvm-tools





创建命令的链接

# ln -sv /usr/libexec/qemu-kvm /usr/sbin/

`/usr/sbin/qemu-kvm' -> `/usr/libexec/qemu-kvm'

创建存储目录

# mkdir -pv /images/vm1

mkdir: created directory `/images'

mkdir: created directory `/images/vm1'

3、安装vnc客户端并安装系统

安装tigervnc客户端用来观察系统安装的过程

# yum install -y tigervnc

增加一个网络配置脚本

# vim /etc/qemu-ifup

#!/bin/bash
#
switch=br0 if [ -n "$1" ]; then
ifconfig $1 up
sleep 0.5s
brctl addif $switch $1
exit 0
else
echo "Error: no specifed interface."
exit 1
fi

# chmod +x /etc/qemu-ifup

获取安装系统所需的镜像文件,通过本地引导安装kvm虚拟机系统

# lftp 192.168.8.111 -uftp

安装示例1:从光盘引导镜像安装centos

创建虚拟磁盘

# mkdir /image/vm2

# qemu-img create -f qcow2 -o size=60G /images/vm2/centosminal.qcow2

# qemu-kvm -name "centos6.3minal" -m 768 -smp 4 -drive file=/images/vm2/centosminal.qcow2,if=ide,index=0,media=disk,format=qcow2 -drive file=/root/CentOS-6.3-x86_64-minimal.iso,media=cdrom,index=1 -boot order=dc

另外启动一个窗口,运行vncviewer,可以看到可以正常加载光盘中的ISO文件

# vncviewer :5901

安装示例2:通过网络安装系统

创建虚拟机,并通过网络pxe识别,前提是需要配置pxe或者cobbler,具体可以参考前面的博文:

CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解:http://blog.csdn.net/reblue520/article/details/51398512

创建虚拟磁盘文件

# qemu-img create -f qcow2 -o size=100G /images/vm1/centos6.qcow2

Formatting '/images/vm1/centos6.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 

从网络安装系统

# qemu-kvm -name "centos6" -m 768 -smp 4 -hda /images/vm1/centos6.qcow2 -net nic -net tap,ifname=vnet0,downscript=no -boot order=nc

通过网络的方式安装,因为cobbler启用了dhcp服务可以看到系统自动获取到了ip地址

另外开启一个shell窗口(如果是xshell客户端,需要配置x11相关的参数)

# vncviewer :5900

报错:说明安装的xmanager有问题,需要重新安装即可

安装示例3:从光盘引导镜像安装windows

# qemu-kvm -name "win2003" -m 768 -smp 4 -drive file=/images/vm2/centosminal.qcow2,if=ide,index=0,media=disk,format=qcow2 -drive file=/root/Win2003.ISO,media=cdrom,index=1 -boot order=dc

另外启动一个窗口,运行vncview可以看到可以正常引导进入安装界面

因为系统的安装比较费时,也可以使用cirros镜像来模拟系统启动

下载地址:http://download.cirros-cloud.net/

# qemu-kvm -name "cirros" -smp 2,cores=2,thread=2,socket=2 -m 512 -drive file=/root/cirros-0.3.0-x86_64-disk.img,media=disk -net nic -net tap,ifname=vnet0,downscript=no -nographic





进入cirros系统后ctrl+a然后松开按c可以进入qemu命令行

help打开命令行帮助

info help 关于info的帮助信息

centos6.7环境之kvm虚拟化quem工具配置及使用详解的更多相关文章

  1. centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解

    centos环境安装mysql5.7 其实不建议安装mysql5.7 语法和配置可能和以前的版本区别较大,多坑,慎入 1.yum方式安装(不推荐) a.安装mysql5.7 yum源 centos6: ...

  2. centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课

    centos vmware centos6.6 64位 kvm虚拟化安装配置     第四十二节课 上半节课 下半节课 f

  3. java环境配置及原理详解

    java环境配置及原理详解 1.java跨平台的本质 我们谈到java,总是提到跨平台这个词.那么java语言是怎么实现跨平台的呢? 我们编写的java代码不是直接让windows系统读取解析,而是在 ...

  4. 给ambari集群里的kafka安装基于web的kafka管理工具Kafka-manager(图文详解)

    不多说,直接上干货! 参考博客 基于Web的Kafka管理器工具之Kafka-manager的编译部署详细安装 (支持kafka0.8.0.9和0.10以后版本)(图文详解)(默认端口或任意自定义端口 ...

  5. VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三

    目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_GetMetadataKeys VixDiskLib_ReadMetadata 获取虚拟磁盘元数据 VixDiskLib_ ...

  6. 【原创】K8S环境下研发如何本地调试?kt-connect使用详解

    K8S环境下研发如何本地调试?kt-connect使用详解 背景 注:背景有点啰嗦,讲讲一路走来研发本地调试的变化,嫌烦的可以直接跳过,不影响阅读. 2019年 我在的公司当时是个什么情况,只有两个J ...

  7. Linux网络状态工具ss命令使用详解【转】

    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...

  8. (转)Linux网络状态工具ss命令使用详解

    Linux网络状态工具ss命令使用详解 原文:http://www.landui.com/help/show-5991.html ss 是 socket statistics 的缩写.顾名思义,ss ...

  9. VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二

    目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_Open 打开 VMDK File VixDiskLib_Read 读取 VMDK File 数据 VixDiskLib_ ...

随机推荐

  1. Codeforces Round #419 (Div. 2)(B)差分数组

    传送门:Problem B https://www.cnblogs.com/violet-acmer/p/9721160.html 题意: Karen有n个关于煮咖啡的食谱,每个食谱都有个煮咖啡的最适 ...

  2. mfc editline 变为大框框

    属性:

  3. (母函数 Catalan数 大数乘法 大数除法) Train Problem II hdu1023

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. nginx设置反向代理后端jenklins,页面上的js css文件无法加载

    转载 2017年06月14日 22:36:59 8485 问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2 ...

  5. Unity PC端发布失败解决办法

    Unity的PC端有时候发布的时候报错.原因可能是你的游戏里面使用了NGUI的label,而且字体选择的是unity自带的字体.因为支持中文.在选择unity自带的字体时最好都选一样的字体.如果一个l ...

  6. oracle表结构和表内容差异比对【原】

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  7. WinForm ListView虚拟模式加载数据 提高加载速度

    将VirtualMode 属性设置为 true 会将 ListView 置于虚拟模式.控件不再使用Collection.Add()这种方式来添加数据,取而代之的是使用RetrieveVirtualIt ...

  8. 浅析 Bigtable 和 LevelDB 的实现

    在 2006 年的 OSDI 上,Google 发布了名为 Bigtable: A Distributed Storage System for Structured Data 的论文,其中描述了一个 ...

  9. 通过lua栈了解lua与c的交互

    lua是如何执行的 其中分析.执行部分都是c语言实现的. lua与c的关系 lua的虚拟机是用c语言实现的,换句话说一段lua指令最终在执行时都是当作c语言来执行的,lua的global表,函数调用栈 ...

  10. Nginx 学习笔记(一)如何配置一个安全的HTTPS网站服务器

    一.系统环境 1.系统:Ubuntu 16.04.2 LTS 2.WEB服务器:Openresty11.2.5 二.开始配置 1.获取certbot客户端 wget https://dl.eff.or ...