KVM是网络中的治理设备,它是Keyboard(键盘)、Video(显示器)和Mouse(鼠标)三个单词的第一个字母。即能够实现用一套键盘、显示器、鼠标来控制多台设备。简单点说就是在一个服务器上运行多个操作
系统,每个系统都是独立的,类似于这种技术的还有云平台。
本文出自 “黄宝良” 博客,请务必保留此出处http://hblbk.blog.51cto.com/7645149/1548025
虚拟化的技术目前在科技前沿还是有着很重大的地位的。
为创建虚拟主机准备磁盘,此处的磁盘可以使用LV更可备份以及制作快照
qemu-img create -f raw /p_w_picpaths/dieskname.raw 8G
qemu-img create -f qcow2
/p_w_picpaths/dieskname.qcow2 8G
-f 选项 指定 虚拟磁盘的类型
raw 优点
1、效率高于qcow2
2、直接读写虚拟机硬盘里面的文件,这比较"暴力",但既然可以这么暴力,那么也就不怕虚拟机出任何问题了。
3、通用性好,是转为其他虚拟机的格式的通用中间格式,这样就不用担心转换虚拟机系统了
qcow2 优点
1、加密功能:把raw本身就当普通文件加密之搞定
2、快照功能:把raw加入版本管理目录中,具体需要的设置可能稍微有点多。
3、宿主机不支持按需打孔模式(hole):这个可以自己根据使用情况来扩展raw的最大值
4、硬盘压缩:就当普通电脑文件压缩之即可
创建镜像
qemu-img create -f <fmt> -o <options> <fname>
<size>
举例:
qemu-img create -f raw -o size=4G /p_w_picpaths/vm2.raw
查看快照的信息
qemu-img
info vm2.raw
qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname
-c:采用压缩,只有qcow和qcow2才支持
-f:源镜像的格式,它会自动检测,所以省略之
-O 目标镜像的格式
-o 其他选项
fname:源文件
out_fname:转化后的文件
看例子:
qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2
如果想看要转化的格式支持的-o选项有哪些,可以在命令末尾加上 -o ?
qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2 -o ?
本文出自 “黄宝良” 博客,请务必保留此出处http://hblbk.blog.51cto.com/7645149/1548025第三 :增加减少镜像大小
qemu-img resize vm2.raw +2GB
可以使虚拟磁盘的容量增大"+" 或减小"-"
查看快照
qemu-img snapshot -l /p_w_picpaths/vm2.qcow2
列出虚拟磁盘快照列表
注意:只有qcow2才支持快照 !
创建快照
snapshot 选项 为创建管理快照时使用
qemu-img snapshot -c booting vm2.qcow2
举例:
创建快照
qemu-img snapshot -c booting vm2.qcow2
查看快照的信息
创建快照后用以下命令去查看磁盘快照的列表
qemu-img snapshot -l vm2.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 booting 0 2012-06-29
14:35:04 00:00:00.000
从快照恢复:快照还原时要确保虚拟机是down的状态
qemu-img snapshot -a 1 /p_w_picpaths/vm2.qcow2
然后从kvm启动这个虚拟机,会发现虚拟机又在打快照时的状态了
删除快照:
-d 选项 是指定快照的编号
qemu-img snapshot -d 2 /p_w_picpaths/vm2.qcow
新建一个镜像,但是派生自它
qemu-img create -f qcow2 vm3_5.qcow2 -o
backing_file=vm3_base.raw 5G
qemu-img convert -O raw vm3_5.qcow2 vm3_base2.raw
以上是kvm虚拟机的虚拟磁盘操作 ,以下为磁盘创建后如何安装系统至虚拟磁盘以及如何管理KVM虚拟机
在一个没有任何环境的主机上实现kvm虚拟机的搭建需要做到以下几点
1、CPU虚拟机化开启
2、安装所需要的环境包及相关工具,安装包:virt-manager virt-* libvirt libvirt-* python-virt*
qemu-*
3、准备一个分区最好是LVM,并挂载到/var/lib/libvrit/p_w_picpaths/
下,此步不是必须的但是为了防止磁盘空间的不足,建议去做。
4、准备好后开启libvirtd服务,并设置自启动
第二:创建虚拟机镜像
准备一个磁盘大小任意,但必须要足够系统的使用最低容量
qemu-img create -f qcow2
server.qcow2 50G
此处的格式及名称可任意指定,此文件最好是放在 /var/lib/libvrit/p_w_picpaths/下,
一般情况下qcow2的功能要比raw的虚拟磁盘多,我这里默认为qcow2,
因为后期要对磁盘进行压缩你就会看到qcow2类型的磁盘的优点了。
创建完毕
第四:安装系统到虚拟磁盘server.qcow2
安装方式有两种
1、图形化安装,在此不多做解释
2、命令行下进行安装,重点介绍
命令安装时用到的命令
virt-install
--vnc 选则显示方式
--noautoconsole 自动分配TLS端口
--name 指定虚拟机的名称
--ram 指定虚拟机的内存大小 以"M" 为单位
--arch 指定虚拟机的硬件架构
--vcpus 指定CPU的个数
--os-type 指定系统的名称
--hvm 虚拟机系统的类型
--disk
指定虚拟机磁盘的位置及文件名
-w bridge 指定虚拟机的网卡,注意网卡必须是桥接网卡类似:br0 br1
--location
指定安装光盘的位置,此处已pxe为例
--extra-args 指定KS文件的所在位置
noipv6 不启用IPV6
以上为我理解的各选项的意思,以下为例(此为一行):
virt-install --vnc --noautoconsole
--name=server --ram=2048 --arch=x86_64
--vcpus=1 --os-type=linux
--os-variant=rhel7 --hvm --accelerate
--disk=/var/lib/libvrit/p_w_picpaths/server.qcow2 -w bridge=br0
--location=http://172.24.254.254/exam/rhel7/dvd/
--extra-args="ks=http://172.24.254.254/exam/ks/vserver/rhcsa-server.ks
noipv6
成功后 使用 sudo virt-manager 打开KVM虚拟机管理器双击虚拟机查看
安装完成后使用命令
virsh
dumpxml server > /var/lib/libvrit/p_w_picpaths/server.xml
生成系统引导文件
本文出自 “黄宝良” 博客,请务必保留此出处http://hblbk.blog.51cto.com/7645149/1548025执行后安装系统步骤不去详细解说。
注:--disk 此选项所支持的磁盘类型包括LVM,可对lvm做快照实现虚拟机的还原及备份
第五 :转换并压缩
安装完系统后磁盘的大小在3-5G 不等,主要看系统的类型,此时这个文件就不在随意挪动了,为了解决这个问题
我们对此文件做一下压缩
qemu-img convert -c -f qcow2 server.qcow2 server-vda.qcow2
执行完毕后看到 server-vda.qcow2文件的大小只有1G左右就成功了
将server.qcow2文件删除即可
第六:引导名为server的虚拟机开启
引导的方式也有很多,此处仅介绍XML文件引导
文件内容如下:
<?xml version="1.0" ?>
- <domain type="kvm">
<name>server</name> /*此为虚拟机的名称
<memory>2097152</memory> /*此为内存大小不需和
<currentMemory>2097152</currentMemory>
<clock
offset="utc" />
<vcpu>1</vcpu> /*此为CPU个数
-
<features>
<acpi />
<apic />
<pae />
</features>
- <os>
<type>hvm</type>
<boot dev="hd" />
<bootmenu enable="yes" />
</os>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
- <devices>
-
<graphics type="spice" port="5903" autoport="yes" listen="127.0.0.1">
<listen type="address" address="127.0.0.1" />
</graphics>
<graphics port="-1" type="vnc" />
- <interface
type="bridge">
<source bridge="br0" />
<mac
address="52:54:00:00:00:0B" /> /*MAC地址指定
<model type="virtio" />
</interface>
<input bus="ps2" type="mouse" /> /*鼠标设备
-
<serial type="pty">
<target port="0" />
</serial>
- <video>
<model type="qxl" ram="65536" vram="65536" heads="1"
/>
<alias name="video0" />
<address type="pci"
domain="0x0000" bus="0x00" slot="0x02" function="0x0" />
</video>
- <disk device="disk" type="file">
<target bus="virtio"
dev="vda" />
<source
file="/var/lib/libvirt/p_w_picpaths/rh299-server-vda.qcow2" /> /*指定磁盘文件
<driver name="qemu" type="qcow2" />
</disk>
</devices>
</domain>
使用命令 virsh create server.xml 引导系统
注意:引导时不能存在名叫server的主机,解决方法,关闭server主机并删除主机,或者更改XML文件里的uuid和虚拟机名称
uuidgen
命令 生成随机uuid
引导完成
第七:虚拟机管理
强制关机 virsh destroy server
重启主机 virsh reboot server
本文出自 “黄宝良” 博客,请务必保留此出处http://hblbk.blog.51cto.com/7645149/1548025第八:虚拟机还原
当我们创建好此系统后开机第一次不做任何操作,然后copy server-vda.qcow2
文件为server-vda.val
然后修改server.xml文件
的磁盘路径/var/lib/libvrit/p_w_picpaths/server-vda.val
可以将这个过程用脚本实现自动化过程
END