N种访问KVM虚拟机的方法
访问一台kvm管理的linux虚拟机有很多方法,如ssh,telnet,web,virt-manager,virt-viewer,virsh等。我个人喜欢把他们分成两类:一.远程管理(你也可以理解为带内):需要虚拟机系统的IP以及相关服务都运行正常才能实现,如ssh,telnet,web等;二.console管理(带外):常用于虚拟机初始化配置和故障调试等场景,如virt-manager,virt-viewer,virsh。本文介绍的是后三种方法。
以下操作都是在下表环境中执行的
主机OS | 虚拟机OS | 虚拟机name | Hypervisor |
---|---|---|---|
Centos6.6 | Centos6.5 | Guest1 | KVM |
1. virt-manager
一般是默认的图形界面管理工具,可以创建、删除和配置VM
-
安装virt-manager:
yum groupinstall "Virtualization Client"
or
yum install virt-manager
-
启动virt-manager:
virt-manager &
-
通过virt-manager图形界面来管理控制VM
virt-manager
2. virt-viewer
此图形界面管理工具没virt-manager功能强大,无法clone和migrate虚拟机。具体用法可通过man virt-viewer
或virt-viewer --help-all
来获取帮助。
-
安装virt-manager:
yum groupinstall "Virtualization Client"
or
yum install virt-viewer
-
运行命令virt-viewer
virt-viewer Guest1
-
通过virt-viewer图形界面来管理控制VM
virt-viewer
3. virsh console
virsh能管理kvm和虚拟机,基于libvirt API构建的,是libvirt-client包的一部分。甚至能替代qemu-kvm和virt-manager,可以以root身份运行所有virsh命令,也可以让非特权的普通用户以只读模式运行virsh.而virsh console可以通过虚拟机的串口来进入其控制台,就如同你用串口来管理我们的物理交换机一样。
-
安装virsh
yum groupinstall "Virtualization Platform"
or
yum install libvirt-client
-
确保虚拟机中有添加串口
Serial 1 -
通过virt-manager进入虚拟机配置ttyS0服务
附:linux中的串口1在系统中显示为ttyS0,就相当于windows中的com1
创建/etc/init/ttyS0.conf文件,并添加以下内容:
stop on runlevel[016] start on runlevel[345] respawn instance /dev/ttyS0 exec /sbin/mingetty /dev/ttyS0
-
配置虚拟机OS的grub,使虚拟机启动kernel时就启动其串口服务。
/etc/grub.conf
vi /etc/grub.conf
添加如下内容:
console=/dev/ttyS0,115200
添加后的文件内容如下:
-
编辑文件/etc/securetty使root能从串口登陆,添加如下内容:
ttyS0
-
手动启动/关闭虚拟机OS的串口服务
initctl start ttyS0
initctl stop ttyS0
-
启动了虚拟机OS的串口服务后,就可以在主机OS中通过命令virsh console来访问虚拟机了
virsh console
virsh console Guest1
看到提示符后按回车就可进入到虚拟机Guest1
网友评论