Linux系统中磁盘管理LVM与挂载

Linux系统中磁盘管理LVM与挂载

本文以属于Linux系统基本概念,如果以查找教程教程,解决问题为主,只需要查看本文后半部分。如需要系统性学习请查看本文前半部分。

本文操作极容易导致主机无法自动重启,请慎重操作。操作前务必要进行备份操作!

文章目录

  • Linux系统中磁盘管理LVM与挂载
    • 0. 引言
    • 1. Linux系统磁盘分区
      • 1.1 分区的基本概念
    • 2. Linux磁盘管理LVM
      • 2.1 LVM的主要组成部分
      • 2.2 pv,vg ,lv的关系
      • 2.3 LVM设计的目的
    • 3. LVM实操讲解
      • 3.1 创建物理分区
      • 3.2 创建物理卷
      • 3.3 创建卷组
      • 3.4 创建逻辑卷
      • 3.5 挂载逻辑卷
      • 3.5 卷组扩容与缩容
      • 3.6 逻辑卷扩容与缩容
    • 6. 答疑
      • 6.1 为什么创建物理卷后的容量小于物理分区的容量
      • 6.2为什么创建逻辑卷后的总容量小于物理卷容量之和
    • 7. 参考资料

0. 引言

在Linux系统中,分区(Partition)是一个物理硬盘驱动器(HDD)或固态硬盘(SSD)上被划分出来的独立存储区域。每个分区都有自己独立的文件系统,可以包含不同类型的文件和数据,并且可以被操作系统独立地访问和管理。分区又可以分为物理分区和逻辑分区。

挂载指的是将一个文件系统连接到一个已存在的目录树中的某个点上,这个点称为“挂载点”(mount point)。挂载点既可以是本地路径,也可以是网络路径。一旦文件系统被挂载,用户就可以通过该挂载点访问和操作文件系统中的文件和目录。

本文将主要讲解Linux系统的分区,挂载概念以及如何进行屋里分区,逻辑分区,分组分卷,挂载的概念和操作实例,相关常见问题等。

1. Linux系统磁盘分区

1.1 分区的基本概念

  • 物理分区:直接在物理硬盘上划分出的存储区域,它们占据了硬盘的一部分物理空间。物理分区是磁盘分区的最基本形式。

tips:一块实体磁盘是一个物理分区吗?

“块实体磁盘”通常指的是物理硬盘本身,它是存储数据的物理媒介。而“物理分区”则是指在物理硬盘上定义的逻辑区域,用于组织和管理数据。这两个概念并不完全等同。

  1. 块实体磁盘: 这个术语中的“块”通常指的是磁盘上数据的最小读写单位——块(block)。块实体磁盘是指整个物理磁盘设备,它可以是一个硬盘驱动器(HDD)、固态硬盘(SSD)、甚至是闪存驱动器或其他任何形式的非易失性存储设备。在较低层次,磁盘被划分为一系列的块,操作系统通过这些块来读写数据。
  2. 物理分区: 物理分区是物理硬盘上的一部分,是通过分区表(例如MBR或GPT)定义的逻辑区域。一个物理硬盘可以被分成一个或多个物理分区,每个分区可以有自己的文件系统,可以独立地被格式化和挂载。物理分区是操作系统用来区分和管理磁盘空间的一种方式。
  • 逻辑分区:在扩展分区内部创建的分区称为逻辑分区。在MBR(主引导记录)分区表类型的硬盘上,一个硬盘最多可以有四个主分区,或者三个主分区加上一个扩展分区,扩展分区内可以包含多个逻辑分区。GPT(GUID分区表)分区表类型则不受这个限制,支持更多的分区数量。

  • 分区表:分区表是硬盘上用于存储分区信息的结构GPT是一种分区表格式。GPT提供了对更大磁盘和更多分区的支持,并且是许多现代Linux发行版的默认选择。

2. Linux磁盘管理LVM

逻辑卷管理器LVM(LVM,Logical Volume Manager)允许用户将一个或多个物理硬盘上的分区组合成更大的存储池,并在这个池上创建逻辑卷(Logical Volumes,LVs),这些逻辑卷可以独立于底层物理磁盘进行扩展和收缩,从而提供了更好的磁盘空间利用率和管理效率。

LVM系统和磁盘的关系如图所示

1816034-20240508092730255-166951

依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。

