KVM的基本管理

 KVM的基本管理

1.查看KVM虚拟机配置文件

#Kvm虚拟机默认配置文件位置
[root@kvm qemu]# pwd
/etc/libvirt/qemu
[root@kvm qemu]# ll
total 12
-rw------- 1 root root 3863 Nov  6 17:26 CentOS6.5.xml
-rw------- 1 root root 3771 Nov  7 00:57 CentOS6u7.xml
-rw------- 1 root root 3628 Nov  7 02:04 centos.xml
drwx------ 3 root root   40 Nov  7 00:46 networks

2 启动与关闭

#显示正在运行的虚拟机
[root@kvm ~]# virsh list
 Id    Name                           State
----------------------------------------------------
#显示所有虚拟机
[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos                         shut off
 -     CentOS6.5                      shut off
 -     CentOS6u7                      shut off

#启动名字为CentOS6.5的虚拟机
[root@kvm ~]# virsh start CentOS6.5

#关闭名字为CentOS6.5的虚拟机
[root@kvm ~]# virsh shutdown CentOS6.5

#强制关闭名字为Centos6.5的虚拟机 
[root@kvm ~]# virsh destroy CentOS6.5

#移除名字为CentOS6.5的虚拟机 
[root@kvm ~]# virsh undefine CentOS6.5

#设置CentOS6.5虚拟机开机启动 
[root@kvm ~]# virsh autostart CentOS6.5

#默认情况下virsh工具不能对linux虚拟机进行关机操作

#linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
# yum -y install acpid
# /etc/init.d/acpid start

3 通过配置文件启动虚拟机

[root@kvm ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml

4 其它(挂起,恢复)virsh命令

#挂起服务器
[root@kvm qemu]# virsh suspend CentOS6.5
#恢复服务器
[root@kvm qemu]# virsh resume CentOS6.5

5 重命名虚拟机

1,停止虚拟机
[root@kvm qemu]# virsh shutdown CentOS6u5

1,导出虚拟机的配置文件
[root@kvm qemu]# pwd
/etc/libvirt/qemu
[root@kvm qemu-img]# virsh dumpxml CentOS6u5 > test-CentOS6u5.xml
2 更改配置文件
[root@kvm qemu]# sed -i 's/CentOS6u5/test-CentOS6u5/g' test-CentOS6u5.xml
#注 可以不用更改镜像名
3 移除原有的虚拟机
[root@kvm qemu]# virsh undefine CentOS6u5

4 加载新建的虚拟机

[root@kvm qemu]# virsh define test-CentOS6u5.xml

5 启动虚拟机
[root@kvm qemu]# virsh start test-CentOS6u5

6 虚拟机创建快照

1 转换磁盘镜像文件格式为qcow2

[root@kvm ~]# virsh shutdown test-CentOS6u5
[root@kvm qemu-img]# qemu-img convert -f raw CentOS6u5.raw -O qcow2 CentOS6u5.raw.qcow2
快照一定需要qcow2格式 才行 

我这边从新建立一个虚拟机 以qcow2
2 创建快照
[root@kvm qemu-img]# virsh snapshot-create CentOS6u5

3 查看快照
[root@kvm qemu-img]# virsh snapshot-list CentOS6u5
 Name                 Creation Time             State
------------------------------------------------------------
 1479043349           2016-11-13 08:22:29 -0500 shutoff

4 恢复快照
[root@kvm qemu-img]# virsh snapshot-revert CentOS6u5  1479043349

5 删除快照
[root@kvm qemu-img]# virsh snapshot-delete CentOS6u5 1479043349

7 查看虚拟机IP地址

[root@c5-op-dpdk05 ~]# virsh list                   
 Id    Name                           State
----------------------------------------------------
 5     router1                        running
 6     router2                        running
 292   eve                            running

# 查看虚拟机配置文件,找到MAC地址

[root@c5-op-dpdk05 ~]# virsh edit router1

<mac address='52:54:00:9e:91:42'/>

# 根据arp 确定IP地址
[root@c5-op-dpdk05 ~]# arp -a
? (10.12.0.2) at 52:54:00:9e:91:42 [ether] on br1

8 KVM 虚拟机登录管理

新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。

一、添加ttyS0的许可,允许root登陆

[root@localhost ~]# echo "ttyS0" >> /etc/securetty

二、编辑/etc/grub.conf中加入console=ttyS0

 
[root@localhost ~]# less /etc/grub.conf
 
# grub.conf generated by anaconda
 
#
 
# Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0 initrd /initramfs-2.6.32-431.el6.x86_64.img

三、编辑/etc/inittab,在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200

[root@localhost ~]# less /etc/inittab
 
# inittab is only used by upstart for the default runlevel.
 
#
 
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
 
#
 
# System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: S0:12345:respawn:/sbin/agetty ttyS0 115200

四、重启服务器

[root@localhost ~]# reboot

五、在宿主机上测试连接

[root@study ~]# virsh list
 
Id Name State
 
----------------------------------------------------
 
4 centos running
 
 
 
[root@study ~]# virsh console 4
 
Connected to domain centos
 
Escape character is ^]
 
 
 
CentOS release 6.5 (Final) Kernel 2.6.32-431.el6.x86_64 on an x86_64 localhost.localdomain login: root Password: Last login: Thu Oct 13 02:51:30 on ttyS0

 注:按 ctrl+] 组合键退出virsh console

对于centos 7

在虚机里运行

[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
then

[root@localhost ~]# reboot
即可

  

原文地址:https://www.cnblogs.com/jiaojiner/p/14541882.html