Kvm之Lvm存储测试

简介:

实验

1.Kvm添加Lvm存储池

2.使用Lv安装操作系统

3.使用Lv快照创建操作系统

4.扩展虚拟机LVMlv root分区空间

5.根据上一个实例,现有另一个问题,如果data分区是分布在两个物理卷PV,如何扩充此分区呢?

6.虚拟机快照及PV数据迁移

7.LVM虚拟机克隆

实验1.略

实验2.使用Lv安装操作系统

[实验环境:宿主机使用的是lvm存储,guest使用lvm分区]

此一句话带过吧,太简单了,用lvcreate –L 20G –n web01-lvm vg_lvm,便可创建一个逻辑卷.

这时我们便可以用此卷安装操作系统了.

1
virt- install --connect qemu: ///system--name  web01_lvm-- ram  1024--vcpus=1 --disk= /dev/vg_lvm/web01-lvm  --network bridge:br0 --accelerate--cdrom  /iso/CentOS-6 .3-x86_64-bin-DVD1.iso --vnc --vncport=5902 --vnclisten=0.0.0.0

这样我们就可以通过mRemote工具到这台guest上安装虚拟机了.

如果你使用的是kickstart安装,还可以借助下面的命令来自动化安装

1
virt- install  --name cache1 --vcpus=8 -- ram  6144 --pxe --network bridge=br0 --network bridge=br1 --disk= /dev/vg_lvs2/vm-cache1  --vnc --vncport 5902 --vnclisten=0.0.0.0 --noautoconsole

 
仅供参考!


实验3. 使用Lv快照创建操作系统

[实验环境:宿主机使用的是lvm存储,guest使用lvm分区]

在实验2处,我们已经通过宿主机的一个逻辑卷安装了guest,在此,我想通过LVM的快照技术,生成一个快照卷,用此卷来生成一个全新的系统,因其创建快,用与培训机构供学生作为练习机,还是很不错的。往下走。


先看一下这个虚拟机是多大的,到时候我们可以根据此大小增长15%-20%,此部分用来存放原主机被修改的部分.


执行如下命令:

[root@lvm ~]# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

os_imgvg_lvm -wi-ao-- 147.66g

web01-lvmvg_lvm -wi-a---20.00g

web01_lvm_disk1 vg_lvm -wi-a---10.00g

web01_lvm_disk2 vg_lvm -wi-a---10.00g

web01_lvm_disk3 vg_lvm -wi-a---30.00g

[root@lvm ~]# lvcreate -s -L 4G -n  web01-lvm-snap /dev/vg_lvm/web01-lvm

Logical volume "web01-lvm-snap"  created

此时,我们便可以用web01-lvm-snap作为启动虚拟机的镜像文件了。切记,我们能使用的空间只有4G,我们创建了一个可以存储4G文件大小的空间.在这我就不深入了。

wKioL1MLB8nTwnhdAAC9ilx1eBo551.jpg

wKiom1MLCAuA1PxyAADNZWCEqFo347.jpg



以上,是通过virt-manager工具创建的快照虚拟机,下面在命令行上再创建一次;

[root@lvm ~]# lvcreate -s -L 4G  -n web01-lvm-snap /dev/vg_lvm/web01-lvm

Logical volume "web01-lvm-snap" created

导出web01_lvm虚拟机的配置信息,并修改4处信息

virsh dumpxml web01-lvm  >/etc/libvirt/qemu/web01_lvm_snap.xml
 UUID
生成:

[root@lvm ~]# uuidgen

678fda12-51ca-4b97-aab7-f0bcdf560b33

MAC生成:

[root@lvm qemu]# python -c  "from virtinst.util import randomMAC;print randomMAC(type='qemu')"

52:54:00:8d:be:fc


[root@lvm ~]# more  /etc/libvirt/qemu/web01_lvm_snap.xml

<domain type='kvm'>

<name>web01-lvm-snap</name>

<uuid>678fda12-51ca-4b97-aab7-f0bcdf560b33</uuid>