2.1 LVM的主要组成部分

  1. 物理卷(Physical Volume,PV): 物理卷是LVM的基本构建单元,可以是一个物理硬盘或其上的分区,也可以是软件RAID设备或任何其他形式的块设备。物理卷被划分为若干个物理区域(Physical Extents,PEs),这是LVM内部的最小存储单元。

  2. 卷组(Volume Group,VG): 卷组是由一个或多个物理卷组成的集合,相当于一个大的存储池。在卷组中,物理区域(PEs)被统一管理和分配。卷组为逻辑卷提供了存储空间。

  3. 逻辑卷(Logical Volume,LV): 逻辑卷是从卷组中分配出来的存储空间,它看起来就像一个普通的硬盘分区,可以被格式化为各种文件系统并挂载使用。逻辑卷的大小可以动态调整,而不必关心底层物理磁盘的限制。

2.2 pv,vg ,lv的关系

一个物理硬盘可以组成一个物理分区,一个物理硬盘也可以组成多个物理分区(一般最多四个)。一个物理分区为一个物理卷(pv)。

1个至多个物理卷可以组成一个卷组(vg),一个卷组又可以分成多个逻辑卷。

  • PV与VG的关系:一个或多个物理卷可以组成一个卷组。在创建卷组时,需要指定包含哪些物理卷。卷组中的物理卷可以来自不同的物理磁盘,也可以来自同一个物理磁盘的不同分区。
  • VG与LV的关系:一个卷组可以划分出多个逻辑卷。逻辑卷的大小和数量取决于卷组的总容量和实际需求。在卷组上创建逻辑卷时,可以指定逻辑卷的大小和名称等属性。
  • 整体关系:PV(物理卷)-> VG(卷组)-> LV(逻辑卷)。这种层次结构使得Linux系统能够灵活地管理存储资源,实现数据的动态分配和扩展。

物理卷,卷组,逻辑卷的关系图如下所示

lvm

2.3 LVM设计的目的

这种分层的架构允许用户更灵活地管理存储空间,例如动态调整逻辑卷的大小、在卷组之间移动物理卷,或者在一个卷组中创建多个逻辑卷来满足不同的应用需求。

当给逻辑卷分配的空间较大时,我们可以动态减小逻辑卷的大小。当给逻辑卷分配的空间较小时,我们可以动态扩大逻辑卷的大小。

同事还可以给卷组扩容。

3. LVM实操讲解

本次我使用的Linux主机位vm下的虚拟机,openeuler for BClinux 21.10

在操作前我们首先查看系统的磁盘分区情况

lsblk

可以看到系统共有两个磁盘。第一个磁盘创建成物理分区sda1,sda2。sda1和sda2分别各自成为一个物理卷。sda2下有三个逻辑卷,分别挂载在不同的目录下。

image-20240709202440079

下面我们给虚拟机新增一个10G的磁盘,一个20G的磁盘和一个30G的磁盘(具体步骤此处不做讨论)来模拟物理机插入磁盘操作。

可以参考文章:VMware虚拟机添加磁盘

查看磁盘目录

lsblk

image-20240709204242899

可以看到已经有多余的三个磁盘。

LVM操作的基本命令如下

image-20240709204709176

3.1 创建物理分区

在sdb,sdc,sdd三个磁盘分别创建三个物理分区(使用fdisk),物理分区类型都为lvm

# 此处为使用fdisk工具在sdb创建了一个10G大小的物理分区sdb1,其余物理分区创建过程类似
[root@localhost ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x511b7112 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认  1): 
第一个扇区 (2048-41943039, 默认 2048): 
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +10G

创建了一个新分区 1,类型为“Linux”,大小为 10 GiB。

命令(输入 m 获取帮助):t
已选择分区 1
Hex code or alias (type L to list all): 8e
已将分区“Linux”的类型更改为“Linux LVM”。

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

此处为使用fdisk工具在sdb创建了一个10G大小的物理分区sdb1,其余物理分区创建过程类似

image-20240709205012305

按要求创建完分区后磁盘物理分区情况如下图所示

image-20240709205404412

3.2 创建物理卷

创建物理卷使用的命令为pvcreate

pvcreate [选项] 设备文件
-f: 强制创建物理卷,不需要用户确认。
-y: 自动回答“yes”以确认物理卷的创建。
-u UUID: 指定设备的UUID。
-Z: 指定是否使用前4个扇区。 

