本文鏈接: http://www.reibang.com/p/d3af1271c475
作者:閆立行
列出所有的虛擬機
virsh list --all
查看一個域的信息
virsh dominfo rhel6
啟動虛擬機
virsh start vhostname
正常關(guān)閉虛擬機
virsh shutdown vhostname
強制關(guān)閉虛擬機
virsh destroy vhostname
取消定義一個域
virsh undefine vhostname
//編輯默認虛擬網(wǎng)絡(luò)配置文件
virsh net-edit default
systemctl restart lirbvirtd
創(chuàng)建一個虛擬磁盤
qemu-img create -f qcow2 /home/virtimg/rhel6.img 10G
改變虛擬磁盤大小
qemu-img resize /home/virtimg/rhel6.img +1G
qemu-img info /home/virtimg/rhel6.img
改變虛擬內(nèi)存的大小
1 設(shè)置一個虛擬機的最多使用內(nèi)存淋样,前提是此虛擬機關(guān)閉狀態(tài)
這里僅僅會更改配置文件中的設(shè)置
virsh setmaxmem centos3 4096M --config
2 啟動虛擬機,當前實際使用的內(nèi)存還是原來的大小
virsh start centos3
3 假如希望增加正在運行中的虛擬機的內(nèi)存汽抚,使用如下命令
virsh setmem centos3 2048M
傳文件到虛擬主機里
virt-install --filesystem /host/soource/dir,/dir/in/virthost
在線添加刪除硬盤
可以查看虛擬機所有磁盤
virsh domblklist vmname
- 準備一塊虛擬磁盤
qemu-img create -f qcow2 /path/to/vm1-1.qcow2 2G
在線添加硬盤
- 首先配置一份磁盤的xml文件咸作,作為模板
配置需要的參數(shù)項兑牡,比如:
cache=writeback,io=third
disk_mod.xml
[root@kvm-shark ~]# cat disk_mod.xml
echo "<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback' io='threads'/>
<source file='"${vdisk_path}"'/>
<target dev='"${device_name}"' bus='virtio'/>
</disk>
"
使用模板文件產(chǎn)生一個新的配置文件片段
[root@shark ~]# vdisk_path=/path/to/vm1-1.qcow2
[root@shark ~]# device_name=vdb
[root@shark ~]# source disk_mod.xml > disk.xml
- 然后使用attach-device命令添加
attach-device - 從一個XML文件附加裝置
virsh attach-device vm1 disk.xml --persistent
attach-device <domain> <file> [--persistent] [--config] [--live] [--current]
選項
[--domain] <string> domain name, id or uuid
[--file] <string> XML 文件
--persistent
讓實時更改并且持久生效耙箍。
--config
影響下一次引導景馁,域無論是否運行终息,都可以直接修改配置文件扮饶,單獨使用具练,不會影響當前正確運行中的域
--live
影響運行的域,只能用于域啟動的時候
--current
影響當前域
當前域處于關(guān)機狀態(tài)下甜无,會直接修改配置文件
當前域處于開機狀態(tài)下扛点,不會修改配置文件哥遮,臨時生效而已,和單獨使用--live
一樣占键。
永久移除vdb磁盤
virsh detach-disk vmname vdb --persistent
自動化找到我們需要創(chuàng)建的硬盤名稱
虛擬硬盤名一般都是 vda vdb vdc昔善, 可以利用 a-z 的連續(xù)行找到我們新建磁盤的名稱。
# 目前虛擬機已經(jīng)存在的盤符
disk_name_w="vda vdb vdc vde"
declare -A tmp_arr
for i in $disk_name_w
do
tmp_arr[$i]=1
done
for i in {a..z}
do
w=${tmp_arr[vd$i]}
if [ -z "$w" ];then
disk_name=vd$i
echo "磁盤名稱是$disk_name"
break
fi
done