<memory unit='KiB'>1048576</memory>

<currentMemory unit='KiB'>1048576</currentMemory>

<vcpu placement='static'>1</vcpu>

<os>

<type arch='x86_64'  machine='rhel6.3.0'>hvm</type>

<boot dev='hd'/>

</os>

<features>

<acpi/>

<apic/>

<pae/>

</features>

<clock offset='utc'/>

<on_poweroff>destroy</on_poweroff>

<on_reboot>restart</on_reboot>

<on_crash>restart</on_crash>

<devices>

<emulator>/usr/libexec/qemu-kvm</emulator>

<disk type='block' device='disk'>

<driver name='qemu' type='raw'  cache='none' io='native'/>

<source dev='/dev/vg_lvm/web01-lvm-snap'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0'  bus='0' target='0' unit='0'/>

</disk>

<disk type='block' device='cdrom'>

<driver name='qemu' type='raw'/>

<target dev='hdc' bus='ide'/>

<readonly/>

<address type='drive' controller='0'  bus='1' target='0' unit='0'/>

</disk>

<controller type='usb' index='0'>

<address type='pci' domain='0x0000'  bus='0x00' slot='0x01' function='0x2'/>

</controller>

<controller type='ide' index='0'>

<address type='pci' domain='0x0000'  bus='0x00' slot='0x01' function='0x1'/>

</controller>

<interface type='bridge'>

<mac address='52:54:00:8d:be:fc'/>

<source bridge='br0'/>

<address type='pci' domain='0x0000'  bus='0x00' slot='0x03' function='0x0'/>

</interface>

<serial type='pty'>

<target port='0'/>

</serial>

<console type='pty'>

<target type='serial' port='0'/>

</console>

<input type='mouse' bus='ps2'/>

<graphics type='vnc' port='5902'  autoport='no' listen='0.0.0.0'>

<listen type='address'  address='0.0.0.0'/>

</graphics>

<video>

<model type='cirrus' vram='9216'  heads='1'/>

<address type='pci' domain='0x0000'  bus='0x00' slot='0x02' function='0x0'/>

</video>

<memballoon model='virtio'>

<address type='pci' domain='0x0000'  bus='0x00' slot='0x04' function='0x0'/>

</memballoon>

</devices>

</domain>

生成快照虚拟机
 [root@lvm ~]# virsh define /etc/libvirt/qemu/web01_lvm_snap.xml

Domain web01_lvm_snap defined  from /etc/libvirt/qemu/web01_lvm_snap.xml


启动快照虚拟机

[root@lvm ~]# virsh start  web01_lvm_snap

Domain web01_lvm_snap started


虚拟机创建了,这时我们就可以将此虚拟机交付与他人了,即使破坏了,我们也不用担心,再创建一个快照便可了.


实验4.扩容虚拟机LVMlv root分区空间

[实验环境:宿主机使用的是lvm存储,guest使用lvm分区]

好了, 现在让我们看看怎么使用virt-resize来调整大小.

首先让我们看下虚拟机卷组的相关信息:

guest# vgs

VG#PV #LV #SN AttrVSize VFree

vg_lvm130 wz--n- 9.90g 0

逻辑卷相关信息:

guest# lvs

LVVGAttrLSize Pool Origin  Data%Move Log Copy%Convert

data vg_lvm -wi-ao-- 2.04g

root vg_lvm -wi-ao-- 5.86g

swap vg_lvm -wi-ao-- 2.00g

现在关闭虚拟机

host# virsh shutdown web01-lvm
 Domain web01-lvm is being shutdown


在使用resize命令前,先看下此虚拟机镜像文件的大小和类型.

host# qemu-img info /dev/vg_lvm/web01-lvm

image: /dev/vg_lvm/web01-lvm

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 0


我们将要重命令/dev/vg_lvm/web01-lvm逻辑卷并且最后创建一个新的大小的卷。现在这个虚拟镜像是10G,现在我们要将其扩充到20G。现在让我们用lvrename命令来改名,并且用lvcreate创建一个20G的镜像磁盘。

