KVM&QEMU学习笔记(一)

1.安装和配置

使用随系统自带的KVM

大部分的Linux发行版已经内置了KVM内核模块以及用户空间工具,使用这些内置组件是最容易、推荐的方式:KVM内核模块现在是Linux内核的一部分,除非你使用的是精简过的内核用户空间组件,软件包名称一般是qemu-kvm或者kvm,例如Ubuntu下可以执行 sudo apt-get installqemu-kvm 安装此组件,客户机驱动:Linux客户机的驱动包含在内核中;Windows客户机的驱动需要下载。

手工构建KVM

安装QEMU的依赖包:

sudo apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers   pkg-config libgnutls-dev libpci-dev
注意:2.6.29以上版本的内核,可以和任何版本的qemu-kvm搭配使用

构建和安装用户空间组件

tar xzf qemu-kvm-release.tar.gz
cd qemu-kvm-release
./configure --prefix=/usr/local/kvm
make
sudo make install

构建和安装KVM内核模块

如果你使用旧版本内核,或者内核精简了KVM,则需要此步骤:

tar xjf kvm-kmod-release.tar.bz2
cd kvm-kmod-release 
./configure
make 
sudo make install


启用内核模块
# 对于Intel CPU
sudo /sbin/modprobe kvm-intel
# 对于AMD CPU
sudo /sbin/modprobe kvm-amd


第一台虚拟机

要创建虚拟机,首先要创建一个虚拟磁盘,然后从光驱启动此虚拟机:

mkdir -p ~/Vmware/KVM
 
# 以qcow2格式创建一个16G的虚拟磁盘,注意,默认不会预先分配空间
qemu-img create -f qcow2 ~/Vmware/KVM/centos7-base.img 16G
 
# 指定光盘镜像,从光驱启动虚拟机
# -hda 第一块硬盘的镜像
# -cdrom 光驱的镜像,你可以把宿主的/dev/cdrom传入,这样可以使用物理光驱
# -boot 指定启动顺序,d表示第一个光驱,c表示第一块硬盘
# -m 为虚拟机分配多少内存,默认单位M,默认128M
qemu-system-x86_64 -enable-kvm -hda ~/Vmware/KVM/centos7-base.img  -boot d -m 512
                   -cdrom ~/Software/OS/CentOS-7-x86_64-Minimal-1503-01.iso

上述命令执行完毕之后,会弹出一个窗口,该窗口相当于虚拟机的显示器。你可以在其中完成操作系统的安装。安装完毕后,执行下面的命令,即可启动虚拟机:

qemu-system-x86_64 -enable-kvm -hda ~/Vmware/KVM/centos7-base.img -m 512

配置CPU
使用选项  -cpu  选项可以选择客户机使用的CPU,执行  qemu-system-x86_64 -cpu help  可以列出QEMU支持的CPU名称、可用的CPUID标记。

你可以这样配置一个CPU:

-cpu SandyBridge,+erms,+smep,+fsgsbase,+pdpe1gb,+rdrand,+f16c,+osxsave,+dca,+pcid,+pdcm,\
     +xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme
SMP配置

所谓对称多处理(Symmetrical Multi-Processing) ,是指在一个计算机上汇集了一组处理器,各处理器共享内存子系统以及总线结构。在PC机上QEMU最多可以模拟255个CPU。

你可以这样配置SMP:  -smp 1,sockets=1,cores=1,threads=1  。这个配置表示主板上有一个CPU插槽、1个CPU、每个CPU具有1核心、每个核心具有1个硬件线程(超线程)。

配置磁盘

你可以在宿主机上创建一个磁盘镜像文件,然后供客户机使用。客户机磁盘I/O都将针对此文件。镜像文件可以有几种格式。

Raw镜像

这种镜像的特点是格式简单,性能较好

你的文件系统(例如Ext3)必须支持稀疏文件(sparse file),才能避免不必要的磁盘空间占用。稀疏文件是一种高效使用磁盘空间的技术,当文件大小很大,而其绝大部分块都是空白(未使用)的时,可以基于文件元数据来表示那些空白的块(而不是真实的硬盘空间)。

创建Raw镜像:

qemu-img create -f raw hda.img 1G
 
# 查看镜像信息
qemu-img info hda.img 
# image: hda.img
# file format: raw
# virtual size: 1.0G (1073741824 bytes)
# disk size: 0

你也可以使用dd命令产生Raw镜像,例如:
# 产生非稀疏文件:块大小1MB,写入1024个块,虚拟大小1G,实际大小1G
dd if=/dev/zero of=hda.img bs=1024k count=1024
# 产生稀疏文件:块大小1MB,写入0个块,虚拟大小1G,实际大小0
dd if=/dev/zero of=hda.img bs=1024k count=0 seek=1024

创建qcow2镜像

你可以这样创建一个qcow2镜像:

qemu-img create -f qcow2 hda-back.img 16G

转为backing file

然后,在未来某个时刻把它作为backing file使用:

qemu-img create -f qcow2 -o backing_file=hda-back.img hda.img

压缩、加密和扩展

镜像hda.img在一开始是空白的,所有数据都是从hda-back.img中获取,一旦发生写入操作,hda.img就开始有数据而hda-base.img保持不变。

使用下面的命令可以压缩一个qcow2镜像:

qemu-img convert -c -f qcow2 -O qcow2 hda.img hda.compressed.img


使用下面的命令可以为一个qcow2镜像设加密:

qemu-img convert -o encryption -f qcow2 -O qcow2  hda.img hda.encrypted.img
# 提示输入密码

使用压缩镜像启动虚拟机时,必须在Monitor中输入密码才可以。

使用下面的命令,可以扩展一个qcow2镜像的大小:

qemu-img resize hda.img +10G
注意:扩大得到的空间,不会被分区或者格式化。


格式转换

你可以把一个镜像的格式在Raw和qcow2之间进行转换:


# 把Raw格式的hda.img转换为qcow2格式的hda.qcow2
qemu-img convert -f raw -O qcow2 hda.img hda.qcow2


下一·篇开始讲kvm虚拟机的快照


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值