作者:SRE運維部落格
部落格地址: https://www.cnsre.cn/
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/