大话2免费版一级星盘炼化表

    1. <form id=zhudObCNh><nobr id=zhudObCNh></nobr></form>
      <address id=zhudObCNh><nobr id=zhudObCNh><nobr id=zhudObCNh></nobr></nobr></address>

      測試開發之系統篇-按需創建測試虛擬機

      原創

      首先,我們來了解一下KVM虛擬機有關的幾個概念和工具。

      • kvm:基于內核的虛擬機(引擎)
      • qemu:用于模擬虛擬機IO設備
      • qemu-img:虛擬機磁盤管理工具
      • libvirt:虛擬化服務的API接口
      • virsh:基于libvirt實現的命令行工具
      • qemu-manager:圖形化管理工具

      新建KVM虛擬機時,可以指定另一磁盤文件作爲 BackingFile。BackingFile是一個 只讀的虛擬磁盤基礎映像,可以在多個虛擬機間進行共享。基于BackingFile創建和運行虛擬機時,只會在自己的磁盤文件中增量地寫入文件,從而提高效率、節省磁盤和維護成本。


      虛擬機快照保存了虛擬機在某個指定時間點的狀態,當我們在自動化測試過程中遭遇問題或錯誤時,可以利用快照保存、並恢複到執行中的某個時間點。借助BackingFile機制,虛擬機支持形如以下的多層依賴的快照鏈。

      base image <-- vm01 <-- snap 1 <-- snap 2 <-- vm02(active)


      可使用以下命令,將處于快照鏈中的某個虛機,導出形成一個獨立的磁盤映像文件,其不再依賴其它映像。

      qemu-img convert -O qcow2 vm02.qcow2 vm-templ.img

      假設我們在用戶的工作目錄中,建立了以下目錄。


      • kvm        根目录
      • iso       存放光盘镜像
      • base      存放BackingFile
      • share     存放共享磁盘镜像,用户存储测试工具、驱动等
      • image     存放测试机的磁盘镜像 xml 存放导出的虚拟机XML配置文件


      下面用一個例子,給大家介紹下快速創建測試虛擬機的方法。

      • 按照 上一篇文章中的步驟,創建一個Win10虛擬機;
      • 在虛擬機中,安裝好工作中用到的測試軟件;
      • 使用以下命令,新建一個共享工具磁盤;

      qemu-img create -f qcow2 -o cluster_size=2M kvm/share/tools.qcow2 10G
      • 挂載共享磁盤到虛擬機,複制工具和文件到該盤中;
      • 移除該虛擬機,確認對話框中,請選擇不刪除相關磁盤文件;
      • 移動原虛機主磁盤文件到基礎鏡像目錄,如kvm/base/windows/win10/x64-pro-zh_cn.qcow2
      • 執行以下命令,以上述基礎鏡像作爲BackingFile,創建新的虛擬機磁盤;

      qemu-img create -f qcow2 -o cluster_size=2M,backing_file=kvm/base/windows/win10/x64-pro-zh_cn.qcow2 kvm/image/test-win10-x64-pro-zh_cn-01.qcow2 40G
      • 圖形界面中,新建測試虛擬機,挂在新建的虛擬機和共享磁盤。

      除了使用圖形界面的qemu-manager軟件,這裏也提供一種命令行的方法,大家可用于測試平台的代碼中。

      • 導出虛擬機XML配置文件



      virsh dumpxml test-win10-x64-pro-zh > kvm/xml/test-win10-x64-pro-zh.xml
      • 修改XML配置文件中的以下字段:
      name
      uuid
      vcpu
      memory和currentMemory
      mac address
      第1块disk的source file
      • 在第1塊disk的Elemnt中,加入以下BackingFile有關的內容。


      <backingStore type="file" index="2">
        <format type="qcow2"/>
        <source file="/home/aaron/kvm/base/windows/win10/x64-pro-zh_cn.qcow2"/>
      <backingStore/>
      • 如需要用頁面VNC訪問虛擬機桌面,找到XML的graphics元素,修改成以下內容。

      <graphics type="vnc" port="-1" autoport="yes" listen="0.0.0.0" passwd="P2ssw0rd">
        <listen type="address" address="0.0.0.0"/>
      </graphics>
      • 使用以下命令定義虛擬機。


      virsh define kvm/xml/test-win10-x64-pro-zh.xml
      • 使用以下命令啓動虛擬機。


      virsh start test-win10-x64-pro-zh
      • 使用以下命令獲取虛擬機的VNC端口編號,在VNC軟件中使用”5900+該數字“的端口,訪問虛擬機遠程桌面。

      virsh vncdisplay test-win10-x64-pro-zh

      另外,本人使用GO語言實現了基于libvirt接口的虛擬機管理有關功能,此開源項目旨在爲大家提供一個基于KVM虛擬機和Docker容器的、按需測試環境管理平台,詳情請參照網址 https://github.com/easysoft/zagent 。


      常用命令:


      # 查看虚拟机信息
      qemu-img info --backing-chain kvm/image/test-win10-x64-pro-zh_cn-01.qcow2
      # 修改虚拟机磁盘大小
      qemu-img resize x64-pro-zh_cn.qcow2 +10G
      # 查看虚拟机里列表
      virsh list --all
      # 查看虚拟机VNC端口
      virsh vncdisplay win10-test
      # 導出虛擬機XML配置文件
      virsh dumpxml win10-test > win10-test.xml
      # 创建虚拟机磁盘镜像
      qemu-img create -f qcow2 -o cluster_size=2M,backing_file=base.qcow2 win10-test.qcow2 40G
      # 定义、取消定义,启动、停止虚拟机
      virsh define win10-test.xml
      virsh start win10-test
      virsh destroy win10-test
      virsh undefine win10-test
      禅道項目
      HoME大话2免费版一级星盘炼化表