Linux笔记 No.18---(逻辑卷管理机制LVM、RAID磁盘阵列、VDO虚拟数据优化)

本文详细介绍了Linux的逻辑卷管理机制LVM,包括物理卷PV、卷组VG和逻辑卷LV的创建、查看、调整及删除。接着,探讨了RAID磁盘阵列的基本原理、等级和实现方式。最后,讲解了VDO虚拟数据优化的工作原理和使用方法,通过压缩和删除重复数据来优化存储空间。文章深入浅出,适合Linux系统管理员和相关技术人员阅读。
摘要由CSDN通过智能技术生成

一、逻辑卷管理机制LVM

(一)基本概念

LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小

我们在实际使用 Linux 服务器的时候,总会有一个让人头疼的问题,随着业务的增加,文件系统负载会越来越大,当到了空间不足的情况时,如果我们还在使用传统的分区方式管理硬盘,就不得不将现有的所有分区全部删除,并重新规划新的存储方案。

不仅如此,分区到底应该分多大呢?分得太大,会浪费硬盘空间;分得太小,又会面临不够使用的情况。如果在安装系统时规划不合理,这种困扰就会经常出现。如果出现了分区不够用的情况,应该怎么办?

在以往(2.4 内核以前)要想调整分区大小,要么先新建立一个更大的分区,然后复制旧分区中的内容到新分区,最后使用软链接来替代旧分区;要么使用调整分区大小的工具(如 parted),parted 虽然可以调整分区大小,但是它需要卸载分区之后才可以进行,也就是说需要停止服务。

其实,从一开始,我们就需要有一种管理机制来帮助我们动态地管理存储,LVM 就提供了这种功能。LVM 最大的好处就是可以随时调整分区的大小,分区中的现有数据不会丟失,并且不需要卸载分区、停止服务

LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来。

  • ①PE (Physical Extend) 物理扩展 :每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
  • ②PV (Physical Volume) 物理卷:就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
  • ③VG (Volume Group) LVM卷组:类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
  • ④LV(Logical Volume) 逻辑卷:类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
  • LE(Logical Extent) :逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

我们知道在使用LVM对磁盘进行动态管理以后,我们是以逻辑卷的方式呈现给上层的服务的。所以我们所有的操作目的,其实就是去创建一个LV(Logical Volume),逻辑卷就是用来取代我们之前的分区,我们通过对逻辑卷进行格式化,然后进行挂载操作就可以使用了。

在这里插入图片描述
可以理解为:
PV:是物理的磁盘分区;VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘;LV:也就是从VG中划分的逻辑分区

所以在建立 LVM 的时候,需要按照以下步骤来进行:

  1. 把物理硬盘分成分区,当然也可以是整块物理硬盘;
  2. 把物理分区建立为物理卷(PV),也可以直接把整块硬盘都建立为物理卷。
  3. 把物理卷整合为卷组(VG)。卷组就已经可以动态地调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中删除。
  4. 把卷组再划分为逻辑卷(LV),当然逻辑卷也是可以直接调整大小的。我们说逻辑卷可以想象为分区,所以也需要格式化和挂载。

(二)物理卷PV

1.建立分区

[root@admin ~]# parted                                                    
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select  /dev/sdb                                                 
使用 /dev/sdb
(parted) mklabel gpt 
(parted) mkpart 1 ext2 0% 25%                                             
(parted) mkpart 2 ext2 25% 50%                                                                                 
(parted) mkpart 3 ext3 50% 75%                                              
(parted) mkpart 4 xfs 75% 100%                                       
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  标志
 1      1049kB  5369MB  5368MB               1
 2      5369MB  10.7GB  5369MB               2
 3      10.7GB  16.1GB  5369MB               3
 4      16.1GB  21.5GB  5368MB               4

2.建立物理卷

#建立物理卷命令如下:
pvcreate [设备文件名]

在建立物理卷时,我们既可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,则命令如下:

[root@admin ~]# pvcreate /dev/sdb

