虛擬機生命周期管理
1)查看kvm虛擬機狀態
#virsh list --all
2)KVM虛擬機開機
# virsh start oeltest01
3)KVM虛擬機關機或斷電
關機
默認情況下virsh工具不能對linux虛擬機進行關機操作,linux操作系統需要開啟與啟動acpid服務。在安裝KVM linux虛擬機必須配置此服務。
# chkconfig acpid on
# service acpid restart
virsh關機
# virsh shutdown oeltest01
強制關閉電源
# virsh destroy wintest01
4)通過配置文件啟動虛擬機
# virsh create /etc/libvirt/qemu/wintest01.xml
5)配置開機自啟動虛擬機
# virsh autostart oeltest01
autostart目錄是kvm虛擬機開機自啟動目錄,可以看到該目錄中有KVM配置文件鏈接。
6)導出KVM虛擬機配置文件
# virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml
KVM虛擬機配置文件可以通過這種方式進行備份。
7)添加與刪除KVM虛擬機
刪除kvm虛擬機
# virsh undefine wintest01
說明:該命令只是刪除wintest01的配置文件,並不刪除虛擬磁盤文件。
8)其它virsh命令
掛起服務器
# virsh suspend oeltest01
9)恢復服務器
# virsh resume oeltest01
11)創建虛擬機
[root@localhost ~]# virt-install --name=centos1 \ #生成一個虛擬機
--ram 1024 --vcpus=1 \
--disk path=/root/centos1.img,size=10 \
--accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \
--graphics vnc,port=5921 --network bridge=br0
12)virt-clone,如果我們要建幾個一樣的虛擬機,這個命令,非常有用!
# virt-clone --connect=qemu:#/system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1
正在克隆 centos1.img | 10.0 GB 00:07
相關參數
autostart #自動加載指定的一個虛擬機
connect #重新連接到hypervisor
console #連接到客戶會話
create #從一個SML文件創建一個虛擬機
start #開始一個非活躍的虛擬機
destroy #刪除一個虛擬機
define #從一個XML文件定義一個虛擬機
domid #把一個虛擬機名或UUID轉換為ID
domuuid #把一個郁悶或ID轉換為UUID
dominfo #查看虛擬機信息
domstate #查看虛擬機狀態
domblkstat #獲取虛擬機設備快狀態
domifstat #獲取虛擬機網絡接口狀態
dumpxml #XML中的虛擬機信息
edit #編輯某個虛擬機的XML文件
list #列出虛擬機
migrate #將虛擬機遷移到另一台主機
quit #退出非交互式終端
reboot #重新啟動一個虛擬機
resume #重新恢復一個虛擬機
save #把一個虛擬機的狀態保存到一個文件
dump #把一個虛擬機的內核dump到一個文件中以方便分析
shutdown #關閉一個虛擬機
setmem #改變內存的分配
setmaxmem #改變最大內存限制值
suspend #掛起一個虛擬機
vcpuinfo #虛擬機的cpu信息
version #顯示virsh版本
獲取vnc
[root@localhost ~]# virsh vncdisplay 2
127.0.0.1:0
[root@localhost ~]#
編輯虛擬機配置文件
1)重新定義虛擬機配置文件
通過導出備份的配置文件恢復原KVM虛擬機的定義,並重新定義虛擬機。
# mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml
# virsh define /etc/libvirt/qemu/wintest01.xml
2)編輯KVM虛擬機配置文件
# virsh edit wintest01
virsh edit將調用vi命令編輯/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通過vi命令進行編輯,修改,保存。
可以但不建議直接通過vi編輯。
# vim /etc/libvirt/qemu/wintest01.xml
通過virsh console進入虛擬機控制台
libguestfs-tools的使用
一、libguestfs-tools安裝
yum -y install libguestfs-tools
二、linux下的使用
1、查看硬盤使用情況
virt-df centos.img
2、列出目錄文件
virt-ls centos.img /
3、將名為domain的虛擬機里的源復制到目的
virt-copy-out -d domain /etc/passwd(源) /tmp(目的)
4.查看分區相關信息
virt-filesystems -d domain
virt-list-filesystems /file/xx.img
virt-list-partitions /file/xx.img
5.分區掛載
guestmount -a /file/xx.qcow2(raw/qcow2都支持) -m /dev/VolGroup/lv_root --rw /mnt
6.shell的使用
guestfish -d domain(在開機情況下不能使用)
修改kvm虛擬機的root密碼和其他用戶密碼
-
virsh xxxx shutdown 關掉虛擬機
-
virt-edit xxx /etc/shadow 文件,
先生成一個密鑰
# openssl passwd -1 -salt 'hello' '123456' $1$hello$ZwmhCpcG.I1XIfVjdarKc1
virt-edit -d rhel7.0 /etc/shadow,替換掉root的shadow文件
root:$1$bTPRDWwf$LpjUZmGTHw.hYFccl0/lK.:16804:0:99999:7::: 更換為 root:$1$hello$ZwmhCpcG.I1XIfVjdarKc1:16541:0:99999:7:::
-
virsh xxxx start 啟動虛擬機 ,使用新的root密碼登錄,搞定
修改qcow2的密碼
需要安裝
libguestfs-tools
修改/etc/libvirt/qemu.conf
user = "root"
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
group = "root"
修改密碼
[root@localhost home]# sudo virt-customize -a /root/ubuntu.qcow2 --root-password password:root
[ 0.0] Examining the guest ...
[ 100.3] Setting a random seed
[ 101.4] Setting the machine ID in /etc/machine-id
[ 101.6] Setting passwords
[ 126.6] Finishing off
[root@localhost home]#