zoukankan      html  css  js  c++  java
  • Libvirt中windows虚拟机的动态内存管理

    非常短的前提

    Libvirt支持对虚拟机进行内存动态扩展,可是windows虚拟机首先须要安装virtio-win驱动。

    KVM提供的virtio-win驱动下载地址:
    http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
    http://alt.fedoraproject.org/pub/alt/virtio-win/

    下面是栗子

    镜像:windows2008R2。64位
    virtio-win:virtio-win-0.1-100.iso
    disk:差分镜像(qemu-img create -f qcow2 -b ./windows_2008R2_x86_64 disk)

    使用qemu命令启动虚拟机并载入virtio驱动:

    qemu-system-x86_64 -hda ./windows_2008R2_x86_64 -drive file=./disk,if=virtio 
    -drive file=./virtio-win-0.1-100.iso,media=cdrom,index=1 -net nic,model=virtio 
    -net user -boot d -vga std -m 4096 -usbdevice tablet -vnc :50 -enable-kvm
    

    通过vnc訪问该虚拟机,进行下面操作:

    1. 进入“设备管理器” - “系统设备”。安装“未知设备”为“Virtio Balloon Driver”
    2. 将virtio-win光驱中的WIN7/X86文件夹复制到“c:/Program files/Balloon”
    3. 以管理员身份使用cmd命令行进入上述文件夹
    4. 运行“BLNSVR.exe -i”用以安装BLNSVR服务
    5. 正常关机保存设置

    至此。该disk文件已经具备了获取具体内存信息、动态调整内存大小的能力,验证的方法例如以下:

    内存具体信息获取验证:

    1.使用该disk文件启动虚拟机。在xml文件里加入例如以下段落用于启用balloon设备,同一时候设定採集周期为10s

    ...
    <devices>
        <memballoon model='virtio'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
          <stats period='10'/>
        </memballoon>
      </devices>
    </domain>

    2.採集时间能够手动设置

    virsh dommemstat <dommain> --period <time(sec)>
    

    3.获取虚拟机的当前内存用量

    virsh dommemstat <dommain>
    

    内存动态大小调整验证:

    1.关闭虚拟机

    virsh destroy <domain>
    

    2.设置虚拟机最大内存值(假设已经写入xml文件能够跳过)

    virsh setmaxmem <domain> --size <max_size>
    

    3.启动虚拟机

    virsh start <domain>
    

    4.动态调整

    virsh setmem <domain> --size <mem_size>
    

    有点不同于linux系统的地方在于windows会显示设置的最大内存值,会让人产生误解。

    參考资料
    https://pve.proxmox.com/wiki/Dynamic_Memory_Management#Ballooning

  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7064723.html
Copyright © 2011-2022 走看看