gszwj
作者gszwj2018-01-23 17:38
系统工程师, hz

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装

字数 17389阅读 2473评论 1赞 5

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
1
2
3
4
5
6
7
8
9
10
11 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
1
2
3
4
5
6
7
8
9
10
11
12 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

  1. KVM虚拟机开机
    [root@KVM ~]# virsh start centos1
    [root@KVM ~]# virsh start centos2
    [root@KVM ~]# virsh start centos3
  2. 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

  3. 通过配置文件启动虚拟机
    [root@KVM ~]# virsh create /etc/libvirt/qemu/centos1.xml
  4. 配置开机自启动虚拟机
    [root@KVM ~]# virsh autostart centos2

autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。

  1. 导出KVM虚拟机配置文件
    [root@KVM ~]# virsh dumpxml centos1 > /etc/libvirt/qemu/centos01.xml
    KVM虚拟机配置文件可以通过这种方式进行备份。
  2. 添加与删除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配置文件
  3. 编辑KVM虚拟机配置文件
    [root@KVM ~]# virsh edit centos1
    virsh edit将调用vi命令编辑/etc/libvirt/qemu/centos1.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。
    可以但不建议直接通过vi编辑。
  4. 其它(挂起、恢复)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

修改后的内容:
1
2
3
4
5
6
7
8
9
10
11
12 <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'/>
</interface>
(6)进入系统更新网卡和SCSI控制器的驱动,重启后就会应用新的硬件了。

5.解决KVM虚拟机鼠标同步问题
kvm虚拟化windows操作系统鼠标有点不灵活等问题,在这里通过以下方式解决。在虚拟机的<devices>配置中增加:
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虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改相关文件才能实现。
  2. 配置方法如下
    (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

  1. 复制配置文件与磁盘文件克隆
    (1) 导入kvm虚拟机配置文件
    这里采用centos3做为模板,进行克隆。
    [root@KVM ~]# virsh list –all

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

(2) 复制kvm虚拟机磁盘文件
本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。
通过查看配置文件:虚拟磁盘位置<source file=’/data/Centos3.img’/>
[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
<name>Linux03</name>
<uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923260d</uuid>

   <source file=’/data/img/Linux03.img’/>
<graphics type=’vnc’ port=’5916′ autoport=’no’ listen=’0.0.0.0′>

(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
    <graphics type=’vnc’ port=’5916′ autoport=’no’ listen=’0.0.0.0′>
    <listen type=’address’ address=’0.0.0.0’/>
    </graphics>

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

  3. 启动虚拟机并测试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时间同步问题。

  4. kvm虚拟机修改时间配置文件
    kvm虚拟机采用utc时间,需要先修改配置文件使用KVM虚拟机的时间与虚拟主机同步。
    [root@KVM ~]# virsh edit Linux03

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

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

    crontab -e

  2. /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
  3. 查看现有磁盘镜像格式与转换
    (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

  1. 修改虚拟机配置文件
    修改磁盘格式,与新qcow2格式的磁盘。
    [root@KVM ~]# virsh edit centos2
  2. 对虚拟机进行快照管理
    (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/虚拟机名称/下

  1. 恢复虚拟机快照
    (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

  1. 配置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) 删除配置文件中第二块磁盘信息
  2. 直接扩展qcow2磁盘
    (1) 查看磁盘
    [root@kvm ~]# virsh edit centos40
    <disk type=’file’ device=’disk’>
    <driver name=’qemu’ type=’qcow2′ cache=’none’/>
    <source file=’/data/img/kvm_centos4.qcow2’/>
    <target dev=’vda’ bus=’virtio’/>
    <address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x05′ function=’0x0’/>
    (2) 直接扩展qcow2磁盘
    [root@kvm ~]# qemu-img resize /data/img/kvm_centos4.qcow2 +4G 经过前后对比,磁盘大小已由14G扩展到18G,已扩展,qcow2磁盘格式必须采用此方式进行扩展,不要使用dd方式,dd方式适用于raw格式。
  3. 进入系统开始扩展磁盘
    (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稍差,但确实很实用。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论1 条评论

wuwenpinwuwenpin软件开发工程师, 南京
2018-01-24 16:00
学习!
Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广