虚拟机生命周期管理
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]#