實驗名稱:
xl命令的常見子命令以及操作
實驗環境:
這里我們需要正常安裝一臺虛擬機,如下圖:
我們這里以一臺busybox為例,來進行這些簡單的常見的操作;
實驗要求:
這里我們準備了5個常見操作:
1、暫停/運行虛擬機--pause/unpause
2、快照/恢復快照--save/restore
3、對CPU的簡單操作--vcpu-list/vcpu-pin/vcpu-set
4、添加/刪除網卡--network-list/network-attach/network-detach
5、添加/刪除塊設備(磁盤)--block-list/block-attach/network-detach
實驗配置:
首先,我們通過 xl help 可以查看虛擬機所支持的所有子命令,同時通過 xl help <subcommand> 來查看子命令的使用方式與支持的 option
xl help xl help <subcommand> 例如:xl help create
1、暫停/運行虛擬機--pause/unpause
首先我們需要料及xl list命令下state所顯示的狀態信息:
? ? ?? xl ?list : ? ? ?#首先需要了解的第一個命令.
? ? ? ? ? ?xen VM的常見狀態:
? ? ? ? ? ? ? ?r : running
? ? ? ? ? ? ? ?b: block(阻塞)
? ? ? ? ? ? ? ?p: pause(暫停): 類似與睡眠.
? ? ? ? ? ? ? ?s: stop
? ? ? ? ? ? ? ?c: crash(崩潰)
? ? ? ? ? ? ? ?d: dying, 正在關閉的過程中.
默認通過 “ctrl + ]” 切換管理界面后,虛擬機進入 block阻塞狀態,通過 pause 命令,則是在內存中暫停虛擬機,通過unpause回復虛擬機運行
xl pause busybox10
xl unpause busybox10
此時通過 xl list 看到虛擬機進入到 p 的狀態,想恢復,則通過命令 xl unpause <domianname/domianid> 即可;
2、快照/恢復快照--save/restore
這里的快照就是將虛擬機掛起,將虛擬機存放到磁盤中去,和暫停有著本質的區別
xl save busybox10 /tmp/busybox10.img.bak
xl restore /etc/xen/busybox10 /tmp/busybox10.img.bak
save 命令中接的是<domname/domid> <checkpointfile>
restore 命令中接的是<configname> <checkpointfile>
3、對CPU的簡單操作--vcpu-list/vcpu-pin/vcpu-set
查看虛擬機的vcpu個數
xl vcpu-pin busybox10 0 1 #將虛擬機busybox10上的0號vcpu綁定在真實的1號CPU上(可以實現批量CPU綁定,man xl可以查看用法) xl vcpu-set busybox10 1 #指定busybox10CPU使用的最大個數,這個數量不能大于現有CPU的個數
此時第二個CPU就會被停止;
4、添加/刪除網卡--network-list/network-attach/network-detach
首先我們通過network-list查看虛擬機的網卡情況
動態為虛擬機添加網卡網卡:
從幫助上看,我們可以為添加的網卡指定很多的參數,比如:網卡類型、mac地址、連接的橋設備、ip地址、網卡啟動腳本、后端驅動、后端驅動網卡名稱、端口帶寬、模式、acl控制等等;
xl network-attach busybox10 bridge=br0
xl console busybox10
此時虛擬機就多了一塊網卡eth1
xl network-list busybox10 xl network-detach busybox10 1 #首先要通過network-list查看虛擬機的網卡id,再根據id號來刪除網卡即可(或者根據mac地址也可以)
5、添加/刪除塊設備(磁盤)--block-list/block-attach/block-detach
這里我們可以動態添加磁盤文件;
首先我們通過qemu-img方式來虛擬一塊磁盤;
qemu-img create -f raw -o size=2G /images/xen/busybox10.1.img
添加該磁盤到虛擬機中去,如圖可知:現在只有一塊磁盤
xl block-attach busybox10 "/images/xen/busybox10.1.img,raw,xvdb,w" #后面指定四個參數“磁盤,磁盤格式,磁盤編號,磁盤權限”
【注意:磁盤編號為順延的,默認第一塊磁盤添加的時候是xvda,這里是第二塊,所以即使xvdb】
xl console busybox10 #在虛擬機中查看 fdisk -l fdisk /dev/xvdb #進行磁盤分區
此時就可以使用這個磁盤了;
xl block-list busybox10 xl block-detach busybox10 51728 #51728為磁盤ID號,可以通過block-list看到