ITPub博客

首页 > 云计算 > 虚拟化 > KVM虚拟化学习笔记

KVM虚拟化学习笔记

虚拟化 作者:shuyingxi 时间:2018-01-23 22:16:56 0 删除 编辑

转自:http://www.talkwithtrend.com/Article/219507

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装
1.操作系统安装
本文采用Centos6.4X64操作系统,也可以采用RHEL/CentOS6.x。
(1)查看系统版本、内核版本

查看系统版本

[root@KVM ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

查看内核版本

[root@KVM ~]# uname -a
Linux KVM 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
注: 2.6.20以下的内核需要升级。
(2)关闭selinux,iptables,重启后生效
①. 关闭selinux
[root@kvm ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
②. 关闭iptables
[root@kvm ~]# iptables -F
[root@kvm ~]# iptables -X
[root@kvm ~]# /etc/init.d/iptables save
[root@kvm ~]# /etc/init.d/iptables stop
(3)重启
[root@kvm ~]# reboot

2.虚拟化环境配置
(1)VMware内的Centos开启虚拟化

说明1:半虚拟化是不能运行与安装KVM虚拟机的。
(2) 查看系统是否支持KVM虚拟化
[root@KVM ~]# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo

若实际环境没有, 需要到主板BIOS中开启Virtual Technolege(VT, 虚拟化技术)
(3) 安装kvm软件包
[root@KVM ~]# yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools qemu-kvm gcc*
3.查看虚拟化环境
(1)查看虚拟机环境
[root@KVM ~]# /etc/init.d/libvirtd start
[root@KVM ~]# virsh -c qemu:///system list
Id Name State
—————————————————-

(2)查看kvm模块支持
[root@KVM ~]# lsmod |grep kvm
kvm_intel 55624 0
kvm 338535 1 kvm_intel
(3)查看虚拟工具版本
[root@KVM ~]# virsh –version
0.10.2
[root@KVM ~]# virt-install –version
0.600.0
[root@KVM ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@KVM ~]# qemu-kvm -version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.448.el6_6.4), Copyright (c) 2003-2008 Fabrice Bellard
4.手动配置虚拟网桥
(1)关闭networkmanager服务
[root@KVM ~]# /etc/init.d/NetworkManager stop
[root@KVM ~]# chkconfig NetworkManager off
(2)创建br0网k

[root@KVM ~]# cd /etc/sysconfig/network-scripts/
[root@KVM network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@KVM network-scripts]# vim ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:41:DA:81
TYPE=Ethernet
UUID=21501ff5-e313-494c-a402-50f2a84f1f5c
ONBOOT=yes
NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.15.14

NETMASK=255.255.255.0

GATEWAY=192.168.15.2

BRIDGE=br0
[root@KVM network-scripts]# vim ifcfg-br0
DEVICE=br0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.14
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
TYPE=Bridge
(3)重启network服务。
[root@KVM network-scripts]# /etc/init.d/network restart
(4)查看网桥br0.

(4)查看网桥

到此kvm虚拟化环境安装完毕。

kvm虚拟化学习笔记(二)之windows kvm虚拟机安装

  1. 开始安装windows 2003 (1) 上传2003 iso文件到/data/iso文件夹中

(2) 开始安装
[root@KVM ~]# cat create_win_kvm.sh 
 virt-install \
--name=win2003_1 \
--ram 1024 \
--vcpus=2 \
--disk path=/data/img/win2003_1.img,size=8 \
--accelerate \
--cdrom /data/win_server_2003_R2x64.iso \
--vnc \
--vncport=5915 \
--vnclisten=0.0.0.0 \
--network bridge=br0 --force --autostart
(3) 通过vnc连接,然后进行安装过程,也可以通过控制台继续安装过程。

注:文件复制完毕后,windows会重启,这里虚拟机会关闭,需要手动启动,而且VNC无法使用。

启动win2003_1后用vnc连接安装wind2003时出现如下

(4) 接上面,登录控制台。
如果其它环境无法连接控制台,可以远程安装vnc服务器端工具,通过vnc登录服务器,可以最终安全完成。无需要我们分两步。 
##双击win2003_1

(5) 手动挂载光驱,如下图所示,一步一步的操作如下。

返回控制台,继续安装过程。

  1. 安装后配置 (1) 配置IP地址 (2) 配置远程桌面

到此,windows server 2003 kvm虚拟机安装完毕,后面将介绍如何对windows进行性能方面的优化。
说明:如果在KVM虚拟化平台上Centos 6.6上安装vnc server可以直接通过vnc全程安装完毕。

kvm虚拟化学习笔记(三)之linux kvm虚拟机安装
1.上传ISO文件,这里采用Centos 6.4x64iso

2.开始安装Centos6.4
(1)raw格式磁盘
[root@KVM ~]#vim create_kvm.sh
 virt-install \
--name centos2 \ ##虚拟机名称
--ram 512 \ ##分配内存大小(默认大小MB)
--vcpus=1 \ ##分配CPU核心数,最大与时提及CPU核心数相同
--disk path=/data/img/kvm_centos2.img,size=10 \ ##指定虚拟机镜像(size单位为GB)

--network bridge=br0 \ ##指定网络
--cdrom=/data/CentOS-6.4-x86_64-bin-DVD1.iso \ ##指定安装镜像iso
--accelerate \ ##加速
--vnclisten=0.0.0.0 \ ##指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0
--vncport=5911 \ ##指定VNC监听端口(默认为5900)
--vnc ##启用VNC管理
注: 每行"\"后面不要带有空格.

用KVM创建虚拟机

如果采用qcow2磁盘格式,需要事先创建qcow2格式虚拟磁盘 (2)qcow2格式(空间动态增长)2015.7.10日更新
[root@KVM ~]# qemu-img create -f qcow2 /data/img/Centos3.img 3G

用KVM创建虚拟机

[root@KVM ~]# sh create_qcow2_kvm.sh
[root@KVM ~]# echo $?
0
[root@KVM ~]# virsh list

说明:在linux系统安装开始就要注意添加提高性能的一些参数,后面就不需要做一些调整了。
3.开始通过VNC进行连接,进行安装过程。

4.登录操作系统查看
(1) 查看虚拟机列表

ps: Centos1是我的测试机. centos2和centos3是新创建的。 centos2安装完操作系统自动关闭了, 需要手动启动. centos3安装完后也需要手动启动
[root@KVM ~]# virsh start centos2
Domain centos2 started
[root@KVM ~]# virsh list –all|grep centos2
11 centos2 running
(2) centos2、centos3主机自动获取IP地址

centos2自动获取IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak
[root@localhost network-scripts]# dhclient
[root@localhost network-scripts]# ip a

(3) 清空iptables规则, 通过sshd登录该主机
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# /etc/init.d/iptables restart

(3) 安装电源服务
[root@localhost ~]# yum -y install acpid
[root@shadowsocks ~]# /etc/init.d/acpid start
[root@shadowsocks ~]# chkconfig acpid on
至此Centos 6.4X64KVM虚拟机安装完毕。

kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

  1. 查看KVM虚拟机配置文件及运行状态 (1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostart目录是配置kvm虚拟机开机自启动目录。

(2) virsh命令帮助
[root@KVM ~]# virsh –help
或直接virsh命令和,再执行子命令。如下所示。
[root@KVM ~]# virsh 
virsh # help #帮助
……
virsh # quit #退出
(3) 查看kvm虚拟机状态
[root@KVM ~]# virsh list –all 
2. KVM虚拟机开机
[root@KVM ~]# virsh start centos1
[root@KVM ~]# virsh start centos2
[root@KVM ~]# virsh start centos3 
3. KVM虚拟机关机或断电
(1) 关机
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
[root@Centos1 ~]# yum -y install acpid
[root@Centos1 ~]# /etc/init.d/acpid start

virsh关机

[root@KVM ~]# virsh shutdown centos1
(2) 强制关闭电源
[root@KVM ~]# virsh destroy centos2 
4. 通过配置文件启动虚拟机
[root@KVM ~]# virsh create /etc/libvirt/qemu/centos1.xml 
5. 配置开机自启动虚拟机
[root@KVM ~]# virsh autostart centos2

autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
6. 导出KVM虚拟机配置文件
[root@KVM ~]# virsh dumpxml centos1 > /etc/libvirt/qemu/centos01.xml 
KVM虚拟机配置文件可以通过这种方式进行备份。
7. 添加与删除KVM虚拟机
(1) 删除kvm虚拟机
[root@KVM ~]# virsh undefine centos1
Domain centos1 has been undefined
说明:该命令只是删除 centos1的配置文件,并不删除虚拟磁盘文件。如下图所示。 
(2) 重新定义虚拟机配置文件
通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。
[root@KVM ~]# mv /etc/libvirt/qemu/centos01.xml /etc/libvirt/qemu/centos1.xml
[root@KVM ~]# virsh define /etc/libvirt/qemu/centos1.xml #为客户端输出xml配置文件 
8. 编辑KVM虚拟机配置文件
[root@KVM ~]# virsh edit centos1
virsh edit将调用vi命令编辑/etc/libvirt/qemu/centos1.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。
可以但不建议直接通过vi编辑。 
9. 其它(挂起、恢复)virsh命令
(1) 挂起服务器
[root@KVM ~]# virsh suspend centos3 
(2) 恢复服务器
[root@KVM ~]# virsh resume centos3 
virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。

kvm虚拟化学习笔记(五)之windows虚拟机性能调整

在通过KVM安装WindowsXP/2003/7/2008操作系统后,由于默认的磁盘驱动(IDE)性能与网卡驱动(RTL8139100M) 的性能都极其低下,需要调整,通过加载Redhatvirtio驱动来提高kvmwindows虚拟机磁盘与网卡性能。更换后的驱动为SCSI磁盘驱动, 与virtio网卡驱动(1000M)。
提升性能方式:
(1)采用LVM逻辑卷上安装虚拟机,采用更换磁盘驱动为SCSI来提升性能。
(2)修改默认网卡类型与驱动。
新可以在安装windows的时候加载驱动,也可以安装后加载驱动,本文就是采用系统安装之后再加载驱动的方式。
1.本文相关软件下载地址
ISO驱动:virtio-win-0.1-52.iso
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso
软驱驱动:virtio-win-1.1.16.vfd可在down.51cto.com下载频道中找。
2.加载驱动思路
(1)使用默认方式来安装Windows系统,安装系统完成后,再安装virtio磁盘驱动,最后修改kvm启动参数,设置磁盘为virtio。
(2)在开始安装时直接按F6加载virtio驱动。
由于本文事先已经安装好了windowsServer2003x86操作系统,所以这里采用第一种方式安装virtio驱动。直接将配置文件修改,在没有加载virtio驱动的情况下,会造成系统无法启动。
3.替换驱动
(1)通过正常的图形界面方式进行安装windows虚拟机,这时驱动都是采用的默认的。
(2)在控制台上添加一块virtio磁盘,一块virtio网卡,光驱挂载virtioISO驱动光盘。

随例添加一块virtiodisk磁盘。点击Add Hardware(添加硬件)

添加一块virtio网卡。

挂载驱动iso文件。将刚下载的iso上传到KVM服务端内。

(3)进入系统打开设备管理器,刷新硬件,需要安装scsi与以太网控制器驱动。

在SCSI控制器上右键,更新驱动程序,浏览到D盘\wxp\x86目录,2003驱动目录,下一步开始加载驱动。

继续安装驱动。

(4)安装以太网控制器驱动。

(4)重启系统验证驱动加载情况。
第二块网卡配置新的IP地址,然后关机。
(5)修改虚拟机配置文件
思路:替换与修改原磁盘驱动配置,与网卡配置,修改内容如下:
1 # virsh edit wintest01

修改后的内容:
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/data/wintest01.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<interface type='bridge'>
<mac address='52:54:00:da:f1:a6'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

(6)进入系统更新网卡和SCSI控制器的驱动,重启后就会应用新的硬件了。


5.解决KVM虚拟机鼠标同步问题
kvm虚拟化windows操作系统鼠标有点不灵活等问题,在这里通过以下方式解决。在虚拟机的配置中增加:
1
2 # virsh edit wintest01
<input type=’tablet’ bus=’usb’/>

至
此windows磁盘与网卡驱动调整以提高性能方法配置完毕。

kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置
vm虚拟机能否像xen虚拟机一样通过virsh console 一样采用字符界面进行linux虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改相关文件才能实现。
1. 配置方法如下
(1) 添加ttyS0的许可,允许root登录
vm虚拟机能否像xen虚拟机一样通过virsh console 一样采用字符界面进行linux虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改相关文件才能实现。
1. 配置方法如下
(1) 添加ttyS0的许可,允许root登录
[root@Centos1 ~]# ip a
[root@Centos1 ~]# echo “ttyS0″ >> /etc/securett #是零不是英文字母O

(2) 修改/etc/grub.conf文件
[root@Centos1 ~]# vim /etc/grub.conf

(3) 修改/etc/inittab文件
[root@Centos1 ~]# vim /etc/inittab

(4) 重启
[root@Centos1 ~]# reboot

  1. 测试virsh console命令 [root@KVM ~]# virsh console centos2

至此virsh console 命令进入控制台配置完毕,今后将对linux虚拟机很方便的console方式进行管理。
kvm虚拟化学习笔记(七)之kvm虚拟机克隆
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为Centos 6.4X64。
(1) KVM主机本机虚拟机直接克隆。
(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。
1. 本机虚拟机直接克隆
(1) 查看虚拟机配置文件
[root@KVM ~]# cat /etc/libvirt/qemu/centos3.xml

虚拟机磁盘文件: /data/img/Centos3.img
虚拟机名称:Centos3
[root@KVM ~]# virsh list –all

(2) 开始克隆
[root@KVM ~]# virt-clone -o centos3 -n Linux3 -f /data/img/Linux3.img
说明:克隆虚拟机应保持关闭状态,以centos3做为源,克隆centos3虚拟机,并创建名称为Linux3虚拟机,使用磁盘文件/data/img/Linux3.img 
(3) 启动虚拟机
[root@KVM ~]# virsh start Linux3
[root@KVM ~]# virsh list

(4) 修改主机名,IP地址等
[root@localhost ~]# hostname Linux3
[root@localhost ~]# bash
[root@Linux3 ~]# vi /etc/sysconfig/network
HOSTNAME=Linux3
修改IP地址
[root@Linux3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.135
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
[root@Linux3 ~]# /etc/init.d/network restart
2. 复制配置文件与磁盘文件克隆
(1) 导入kvm虚拟机配置文件
这里采用centos3做为模板,进行克隆。
[root@KVM ~]# virsh list –all

[root@KVM ~]# virsh dumpxml centos3 > /etc/libvirt/qemu/Linux03.xml

(2) 复制kvm虚拟机磁盘文件
本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。
通过查看配置文件:虚拟磁盘位置
[root@KVM ~]# cp /data/img/Centos3.img /data/img/Linux03.img

(3) 直接编辑修改配置文件
修改name,uuid,disk位置,vnc端口
此时还是将该配置文件注册进来,无法通过virsh edit进行编辑。
[root@node1 data]# vi /etc/libvirt/qemu/Linux03.xml

Linux03
8f2bb4a7-c7ed-32aa-3676-9fb05923260d


(4) 定义新虚拟机配置文件
[root@KVM ~]# virsh define /etc/libvirt/qemu/Linux03.xml

启动虚拟机

[root@KVM ~]# virsh start Linux03

(5) 登录虚拟机进行主机名,IP等修改

[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=Linux03
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.133
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114

本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。
再次说明:本文克隆的虚拟机是Centos6.4,如果克隆的虚拟机是RHEL/CentOS/OEL7.x操作系统,还需要修改/etc/udev/rules.d/70-persistent-net.rules文件。
kvm虚拟化学习笔记(八)之kvm虚拟机vnc配置
本文是通过vnc方式访问虚拟主机上的KVM虚拟机。
这里的通过vnc方式访问虚拟机不是在kvm虚拟机安装配置vnc服务器,通过虚拟主机的IP地址与端口进行访问,kvm虚拟化对vnc的支持相对来说比xen要好很多,在虚拟主机上配置VNC访问虚拟机,也是为了多提供一种方式访问虚拟机而已。
1. 修改qemu.conf
[root@KVM ~]# vim /etc/libvirt/qemu.conf
vnc_listen = “0.0.0.0”
说明1:vnclisten 默认绑定127.0.0.1 在配置文件里指定VNC 绑定0.0.0.0IP,就不用在安装kvm虚拟机时指定vnclisten参数了。
说明2:在虚拟主机上有很多个虚拟机的时候,需要指定每个虚拟机的端口,否则将会很乱。
2. 修改虚拟机配置文件
[root@KVM ~]# virsh edit Linux03


配置VNC的配置文件,port是指定端口号,autoport是自己分配端口号。

  1. 启动虚拟机并测试VNC

查看vnc端口

[root@KVM ~]# netstat -tunlp|grep qemu-kvm
tcp 0 0 0.0.0.0:5916 0.0.0.0:* LISTEN 4134/qemu-kvm

vnc工具登录

改为字符界面启动,vnc也能出现界面,这点比xen虚拟化vnc要好。vnc登录如下。到此kvm虚拟机管理已经介绍了两种方式,一种是在KVM虚拟主机上配置VNC,一种是在kvm虚拟主机上配置virsh console控制台,当然虚拟化管理器就不用说了。
kvm虚拟化学习笔记(九)之kvm虚拟机时间配置
注:在虚拟化环境中,虚拟机在长时间运行过程中,时间会变慢,通常的作法是配置ntpdate定时与时间服务器进行时间同步的计划任务。
KVM虚拟机默认采用utc时间,需要专门修改,以及考虑kvm时间同步问题。
1. kvm虚拟机修改时间配置文件
kvm虚拟机采用utc时间,需要先修改配置文件使用KVM虚拟机的时间与虚拟主机同步。
[root@KVM ~]# virsh edit Linux03

修改utc为localtime,保存退出,重启虚拟机。

  1. 关于kvm虚拟机时间问题解决思路 (1) 虚拟机时间慢是所有虚拟化平台的一共性问题。 (2) 解决时间的最终解决方法就是在生产环境中配置时间服务器,kvm虚拟化服务器与kvm机均都要配置时间同步的计划任务,这才是解决这一个问题最终解决方案。 示例:如果能访问互联网,最简单了,需要kvm虚拟机与主机时间同步,但是运行一段时间会慢,一定要做时间同步,特别是对时间敏感的环境。

crontab -e

01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1
关于虚拟机时间配置本文讨论完毕。
kvm虚拟化学习笔记(十)之kvm虚拟机快照备份
kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。
要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程。
进一步的学习参考:kvm+libvirt虚拟机快照浅析 http://itxx.sinaapp.com/blog/content/130
1. 查看现有磁盘镜像格式与转换
(1) 查看磁盘格式
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.img

raw格式需要转换成qcow2

(2) 关闭虚拟机并转换磁盘
[root@centos2 ~]# yum -y install acpid ##安装电源服务
[root@KVM ~]# virsh shutdown centos2 
(3) 转换磁盘格式
[root@KVM ~]# qemu-img convert -f raw -O qcow2 /data/img/kvm_centos2.img /data/img/kvm_centos2.qcow2
-f 源镜像的格式
-O 目标镜像的格式
查看转换后磁盘大小

查看转换后的格式,已经转换成了qcow2, 这里是拷贝一份,并将格式转成qcow2
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2 
2. 修改虚拟机配置文件
修改磁盘格式,与新qcow2格式的磁盘。
[root@KVM ~]# virsh edit centos2

  1. 对虚拟机进行快照管理 (1) 对oeltest01虚拟机创建快照 也可以virsh snapshot-create-as centos2 centos2_snapshot 创建后个快照别名。 [root@KVM ~]# virsh snapshot-create-as centos2 centos2_snaphshot

(2) 查看虚拟机镜像快照的版本
[root@KVM ~]# virsh snapshot-list centos2

(3) 查看当前虚拟机镜像快照的版本
可以看到为当前最新的快照版本。
[root@KVM ~]# virsh snapshot-create-as centos2 centos2_snaphshot
[root@KVM ~]# virsh snapshot-current centos2

查看快照

[root@KVM ~]# virsh snapshot-info centos2 centos2_snaphshot

(4) 查看当前虚拟机镜像文件

启动centos2, 安装ftp, 在做一个快照.

[root@KVM ~]# virsh start centos2
[root@centos2 ~]# yum -y install vsftpd
[root@KVM ~]# virsh snapshot-create-as centos2 centos_installftp
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2

快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称/下 
4. 恢复虚拟机快照
(1) 恢复虚拟机快照必须关闭虚拟机。
[root@KVM ~]# virsh shutdown centos2

确认虚拟机是关机状态 
(2) 确认需要恢复的快照时间,这里恢复到centos2_installftp 
(3) 执行恢复,并确认恢复版本
[root@KVM ~]# virsh snapshot-revert centos2 centos2_installftp 
(4) 登录到centos2验证ftp命令

  1. 删除虚拟机快照 (1) 查看虚拟机快照 [root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2 (2) 删除快照 这里删除第一个快照centos2_installftp [root@KVM ~]# virsh snapshot-delete centos2 centos2_installftp [root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2

(3) 回到centos2第一个快照(centos2_snaphshot), 并查看centos2状态.
[root@KVM ~]# virsh snapshot-revert centos2 centos2_snaphshot

到此kvm虚拟机快照测试完毕。kvm虚拟化学习笔记进行到这里了,感觉到kvm虚拟化的内容真的很多。水是越来越深了。
kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间
kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致。原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用。
一、raw磁盘格式扩展思路如下
1. 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
①. 查看现有磁盘容量
[root@centos1 ~]# df -h
 ②. 使用dd创建一个磁盘文件
[root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 > /data/img/centos1_new.img
[root@kvm ~]# du -sh /data/img/centos1_new.img
 ③. 关闭虚拟机
[root@kvm ~]# virsh list
[root@kvm ~]# virsh shutdown centos1
[root@kvm ~]# virsh list –all
 ④. 修改虚拟主机配置文件
[root@kvm ~]# virsh edit centos1
 ⑤. 启动虚拟机
[root@kvm ~]# virsh start centos1
⑥. 查看centos1磁盘信息
[root@centos1 ~]# fdisk -l
⑦. 创建磁盘分区,格式化分区, 挂载分区.
[root@centos1 ~]# fdisk /dev/sdb
[root@centos1 ~]# mkfs.ext4 /dev/sdb1
[root@centos1 ~]# mkdir /data
[root@centos1 ~]# mount /dev/sdb1 /data/
[root@centos1 ~]# df -h

  1. 直接通过dd命令扩展现有虚拟机磁盘大小,扩展之后,原磁盘大小增大,进入虚拟机系统后,直接通过fdisk分区新添加的空间,然后将该分区并入lvm逻辑卷中,扩大磁盘空间。
    ①. 关闭扩容kvm(centos1)
    [root@kvm ~]# virsh shutdown centos1
    [root@kvm ~]# virsh list –all

    ②. 直接扩展现有磁盘空间(centos1_new.img)
    [root@kvm ~]# du -sh /data/img/centos1_new.img
    [root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 >> /data/img/centos1_new.img

    ③. 启动kvm(centos1)
    [root@kvm ~]# virsh start centos1
    [root@kvm ~]# virsh list

    ④. 查看分区列表.(注: 创建分区自便)
    [root@centos1 ~]# df -h
    [root@centos1 ~]# fdisk -l /dev/sdb

二、qcow2磁盘格式扩展思路如下
(1) 可以采用raw磁盘格式磁盘的扩展方式一致的方式进行。
(2) qcow2格式磁盘,直接通过qemu-img 直接扩展qcow2磁盘, 新添加一块raw格式的磁盘加入到KVM虚拟机,然后通过虚拟机系统lvm逻辑卷管理方式进行管理,扩展磁盘空间。
下面将开始通过qcow2格式添加磁盘。
方式一:添加一块qcow2磁盘加入虚拟机
1. 查看现在虚拟机磁盘信息
①. 查看kvm虚拟机(centos1)磁盘格式
[root@kvm ~]# virsh edit centos1
 ②. 查看磁盘格式信息
[root@kvm ~]# qemu-img info /data/img/kvm_centos1.qcow2
③. 进入虚拟机,查看磁盘容量
[root@centos1 ~]# df -h
④. 添加一块qcow2磁盘
[root@kvm ~]# qemu-img create -f qcow2 /data/img/kvm_centosA1.qcow2 2G
 ⑤. 关闭kvm(centos1)添加一块qcow2磁盘信息加入配置文件
[root@kvm ~]# virsh shutdown centos1 
[root@kvm ~]# virsh edit centos1 
⑥. 启动虚拟机并配置磁盘
root@kvm ~]# virsh start centos1
[root@centos1 ~]# fdisk -l 
2. 配置LVM扩展磁盘
①.磁盘分区
[root@centos1 ~]# fdisk /dev/sdb 
②. 扩展lvm逻辑卷。
[root@centos1 ~]# pvcreate /dev/sdb1
[root@centos1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a– 9.51g 0
/dev/sdb1 lvm2 a– 2.00g 1020.00m
[root@centos1 ~]# vgextend VolGroup /dev/sdb1
[root@centos1 ~]# lvextend -L +1024MB /dev/mapper/VolGroup-lv_root
[root@centos1 ~]# resize2fs /dev/mapper/VolGroup-lv_root
[root@centos1 ~]# df -h 
可以看到, 根”/”分区增长了1G容量。
方式二:直接扩展qcow2磁盘(拿kvm_Centos4做演示)
(1) 关闭虚拟机。
(2) 删除配置文件中第二块磁盘信息
1. 直接扩展qcow2磁盘
(1) 查看磁盘
[root@kvm ~]# virsh edit centos40
(2) 直接扩展qcow2磁盘
[root@kvm ~]# qemu-img resize /data/img/kvm_centos4.qcow2 +4G 经过前后对比,磁盘大小已由14G扩展到18G,已扩展,qcow2磁盘格式必须采用此方式进行扩展,不要使用dd方式,dd方式适用于raw格式。
2. 进入系统开始扩展磁盘
(1) 启动kvm(centos4)并查看分区大小
[root@kvm ~]# virsh start centos4
[root@centos4 ~]# fdisk -l 
(2) 开始分区
[root@centos4 ~]# fdisk /dev/vda 查看现在磁盘空间
[root@centos4 ~]# df -h (3) 格式化分区并挂载。
[root@centos4 ~]# mkfs.ext4 /dev/vda3
[root@centos4 ~]# mkdir /database
[root@centos4 ~]# mount /dev/vda3 /data
[root@centos4 ~]# df -h 到此kvm虚拟机扩展磁盘空间成功,当虚拟机磁盘格式换成qcow2后,确实有很多需要注意的地方,qcow2格式支持动态扩展与快照功能,虽然性比raw稍差,但确实很实用。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/438414/viewspace-2150472/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-12-21

  • 博文量
    48
  • 访问量
    157705