host# lvrename vg_lvm web01-lvm web01-lvm-OLD

Renamed "web01-lvm" to  "web01-lvm-OLD" in volume group "vg_lvm"

[root@lvm ~]# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

os_imgvg_lvm -wi-ao-- 147.66g

web01-lvm-OLDvg_lvm -wi-a---10.00g

web01_lvm_disk1 vg_lvm  -wi-ao--10.00g

web01_lvm_disk2 vg_lvm  -wi-ao--10.00g

再创建一个20G的web01-lvm
 host# lvcreate -L 20G -n web01-lvm vg_lvm

Logical volume  "web01-lvm" created

host# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

os_imgvg_lvm -wi-ao-- 147.66g

web01-lvmvg_lvm -wi-a---20.00g

web01-lvm-OLDvg_lvm -wi-a---10.00g

web01_lvm_disk1 vg_lvm  -wi-ao--10.00g

web01_lvm_disk2 vg_lvm  -wi-ao--10.00g


现在我们可以执行下面的命令来扩充root分区的空间了

host# virt-resize /dev/vg_lvm/web01-lvm-OLD/dev/vg_lvm/web01-lvm --expand /dev/vda2  --LV-expand /dev/vg_lvm/root

Examining /dev/vg_lvm/web01-lvm-OLD ...

**********

Summary of changes:

/dev/sda1: This partition will be left alone.

/dev/sda2: This partition will be resized from 9.9G to 19.9G.The LVM

PV on /dev/sda2 will be  expanded using the 'pvresize' method.


/dev/vg_lvm/root: This logical volume will be expanded to maximum size.

The filesystem ext4 on  /dev/vg_lvm/root will be expanded using the

'resize2fs' method.

**********

Setting up initial partition table on /dev/vg_lvm/web01-lvm ...

Copying /dev/sda1 ...

Copying /dev/sda2 ...

省略进度….

Expanding /dev/sda2 using the 'pvresize' method ...

Expanding /dev/vg_lvm/root using the 'resize2fs' method ...


Resize operation completed with no errors.Before deleting the  old

disk, carefully check that the resized disk boots and  works correctly.

*注意上面标红的那句.在删除老文件前,请确认虚拟机可以正常启动和工作。*


注意/dev/vda2是vg_lvm的物理卷,也就是你需要扩容的虚拟机root分区所在的物理卷.如图:

wKiom1MLCKOgVT0jAAB9VSos5jU824.jpg
这个命令执行完后,将会使vg_lvm卷增大20G,root分区也会增加近10G.以下是检查部分,启动虚拟机.

guest# vgs

VG#PV #LV #SN AttrVSizeVFree

vg_lvm130 wz--n- 19.90g0

guest# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

data vg_lvm -wi-ao--2.04g

root vg_lvm -wi-ao-- 15.86g

swap vg_lvm -wi-ao--2.00g

我们再来看看这台虚拟机磁盘镜像是多大吧.

host# qemu-img info /dev/vg_lvm/web01-lvm

image: /dev/vg_lvm/web01-lvm

file format: raw

virtual size: 20G (21474836480 bytes)

disk size: 0

OK,此部分实验目标达成,已经成功为虚拟机root分区追加10G的空间.

现在我们可以使用lvremove删除掉原来老的镜像了.

host# lvremove /dev/vg_lvm/web01-lvm-OLD

Do you really want to remove active logical volume web01-lvm-OLD? [y/n]:  y

Logical volume  "web01-lvm-OLD" successfully removed

host# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

os_imgvg_lvm -wi-ao-- 147.66g

web01-lvmvg_lvm -wi-ao--20.00g

web01_lvm_disk1 vg_lvm  -wi-ao--10.00g

web01_lvm_disk2 vg_lvm  -wi-ao--10.00g

现在我们想一下,如果我要扩充的分区,占据了两个物理卷,那么这个—expand如何指定?继续下面的实验.


