kvm小记

I.Introduction

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V)。

  1. KVM使用qemu,作为上层管理,也就是命令行(qemu-kvm)。
  2. 在主流的linux内核,如2.6.20以上的内核均包含了kvm核心。
  3. kvm能在不改变linux或windows镜像的情况下同时运行多个虚拟机,也就是说它的意思是多个虚拟机使用同一镜像,并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。

II. Fundation

qemu: Quick Emulator。是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。

kqemu: kqemu是该软件的加速软件。

Libvirt: Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品。

III.Installation

1.检查cpu是否支持虚拟化:

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

0:表示CPU不支持虚拟化。
1或者更大的数:表示CPU支持,但是需要去确认在BIOS中已经开启虚拟化。

推荐使用64位内核,但这也不是必须的,32位也能运行,但是32位,虚拟机的内存最大只能是2GB,而且64位的可以支持虚拟系统为64位,32位,32位内核就只能支持32位虚拟系统

egrep -c ' lm ' /proc/cpuinfo

如果是0,表示CPU不是64位系统,如果是1或者更高,则表示是64位系统。

而要查看当前系统是否是64位系统:

uname -m

x86_64 , amd64则表示是64位系统. 如果是 i386, i486, i586 ,i686,则表示是32位系统.

2. 安装(以ubuntu 12.04为例)

1)安装KVM和qemu

apt-get install kvm qemu libvirt-bin virtinst virt-manager virt-viewer ubuntu-vm-builder bridge-utils kvm-pxe uml-utilities

2)只有root用户和libvirtd用户组才有权限使用kvm虚拟机,所以用下面的命令添加用户到libvirtd用户组。

#sudo adduser name libvirtd
#sudo adduser name kvm
sudo adduser `id -un` libvirtd
sudo adduser `id -un` kvm

这里id -un输出当前登录用户,然后退出,重新登录。

3)检查KVM是否已成功安装,运行:

virsh -c qemu:///system list

若无错误,则表示安装成功

4)配置网桥

sudo vim /etc/network/interfaces

静态IP和使用DHCP是不一样的,DHCP修改成下面这样

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 5
bridge_maxwait 5

或static:

auto br0
iface br0 inet static
address 192.168.0.xxx
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 5
bridge_maxwait 5

5)然后就可以通过图形界面的Virtual Machine Manager 或者 命令行来操作创建虚拟机。

5.1)Virtual Machine Manager

参考How to Install KVM and Create Virtual Machines on Ubuntu

5.2) 通过命令行来创建

5.2.1)创建磁盘:

sduo mkdir /opt/kvm
cd /opt/kvm
qemu-img create -f qcow2 kvm/ubuntu1204.img 10G

create意思是创建一个新的磁盘,-f指定该磁盘的类型,可以创建raw的,也可以创建vmware兼容的,这里选择qcow2,qemu自己的类型来安装ubuntu,接下里的参数就是虚拟磁盘的文件名,可以放在你喜欢的任何地方,然后就是磁盘初始大小,一般5G,10G都可以,qemu的磁盘大小是随着需要可以自动的增大的,所以初始可以选择小点。

5.2.2)下载镜像包并且安装虚拟机操作系统: 下载镜像到相应位置。

sudo qemu-system-x86_64 -hda /opt/kvm/ubuntu1204.img -cdrom /opt/kvm/ubuntu-12.04-server-amd64.iso -boot d -m 1024 -no-acpi

-hda指定了硬盘是那个虚拟磁盘,这里用我们刚刚创建的ubuntu1204.img
-cdrom指定cdrom是那一个,可以用iso文件,也可以用机器的光驱,我们选择用iso文件,如果用光驱尝试-cdrom /dev/cdrom
-boot指定启动的时候从磁盘,硬盘,光驱还是网路上启动,我们安装的时候选择从光盘启动,所以用d
-m虚拟机使用的内存大小,单位是MB,默认是128mb,我用的是1024。
-no-acpi由于qemu支持不太好会导致系统很慢,所以我们暂时禁止掉。
具体的其他参数可以用man来查看qemu-system-x86_64的说明。
由于加了-no-acpi所以安装中每次的reboot都需要自己关掉kvm然后再用上诉的命令运行,安装完后也是用上述命令运行,这个时候你可以去掉-cdrom参数如果你不再需要的话。
5.2.3)安装系统

5.2.4)启动虚拟机

sudo qemu-system-x86_64 kvm/ubuntu1204.img -m 1024

Ref

  1. How to Install KVM and Create Virtual Machines on Ubuntu
  2. 在Ubuntu 12.04 LTS服务器上借助KVM实现虚拟化
  3. ubuntu 12.04 kvm+qemu 搭建虚拟机
  4. KVM虚拟机和QEMU
  5. KVM 与 CentOS-6
  6. KVM on Ubuntu
大虾米 /
Published under (CC) BY-NC-SA in categories learn  tagged with kvm  xen  虚拟化  qemu  vm