下面我们使用pvcreate将上述创建的9个物理分区设置为初始化物理卷

pvcreate  /dev/sdb1

部分物理卷信息如下

image-20240709212436212

3.3 创建卷组

卷组是由一个或多个物理卷(PV)组成的集合。物理卷可以是硬盘上的分区、整个硬盘、软件RAID设备或其他任何形式的块设备。卷组的作用是将这些物理卷的存储空间汇集在一起,形成一个更大的、逻辑上连续的存储池,供逻辑卷使用。

使用vgcreate来创建卷组

vgcreate 命令用于创建一个新的卷组(Volume Group)。

vgcreate VG_new PV ...
[ -A | --autobackup y | n ]           # 是否自动备份元数据
[ -c | --clustered y | n ]            # 是否集群化卷组
[ -l | --maxlogicalvolumes 数量 ]     # 设置最大逻辑卷数目
[ -p | --maxphysicalvolumes 数量 ]    # 设置最大物理卷数目
[ -M | --metadatatype lvm2 ]          # 指定元数据类型
[ -s | --physicalextentsize 大小[m|UNIT] ] # 设置物理区块大小
[ -f | --force ]                      # 强制创建,忽略警告
[ -Z | --zero y | n ]                 # 是否清零物理卷的开始部分
[    --addtag 标签 ]                  # 添加标签
[    --alloc contiguous | cling | cling_by_tags | normal | anywhere | inherit ] # 分配策略
[    --metadataprofile 字符串 ]       # 元数据配置文件
[    --labelsector 数字 ]             # 标签扇区
[    --metadatasize 大小[m|UNIT] ]    # 元数据大小
[    --pvmetadatacopies 0 | 1 | 2 ]   # 物理卷元数据拷贝数
[    --vgmetadatacopies all | unmanaged | 数字 ] # 卷组元数据拷贝策略
[    --reportformat basic | json ]    # 报告格式
[    --dataalignment 大小[k|UNIT] ]   # 数据对齐
[    --dataalignmentoffset 大小[k|UNIT] ] # 数据对齐偏移
[    --shared ]                       # 共享卷组
[    --systemid 字符串 ]              # 系统ID
[    --locktype sanlock | dlm | none ] # 锁类型
[ COMMON_OPTIONS ]                    # 公共选项

LVM的公共选项:
[ -d | --debug ]                      # 开启调试模式
[ -h | --help ]                       # 显示帮助信息
[ -q | --quiet ]                      # 静默模式
[ -v | --verbose ]                    # 详细模式
[ -y | --yes ]                        # 自动回答“yes”
[ -t | --test ]                       # 测试模式,不执行命令
[    --commandprofile 字符串 ]        # 命令配置文件
[    --config 字符串 ]                # 配置字符串
[    --driverloaded y | n ]           # 驱动是否加载
[    --nolocking ]                    # 不使用锁
[    --lockopt 字符串 ]               # 锁选项
[    --longhelp ]                     # 显示长帮助信息
[    --profile 字符串 ]               # 配置文件
[    --version ]                      # 显示版本信息
# 为了更全面的展示卷组的功能,我们将sdb1,sdc1,sdd1三个物理卷组成一个卷组,命名为xianggu
vgcreate xianggu /dev/sdb1 /dev/sdc1 /dev/sdd1

image-20240709212409053

image-20240709212514459

# 将sdb2和sdb3组成逻辑卷chao		
vgcreate chao /dev/sdb2 /dev/sdb3

image-20240709212715601

# 将sdc2 创建成一个卷组shu
vgcreate shu /dev/sdc2

image-20240709212904300

3.4 创建逻辑卷

逻辑卷是在卷组(Volume Group,VG)之上创建的,用于存储数据的逻辑单元。它提供了比传统分区更灵活的存储管理方式,允许动态调整大小而不影响上层的文件系统或应用程序。

使用lvcreate命令可以创建逻辑卷。