案验5,lvm分区中data分区占据两个pv,如何扩充此分区
[
实验环境:宿主机使用的是lvm存储,guest使用lvm分区]

wKiom1MLCMnyPlVpAAC4czMiNMc287.jpg

data分区应该分布在vdavdb之间,一开始按照实验4操作,发现此路不通,与是乎突然想到guest不是用lvm吗?那我何不扩充vg的空间,再将vg的省余空间填充给我们要扩充的逻辑分区呢?根据我的实验环境,简单讲下操作流程:

(1)如果宿主没有空间,我们添加一块物理磁盘,转换在pv,命令fdisk,pvcreate

(2)在宿主主机上添加一块10G逻辑卷lv,命令lvcreate

(3)将此逻辑卷挂载到guest主机上,再pv

添加磁盘
virsh attach-disk --domain web02-lvm --source /dev/vg_lvm/web01_lvm_disk2  --target vdb –persistent
删除磁盘
 virsh detach-disk --domain web02-lvm --target vdb –persistent


注意此命令可以支持在线添加/删除(如果没有persistent参数,后期关机,再开机还会再有)


可以通过domblklist 查看guest主机的块设备

[root@lvm ~]#  virsh domblklist web02-lvm

TargetSource

------------------------------------------------

vda/dev/vg_lvm/web01_lvm_disk1

vdb/dev/vg_lvm/web01_lvm_disk2


