zoukankan      html  css  js  c++  java
  • KVM安装部署

    KVM安装部署

    公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间,

    KVM是基于硬件的完全虚拟化,跟vmware、xen、hyper-v是同一个级别的,而且已经内置在Linux内核

    而且KVM是开源产品,最新的虚拟化技术都会优先应用在KVM上,KVM的定制和配置项也很多,比封闭的hyper-v好玩多了

    一直觉得微软的产品太封闭,之前一直用hyper-v,可配置项相比于KVM实在太少,而且KVM性能比hyper-v要好

    KVM各个组件的关系

    libvirt(virt-install,API,服务,virsh)-》qemu(qemu-kvm进程,qemu-img)-》KVM虚拟机-》kvm.ko 内核模块  

    libvirt:红帽提供的一个管理KVM虚拟机的API库,提供了virsh命令和一些python API

    qemu:KVM的用户空间管理工具,用于管理内核空间kvm.ko

    kvm.ko:KVM的核心,提供了虚拟CPU的工具,centos6系统安装的时候默认已经自带kvm.ko,只需要加载这个内核模块

    安装流程

    物理机部署流程

    安装KVM组件
    1、首先检查系统是否支持kvm,有两个先决条件
    a、系统是x86的,通过命令

    uname -a

    b、CPU 支持虚拟化技术

    egrep 'vmx|svm' /proc/cpuinfo

    其中intel cpu支持会有vmx,amd cpu支持会有svm
    如果看到有输出结果,即证明cpu 支持虚拟化。同时特别注意需要检查 BIOS 中是否开启VT,如果没有启用,虚拟机将会十分慢。


    2、使用yum安装kvm
    安装kvm内核

    yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img

    安装virt管理工具

    yum -y install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 python-virtinst bridge-utils

    说明:
    kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序
    libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
    bridge-utils:设置网络网卡桥接。
    qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

    加载kvm 内核

    modprobe kvm
    modprobe kvm-intel

    查看kvm内核模块是否加载成功

    modprobe -ls | grep kvm


    3、配置网络桥接,
    进入目录 /etc/sysconfig/network-scripts,复制一份原有的ifcfg-eth0 为 ifcfg-br0
    cp ifcfg-eth0 ifcfg-br0
    修改ifcfg-br0,内容如下:

    DEVICE="br0"
    BOOTPROTO=static
    ONBOOT="yes"
    TYPE="Bridge"
    IPADDR=10.11.30.52
    NETMASK=255.255.255.0
    GATEWAY=10.11.30.1
    DEFROUTE=yes

    IPADDR、GATEWAY、NETMASK根据自己的实际情况修改。
    修改 ifcfg-em1 内容如下:

    DEVICE="em1"
    BOOTPROTO=none
    NM_CONTROLLED="no"
    ONBOOT=yes
    TYPE=Ethernet
    BRIDGE="br0"
    HWADDR=34:17:EB:F0:01:1F
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    NAME="System em1"

    重启网络服务即可。

    /etc/init.d/network restart

    如果出现问题,关闭 NetworkManager 后重试。

    chkconfig NetworkManager off
    service NetworkManager stop


    4、启动或重启libvirtd服务和messagebus 服务

    /etc/init.d/libvirtd start
    /etc/init.d/messagebus restart

    此时可以查看网络接口列表
    brctl show 结果如下:
    bridge name bridge id STP enabled interfaces
    br0 8000.000c2955a70a no eth0
    virbr0 8000.52540014efd5 yes virbr0-nic



    生成虚拟机流程(在物理机上执行)
    1 安装screen 工具

     yum install -y screen

    2 生成qcow2 格式的镜像文件

    qemu-img create -f qcow2 /data/kvmimg/gzwtest01.qcow2 60G

    3 在screen里面新开一个session

    screen -S instSys

    4 安装一台Windows虚拟机

    virt-install --name=gzwtest01 --ram 4096 --vcpus=16 --autostart --hvm 
    --disk path=/data/kvmimg/gzwtest01.qcow2,size=60,format=qcow2 
    --cdrom /data/download/cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso 
    --graphics vnc,listen=0.0.0.0,port=5902 
    --network bridge=br0,model=e1000 --force --connect qemu:///system

    说明

    name:虚拟机名称
    ram:内存,单位MB
    vcpus:逻辑CPU数
    autostart:随母鸡开机启动而启动,母鸡开机,虚拟机也一起开机
    hvm:完全虚拟化
    model:指定网卡为千兆
    disk path:镜像文件位置
    size:虚拟机磁盘大小,单位GB
    format:镜像文件格式
    accelerate:
    force:跳过所有交互提示,相当于yum install -y里的-y选项
    cdrom:操作系统安装文件路径
    graphics: 指定安装通过哪种类型,可以是vnc,也可以没有图形,这里是VNC,如果是文本graphics none
    listen:0.0.0.0表示侦听所有来源地址,可以修改/etc/libvirt/qemu.conf
    port:vnc端口号
    vncport:VNC端口
    network:指定网络类型
    bridge:宿主机的桥接网卡是br0
    connect:连接到一个非默认的hypervisor


    5 使用VNC软件连接虚拟机进行系统安装
    VNC软件名称 vnc-4_1_2-x86_win32_viewer
    10.11.30.53:5902
    10.11.30.53:物理机的IP
    5902:虚拟机对应端口



    至此,一台Windows的KVM虚拟机部署完毕

    本文版权归作者所有,未经作者同意不得转载。

  • 相关阅读:
    tyvj[1087]sumsets
    tyvj[1089]smrtfun
    [bzoj3289]Mato的文件管理
    luogu[2093]零件分组
    luogu[1135]奇怪的电梯
    codevs[1300]文件排版
    luogu[1140]相似基因
    动态规划练习题 胖男孩
    动态规划练习题 汇率
    vijos[1355]车队过桥问题
  • 原文地址:https://www.cnblogs.com/lyhabc/p/5752108.html
Copyright © 2011-2022 走看看