lvcreate [选项] 卷组
-L 或 --size:指定逻辑卷的大小,可以使用单位如G(Gibibyte)、M(Mebibyte)等。
-n 或 --name:指定逻辑卷的名称。
-l 或 --extents:基于物理区域(PE)的数量来指定逻辑卷的大小。
-i 或 --mirrors:指定逻辑卷的镜像数量,用于创建镜像逻辑卷。
-m 或 --mirrorlog:指定镜像日志的存储位置。
-I 或 --stripes:指定逻辑卷的条带数。
-S 或 --stripesize:指定逻辑卷的条带大小。
-r 或 --regionsize:指定物理区域(PE)的大小。
-R 或 --redundancy:设置镜像的冗余策略。
-s 或 --snapshot:创建快照逻辑卷。
-V 或 --virtualsize:设置快照的虚拟大小。
-W 或 --writeable:创建写入式快照。
-P 或 --poolmetadatasize:设置存储池的元数据大小。
-K 或 --thinpool:创建精简存储池。
-T 或 --thin:在精简存储池中创建精简逻辑卷。

在创建逻辑卷之前,我们看一下各个卷组的大小

vgdisplay
#########################################################
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               shu
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <15.00 GiB
  PE Size               4.00 MiB
  Total PE              3839
  Alloc PE / Size       0 / 0   
  Free  PE / Size       3839 / <15.00 GiB
  VG UUID               x4dnET-dQQv-TAKr-lpEw-3Ej1-IvNB-Z4Idty
   
  --- Volume group ---
  VG Name               chao
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 9.99 GiB
  VG UUID               sQfM7y-rtE9-B0kz-1YcA-3bSu-Vbdm-iFi2vT
   
  --- Volume group ---
  VG Name               xianggu
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <21.99 GiB
  PE Size               4.00 MiB
  Total PE              5629
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5629 / <21.99 GiB
  VG UUID               44PuR0-JQK2-eOIV-p3zO-5Vvm-XgWZ-OlLZwx

其中最大的卷为xianggu卷组,空间略小于22G

我们使用xianggu卷组创建一个10G的逻辑卷,逻辑卷名称为logical,并将其设置为ext4类型

lvcreate -L 10G -n logical xianggu 
mkfs.ext4 /dev/xianggu

image-20240709213742735

使用lsblk查看挂载情况

lsblk
NAME                                             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                                8:0    0   200G  0 disk 
├─sda1                                             8:1    0     1G  0 part /boot
└─sda2                                             8:2    0   199G  0 part 
  ├─bigcloud--enterprise--linux--for--euler-root 253:0    0    70G  0 lvm  /
  ├─bigcloud--enterprise--linux--for--euler-swap 253:1    0   7.9G  0 lvm  [SWAP]
  └─bigcloud--enterprise--linux--for--euler-home 253:2    0 121.1G  0 lvm  /home
sdb                                                8:16   0    20G  0 disk 
├─sdb1                                             8:17   0    10G  0 part 
│ └─xianggu-logical                              253:3    0    21G  0 lvm  
├─sdb2                                             8:18   0     5G  0 part 
└─sdb3                                             8:19   0     5G  0 part 
sdc                                                8:32   0    30G  0 disk 
├─sdc1                                             8:33   0    10G  0 part 
│ └─xianggu-logical                              253:3    0    21G  0 lvm  
├─sdc2                                             8:34   0    15G  0 part 
└─sdc3                                             8:35   0     5G  0 part 
sdd                                                8:48   0    10G  0 disk 
├─sdd1                                             8:49   0     2G  0 part 
│ └─xianggu-logical                              253:3    0    21G  0 lvm  
├─sdd2                                             8:50   0     3G  0 part 
└─sdd3                                             8:51   0     5G  0 part 
sr0                                               11:0    1   5.2G  0 rom  

查看逻辑卷

lvdisplay
[root@localhost ~]# lvs
[root@localhost ~]# lvs
  LV      VG                                  Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home    bigcloud-enterprise-linux-for-euler -wi-ao---- <121.11g                                                    
  root    bigcloud-enterprise-linux-for-euler -wi-ao----   70.00g                                                    
  swap    bigcloud-enterprise-linux-for-euler -wi-ao----   <7.89g                                                    
  logical xianggu                             -wi-------   10.00g                                                 

3.5 挂载逻辑卷

在上面的操作,我们创建了逻辑卷logical,现在我们挂载逻辑卷。

# 创建挂载路径
mkdir /soft
# 使用mount挂载,重启后会失效
mount /dev/xianggu/logical /soft
[root@localhost /]# lsblk
NAME                                             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                                8:0    0   200G  0 disk 
├─sda1                                             8:1    0     1G  0 part /boot
└─sda2                                             8:2    0   199G  0 part 
  ├─bigcloud--enterprise--linux--for--euler-root 253:0    0    70G  0 lvm  /
  ├─bigcloud--enterprise--linux--for--euler-swap 253:1    0   7.9G  0 lvm  [SWAP]
  └─bigcloud--enterprise--linux--for--euler-home 253:2    0 121.1G  0 lvm  /home
