参考

http://stacklet.com/

http://libvirt.org/

http://virt-manager.org/


目录

  1. 简介

  2. 准备工作

  3. 安装所需软件(根据需求,要知道每一个软件的用途)

  4. 配置桥接网卡

  5. vncserver与客户端

  6. 命令行安装与管理虚拟机 virsh-install,virsh

  7. 本地图形界面安装与管理虚拟机 virt-manager virt-viewer


简介

kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。

KVM(基于内核的虚拟机)是一个x86 Linux全虚拟化解决方案,需要硬件支持虚拟化扩展(Intel VT 或AMD-V),它由一个载入时内核模块kvm.ko(提供核心虚拟化基础设施)和一个处理器特殊模块kvm-intel.ko或kvm-amd.ko组成,在它上层需要修改过的QEMU。

KVM没有提供官方的管理界面,但有大量的第三方工具可以管理KVM域,用的最多的要数Red Hat的virt-manager,它提供了一个简单但高效的图形界面。

使用Openstack,基本都是通过nova来管理KVM,自己对kvm的各种管理命令,其实是很陌生。所以这次就抛弃各种管理工具,直接在CentOS下使用KVM,创建虚拟机和模板。

来自Convirture的Convirt是另一个管理KVM虚拟机的GUI工具,它和virt-manager类似,都支持远程和本地机器。


环境

64位,cpu支持虚拟化,selinux,iptables


准备工作

1 确保BIOS里开启VT:

Intel(R) Virtualization Tech [Enabled]

2 grep vmx /proc/cpuinfo (INTEL芯片)

grep svm /proc/cpuinfo (AMD芯片)

egrep '(vmx|svm)' /proc/cpuinfo

3 uname -r查看内核版本,如果在2.6.20以下的linux版本,需升级内核

4 sestatus -v 查看状态

getenforce

setenforce 0 ##设置SELinux 成为permissive模式

##setenforce 1 设置SELinux 成为enforcing模式

##不用重启,临时生效

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

5 service iptables stop

6 如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

epel源安装,64位系统选择:
rpm -ivh http://dl.fedoraproject.org/pub/epel/6Server/i386/epel-release-6-8.noarch.rpm

rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

yum install yum-priorities


安装所需软件

  1. Ubuntu中安装KVM,你应该使用下面的命令来安装它:

  1. $sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

  2. libvirt-bin提供了libvirtd,它可以用来管理QEMU和KVM实例。

  3. ubuntu-vm-builder是创建虚拟机的命令。

  4. bridge-utils在你的网络和虚拟机之间架起了一座桥梁。


2. centos6.4中安装

virtualization tools:

libguestfs

virtualization platform:

libvirt 虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。libvirt 本身不是一种工具,它是一种可以建立工具来管理来宾操作系统的API,起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序。

libvirt-client 可以通过 virsh命令管理KVM客户机,”virtual shell”。连接到virtual shell,运行virsh -connect qemu:///system

virt-who 是一个agent

virtualization client:

python-virtinst 管理虚拟机的一些命令行工具,也使用libvirt库,基于libvirt开发

virt-manager 管理虚拟机的gui工具,也使用libvirt库,需要安装桌面环境,才可用

virt-top 类似top工具,也使用libvirt库

virt-viewer 在桌面的命令行下#virt-viewer 1(ID),就连到虚拟机了,也使用libvirt库

virtualization:

hypervkvpd

qemu-kvm

#yum install libvirt python-virtinst qemu-kvm virt-viewer

重启系统

service libvirtd start

lsmod |grep kvm

查看kvm服务是否正常,目前没任何虚拟机,所以没有内容显示
virsh -c qemu:///system list

ifconfig


配置桥接网卡

创建一个文件 /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0

ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static

IPADDR=192.168.16.65
NETMASK=255.255.255.0
GATEWAY=192.168.16.254


修改 /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0

重启网络服务
/etc/init.d/network restart

查看桥接网络
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00e081de016c no eth0
virbr0 8000.5254009219a2 yes virbr0-nic


vncserver与客户端

yum install tigervnc-server
编辑 /etc/sysconfig/vncservers 增加一行
VNCSERVERS="3:root"
设置password
vncpasswd
启服动务
# /etc/init.d/vncserver start

# netstat -nulpt | grep vnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 6508/Xvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 6508/Xvnc
tcp 0 0 :::6001 :::* LISTEN 6508/Xvnc


virt-install --name==win2003 --ram=1024 --vcpus=1 --disk path=/home/2003.img,size=8

--cdrom=/root/win2003_ent.iso --graphics vnc --network bridge-br0 --force --autostart

(参考) virt-install --name=wintest01 --ram 512 --vcpus=2 --disk path=/data/wintest01.img,size=8 --accelerate --cdrom /data/iso/Windows2003.iso --vnc --vncport=5911 --vnclisten=0.0.0.0 --network bridge=br0 --force --autostart

参照 http://blog.csdn.net/ex_net/article/details/11901707 完成window vnc客户端安装centos kvm 虚拟机

客户端安装好后,连接时输入宿主机ip:虚拟机的vnc的端口号,输入密码即可

服务端参考上面的链接文章

这个时候你在windows的客户端,就可以通过vnc连接过去,完成虚拟机的安装 vnc客户端很多。我是使用TightVNC,安装的时候最好选择定制,只安装客户端,而不安装server端。
安装vncserver的机器也就是安装x window system和desktop的主机,即宿主机:5901,就可以访问。
# vi /etc/libvirt/qemu.conf
...
user = "root"
group = "root"
dynamic_ownership = 0