热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KVM虚拟机的管理

kvm是基于内核的虚拟机(Kernel-basedVirtualMachine).linuxkernal2.6以上已经包含了kvm.三年前我在linode买了一个vps.linode的虚拟化技术是基于xen来做的,服务极其的好.那个时候,服务器上开源的虚拟化方案大多是基于xen来做的.这几年随着kvm进入lin

kvm 是基于内核的虚拟机(Kernel-based Virtual Machine). linux kernal 2.6 以上已经包含了kvm.

三年前我在linode买了一个vps. linode的虚拟化技术是基于xen来做的,服务极其的好. 那个时候,服务器上开源的虚拟化方案大多是基于xen来做的. 这几年随着kvm进入linux kernel 和 openstack的发展,声势已经很盛了. 在一个干净的linux环境里,可以用kvm很快的弄出虚拟机来. 用xen的话,因为是半虚拟化技术,需要替换原本的linux kernel,操作起来还是很讨厌的.

下面我们做一个最简单的kvm虚拟机,它没有网络.宿主机是一个干净的 x86-64服务器,硬件支持虚拟化技术(如 intel VT 或 AMD-V), 操作系统是ubuntu server 12.04.

先安装 qemu-kvm

创建磁盘镜像,我们用的是qcow2格式.常用的还有raw.

qemu-img create -f qcow2 /var/images/ubuntu12.img 64G

然后就可以启动虚拟机了

kvm -m 1024 -drive file=ubuntu12.img -boot d \
-cdrom=ubuntu-12.04.2-server-amd64.iso \
-vnc :1 --nographic --daemonize

然后可以用vnc登陆去装系统.

这样做出来的虚拟机性能弱爆了没有办法直接使用的.

没有网络的虚拟机是没有办法使用的,这里介绍了搭建虚拟机的网络 http://wiki.ubuntu.org.cn/Kvm_网络桥接方案

直接 kvm 命令来使用虚拟机过于原始了,我们有很多现成的工具. libvirt 是个还不错的东西.
安装virsh等工具

apt-get install kvm python-libvirt virtinst virt-viewer

配置网络

auto br0
iface br0 inet static
        address 192.168.1.215
        netmask 255.255.248.0
        broadcast 192.168.7.255
        gateway 192.168.1.1
        bridge_ports eth0

使用virsh注册虚拟机

virt-install --name VM-T1 --vcpu=2 --ram=4096 \\
    --disk path=VM-T1.img,format=qcow2,bus=virtio \\
    --network bridge=br0,model=virtio --vnc --vnclisten=0.0.0.0 \\
    --vncport=5901 --import

如果有闲,用 python-libvirt 写写自动化的虚拟机管理程序,就可以号称云计算了. 现在很多只有三五台机器的山寨vps公司不就自称云计算么.

convirt 是通过web的方式管理虚拟机,主页在这里 http://www.convirture.com/

先吐槽下 turbogear 这个东西,因为 convirt 是基于tg2. 前些年 rails 横空出世,混的风声水起的时候, python界的一些快速web开发框架很是拿不出手。在这些阿斗里面,turbogear 和 django 算是两个还不错的。这两年 django 算是勉强长得像点样看起来整整齐齐。这个 turbogear 却是越来越不堪, 后来跟 Plyon,repoze.bfg 之类的合体了。 这些玩意干不过 django 不是因为 django 多么牛逼, 而是他们自己扶不起。 新手第一次装tg的时候,看到他那个初始化脚本肯定吓尿了,先搞个virtualenv,看屏幕狂刷,装一些奇奇怪怪的python模块。如果是熟手,你这个tg装这么一大堆 mako,sqlalchemy 这些玩意,难道我自己不会拼框架吗,用tornado ,mako,sqlalchemy 很快就能弄出个好用的框架,干啥学tg那些二手的api呢?

我在折腾了很久以后,还是没能启动convirt,最后我放弃这玩意直接用libvirt。

salt 有一个virt module, 前几天看还弱爆了,今天去瞅瞅竟然增加了这么多功能.看起来比 python-libvirt 好用. 以后山寨云计算的门槛是越来越低了.


推荐阅读
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
author-avatar
手机用户2502852661
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有