Loading... <ul class=" list-paddingleft-2"> <li> <p><span style="font-size: 18px">相关概念</span></p> </li> </ul> <p> lvm英文 Logical Volume Manager,逻辑卷管理类似于raid,但又有别于raid, 它是能够将一个或多个底层块设</p> <p> 备组织成一个逻辑设备的模块不具备容错功能,任一设备损坏或分区损坏,对数据是致命的;它主要有三个部分</p> <p> 组成,分别是pv,vg和lv。</p> <p> PV:Physical Volume物理卷,组成LVM的最底层的元素,也可理解为物理分区,但构建lvm不能直接使用 Linux物理分区,得先将物理分区期转化为最小单位pv,使用pv管理工具pvcreate /dev/DEVICE</p> <p> VG:<span style="line-height: 1.5">Volume Group</span><span style="line-height: 1.5">卷组,将每个独立的PV组合起来形成的一个存储空间就称为VG,在一个VG空间中可以构</span></p> <p><span style="line-height: 1.5"> 建</span><span style="line-height: 1.5">多个逻辑卷,即LV,创建VG使用</span><span style="line-height: 1.5">vgcreate [- </span></p> <p><span style="line-height: 1.5"> s </span><span style="line-height: 1.5">[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]</span><span style="line-height: 1.5"></span></p> <p><span style="line-height: 1.5"> LV:</span>Logical Volume逻辑卷,在VG的存储空间中取一段空间用来构建LV,它的空间依赖是VG,也就是说如</p> <p> 果要扩展LV,首先是得保证VG的物理卷组是不是有足够的空间。创建完成之后这个LV便可以使用,可</p> <p> 以创建文件系统,可以挂载,直接当一个普通分区来使用,命令 lvcreate -L #[mMgGtT] –</p> <p> n NAME VolumeGroup</p> <p> PE:Physical Extent物理扩展块,基于物理卷组是LVM的最小存储单位,默认为4M,在创建VG的时候</p> <p> VGCREATE -s是指定设置单个PE的存储单位为多大</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-98.png" title="1453701121361409.png" alt="blob.png" /></p> <ul class=" list-paddingleft-2"> <li> <p><span style="font-size: 18px">创建LVM</span></p> </li> </ul> <p><span style="font-size: 18px"> </span>1.第一步首先创建PV,必须要有空闲的分区,如没有,则相应的创建,如图,我在我自己的机器上创建了2个类型为LVM的分区,/dev/sda5和/dev/sda6 </p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-54.png" title="1453703133475504.png" alt="blob.png" /></p> <p> 2.在分区的基础上创建PV,命令:pvcreate /dev/sdc{5,6}</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-83.png" title="1453704063967666.png" alt="blob.png" /></p> <p> 3.创建VG,将创建的PV组合成一个物理卷组,在这里可以指定最小单位块的大小,也就是PE的大小,例如创建一个PE大小为8Mb的VG。命令:vgcreate -s 8M vgname /dev/sdc{5,6},使用vgs可以简略的显示创建vg的情况,使用vgdisplay可以详细显示</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-50.png" title="1453705037926180.png" alt="blob.png" /></p> <p> 4,创建LV,在步骤3中,我总共创建的VG物理卷组的大小是20G,因此,我构建逻辑卷的空间范围只有20G,可以在20G的范围内创建多个LV,例如我再创建2个LV分别是18G和2G,使用命令:lvcreate -L 18G -n lvname1 /dev/vgname 和lvcreate -L 2G -n lvname2 /dev/vgname,如下图,可以看到当我创建完一个18G的lv之后再创建12G的明显空间不够了</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-1.png" title="1453705813621454.png" alt="blob.png" /></p> <p> 5.一个完整的逻辑分区已经创建完成了,为了能正常使用,还必须给这个逻辑分区创建文件系统,然后挂载,我以18G的lvname1为例,使用命令:mke2fs -t ext4 /dev/vgname/lvname1 ,以及挂载且重启自动挂载,在/etc/fstab上添加规则,然后mount -a自动挂载/etc/fstab中的项,至此,一个完整的LVM搭建完成</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-70.png" title="1453706192707142.png" alt="blob.png" /></p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-52.png" title="1453706515241977.png" alt="blob.png" /></p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161313-82.png" title="1453706696340882.png" alt="blob.png" /></p> <ul class=" list-paddingleft-2"> <li> <p><span style="font-size: 18px">扩展LVM</span></p> </li> </ul> <p> 之前创建lv的时候,空间我已经使用完了,因此如果要扩展LVM则需先删掉之前创建的lvname2,使用命令:</p> <p> lvremove /dev/vgname/lvname2,然后拓展lvextend -L +2G /dev/vgname/lvname1,虽然此时的逻辑卷的空间已</p> <p> 经增加了,但是文件系统认到的空间系统还是之前的8G,因此文件系统也相应的要更新resizefs </p> <p> /dev/vgname/lvname 1</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-80.png" title="1453711756298483.png" alt="blob.png" /></p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-43.png" title="1453712033149047.png" alt="blob.png" /></p> <ul class=" list-paddingleft-2"> <li> <p><span style="font-size: 18px">缩减KVM</span></p> <p><span style="font-size: 18px"></span></p> </li> </ul> <p> 缩减KVM主要分四步,1卸载装载在lv上的文件系统,2强制检查修复文件系统,3调整文件系统边界,4缩减LV,5</p> <p> 重新挂载,下面我就来演示一下</p> <p> 1.卸载文件系统:命令 umount /dev/vgname/lvname1</p> <p> 2.强制检查修复文件系统 命令:e2fsck -f /dev/vgname/lvname1</p> <p> 3.调整文件系统边界 命令:resize2fs /dev/vgname/lvname1 18G</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-92.png" title="1453714961483333.png" alt="blob.png" /></p> <p> 4.缩减LV 命令:lvreduce -L -2G /dev/vgname/lvname1</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-26.png" title="1453715105592986.png" alt="blob.png" /></p> <p> 5.重新挂载 mount -a</p> <ul class=" list-paddingleft-2"> <li> <p><span style="font-size: 18px">快照</span></p> <p><span style="font-size: 18px"></span></p> </li> </ul> <p> 基于将已经创建好的LVM并且已经正常使用的文件系统的数据做一次快照,重新挂载到另外的文件夹中用于备份</p> <p> 及查看。命令:lvcreat -L +1G -p r -s -n lvname_snap /dev/vgname/lvname1</p> <p> 1.首先查看原挂载到/users的lvm文件系统都有哪些文件然后据此作快照</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-29.png" title="1453716269359206.png" alt="blob.png" /></p> <p> 2.创建快照并挂载到/mnt,然后可以看到/mnt文件夹中所有的内容便是快照发生的此刻原lvname1文件系统中的文件,如果再后面继续往lvname1中修改增加文件,快照文件夹/mnt是不变的</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703161314-70.png" title="1453716837526795.png" alt="blob.png" /></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信