(4)pv的物理卷添加到卷组(如果你想将某一物理卷从卷组中移除,你可以考略使用pvmove命令将数据移走,此物理卷便可移除了,这是pv迁移技术,请看实验6,命令vgextend

(5)这时我们的vgsize就增大了,这时我们再用lvresize扩充data分区喽,命令lvresize

(6)再通过resize2fs命令,便可以增加data分区了。

呵呵,如果guest使用的不是lvm技术,那么我们只能使用virt-resize来扩充分区空间了,这个我也会再写篇实验来说明.

最终结果(与上图比较,我的data分区增加了10G)

guest# df -h

FilesystemSizeUsed Avail Use% Mounted on

/dev/mapper/vg_lvm-root

4.9G1.8G2.9G38% /

tmpfs499M0499M0% /dev/shm

/dev/vda197M28M65M30% /boot

/dev/mapper/vg_lvm-data

23G 164M22G1% /data

其实,我们实验4也可以采用实验5的技术来做的,发现了没?



实验6.虚拟机快照及PV数据迁移

[实验环境:宿主机使用的是lvm存储,guest使用lvm分区]

今天我们要做的实验是虚拟机快照,这里的虚拟机快照采用的是LVM的快照技术.

闲话不多说,开始实验:

先看下主机逻辑卷信息(我们的guest使用的就是主机的逻辑卷)

host# lvs

LVVGAttrLSizePool Origin Data%Move Log Copy%Convert

os_imgvg_lvm -wi-ao--  147.66g

web01-lvmvg_lvm  -wi-ao--20.00g

web01_lvm_disk1 vg_lvm -wi-a---10.00g

web01_lvm_disk2 vg_lvm -wi-a---10.00g

web01_lvm_disk3 vg_lvm -wi-a---30.00g

标红的卷就是guest web01-lvm的镜像文件,我们现在要对此逻辑卷做一个卷快照,后期我们将对web01-lvm做安装一个telnet软件的操作,后期将用此快照做恢复操作.

host# virsh shutdown web01-lvm

Domain web01-lvm is being shutdown


 host# lvcreate -s -n web01-lvm-snap -L 4G /dev/vg_lvm/web01-lvm

Logical volume "web01-lvm-snap" created

 host# lvdisplay

………  

--- Logical volume ---

LV Path/dev/vg_lvm/web01-lvm

LV Nameweb01-lvm

VG Namevg_lvm

LV UUIDMVF7pH-SLBs-4dGH-ftAt-XWr3-JK5R-GCyB6t

LV Write Accessread/write

LV Creation host, time lvm.tx.com, 2011-11-14 22:11:40 +0800

LV snapshot statussource of

web01-lvm-snap  [active]

LV Statusavailable

#  open1

LV Size20.00 GiB

Current LE5120

Segments1

Allocationinherit

Read ahead sectorsauto

-  currently set to256

Block device253:4

--- Logical volume ---

LV Path/dev/vg_lvm/web01-lvm-snap

LV Nameweb01-lvm-snap

VG Namevg_lvm

LV UUIDnO8s7l-utBH-gdS2-zBOe-MTpS-SoHP-fRILYu

LV Write Accessread/write

LV Creation host, time lvm.tx.com, 2011-11-16 00:49:09 +0800

LV snapshot statusactive  destination for web01-lvm

LV Statusavailable

#  open0

LV Size20.00 GiB

Current LE5120

COW-table size4.00 GiB

COW-table LE1024

Allocated to snapshot0.00%

Snapshot chunk size4.00 KiB

Segments1

Allocationinherit

Read ahead sectorsauto

-  currently set to256

Block device253:1
 ………


我们到guest上装个telnet软件

host# virsh start web01-lvm

Domain web01-lvm started


 guest# yum -y install telnet
 ………

guest# telnet www.baidu.com 80

Trying 115.239.210.26...

Connected to www.baidu.com.

Escape character is '^]'.


关闭虚拟机/恢复测试

host# virsh shutdown web01-lvm

Domain web01-lvm is being shutdown


host# lvconvert --merge  /dev/vg_lvm/web01-lvm-snap

Merging of volume web01-lvm-snap started.

web01-lvm: Merged: 1.1%

web01-lvm: Merged: 0.0%

Merge of snapshot into logical volume web01-lvm has finished.

Logical volume  "web01-lvm-snap" successfully removed

从以上可以看出恢复成功且逻辑卷快照web01-lvm-snap成功删除了


开启虚拟机检查

host# virsh start web01-lvm

Domain web01-lvm started


guest# telnet

-bash: telnet: command not found


注意:创建快照不需要关闭guest,快照恢复需要关闭guest.切记,切记



本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/1362827,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 缓存 Linux
百度搜索:蓝易云【如何在Linux系统服务器中测试存储/磁盘I/O性能?】
这些工具可以帮助你测试磁盘的读取和写入性能,并提供各种性能指标和统计数据。请注意,在运行这些测试时,确保没有重要的数据存储在被测试的磁盘上,并谨慎操作以避免对系统和数据造成不必要的影响。
88 0
|
1月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
36 3
|
4月前
|
存储 测试技术 Linux
存储稳定性测试与数据一致性校验工具和系统
LBA tools are very useful for testing Storage stability and verifying DATA consistency, there are much better than FIO & vdbench's verifying functions.
921 0
|
10月前
|
存储 人工智能 Cloud Native
高性能存储SIG月度动态:io_uring支持nvme直通,DSMS完成开发测试
Cloud Kernel SIG 月度动态送达,一键了解 5 月各项目进展。
|
Linux KVM 虚拟化
CentOS 7.2 运行 KVM测试
CentOS 7.2 运行 KVM测试
642 0
CentOS 7.2 运行 KVM测试
|
存储 Linux KVM
云主机装黑果实践(2):在deepin kvm下测试mbr方式安装的黑果10.15最新版
本文关键字:QEMU 免kernel firmware运行黑osx,把enoch做进iso normal boot,建立10.15 enoch懒人安装包
354 0
云主机装黑果实践(2):在deepin kvm下测试mbr方式安装的黑果10.15最新版
|
存储 SQL 文字识别
虚拟机模拟部署Extended Clusters(四)故障模拟测试,存储链路恢复
asm 磁盘组 当链路恢复之后,磁盘状态显示MISSING(CRS_0000,OCR_0000)。 [grid@prod02 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.
4822 0
|
存储 文字识别 Oracle
虚拟机模拟部署Extended Clusters(三)故障模拟测试,存储链路断开
集群状态: [root@prod02 ~]# crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET ST.
1509 0

热门文章

最新文章