RHEL/CentOS6(6.6)虚拟化(2)

96
strongz
2014.11.01 00:52* 字数 678

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-viewervirt-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时就启动其串口服务。
    vi /etc/grub.conf
    添加如下内容:
    console=/dev/ttyS0,115200
    添加后的文件内容如下:

    /etc/grub.conf

  • 编辑文件/etc/securetty使root能从串口登陆,添加如下内容:
    ttyS0

  • 手动启动/关闭虚拟机OS的串口服务
    initctl start ttyS0
    initctl stop ttyS0

  • 启动了虚拟机OS的串口服务后,就可以在主机OS中通过命令virsh console来访问虚拟机了
    virsh console Guest1
    看到提示符后按回车就可进入到虚拟机Guest1

    virsh console

日记本