kvm簡單使用

菜鳥運維筆記發表於2021-11-15

作者:SRE運維部落格

部落格地址: https://www.cnsre.cn/

文章地址:https://www.cnsre.cn/posts/211115903260/

相關話題:https://www.cnsre.cn/tags/kvm/


virsh命令常用引數

引數 引數說明
基礎操作
list 檢視虛擬機器列表,列出域
start 啟動虛擬機器,開始一個(以前定義的)非活躍的域
shutdown 關閉虛擬機器,關閉一個域
destroy(危險) 強制關閉虛擬機器,銷燬(停止)域
vncdisplay 查詢虛擬機器vnc埠號
配置管理操作
dumpxml 匯出主機配置資訊
undefine 刪除主機
define 匯入主機配置
domrename 對虛擬機器進行重新命名
掛起與恢復
suspend 掛起虛擬機器
resume 恢復虛擬機器
自啟動管理
autostart 虛擬機器開機啟動
autostart --disable 取消虛擬機器開機啟動
以上引數通過 “virsh --help” 獲得。

刪除虛擬機器

virsh destroy njvm01     #強制關閉電源

virsh undefine njvm01   #刪除虛擬機器

[root@nkgtsv01 data]# virsh shutdown njvm01

域 njvm01 被關閉

[root@nkgtsv01 data]# virsh start njvm01

域 njvm02 已開始

[root@nkgtsv01 data]# virsh list --all   檢視虛擬機器狀態

設定虛擬機器自啟動

virsh autostart njvm01

virsh autostart --disable njvm02

啟動,關閉和重啟一個虛擬機器

virsh start njvm01

virsh shutdown njvm01

virsh reboot njvm01

宿主機連結到kvm虛擬機器

virsh  console njvm01

克隆虛擬機器

virt-clone -o njvm01-n njvm02-f /data/kvm-img/njvm02.img

修改njvm05 配置

virsh edit njvm01

掛起及恢復虛擬機器

掛起:

virsh suspend njvm01

恢復:

virsh resume njvm01

建立KVM linux

virt-install --name njvm01 --boot network,cdrom,menu=on --ram 8000 --vcpus=2 --os-variant=rhel6 --accelerate --cdrom=/home/iso/CentOS-7-x86-64-DVD-1708.iso --disk path=/data/kvm-i/njvm01.img,size=200,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5930 --vnclisten=0.0.0.0

建立KVM Windows

virt-install --name njvmwin --boot network,cdrom,menu=on --ram 6411 --os-type=windows --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/data/BBackup/  --disk path=/data/kvm-images/njvmwin.img,size=200,bus=virtio --bridge=br0, --autostart --vnc --vncport=5910 --vnclisten=0.0.0.0


virt-install -n njvmwin --vcpus=1 --ram=6411--os-type=windows --os-variant=win2k8 -c /vm/iso/cn_windows_server_2012_r2_sp1_x64.iso --disk path=/usr/share/virtio-win/virtio-win-0.1.126_amd64.vfd,device=floppy --disk path=/vm/win2012.img,format=qcow2,bus=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole

vm新增vnc埠

https://www.cnblogs.com/chenjiahe/p/5919742.html

<graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'>

  <listen type='address' address='0.0.0.0'/>

 </graphics>

注意

要用 virsh edit vi命令不會生效

--name njvm01 \                    #虛擬機器名

--ram=1024 \                      #分配記憶體大小,MB

--vcpus=1 \                       #配置虛擬機器的vcpu 數目

--check-cpu \                     #檢查確定vcpu是否超過物理 CPU數目,如果超過則發出警告。

--os-type=linux \                  #要安裝的作業系統型別,例如:'linux'、'unix'、'windows'

--os-variant=rhel6 \               #作業系統版本,如:'Fedora6', 'rhel5', 'solaris10',  'win2k'

--disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true \  #虛擬  機所用磁碟或映象檔案,size大小G

--bridge=br0 \                     #指定網路,採用透明網橋

--noautoconsole \                  #不自動開啟控制檯

--pxe                              #網路安裝

 virsh start njvm01                 #開機

 virsh destroy njvm01               #強制關閉電源

 virsh shutdown njvm01              #關機

 virsh list --all                  #檢視虛擬機器狀態  

 virsh reboot njvm01                #重啟
 
 virt-viewer name                   #檢視安裝狀態

xml檔案詳解

使用virt-install 工具安裝虛擬機器後,在目錄 /etc/libvirt/qemu/ 下生成 xml 配置檔案

 <domain type='kvm'>        # 虛擬機器型別

   <name>centos</name>                  虛擬機器名稱

   <uuid>78dx24ef-1d2d-810x-9213-2c02df529cx</uuid>   uuid唯一標示

   <memory unit='KiB'>2048576</memory>          指定虛擬機器記憶體大小,給出了單位

   <vcpu placement='static'>2</vcpu>           虛擬機器佔用虛擬cpu個數,這裡指物理cpu的核心數量

   <os>

    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>  指定虛擬系統架構

    <boot dev='hd'/>                   啟動型別,從硬碟啟動

   </os>

   <devices>

    <emulator>/usr/libexec/qemu-kvm</emulator>      驅動程式,同上,使用的是qemu-kvm

    <disk type='file' device='disk'>           指定磁碟型別

    <driver name='qemu' type='raw' cache='none'/>    指定磁碟格式,這裡是raw,也支援qcow2.

    <source file='/home/data/img/centos.img'/>        img檔案路徑

    <target dev='hda' bus='ide'/>            磁碟檔案標示,驅動型別

    <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    <interface type='bridge'>

     <mac address='34:72:00:15:65:e6'/>         自動生成,可以手動指定。

     <source bridge='br0'/>               橋接到哪一個介面

    </interface>

   </devices>

 </domain>

列出虛擬機器的所有網口

virsh domiflist njvm01

結果如下:

Interface Type    Source   Model    MAC ------------------------------------------------------- vnet0   bridge   br0   virtio   34:72:00:15:65:e6 vnet1   bridge   br1   virtio   52:54:10:f5:c5:6c

新增一個網口

virsh attach-interface domain --type bridge --source br1 --model virtio --config           # 下次啟動生效

virsh attach-interface domain --type bridge --source br1 --model virtio --current          # 立即生效

virsh detach-interface domain --type bridge --mac 34:72:00:15:65:e6 --config               # 下次啟動生效

virsh detach-interface domain --type bridge --mac 34:72:00:15:65:e6 --current              # 立即生效

刪除網路卡命令

virsh detach-interface njvm01 --type network --mac 34:72:00:15:65:e6

永久新增網路卡

virsh attach-interface domain --type network --source default --model virtio --config 

臨時新增網路卡

virsh attach-interface njvm01 --type network --source default

virsh attach-interface njvm01  --type network --source default --config

關閉或開啟某個網口

virsh domif-setlink domain vnet0 down

virsh domif-setlink domain vnet0 up

獲取某個網口狀態

virsh domif-getlink win2k8 vnet1

列出所有的塊裝置

virsh domblklist win2k8

作者:SRE運維部落格

部落格地址: https://www.cnsre.cn/

文章地址:https://www.cnsre.cn/posts/211115903260/

相關話題:https://www.cnsre.cn/tags/kvm/