Linux 温习(六): LVM 磁盘(二)

简介: 逻辑卷管理器(Logical volume Manager)是 Linux 系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而 LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分区的动态调整。

动态扩容

逻辑卷动态扩容

逻辑卷最大的优点是可以弹性调节容量,逻辑卷存储空间不足时,就需要扩容。

若逻辑卷需要扩容,首先查看其所属的卷组,例如,lv1属于datavg卷组;再查看卷组空间空闲量,datavg卷组可用量为 10.12g。

> vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <39.00g   4.00m
  datavg   1   2   0 wz--n- <20.00g <10.12g


在确认有多余空间的情况下,使用 lvextend 命令的 -L 选项扩展逻辑卷LV的大小(命令 - 为缩容,+ 为扩容)

> lvextend -L +800M /dev/datavg/lv1
  Size of logical volume datavg/lv1 changed from 900.00 MiB (225 extents) to 1.66 GiB (425 extents).
  Logical volume datavg/lv1 successfully resized.
> lvextend -L +1024M /dev/datavg/lv1
  Size of logical volume datavg/lv1 changed from 1.66 GiB (425 extents) to 2.66 GiB (681 extents).
  Logical volume datavg/lv1 successfully resized.


查看大小

> lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <35.12g                                                 
  swap centos -wi-ao----  <3.88g                                                 
  lv1  datavg -wi-ao----   2.66g


通过 df -h 查看发现并没有增大

> df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G   16K  1.9G    1% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   36G  9.4G   26G   27% /
/dev/sda1               1014M  195M  820M   20% /boot
vmhgfs-fuse              293G  144G  150G   49% /mnt/hgfs
tmpfs                    378M     0  378M    0% /run/user/1002
tmpfs                    378M     0  378M    0% /run/user/0
/dev/mapper/datavg-lv1   870M  2.3M  807M    1% /opt/lv1


这是因为文件系统也需要扩容。

  • ext4 文件系统扩容使用 resize2fs [逻辑卷名称] 挂载点
  • xfs 文件系统扩容使用 xfs_growfs 挂载点
> resize2fs /dev/datavg/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/datavg/lv1 is mounted on /opt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/datavg/lv1 is now 697344 blocks long.


再次查看扩容成功了

> resize2fs /dev/datavg/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/datavg/lv1 is mounted on /opt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/datavg/lv1 is now 697344 blocks long.


也可以使用 lvextend 命令的 -r 选项来使文件系统自动扩容

卷组(VG)动态扩容

卷组(VG)扩容

逻辑卷扩容时,若卷组中没有足够的存储空间,就需要增加卷组的容量。vgextend 命令可以将新的物理卷加入卷组。该过程首先创建物理卷,然后将物理卷加入卷组。

卷组的扩容相当简单,一般是 LVM 空间不够时,添加一块新硬盘时使用。

增加一块磁盘 /dev/sdc

> lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part
  ├─centos-root 253:0    0 35.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
├─datavg-lv1    253:2    0  2.7G  0 lvm  /opt/lv1
└─datavg-lv2    253:3    0    9G  0 lvm
sdc               8:32   0    1G  0 disk


扩容

> vgextend datavg /dev/sdc
  Physical volume "/dev/sdc" successfully created.
  Volume group "datavg" successfully extended
> pvs
  PV         VG     Fmt  Attr PSize    PFree
  /dev/sda2  centos lvm2 a--   <39.00g    4.00m
  /dev/sdb   datavg lvm2 a--   <20.00g   <8.34g
  /dev/sdc   datavg lvm2 a--  1020.00m 1020.00m
> vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <39.00g 4.00m
  datavg   2   2   0 wz--n-  20.99g 9.33g


卷组(VG)缩容

当硬盘空间不足时,就需要减少卷组占用的空间。如果删除的物理卷存有数据,需要先把数据移动到其他物理卷(保证有足够的空间存储数据)。pvmove 命令可以迁移物理卷的数据,在不指定目标卷的情况下,系统默认把数据迁移到临近的物理卷。例如,将 /dev/sdb 中的数据迁移出去,默认迁移到 /dev/sdc

