使用Perl进行虚拟化环境的自动化管理

概述

虚拟化作为云计算的基础,是目前一个重要的趋势。通过虚拟化可以提高 IT 资源和应用程序的效率和可用 性。基于内核的虚拟机 KVM 在 2008 年被 RedHat 收购后,在 IBM 和 RedHat 的联合推动下得到了全面的发展。最新发布 的 RHEL 版本中已经全面支持了 KVM 虚拟机,并集成了一整套基于 libvirt 的管理工具 (virsh/virt-top/virt- install/virt-manager 等 )。虚拟化领域的主要厂商 VMware 的 vSphere 虚拟环境提供的 vSphere Client 让用户可通过 直观的图形化方式管理 vCenter/ESX server/datacenter/cluster/VM 等对象。但是当被管理对象数量庞大时,使用 virt -manager 或者 vSphere Client 的图形化方式来处理一些日常事务就显得费时费力了。为此用户可以通过相应的 API 来编 写程序管理这些日常事务。本文将介绍 libvirt API 和 vSphere SDK for Perl 在系统管理方面的应用。本文将对于开发 人员、系统管理员、系统测试人员有所帮助。

使用 libvirt 管理 KVM 环境

libvirt 是一套实现 Linux 虚 拟化功能的开源 API,旨在提供一种单一的方式管理多种不同的虚拟化方案。目前 libvirt 支持如下的 hypervisor:

KVM/QEMU
   Xen
   LXC
   OpenVZ
   VirtualBox
   VMware ESX, workstation, player
   Microsoft Hyper-V

伴随着 libvirt,RHEL 最新的发行版还包含了一系列基于 libvirt 的工具用于简化虚拟机的维护管理:

virt-install: 用于创建虚拟机
   virsh: 交互式/批处理 shell,可以用于完成虚拟环境的日 常管理工作
   virt-manager: 一个图形化的界面 , 用于 Hypervisor 及其虚拟机的管理
   virt-clone: 用于虚拟机克隆
   virt-viewer: 安全连接虚拟机的图形控制台工具

虽然 libvirt 本身由 C 开发 , 它提供了多种主流语言的绑定。系统管理员可以自由选择他们熟悉的语言,如 Python、Perl、 Ruby、Java、PHP 等 .

使用 virsh 管理 KVM 虚拟机

基于 libvirt 的管理工具中最常用的是 virsh。virsh 命令的格式如下:

virsh [OPTION] COMMAND ARG

在不提供任何参数时,virsh 提供一个交互式 shell。管 理员可以通过 virsh 编写一些简单的 shell 脚本完成虚拟机/网络/存储的配置。下面的代码片段显示了 virsh 命令的使 用方法。

使用 ssh 协议连接到 KVM hypervisor:

[root@BJGSSLA]# virsh connect qemu+ssh://9.9.9.9/system
    root@9.9.9.9's password:

列举域 (guest VM):

[root@BJGSSLA]# virsh list
    Id   Name   State
    ------------ --------------
    32   rhkvm   running
    33   rhkvm01   running
    34   xpkvm   running

列举域的详细信息:

[root@BJGSSLA]# virsh dominfo rhkvm
    Id:    32
    Name:    rhkvm
    UUID:    9d37e044-b134-c923-bbe6-0db40707ff9b
    OS Type:   hvm
    State:    running
    CPU(s):    1
    CPU time:   92.6s
    Max memory:   524288 kB
    Used memory:   524288 kB
    Persistent:   yes
    Autostart:   disable
    Managed save:   yes

挂起,继续,重启域:

[root@BJGSSLA]# virsh suspend rhkvm
    Domain rhkvm suspended
    [root@BJGSSLA]# virsh resume rhkvm
    Doamin rhkvm resumed
    [root@BJGSSLA]# virsh reboot rhkvm
    Domain rhkvm is being rebooted

快照管理:

[root@BJGSSLA]# virsh snapshot-create rhkvm
    Domain snapshot 1336311489 created
    [root@BJGSSLA]# virsh snapshot-list rhkvm
    Name    Create Time     State
    ------------------------------------------------- ----
    1336311489   2012-05-06 09:38:09 -0400   running
    [root@BJGSSLA]# virsh snapshot-revert rhkvm 1336311489

注:在 KVM 虚拟环境中物理宿主机被称为节点 (node),每个 guest 被称为域 (domain) 。

基于 libvirt API 编写 Perl 脚本

virsh 可以胜任大部分日常 的工作,更复杂的需求可以通过 libvirt API 编程实现。本节将介绍基于如何使用 libvirt for Perl 来获得更加精细的 虚拟机信息。

CPAN 上的 Sys::Virt 模块即为 libvirt 的 Perl 绑定。首先根据 KVM 环境中 libvirt 的版本下载 、编译、安装对应的 Sys-Virt 模块。本文的实验环境中使用 0.9.4 版 libvirt, 因此使用 Sys-Virt-0.9.4:

http://search.cpan.org/~danberr/Sys-Virt-0.9.4/

编译安装 Sys::Virt 模块:

[root@BJGSSLA]# perl Makefile.PL
[root@BJGSSLA]# make
[root@BJGSSLA]# make install

时间: 2024-11-03 00:30:26

使用Perl进行虚拟化环境的自动化管理的相关文章

在使用特定的 SSH 软件的 Power 虚拟化环境中配置使用 VMControl

