• KVM安装配置


    KVM   全称  Kernel-based Virtual Machine

    qemu 全称  Quick Emulator 

    virsh  全称  Virtual Shell

    一、安装准备

    1.确定机器有VT
    终端输入命令:
    grep vmx /proc/cpuinfo (INTEL芯片)
    grep svm  /proc/cpuinfo (AMD芯片)
    不知道芯片的生产厂商则输入:egrep  '(vmx|svm)' /proc/cpuinfo
    如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机
    2. 确保BIOS里开启VT
    Intel(R) Virtualization Tech [Enabled]
    如有必要,还需在BIOS中开启VT-d
    3. 确保内核版本较新,支持KVM
    用uname –r查看内核版本,如果在2.6.20以下的linux版本,需升级内核。
     
    二、安装KVM 
    1、 安装 KVM 和 virtinst (一个创建 virtual machines 的工具 )
    # yum install  kvm  qemu  libvirt  python-virtinst  -y
    2、重启后确认libvirtd是否正常启动
    # /etc/init.d/libvirtd  restart
    3、装完后记的重起,重起后检查模块是否有加载
    # lsmod |grep kvm
    kvm_intel              53484  0
    kvm                   316506  1 kvm_intel
    4、检查KVM是否成功安装,出现以下信息说明安装成功了
    # virsh list --all            ##--all关闭的也会显示
     Id         Name                         State
    ----------------------------------------------------
     
    5、安装桥接管理的工具
    # yum  install  bridge-utils
    6、安装 GUI 的管理软件
    # yum  install  virt-manager
    7、版本信息查询
    # virsh --version  
    8、修改qemu.conf配置
    # vim /etc/libvirt/qemu.conf
    vnc_listen = "0.0.0.0"  修改vnc监听端口
     
    参考资料:
    http://lvmy.iteye.com/blog/1297409
    http://www.server110.com/kvm/201404/10467.html
     
    三、KVM网卡桥接设置
    1、关闭 virbr0

    安装完成支持虚拟化相关包后,会自动建立一个名称为virbr0的虚拟网卡,在多网卡情况下,此网卡默认与eth1或em1网卡绑定,使用的是 NAT 模式(采用 IP Masquerade)。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。所以说这个virbr0不是必须的,不用的情况下为避免混乱建议关闭。

    默认的网络连接是virbr0,它的配置文件在/var/lib/libvirt/network目录下。

    # virsh net-list 
    Name                State      Autostart 
    ----------------------------------------- 
    default              active    yes
    # virsh net-destroy default 
    Network default destroyed 
    # virsh net-undefine default 
    Network default has been undefined 
    # service libvirtd restart 
    Stopping libvirtd daemon:                                  [  OK  ] 
    Starting libvirtd daemon:                                   [  OK  ]

    2、另外一种方式是bridge方式,可以使虚拟机成为网络中具有独立IP的主机。创建将要使用的br0虚拟网卡。

    #cd /etc/sysconfig/network-scripts/

    #cp ifcfg-em1 ifcfg-br0

    修改成如下效果:

    #cat ifcfg-em1  (IP地址、网关、DNS1等信息移至br0)

    DEVICE=em1
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    BRIDGE=virbr0
    HWADDR=C8:1F:66:F7:29:C8

    #cat ifcfg-br0  (HWADDR去除)

    DEVICE=br0
    TYPE=Bridge 
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=10.100.0.3
    NETMASK=255.255.255.0
    GATEWAY=10.100.0.254

    #service network restart

    3、查看修改后的网卡桥接信息和路由信息

    #brctl show

    #route

    配置完毕后通过ifconfig命令,em1口则不会显示地址信息,新配置的br0口代替em1口成为真机网口,装好的虚拟机em1口将与真机br0口互相通信。

    四、利用virsh工具管理生成虚拟机,virt-managerRedHat共享的一个开源虚拟化管理软件,它是用Python编写的GUI程序,底层使用了Libvirt对各类Hypervisor进行管理。

    # virsh list     //查看现有虚拟机信息

    # virt-manager  //打开图形化管理窗口

    新生成虚拟机硬盘img文件默认位置:/var/lib/libvirt/images/jia.img

    新生成虚拟机的配置文件默认位置:/etc/libvirt/qemu/jia.xml   这个文件只能用virsh edit 编辑用vi无效,修改相应的文件即可重新配置虚拟机。

    Virsh语法参考:

    Autostart                        自动开始一个域
    Create                           从一个 XML 文件创建一个域
    Define                           从一个 XML 文件定义(但不开始)一个域
    edit                               编辑某个域的 XML 配置
    shutdown                      关闭一个域
    start                             开始一个(以前定义的)非活跃的域
    reboot                          重新启动一个域
    suspend                        挂起一个域
    resume                         重新恢复一个域
    vncdisplay                     vnc 显示

    1. autostart         #自动加载指定的一个虚拟机  
    2. connect           #重新连接到hypervisor  
    3. console           #连接到客户会话  
    4. create            #从一个SML文件创建一个虚拟机  
    5. start             #开始一个非活跃的虚拟机  
    6. destroy           #删除一个虚拟机  
    7. define            #从一个XML文件定义一个虚拟机  
    8. domid             #把一个虚拟机名或UUID转换为ID  
    9. domuuid           #把一个郁闷或ID转换为UUID  
    10. dominfo           #查看虚拟机信息  
    11. domstate          #查看虚拟机状态  
    12. domblkstat        #获取虚拟机设备快状态  
    13. domifstat         #获取虚拟机网络接口状态  
    14. dumpxml           #XML中的虚拟机信息  
    15. edit              #编辑某个虚拟机的XML文件  
    16. list              #列出虚拟机  
    17. migrate           #将虚拟机迁移到另一台主机  
    18. quit              #退出非交互式终端  
    19. reboot            #重新启动一个虚拟机  
    20. resume            #重新恢复一个虚拟机  
    21. save              #把一个虚拟机的状态保存到一个文件  
    22. dump              #把一个虚拟机的内核dump到一个文件中以方便分析  
    23. shutdown          #关闭一个虚拟机  
    24. setmem            #改变内存的分配  
    25. setmaxmem         #改变最大内存限制值  
    26. suspend           #挂起一个虚拟机  
    27. vcpuinfo          #虚拟机的cpu信息  
    28. version           #显示virsh版本 

    1、图形化配置:

    从菜单中启动,或者运行virt-manager进入图形管理界面,比较简单,不过img的位置需要注意一下,kvm安装后会有一个默认位置,不注意的话容易占满空间。或者直接硬盘分区时单独给/var分一个区。
    2、虚拟机重新配置:
    虚拟机的配置文件保存在/etc/libvirt/qemu目录下,扩展名是xml。修改相应的文件即可重新配置虚拟机。
    3、虚拟机备份及恢复:
    备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。
    恢复:进入virsh,执行define 目录下的xml文件路径
    virsh # define /etc/libvirt/qemu/winxp.xml
    4、开机自动启动虚拟机:
    [root@vfeelit qemu]# virsh autostart Winxp
    5、克隆KVM虚拟机:
    [root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
    (-o 原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)
    6、虚拟机意外关机报下述错误:
    [root@vfeelit qemu]# virsh start winxp
    错误:开始域 winxp 失败
    错误:Unable to read from monitor: Connection reset by peer
    解决方法:virsh managedsave-remove winxp

    参考资料: 

    http://blog.51yip.com/linux/1633.html

    http://blog.51yip.com/linux/1627.html

    http://www.showerlee.com/archives/309

    http://www.server110.com/kvm/201404/10467.html 

  • 相关阅读:
    (转载)你好,C++(25)函数调用和它背后的故事5.1.2 函数调用机制
    (转载)你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义
    (转载)你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作
    (转载)你好,C++(22) 排排坐,吃果果——4.3.3 for循环:某个范围内…每个都…
    【NOI2002T4】荒岛野人-扩展欧几里得
    【POJ1743】Musical Theme-后缀数组+二分答案
    【POJ1743】Musical Theme-后缀数组+二分答案
    【NOI2014T1】起床困难综合症-贪心+位运算
    【NOI2014T1】起床困难综合症-贪心+位运算
    【APIO2012T1】派遣-贪心+左偏树
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/4600532.html
Copyright © 2020-2023  润新知