在我们的使用中要把分区建立成物理卷,所以执行以下命令:

[root@admin ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@admin ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
[root@admin ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
  
#也可以一次性创建 pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3

3.查看物理卷

查看物理卷的命令有三个,用来查询系统中哪些硬盘或分区是物理卷。命令如下:

  1. pvs
[root@admin ~]# pvs
 PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <99.72g  8.00m
  /dev/sdb1         lvm2 ---   <5.00g <5.00g
  /dev/sdb2         lvm2 ---    5.00g  5.00g
  /dev/sdb3         lvm2 ---    5.00g  5.00g
  1. pvscan
[root@admin ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<99.72 GiB / 8.00 MiB free]
  PV /dev/sdb3                      lvm2 [5.00 GiB]
  PV /dev/sdb1                      lvm2 [<5.00 GiB]
  PV /dev/sdb2                      lvm2 [5.00 GiB]
  Total: 4 [<114.72 GiB] / in use: 1 [<99.72 GiB] / in no VG: 3 [<15.00 GiB]

可以看到,在我们的系统中,/dev/sda2和/dev/sdb1~3 这四个分区是物理卷。最后一行的意思是:共有 4 个物理卷[大小]/使用了 1 个卷[大小]/空闲 3 个卷[大小]

  1. pvdisplay
    它可以查看到更详细的物理卷状态
[root@admin ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <99.72 GiB / not usable 0   
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              25528
  Free PE               2
  Allocated PE          25526
  PV UUID               0BZ0Fj-Chto-UjJM-1C8c-sllG-LZgX-RchmZs
   
  "/dev/sdb3" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb3
  VG Name               					#属于的VG名,还没有分配,所以空白
  PV Size               5.00 GiB			#PV 的大小
  Allocatable           NO					#是否已经分配
  PE Size               0   				#PE大小,因为还没有分配,所以PE大小也没有指定
  Total PE              0					#PE总数
  Free PE               0					#空闲PE数
  Allocated PE          0					#空闲 PE数
  PV UUID               DDW1V9-pkXb-xsJ5-D2HA-sODp-w0Gp-n0ODwJ			#PV的UUID
   
  "/dev/sdb1" is a new physical volume of "<5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               ugZFrX-JKHZ-XWUX-9kx0-cfjE-07q5-ljzYrR
   
  "/dev/sdb2" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               1fm6hC-75P2-sFSx-fRBZ-VvIq-fkrj-eSdijN

4.删除物理卷

格式: pvremove PV …

[root@admin ~]# pvcreate /dev/sdc1 /dev/sdc2
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdc2" successfully created.
[root@admin ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sda2  centos lvm2 a--  <99.72g   8.00m
  /dev/sdb1         lvm2 ---   <5.00g  <5.00g
  /dev/sdb2         lvm2 ---    5.00g   5.00g
  /dev/sdb3         lvm2 ---    5.00g   5.00g
  /dev/sdc1         lvm2 ---    1.86g   1.86g
  /dev/sdc2         lvm2 ---  951.81g 951.81g
[root@admin ~]# pvremove /dev/sdc1 /dev/sdc2
  Labels on physical volume "/dev/sdc1" successfully wiped. 
  Labels on physical volume "/dev/sdc2" successfully wiped.
[root@admin ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <99.72g  8.00m
  /dev/sdb1         lvm2 ---   <5.00g <5.00g
  /dev/sdb2         lvm2 ---    5.00g  5.00g
  /dev/sdb3         lvm2 ---    5.00g  5.00g

在删除物理卷时,物理卷必须不属于任何卷组,也就是需要先将物理卷从卷组中删除,再删除物理卷。其实所有的删除就是把创建过程反过来,建立时不能少某个步骤,删除时也同样不能跳过某一步直接删除。

(三)卷组VG

按照建立逻辑卷的步骤,上面已经建立好了物理卷(sdb1~sdb3),接下来就该建立卷组了

可以把卷组想象成基本分区中的硬盘,是由多个物理卷组成的。卷组就已经可以动态地调整空间大小了,当卷组空间不足时,可以向卷组中添加新的物理卷。

1.建立卷组

格式:vgcreate [-s PE大小] 卷组名 物理卷名(创建好的物理卷)

[-s PE大小] 选项的含义是指定 PE 的大小,单位可以是 MB、GB、TB 等。如果不写,则默认 PE 大小是 4MB。这里的卷组名指的就是要创建的卷组的名称(自己指定的),而物理卷名则指的是希望添加到此卷组的所有硬盘区分或者整个硬盘。

上面我们建立了三个物理卷(/dev/sdb1~/dev/sdb3),将sdb1和sdb2加入卷组

[root@admin ~]# vgcreate -s 5M myvg01 /dev/sdb1 /dev/sdb2
  Volume group "myvg01" successfully created

2.查看卷组

查看卷组的命令同样有三个:vgs和vgscan 命令主要用于查看系统中是否有卷组;而 vgdisplay 命令则用于查看卷组的详细状态。

  1. vgs
[root@admin ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   3   0 wz--n- <99.72g 8.00m
  myvg01   2   0   0 wz--n-   9.99g 9.99g
  1. vgscan
[root@admin ~]# vgscan
  Reading volume groups from cache.
  Found volume group "centos" using metadata type lvm2
  Found volume group "myvg01" using metadata type lvm2
  1. vgdisplay
[root@admin ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <99.72 GiB
  PE Size               4.00 MiB
  Total PE              25528
  Alloc PE / Size       25526 / 99.71 GiB
  Free  PE / Size       2 / 8.00 MiB
  VG UUID               J8a7eu-dBD0-1YEp-gHeF-aETn-RnSP-dTRKde
   
  --- Volume group ---
  VG Name               myvg01			#卷组名
  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				#当前物理卷数(即sdb1和sdb2)
  Act PV                2				
  VG Size               9.99 GiB		#卷组大小
  PE Size               5.00 MiB		#PE大小
  Total PE              2046			#PE总数
  Alloc PE / Size       0 / 0   		#已用 PE 数量/大小
  Free  PE / Size       2046 / 9.99 GiB		#空闲PE数量/大小
  VG UUID               49BQre-YuON-67vA-QYWY-LN3d-dPqA-baUaqk		#VG的UUID

3.卷组的扩容

格式: vgextend VG  PV
VG:需要扩容的卷组的卷组名 
PV:被添加的物理卷

将/dev/sdb3加入刚才创建的卷组myvg01

[root@admin ~]# vgextend myvg01 /dev/sdb3
[root@admin ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <99.72g  8.00m
  /dev/sdb1  myvg01 lvm2 a--   <5.00g <5.00g
  /dev/sdb2  myvg01 lvm2 a--   <5.00g <5.00g
  /dev/sdb3  myvg01 lvm2 a--   <5.00g <5.00g   #添加成功
[root@admin ~]# vgdisplay 
……省略……
  Max PV                0
  Cur PV                3    #物理卷数增加
  Act PV                3
  VG Size               <14.99 GiB	#卷组容量增加
  PE Size               5.00 MiB
  Total PE              3069
  Alloc PE / Size       0 / 0   
  Free  PE / Size       3069 / <14.99 GiB
  VG UUID               49BQre-YuON-67vA-QYWY-LN3d-dPqA-baUaqk

4.卷组的缩容

既然可以增加卷组容量,当然也可以减少卷组容量

格式: vgreduce VG  PV
VG:需要缩容的卷组的卷组名 
PV:被移除的物理卷

将卷组myvg01中的物理卷/dev/sdb3删除

[root@admin ~]# vgreduce myvg01 /dev/sdb3
  Removed "/dev/sdb3" from volume group "myvg01"
[root@admin ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <99.72g  8.00m
  /dev/sdb1  myvg01 lvm2 a--   <5.00g <5.00g
  /dev/sdb2  myvg01 lv
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值