数据中心中,一些公司更倾向于使用一些更为专业的 SSH Server/Client 软件,从而替换系统自带的 OpenSSH 软件,以确保系统管理.文件传输和应用连接的安全,有效抵御各种内部和外部安全风险.针对这种环境需求,IBM 公司从 VMControl 2.4 开始支持用户在 VMControl 管理环境中使用非缺省的 OpenSSH 的 SSH 软件,但用户需要在环境中做一些额外的配置.本文将会对这部分配置工作进行介绍,以帮助 Power 管理员了解和掌握具体方法,正确的使用 VMCon

如何管理云计算和虚拟化环境中的服务器

管理服务器工作量在任何环境中都是一项复杂的任务,在采用虚拟化和云计算的时候更是如此.当然,有许多管理服务器工作量的解决方案. Librato公司(此前一直采用Evergrid的名称)最近推出的Librato Load Manager 2.0版软件能够在x86环境中管理物理的和虚拟的应用程序工作量,不用修改应用程序或者操作系统. Librato负责营销的副总裁Ameet Dhillon说,该公司的使命就是寻求通过平衡消耗的资源让多种工作量一起运行以便从而实现商业目标,特别是在资源使用的高峰期. 这

“燕云”云管理平台:“通吃”六大虚拟化环境

当前,全球正在面临一场由云计算.大数据.移动.社交.物联网等新趋势所引起的变革,这场变革不仅席卷产业.市场和企业,也让IT所扮演的角色发生了巨大改变.在这场新变革中,云计算处于核心的地位,它能够承载大数据.社交移动.物联网等新的应用更加快速.便捷而可靠的落地,是这些新趋势能够实现的基础. 云计算对于企业IT的意义不再停留在试用和探索阶段,而是帮助企业IT实现面向未来的重构.在理想的未来IT架构中,既要充分兼容企业现存的IT基础设施与应用软件,以支撑传统企业业务更加敏捷高效地运行,又要为企业IT引

新管理软件保护虚拟化环境数据

本报讯 近日,日立公司与慷孚公司共同推出内含CommVault软件的Hitachi Data Protection Suite 8.0.该软件套件包括恢复操作.简化许可证管理和远程办公保护方面的新功能. 无论规模大小,几乎所有企业都在为改进其数据保护方案而努力.迅速增长的数据量.不断缩减的备份时间,以及对数据可用性日益增长的需求,上述这些因素都促使增强型解决方案应运而生.该软件套件主要增强功能包含: 虚拟化环境数据保护,通过支持VMware Infrastructure及Microsoft Hy

利用TPM的软件组件来灵活实现各种不同环境的自动化部署

通过灵活运用 TPM 中 Software Stack.Software Product 和其上定义的 SRT,就可以组合出不同的环境部署类型,比如:只创建虚机.只安装软件.创建虚机并且安装软件.本文将详细介绍如何利用 TPM 的软件组件,通过定义不同的 SRT 参数,来灵活实现各种不同环境的自动化部署. TPM 全称是 http://www.aliyun.com/zixun/aggregation/13966.html">Tivoli Provisioning Manager,是 IBM

虚拟平台的自动化管理

在过去的几年中,虚拟化通过降低CAPEX成为数据中心转化的催化剂.面对由此带来的技术和管理复杂性,自动化管理被导入以进一步优化OPEX和业务敏捷性.自动化管理(Automated Provisioning)是云计算的重要特征之一,定义了自助式服务请求,准实时部署.动态和细化的扩展能力. 许多组织发现,由于信息的规模和类型快速增加,其数据中心的运行复杂程度也迅速增加.Web 服务和复合应用环境也带来了更多的复杂性.IT团队需要管理的节点数量不断增加,节点上每天产生的告警.变更以及管理数据也在不断增

私有云计算平台建设之:虚拟平台的自动化管理

在过去的几年中,虚拟化通过降低CAPEX成为数据中心转化的催化剂.面对由此带来的技术和管理复杂性,自动化管理被导入以进一步优化OPEX和业务敏捷性.自动化管理(Automated Provisioning)是云计算的重要特征之一,定义了自助式服务请求,准实时部署.动态和细化的扩展能力. 许多组织发现,由于信息的规模和类型快速增加,其数据中心的运行复杂程度也迅速增加.Web 服务和复合应用环境也带来了更多的复杂性.IT团队需要管理的节点数量不断增加,节点上每天产生的告警.变更以及管理数据也在不断增

虚拟化环境下Power System部署解决方案

在IT技术快速发展的今天,虚拟化技术日趋成熟,由于其在资金节省和IT效率提高上的优势日益明显,越来越多的企业也开始部署虚拟化平台.虚拟化平台中Lpar的数量会随着业务的增长而增加,快速的部署操作系统将成为必须的操作.一般部署一个AIX操作系统大约需要50分钟以上并且需要人为参与的步骤比较多,占用管理员大量的时间和精力.为了提高系统的部署速度和灵活性,本文将针对现有的IBM Power VM虚拟化环境,通过Network Install Manager (以下称为NIM)快速部署AIX系统到各个L

SQL Server 自动化管理分区设计方案

一.设计说明 设计这个自动化的目的是想要交替.重复地使用固定的几个分区(分区编号01~05)来保存数据,当最后一个分区就是快满的时候,我们会把最旧数据的分区的数据清空出分区,新数据就可以使用老分区空间了. 应用这个自动化管理分区的环境是有些限制的,其一:分区的数据是呈现递增的,比如分区字段是自增Id值,或者是以日期作为分区;其二:可以接受 历史数据被移除分区表带来的问题.其三:一天进库的数量不应大于分区管理表PartitionManage中Part_Value与 Change_Value的差,因