sdb                                                8:16   0    20G  0 disk 
├─sdb1                                             8:17   0    10G  0 part 
│ └─xianggu-logical                              253:3    0    10G  0 lvm  /soft
├─sdb2                                             8:18   0     5G  0 part 
└─sdb3                                             8:19   0     5G  0 part 
sdc                                                8:32   0    30G  0 disk 
├─sdc1                                             8:33   0    10G  0 part 
│ └─xianggu-logical                              253:3    0    10G  0 lvm  /soft
├─sdc2                                             8:34   0    15G  0 part 
└─sdc3                                             8:35   0     5G  0 part 
sdd                                                8:48   0    10G  0 disk 
├─sdd1                                             8:49   0     2G  0 part 
├─sdd2                                             8:50   0     3G  0 part 
└─sdd3                                             8:51   0     5G  0 part 
sr0                                               11:0    1   5.2G  0 rom  

## 修改/etc/fstab 永久挂载
vi /etc/fstab
# 在最后一行添加
/dev/xianggu/logical /soft ext4 defaults 0 0

3.5 卷组扩容与缩容

物理卷(Physical Volume, PV)本身不能直接动态扩容,因为物理卷是基于底层存储设备(如硬盘分区或裸设备)的固定部分。

给卷组扩容的方法就是将新的物理卷pv添加到卷组。给卷组缩容的方法就是将物理卷pv从卷组中拿出。

扩容使用的命令是vgextend

用法如下

vgextend 卷组  物理卷
# 查看系统中的卷组有哪些
vgdisplay
[root@localhost /]# vgs
[root@localhost /]# vgs
  WARNING: Couldn't find device with uuid afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw.
  WARNING: VG xianggu is missing PV afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw (last written to [unknown]).
  VG                                  #PV #LV #SN Attr   VSize    VFree  
  bigcloud-enterprise-linux-for-euler   1   3   0 wz--n- <199.00g      0 
  chao                                  2   0   0 wz--n-    9.99g   9.99g
  shu                                   1   0   0 wz--n-  <15.00g <15.00g
  xianggu                               5   1   0 wz-pn-   31.98g  21.98g

看到香菇卷的大小为约12G

  vgdisplay xianggu
  --- Volume group ---
  VG Name               xianggu
  System ID             
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               <21.99 GiB
  PE Size               4.00 MiB
  Total PE              5629
  Alloc PE / Size       2560 / 10.00 GiB
  Free  PE / Size       3069 / <11.99 GiB
  VG UUID               44PuR0-JQK2-eOIV-p3zO-5Vvm-XgWZ-OlLZwx

现在我们将xianggu卷组中加入sdd3,可以看到卷组容量为约27G,卷组成功扩容

[root@localhost /]# vgextend xianggu  /dev/sdd3 
  Volume group "xianggu" successfully extended
[root@localhost /]# vgdisplay xianggu
  --- Volume group ---
  VG Name               xianggu
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               26.98 GiB
  PE Size               4.00 MiB
  Total PE              6908
  Alloc PE / Size       2560 / 10.00 GiB
  Free  PE / Size       4348 / 16.98 GiB
  VG UUID               44PuR0-JQK2-eOIV-p3zO-5Vvm-XgWZ-OlLZwx

下面我们对卷组进行缩容,xianggu卷组是由sdb1,sdc1,sdd1,sdd3组成的

缩减逻辑卷是一项风险较高的操作,可能导致数据丢失。

