• KVM | centos 安装 window 虚拟机


    KVM | centos 安装 window 虚拟机

    环境: CENTOS 7.3

    1. 准备

    1.1 检查是否支持虚拟化

    cat /proc/cpuinfo | egrep 'vmx|svm'
    要求结果中返回相关字段

    1.2 关闭 selinux

    vi /etc/sysconfig/selinux
    要求SELINUX=disabled

    2. 安装

    1. yum -y install qemu-kvm qemu-kvm-tools
    2. yum -y install libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

    2.1 加载 KVM

     lsmod | grep kvm
    kvm_intel             170181  0
    kvm                   554609  1 kvm_intel
    irqbypass              13503  1 kvm

    2.2 启动 KVM

    systemctl start libvirtd.service
    systemctl enable libvirtd.service  
    systemctl status libvirtd  
    systemctl is-enabled libvirtd  

    2.3 搭建网桥

    将原有网卡的配置备份一份,然后进行修改
    物理网卡的配置ifcfg-eth0

    DEVICE=eth0
    BRIDGE=br0  #指向网桥br0
    ONBOOT=yes
    TYPE=Ethernet

    ifcfg-br0网卡配置

    TYPE=Bridge
    DEVICE=br0
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=static
    IPADDR=10.24.18.151
    GATEWAY=10.24.18.254
    NETMASK=255.255.255.128

    因为我这是同时连接了2个网段,因此还会设置eth2和br2,区别就是,网关只能在一个口上设置。

    systemctl restart network.service后即可。
    brctl show可以看到网桥名字
    brctl show

    2.4 安装 VNC 环境

    yum -y install tigervnc tigervnc-server

    virt-install --name $name --ram $ram --vcpus=$cpu --disk path=$img,size=$sizeG --network bridge=$eth --os-type=windows --os-variant=$os --cdrom $iso --vnclisten=$ip --vncport=$port --vnc

    --name: 虚拟机名称
    --ram:虚拟机内存
    --vcpus:虚拟机 CPU 个数
    --cdrom:从本地安装
    --disk: 生成的磁盘文件路径,以及磁盘大小
    --network:网络模式,默认为 nat

    或直接拷贝现有的配置文件/etc/libvirt/qemu/目录下xml文件。

    <!--
    WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
    OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
      virsh edit win8_8_200_6902
    or other application using the libvirt API.
    -->
    
    <domain type='kvm'>
      <name>win8_8_200_wx_3</name>
      <uuid>29420437-571d-4965-7c54-b27d3311b95a</uuid> # 有多个node的话要不同的值
      <memory>8388608</memory>
      <currentMemory>8388608</currentMemory>
      <vcpu>2</vcpu>
      <os>
        <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> #支持的服务器类型可用命令查看
        <boot dev='hd'/>
      </os>
      <features>
        <acpi/>
        <apic/>
        <pae/>
      </features>
      <clock offset='localtime'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/libexec/qemu-kvm</emulator> # 这位实际的位置,默认是在此目录
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/data/iso/win8_8.img'/>  # 镜像包位置
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' unit='0'/>
        </disk>
        <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <source file='/data/iso/win8_8.img'/>
          <target dev='hdc' bus='ide'/>
          <readonly/>
          <address type='drive' controller='0' bus='1' unit='0'/>
        </disk>
        <controller type='ide' index='0'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
        </controller>
        <interface type='bridge'>
          <mac address='60:f1:8a:30:27:10'/> # 这必须注意,MAC地址不能和机器上的地址相同
          <source bridge='br0'/>  # 否则会有环路报警,可随意写个不同的即可
          <target dev='vnet0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x00' function='0x0'/> # 不同网口slot不同
        </interface>
        <interface type='bridge'>
          <mac address='60:f1:8a:30:27:11'/> # 同上
          <source bridge='br2'/>
          <target dev='vnet1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
        <serial type='pty'>
          <target port='0'/>
        </serial>
        <console type='pty'>
          <target type='serial' port='0'/>
        </console>
        <input type='tablet' bus='usb'/>
        <input type='mouse' bus='ps2'/>
        <graphics type='vnc' port='6901' autoport='no' listen='10.24.18.151'> # vnc连接监控端口
          <listen type='address' address='10.24.18.151'/>
        </graphics>
        <video>
          <model type='vga' vram='9216' heads='1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
        </video>
        <memballoon model='virtio'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
        </memballoon>
      </devices>
    </domain>

    virsh list --all 列出所有虚拟机

    # virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     3     win_2008                       running
     5     win8_8_200                     running

    然后就可以通过vnc viewer来远程访问这个window了,进去之后配置网卡等或管理BMC

    virsh shutdown win8_8_200用于关闭
    virsh start win8_8_200 用于启动
    virsh destroy win8: 销毁虚拟机
    virsh undefine win_2008 从列表中删除

    参考

    https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7安装KVM虚拟机详解.md

  • 相关阅读:
    数据库水平切分(拆库拆表)的实现原理解析(转)
    json序列化 & 反序列化
    数据库工作原理
    【原创】python多线程测试接口性能
    XML解析(DOM、ElementTree)及转换为JSON
    nginx+supervisor+gunicorn+flask
    3、爬取干货集中营的福利图片
    Python多环境扩展管理
    九、frp对外提供简单的文件访问服务
    八、frps服务端与nginx可共用80端口
  • 原文地址:https://www.cnblogs.com/hbgzy/p/11466576.html
Copyright © 2020-2023  润新知