• centos6.7环境之kvm虚拟化quem工具配置及使用详解



    环境准备

    需要勾选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的帮助信息




  • 相关阅读:
    [root@py ~]# watch -n 1 ifconfig 求解释
    25 个常用的 Linux iptables 规则
    linux shell 字符串操作(长度,查找,替换)详解
    linux高级网络配置 ip别名,接口绑定
    初始版本控制工具-Git
    详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
    wireshark_users
    wireshark抓包基础步骤及PPPOE拨号抓包过程分析
    ARP原理与ARP攻击
    PPPOE 详解
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239797.html
Copyright © 2020-2023  润新知