# 查看各个物理卷pv的状态
pvscan xianggu
[root@localhost /]# pvscan 
  PV /dev/sdc2   VG shu                                   lvm2 [<15.00 GiB / <15.00 GiB free]
  PV /dev/sdb2   VG chao                                  lvm2 [<5.00 GiB / <5.00 GiB free]
  PV /dev/sdb3   VG chao                                  lvm2 [<5.00 GiB / <5.00 GiB free]
  WARNING: Couldn't find device with uuid afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw.
  WARNING: VG xianggu is missing PV afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw (last written to [unknown]).
  PV /dev/sdb1   VG xianggu                               lvm2 [<10.00 GiB / 0    free]
  PV /dev/sdc1   VG xianggu                               lvm2 [<10.00 GiB / 9.99 GiB free]
  PV /dev/sdd1   VG xianggu                               lvm2 [<2.00 GiB / <2.00 GiB free]
  PV [unknown]   VG xianggu                               lvm2 [<5.00 GiB / <5.00 GiB free]
  PV /dev/sdd3   VG xianggu                               lvm2 [<5.00 GiB / <5.00 GiB free]
  PV /dev/sda2   VG bigcloud-enterprise-linux-for-euler   lvm2 [<199.00 GiB / 0    free]
  PV /dev/sdc3                                            lvm2 [<5.00 GiB]
  PV /dev/sdd2                                            lvm2 [3.00 GiB]
  Total: 11 [263.96 GiB] / in use: 9 [255.96 GiB] / in no VG: 2 [<8.00 GiB]

下面我们要在xianggu卷组中删除sdc1

如果发现物理卷上有逻辑卷,这将导致数据丢失,务必先备份

使用的命令是vgreduce,用法如下

greduce <卷组名称> <物理卷名称>
#在xianggu卷组中删除sdc1
# 如果 /dev/sdc1 上还有逻辑卷,并且这些逻辑卷没有被正确处理(如删除或迁移)
vgreduce xianggu /dev/sdc1

3.6 逻辑卷扩容与缩容

逻辑卷扩容与缩容允许用户在不丢失数据的情况下动态地调整逻辑卷的大小

缩减逻辑卷是一项风险较高的操作,可能导致数据丢失。

逻辑卷扩容使用的命令为lvextend,缩容使用的是lvreduce

语法如下

# 扩容或者创建lv逻辑卷
lvextend -L [+]大小 /dev/卷组名/逻辑卷名
# 缩容lv逻辑卷
lvreduce -L [-]大小 /dev/卷组名/逻辑卷名

下面进行实际操作

# 给logical逻辑卷进行扩容2G
# 首先要保证logical所在的2卷组容量足够
# 查看xianggu卷组剩余容量
[root@localhost ~]# vgdisplay xianggu
  WARNING: Couldn't find device with uuid afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw.
  WARNING: VG xianggu is missing PV afbT6Z-5uF9-sfiF-3Gf6-Vy34-fxW1-AHTrCw (last written to [unknown]).
  --- Volume group ---
  VG Name               xianggu
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                5
  Act PV                4
  VG Size               31.98 GiB
  PE Size               4.00 MiB
  Total PE              8187
  Alloc PE / Size       2560 / 10.00 GiB
  Free  PE / Size       5627 / 21.98 GiB
  VG UUID               44PuR0-JQK2-eOIV-p3zO-5Vvm-XgWZ-OlLZwx
# 剩余12G,进行扩容
[root@localhost /]#  lvextend +L +2G /dev/xianggu/logical
# 使用文件系统工具来扩展文件系统。
[root@localhost /] # resize2fs  /dev/xianggu/logical

# 给logical逻辑卷进行缩容1G
# 在进行缩容之前,必须先卸载逻辑卷上的文件系统。
[root@localhost /]#  umount /dev/xianggu/logical /soft
[root@localhost /]#  lvextend +l 1G /dev/xianggu/logical
#重新逻辑卷上的文件系统。
[root@localhost /]#  mount /dev/xianggu/logical /soft
  • 对于ext2ext3ext4文件系统,你可以使用resize2fs命令:

    bash复制代码
    
    resize2fs /dev/myvg/mylv
    

    注意:在大多数情况下,resize2fs会自动检测并扩展文件系统到逻辑卷的新大小,但最好先检查其手册页以确认。

  • 对于xfs文件系统,xfs_growfs命令用于扩展文件系统:

    bash复制代码
    
    xfs_growfs /mount_point
    

    其中/mount_point是逻辑卷挂载的点。

上述扩容和缩容也可以直接来指定逻辑卷容量大小

# 或者直接设置新大小  
lvextend -L <new_size>G /dev/myvg/mylv
# 若是扩容,需要指定扩容的文件类型。若是缩容,需要先卸载文件路径,缩容后再挂载

6. 答疑

6.1 为什么创建物理卷后的容量小于物理分区的容量

当物理分区被初始化为物理卷时,其容量会基于PE的大小进行划分。如果物理分区的总容量不能被PE大小整除,那么最后一部分空间可能会被浪费或保留为未分配空间,从而导致物理卷的容量小于物理分区的原始容量。