迁移数据

> pvmove /dev/sdb


使用 vgreduce 命令从卷组中删除 /dev/sdc物理卷

> vgreduce datavg /dev/sdc
  Removed "/dev/sdc" from volume group "datavg"


LVM 快照应用环境

快照的主要作用是保留数据在某一刻的状态,磁盘快照文件和系统所对应的虚拟磁盘本身大小不一样,快照比原数据小很多。

LVM 提供逻辑卷快照功能,用户可以在某个时间点创建一个逻辑卷副本,它也占用卷组的存储空间,称为快照卷,快照卷与原始的逻辑卷必须在同一个卷组。快照卷是一种特殊的逻辑卷,它可以挂载在设备上。lvcreate 命令可以创建一个快照,-s 参数指定逻辑卷,

> lvcreate -L 100M -n centos-snap -s /dev/centos/root
  Logical volume "centos-snap" created.


使用 lvscan 命令查看新创建的快照卷。

> lvscan
  ACTIVE            '/dev/centos/swap' [<3.88 GiB] inherit
  ACTIVE   Original '/dev/centos/root' [<35.12 GiB] inherit
  ACTIVE   Snapshot '/dev/centos/centos-snap' [100.00 MiB] inherit


/mnt 目录下创建一个挂载点 centos-snap,将快照卷挂载在上面,并设置为只读,以免破坏快照中的数据。

> lvscan
  ACTIVE            '/dev/centos/swap' [<3.88 GiB] inherit
  ACTIVE   Original '/dev/centos/root' [<35.12 GiB] inherit
  ACTIVE   Snapshot '/dev/centos/centos-snap' [100.00 MiB] inherit


/mnt 目录下创建一个挂载点 centos-snap,将快照卷挂载在上面,并设置为只读,以免破坏快照卷中的数据。

> mkdir /mnt/centos-snap
> mount -o ro /dev/centos/centos-snap /mnt/centos-snap


查看原来的数据

> ls /mnt/centos-snap


删除 LVM

删除 LVM 步骤:

  1. umount 卸载
  2. 删除 /etc/fstab 文件下的永久挂载
  3. lvremove 移除逻辑卷(LV)
  4. vgremove 移除卷组(VG)
  5. pvremove 移除物理卷(PV)

下面只展示命令,具体细节可自行执行删除。

> umount /opt/lv1
> vim /etc/fstab
> lvremove /dev/datavg/lv1
Do you really want to remove active logical volume datavg/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
> vgremove datavg
> pvremove /dev/sdb


参考

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
目录
相关文章
|
28天前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
29 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
28天前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
31 1
|
28天前
|
监控 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
38 1
|
10天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
28天前
|
存储 缓存 Shell
【Shell 命令集合 磁盘维护 】⭐⭐⭐Linux 将文件系统的缓冲区数据立即写入磁盘 sync 命令使用教程
【Shell 命令集合 磁盘维护 】⭐⭐⭐Linux 将文件系统的缓冲区数据立即写入磁盘 sync 命令使用教程
37 1
|
28天前
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 关闭Linux系统中的交换空间 swapoff命令使用教程
【Shell 命令集合 磁盘维护 】Linux 关闭Linux系统中的交换空间 swapoff命令使用教程
29 1
|
4月前
|
IDE Linux 开发工具
Linux 实操篇-Linux 磁盘分区、挂载
Linux 实操篇-Linux 磁盘分区、挂载
70 0
|
3月前
|
算法 Linux 数据库
【Linux】磁盘分区与挂载和配额管理
【Linux】磁盘分区与挂载和配额管理
54 0
【Linux】磁盘分区与挂载和配额管理
|
8月前
|
Linux
7.3 【Linux】磁盘的分区、格式化、检验与挂载
7.3 【Linux】磁盘的分区、格式化、检验与挂载
127 0