前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教程:LVM操作讲解

教程:LVM操作讲解

作者头像
锅总
发布2024-06-12 15:38:56
890
发布2024-06-12 15:38:56
举报
文章被收录于专栏:锅总锅总

简介

在系统运维过程中,对磁盘扩缩容是常见的操作。如何高效的管理磁盘容量,lvm提供了很好的解决方案。

LVM将磁盘抽象成PV、VG、LV,方便用户进行磁盘管理,简单来讲,是由物理磁盘划分成PV,PV加入到具体的VG,LV从VG中划分指定容量的空间,再经挂载操作、格式化为具体的文件系统后供进程使用。

本文通过样例讲解数据盘扩缩容。

下图描述了lvm组件之间的关系

样例环境

  • 添加挂载两块容量为5G scsi的硬盘
  • 执行 lsblk 命令,显示sdb、sdc各5g,说明添加成功

如果是开机情况下挂载的,由于业务需要不方便关机的话,需要执行磁盘扫描命令

执行如下命令即可在线扫描磁盘

  1. echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0/scan
  2. lsblk #查看是否扫描出来

执行 echo"- - -">/sys/class/scsi_host/host0/scan 效果一样的,该路径软链接到了 /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0

  1. [root@gentlewok ~]# ll /sys/class/scsi_host/host0
  2. lrwxrwxrwx. 1 root root 0 Jun 4 09:29 /sys/class/scsi_host/host0 -> ../../devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0

当前lvm信息

  • pvs显示有哪些pv
  1. [root@gentlewok ~]# pvs
  2. PV VG Fmt Attr PSize PFree
  3. /dev/sda2 rl lvm2 a-- <19.00g 0
  • vgs显示有哪些vg
  1. [root@gentlewok ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. rl 1 2 0 wz--n- <19.00g 0
  • lvs显示有哪些lv
  1. [root@gentlewok ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  3. root rl -wi-ao---- <17.00g
  4. swap rl -wi-ao---- 2.00g
  • df -h 查看下当前容量

磁盘扩容

系统盘扩容

  • pvcreate创建一个pv
  1. [root@gentlewok ~]# lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
  3. sda 8:0 0 20G 0 disk
  4. ├─sda1 8:1 0 1G 0 part /boot
  5. └─sda2 8:2 0 19G 0 part
  6. ├─rl-root 253:0 0 17G 0 lvm /
  7. └─rl-swap 253:1 0 2G 0 lvm [SWAP]
  8. sdb 8:16 0 5G 0 disk
  9. sdc 8:32 0 5G 0 disk
  10. sr0 11:0 1 1.7G 0 rom
  11. [root@gentlewok ~]# pvcreate /dev/sdb
  12. Physical volume "/dev/sdb" successfully created.
  13. [root@gentlewok ~]#
  • 将pv加入到vg
  1. [root@gentlewok ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. rl 1 2 0 wz--n- <19.00g 0
  4. [root@gentlewok ~]# vgextend rl /dev/sdb
  5. Volume group "rl" successfully extended
  6. [root@gentlewok ~]# vgs
  7. VG #PV #LV #SN Attr VSize VFree
  8. rl 2 2 0 wz--n- 23.99g <5.00g
  • 将vg新加的5g加到 lv 上
  1. [root@gentlewok ~]# lvs
  2. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  3. root rl -wi-ao---- <17.00g
  4. swap rl -wi-ao---- 2.00g
  5. [root@gentlewok ~]# lvextend -l +100%FREE /dev/rl/root
  6. Size of logical volume rl/root changed from <17.00 GiB (4351 extents) to 21.99 GiB (5630 extents).
  7. Logical volume rl/root successfully resized.
  8. [root@gentlewok ~]# lvs
  9. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  10. root rl -wi-ao---- 21.99g
  11. swap rl -wi-ao---- 2.00g
  • 扩展文件系统 先执行 df-Th 确定文件系统
  1. # xfs文件系统使用该命令使扩容生效
  2. xfs_growfs /dev/mapper/vg-lv
  3. # ext文件系统使用该命令使扩容生效
  4. resize2fs /dev/mapper/vg-lv

数据盘扩容

创建data目录 mkdir-p/data

扩容前lvm信息

创建pv

创建数据盘vg并将刚创建的pv加入到vg

  1. vgcreate vg pv

创建数据盘lv并将刚创建的vg所有容量加入到 lv

  1. lvcreate -l +100%FREE --name lv vg

挂载到 /data 目录下

设置开机自动挂载

代码语言:javascript
复制
echo "/dev/mapper/vg--data-lv--data     /data xfs     defaults   0 0" >> /etc/fstab

磁盘缩容

对于扩容来讲,操作正确的情况下,业务是无感知的。对于磁盘缩容,本身的逻辑比较简单,只是缩容会影响到应用的数据读取,实际缩容方案需要综合评估。涉及应用层的变更可简单可复杂,本文不讨论。

本文作为技术点讲解假设应用可以停的情况下,该如何操作?下面为大概步骤

注意:生产环境所有变更应做好备份后操作

  • 停应用;应用数据目录假设为 /data
  • 新挂载磁盘,创建新挂载点 /data-copy
  • 创建新的 pv、vg、lv
  • 新的lv挂载到 /data-copy
  • 复制迁移的数据到/data-copy ; cp-a xx/data-copy
  • 卸载 /data ; umount/data
  • 卸载 /data-copy ; umount/data-copy
  • 挂载新 lv/datamount 新lv /data
  • 起应用

就这样!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 锅总 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 样例环境
    • 当前lvm信息
    • 磁盘扩容
      • 系统盘扩容
        • 数据盘扩容
        • 磁盘缩容
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档