LVM可能会为物理卷预留一定的空间用于管理目的,如快照、镜像、恢复点等。这些预留空间会减少可用于实际数据存储的容量。

6.2为什么创建逻辑卷后的总容量小于物理卷容量之和

卷组(Volume Group, VG)是由一个或多个物理卷(Physical Volume, PV)组成的集合。VG的容量是所有PV容量的总和,但并非所有这些容量都会直接分配给逻辑卷。

LVM可能会为VG或LV预留一定的空间用于管理目的,如快照、镜像等。这些预留空间会减少可用于逻辑卷的实际容量。

7. 参考资料

  1. linux磁盘分区

  2. Linux LVM的基本使用

  3. Linux系统磁盘(硬盘)逻辑卷分区和介绍

  4. VMware虚拟机添加磁盘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/790530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新手教学系列——crontab 使用不当引发的服务器性能问题

起因及症状 最近,我们的一台服务器随着运行时间的增加,逐渐出现了压力过大的问题。具体表现为数据库连接数飙升至 4000+,Redis 频繁超时,系统报错文件打开数过多等。针对这些问题,我们逐一检查了数据库连接池、Redis 连接池以及系统的 ulimit 配置,但都未能找到问题的根…

ROS服务通信自定义srv

服务通信自定义srv 流程:创建ROS功能包按照固定格式创建srv文件编译配置文件编译生成中间文件 流程: srv 文件内的可用数据类型与 msg 文件一致&#xff0c;且定义 srv 实现流程与自定义 msg 实现流程类似&#xff0c;需查阅msg文件的可以浏览ROS话题通信流程自定义数据msg格式…

7月报名 | 海克斯康CAEfatigue疲劳分析培训

您好&#xff01;感谢您长期以来对优飞迪科技与海克斯康的关注与支持。我们诚邀您参加海克斯康CAEfatigue疲劳分析培训&#xff0c;特邀海克斯康原厂讲师将通过培训帮助您了解CAEfatigue的功能并使用其进行疲劳分析的过程、参数设置以及软件操作方法和技巧&#xff0c;学会使用…

VS2019使用C#写窗体程序技巧(1)

