前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos中动态扩容lvm逻辑卷的操作记录

Centos中动态扩容lvm逻辑卷的操作记录

作者头像
洗尽了浮华
发布2018-01-22 16:33:09
1.8K0
发布2018-01-22 16:33:09
举报
文章被收录于专栏:散尽浮华散尽浮华

LVM概念: -------------------------------------------------------------------------------------------------------------------------------------------------------- 它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。它的结构如下图所示:

几个概念解释 -------------------------------------------------------------------------------------------------------------------------------------------------------- PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。它只是在物理分区中划出了一个特殊的区域,用于记载与LVM相关的管理参数。 VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。 LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。 PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。 LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了逻辑卷的最大容量,4 MB(默认) 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2 的倍数。

接下来,举出几个实例说明一下: ------------------------------------------------------------------------------------------------------------------------------------------------------- 1.准备物理分区(Physical Partions) 首先,我们需要选择用于 LVM 的物理存储器。这些通常是标准分区,但也可以是已创建的 Linux Software RAID 卷。这里我利用fdisk命令,将sdb、sdc两块磁盘分了两个区sdb1、sdc1, 通过fdisk的t指令指定分区为8e类型(Linux LVM) ,如下图:

2.创建物理卷PV(Physical Volumes) [root@cfbdb5 oracle]#pvcreate /dev/sdb1           //如果没有pvcreate、vgcreate等lvm命令,可以使用yum install -y lvm2进行安装 Physical volume "/dev/sdb1" successfully created [root@cfbdb5 oracle]# pvcreate /dev/sdc1           //可以直接使用pcvreate /dev/{sdb1,sdc1} Physical volume "/dev/sdc1" successfully created

3.创建卷组VG(Volume Groups),命名为vg_test [root@cfbdb5 ~]#vgcreate vg_test /dev/sdb1 Volume group "vg_test" successfully created 使用卷组查看命令vgdisplay显示卷组情况: [root@cfbdb5 oracle]# vgdisplay --- Volume group --- VG Name vg_test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.99 GB PE Size 4.00 MB Total PE 5118 Alloc PE / Size 2560 / 10.00 GB Free PE / Size 2558 / 9.99 GB VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc

4.创建逻辑卷LV(Logical Volumes) ,命名为test_lv 创建逻辑卷的命令为lvcreate,-l 参数为定PE数来设定逻辑分区大小,也可以使用-L参数直接指定逻辑分区大小,-n参数指定逻辑分区名称。 [root@cfbdb5 oracle]# lvcreate -l 2000 -n lv_test vg_test Logical volume "lv_test" created 也可以使用-L参数 [root@cfbdb5 oracle]# lvcreate -L 10G -n lv_test vg_test Rounding up size to full physical extent 19.99 GB Logical volume "lv_test" created 使用lvdisplay命令查看逻辑卷情况: [root@cfbdb5 oracle]#lvdisplay --- Logical volume --- LV Name /dev/vg_test/lv_test VG Name vg_test LV UUID kgUoMy-W1qG-7tAQ-dI5j-Z2KO-a8Td-mXAFbc LV Write Access read/write LV Status available # open 0 LV Size 19.99 GB Current LE 5118 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2

5.创建文件系统,并挂载 在逻辑卷上创建ext3文件系统: [root@cfbdb5 oracle]#mkfs -t ext3 /dev/vg_test/lv_test             //可以直接使用mkfs.ext3或mkfs.ext4进行格式化,ext3或ext4是文件格式 [root@cfbdb5 oracle]#mount /dev/vg_test/lv_test /opt/oracle/ [root@cfbdb5 oracle]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 16G 4.7G 11G 32% / /dev/sda1 99M 27M 67M 29% /boot tmpfs 872M 0 872M 0% /dev/shm /dev/mapper/vg_test-lv_test 9.9G 151M 9.2G 2% /opt/oracle

LVM的最大好处就是可以动态地调整分区大小,而无须重新启动机器,下面让我们来体验一下吧! 继续上面的实例,现假设逻辑卷/dev/vg_test/lv_test空间不足,需要增加其大小,我们分两种情况讨论: --------------------------------------------------------------------------------------------------------- 1)卷组中有剩余的空间 通过vgdisplay命令可以检查当前卷组空间使用情况:

[root@cfbdb5 oracle]# vgdisplay --- Volume group --- VG Name vg_test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.99 GB PE Size 4.00 MB Total PE 5118 Alloc PE / Size 2560 / 10.00 GB Free PE / Size 2558 / 9.99 GB VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc 确定当前卷组剩余空间9.99GB,剩余PE数量为2558个。在这里将所有的剩余空间全部增加给逻辑卷 /dev/vg_test/lv_test。 [root@cfbdb5 oracle]# lvextend -l +2558 /dev/vg_test/lv_test //或者lvextend -L +9.99G /dev/vg_test/lv_test   Extending logical volume lv_test to 19.99 GB Logical volume lv_test successfully resized 也可以通过-L直接指定大小,通过 +/- 来 增加/减小 空间。 修改逻辑卷大小后,通过resize2fs来修改文件系统的大小。 [root@cfbdb5 oracle]#resize2fs /dev/vg_test/lv_test resize2fs 1.39 (29-May-2006) Filesystem at /dev/vg_test/lv_test is mounted on /opt/oracle; on-line resizing required Performing an on-line resize of /dev/vg_test/lv_test to 5240832 (4k) blocks. The filesystem on /dev/vg_test/lv_test is now 5240832 blocks long. 再次查看文件系统的大小: [root@cfbdb5 oracle]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 16G 4.7G 11G 32% / /dev/sda1 99M 27M 67M 29% /boot tmpfs 872M 0 872M 0% /dev/shm /dev/mapper/vg_test-lv_test 20G 156M 19G 1% /opt/oracle

2)卷组中空间不足   当卷组中没有足够的空间用于扩展逻辑卷的大小时,就需要增加卷组的容量,而增加卷组容量的惟一办法就是向卷组中添加新的物理卷。   首先需要对新增加的磁盘进行分区、创建物理卷等工作。),接下来是利用vgextend命令将新的物理卷加入到卷组中, 我们这里使用/dev/sdc1。 [root@cfbdb5 oracle]#vgextend vg_test /dev/sdc1 Volume group "vg_test" successfully extended [root@cfbdb5 oracle]# vgdisplay --- Volume group --- VG Name vg_test System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 59.98 GB PE Size 4.00 MB Total PE 15356 Alloc PE / Size 5118 / 19.99 GB Free PE / Size 10238 / 39.99 GB VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc

完成卷组的扩容后,就可以按照第一种情况的方法完成逻辑卷的扩容,最终实现分区的动态调整。如: [root@cfbdb5 oracle]# lvextend -L +39G /dev/vg_test/lv_test [root@cfbdb5 oracle]# resize2fs /dev/vg_test/lv_test 如果报错: ...... resize2fs: Bad magic number in super-block while trying to open /dev/vg_test/lv_test Couldn't find valid filesystem superblock.

可以尝试用xfs命令 [root@docker-server ~]# xfs_growfs /dev/vg_test/lv_test

LVM的扩容需求操作也可以参考这篇文档(文档中间有这个操作记录):http://www.cnblogs.com/kevingrace/p/5822928.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-09-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档