1、打开串口 private void button1_Click(object sender, EventArgs e){myPort cmb1.Text;mybaud Convert.ToInt32(cmb2.Text, 10);databit 8;parity Parity.None;stopBit StopBits.One;textBox9.Text "2";try{sp new SerialPort(myPort, mybaud, parity, dat…

Linux:进程池制作(基于匿名管道和命名管道两个版本)

Linux&#xff1a;进程池制作 & 匿名管道 & 命名管道 前言一、匿名管道制作进程池一、进程池框架二、创建管道、创建进程、工作进程执行任务2.1 创建管道、创建进程 2.2 工作进程执行任务三、主进程向子进程发送任务3.1 任务封装3.2 主进程向子进程发送任务 四、回收资…

数学建模·层次分析法

层次分析法 LAF 定义 具体用途 评价体系的优劣影响&#xff0c;计算评价指标的权重 主要步骤 关键在于一致性检验和求权值 权重的计算 注意权重之和为1&#xff0c;需要归一化 算数平均法 特征值法 矩阵的一致性检验 为什么要检验&#xff1f;&#xff1a;简单来说就…

Qt 实战(2)搭建开发环境 | 2.3、qmake详解

文章目录 一、qmake详解1、相关概念2、qmake作用3、运行qmake4、Qt Creator构建项目与执行qmake操作之间的区别4.1、功能与目的4.2、执行时机与流程 5、总结 前言&#xff1a; Qt qmake 是一个用于自动化生成 Makefile 的工具&#xff0c;它极大地简化了 Qt 应用程序和库的编译…

免费听书TV版v1.0.1

使用非常稳定流畅&#xff0c;UI界面设计美观简洁&#xff0c;纯净无广。资源虽然不是特别多&#xff0c;但是日常听书还是可以满足需求。 完全免费&#xff0c;操作简单方便&#xff0c;安装即用&#xff0c;没有任何限制。 可以适配遥控器操作&#xff0c;OK键开启或关闭语…

第二证券:销量暴跌95%,这一巨头市值蒸发超3000亿元!

在多重要素刺激下&#xff0c;PCB工作站上风口。 波音销量堕入停滞 6月仅售出3架客机 据央视财经&#xff0c;在一系列丑闻的影响下&#xff0c;波音公司本年出售遭到明显冲击。当地时间9日&#xff0c;波音发布的数据闪现&#xff0c;在以前一个月&#xff0c;该公司仅卖出…

【鸿蒙学习笔记】Stage模型

官方文档&#xff1a;Stage模型开发概述 目录标题 Stage模型好处Stage模型概念图ContextAbilityStageUIAbility组件和ExtensionAbility组件WindowStage Stage模型-组件模型Stage模型-进程模型Stage模型-ArkTS线程模型和任务模型关于任务模型&#xff0c;我们先来了解一下什么是…

旷野之间8 - LLMOps 与 MLOps操作化 AI 模型

介绍 随着人工智能越来越多地应用于商业应用&#xff0c;简化人工智能系统&#xff08;尤其是机器学习模型&#xff09;的开发和持续管理的新实践也不断涌现。MLOps 已成为一种基于 DevOps 原则实施机器学习的流行方法。 现在&#xff0c;随着 GPT-3 等大型语言模型 (LLM) 的…

火热夏季:浦语*书生InternLM大模型实战闯关-入门岛之Linux基础知识

一、ssh链接与端口映射并运行hello_wold.py 1.创建开发机 InternStudio创建开发机 2.进入开发机 3.Ssh链接开发机 powerShell终端ssh链接开发机。 4.创建一个hello_world.py文件web demo 5.运行web demo 6.端口映射 7.本地浏览器打开web 二、 VSCODE 远程连接开发机并创建一个…

LeetCode67(二进制求和[位运算,大数运算])

二进制求和 题目要求: 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 这道题其实有几种解法.我们先来介绍简单的方法. 我们可以将两个字符串的二进制转成十进制,获取对应值相加之后,我们可以不断对2取余,获取尾数拼接即可.也就是像我们平常求一…

笔试算法刷题

猿辅导2021校园招聘笔试&#xff08;算法一&#xff09; 牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推&#xff0c;求职就业一站解决_牛客网 (nowcoder.com) 第一眼看到这个题想到的是蓝桥杯飞机降落&#xff0c;贪心题。但是这样算的是最大不相交区间数量&#xff0…

docker笔记2

docker笔记2 一、阿里云镜像配置二、docker基本原理1.docker是如何启动一个容器的2.docker的底层原理 三、镜像命令总结 一、阿里云镜像配置 配置镜像的目的 由于Docker Hub等公共镜像仓库的服务器可能位于国外&#xff0c;直接从中拉取镜像时可能会遇到网络延迟或不稳定的问…

MySQL Undo Log

总结自bojiangzhou undo log称为撤销日志或回滚日志。在一个事务中进行增删改操作时&#xff0c;都会记录对应的 undo log。在对数据库进行修改前&#xff0c;会先记录对应的 undo log&#xff0c;然后在事务失败或回滚的时候&#xff0c;就可以用这些 undo log 来将数据回滚到…

(2024,测试时训练(TTT),线性注意力,RNN,嵌套循环)学习(在测试时学习):具有表达性隐藏状态的 RNN

Learning to (Learn at Test Time): RNNs with Expressive Hidden States 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 方法 2.1 使用 TTT 更新隐藏状态 2.2 …

常用的JVM启动参数

JVM的启动参数有很多&#xff0c;但是我们平常能用上的并不是特别多&#xff0c;这里介绍几个我们常用的&#xff1a; 1. 堆设置&#xff1a; 。 -Xms&#xff1a;设置堆的初始大小。 。.-Xmx&#xff1a;设置堆的最大大小。 2. 栈设置&#xff1a; 。 -XsS&#xff1a;设置每个…

​​​防御第一次作业

1、拓扑图及实验要求&#xff1a; 2、配置&#xff1a; 配置终端及服务器IP地址&#xff1a; Pc2&#xff1a; Client1&#xff1a; Pc4&#xff1a; Client2&#xff1a; PC1&#xff1a; Server1&#xff1a; Server2&#xff1a; 防火墙基础配置&#xff1a; [fw1]int g …

光学、SAR卫星影像助力洞庭湖决堤抢险(附带数据下载)

​​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 7月5日下午&#xff0c;湖南岳阳市华容县团洲乡团北村团洲垸洞庭湖一线堤防发生决口&#xff0…