目录

  • 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    • 16.1 LVM的工作原理

      • 16.1.1 LVM常用术语
      • 16.1.2 LVM优点
    • 16.2 创建LVM的基本步骤
      • 16.2.1 lvm常用的命令
      • 16.2.2 创建并使用LVM逻辑卷
      • 16.2.3 指定PE大小
      • 16.2.4 LV扩容
      • 16.2.5 VG扩容
      • 16.2.6 LVM缩小(实际工作中基本遇不到,尽量避免)
      • 16.2.7 LVM删除
    • 16.3 SSM工具介绍

学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用


本文用于记录学习体会、心得,兼做笔记使用,方便以后复习总结。内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK老师和学神教育的优质教学。希望各位因学习需求而要进行转载时,能申明出处为学神教育,谢谢各位!

16.1 LVM的工作原理

实战场景:对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够了怎么办?

解决方案:使用LVM在线动态扩容

LVM( Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过LVM可以直接扩展文件系统跨越磁盘

它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作

16.1.1 LVM常用术语

物理存储介质(The physical media):LVM存储介质可以是磁盘分区,整个磁盘,RAID阵列或SAN磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用

物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;

卷组VG(Volume Group):一个LVM卷组由一个或多个物理卷组成

逻辑卷LV(logical volume):LV建立在VG之上,可以在LV之上建立文件系统

PE(physical extents):PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB
LE(logical extent): LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

关于最小存储单元的总结

名称 最小存储单位
硬盘 扇区(512字节)
文件系统 block(1K或4K )# mkfs.ext4 -b 2048 /dev/sdb1 ,最大支持到4096
raid chunk (512K) #mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x 1 /dev/sde{1,2,3,5}
LVM PE (4M) # vgcreate -s 4M vg1 /dev/sdb{1,2}

LVM主要元素构成:

总结:多个磁盘/分区/raid-》多个物理卷PV-》合成卷组VG-》从VG划出逻辑卷LV-》格式化LV挂载使用

16.1.2 LVM优点

  • 使用卷组,使多个硬盘空间看起来像是一个大的硬盘
  • 使用逻辑卷,可以跨多个硬盘空间的分区 sdb1 sdb2 sdc1 sdd2 sdf
  • 在使用逻辑卷时,它可以在空间不足时动态调整它的大小
  • 在调整逻辑卷大小时,不需要考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
  • 可以在线对LV,VG 进行创建,删除,调整大小等操作。LVM上的文件系统也需要重新调整大小。
  • 允许创建快照,可以用来保存文件系统的备份。
  • RAID+LVM一起用:LVM是软件的卷管理方式,而RAID是磁盘管理的方法。对于重要的数据,使用RAID来保护物理的磁盘不会因为故障而中断业务,再用LVM用来实现对卷的良性的管理,更好的利用磁盘资源

16.2 创建LVM的基本步骤

  1. 物理磁盘被格式化为PV,(空间被划分为一个个的PE) #PV包含PE
  2. 不同的PV加入到同一个VG中,(不同PV的PE全部进入到了VG的PE池内) #VG包含PV
  3. 在VG中创建LV逻辑卷,基于PE创建,(组成LV的PE可能来自不同的物理磁盘) #LV基于PE创建
  4. LV直接可以格式化后挂载使用 #格式化挂载使用
  5. LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

16.2.1 lvm常用的命令

常用功能命令

功能 PV管理命令 VG管理命令 LV管理命令
scan扫描 pvscan vgscan lvscan
create创建 pvcreate vgcreate lvcreate
display显示 pvdisplay vgdisplay lvdisplay
remove移除 pvremove vgremove lvremove
extend扩展 vgextend lvextend
reduce减少 vgreduce lvreduce

常用查看命令

查看卷名 简单对应卷信息的查看 扫描相关的所有的对应卷 详细对应卷信息的查看
物理卷 pvs pvscan pvdisplay
卷组 vgs vgscan vgdisplay
逻辑卷 lvs lvscan lvdisplay

16.2.2 创建并使用LVM逻辑卷

16.2.2.1 添加一个sdb磁盘,并设置4个大小为2G的分区


[root@localhost ~]# ll /dev/sd* #查看新添加的硬盘
brw-rw----. 1 root disk 8,  0 6月  16 08:00 /dev/sda
brw-rw----. 1 root disk 8,  1 6月  16 08:00 /dev/sda1
brw-rw----. 1 root disk 8,  2 6月  16 08:00 /dev/sda2
brw-rw----. 1 root disk 8, 16 6月  16 08:00 /dev/sdb
[root@localhost ~]# fdisk /dev/sdb  #在硬盘/dev/sdb上面创建4个分区
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x7e20c0aa 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p #设置为主分区
分区号 (1-4,默认 1):1 #设置分区号为1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G #设置分区大小为2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):N
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): P
分区号 (3,4,默认 3):
起始 扇区 (8390656-41943039,默认为 8390656):
将使用默认值 8390656
Last 扇区, +扇区 or +size{K,M,G} (8390656-41943039,默认为 41943039):+2G
分区 3 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):N
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e): P
已选择分区 4
起始 扇区 (12584960-41943039,默认为 12584960):
将使用默认值 12584960
Last 扇区, +扇区 or +size{K,M,G} (12584960-41943039,默认为 41943039):+2G
分区 4 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):P  #查看分区信息磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7e20c0aa设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    16779263     2097152   83  Linux命令(输入 m 获取帮助):W #保存分区信息
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。

设定分区类型代码:fdisk /dev/sdb ===> t ===> 选择分区号 ====> 8e ====> w ,详细如下所示:


[root@localhost ~]# fdisk /dev/sdb  #使用fdisk修改分区类型
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):t #修改分区类型
分区号 (1-4,默认 4):1 #输入分区号
Hex 代码(输入 L 列出所有代码):l #查看类型详细0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT
1e  隐藏的 W95 FAT1 80  旧 Minix
Hex 代码(输入 L 列出所有代码):8e #修改分区1类型为8e
已将分区“Empty”的类型更改为“Linux LVM”命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):4
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):p #查看分区信息磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7e20c0aa设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   8e  Linux LVM  #分区类型已经修改为8e
/dev/sdb2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdb3         8390656    12584959     2097152   8e  Linux LVM
/dev/sdb4        12584960    16779263     2097152   8e  Linux LVM命令(输入 m 获取帮助):w #保存配置
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 6月  16 08:06 /dev/sdb
brw-rw----. 1 root disk 8, 17 6月  16 08:06 /dev/sdb1
brw-rw----. 1 root disk 8, 18 6月  16 08:06 /dev/sdb2
brw-rw----. 1 root disk 8, 19 6月  16 08:06 /dev/sdb3
brw-rw----. 1 root disk 8, 20 6月  16 08:06 /dev/sdb4

注:现在系统已经很智能了, 直接使用默认的 83 Linux分区,也可以创建pv的。

16.2.2.2 创建PV


[root@localhost ~]# pvcreate /dev/sdb[1,2,3,4]Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdb2" successfully created.Physical volume "/dev/sdb3" successfully created.Physical volume "/dev/sdb4" successfully created.

16.2.2.3 产看PV的详细信息


[root@localhost ~]# pvdisplay /dev/sdb1"/dev/sdb1" is a new physical volume of "2.00 GiB"--- NEW Physical volume ---PV Name               /dev/sdb1VG Name                           #VG name为空,说明还未加入VGPV Size               2.00 GiBAllocatable           NO  #是否使用:未使用PE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               1NmJQX-wcA8-MBNM-p7rs-oLfb-iAH9-K9VhY8

16.2.2.4 创建VG卷组

语法: vgcreate vg名字 pv的名字 备注:可以跟多个PV


[root@localhost ~]# vgcreate vg01 /dev/sdb1 #使用/dev/sdb1创建vg01Volume group "vg01" successfully created
[root@localhost ~]# vgs #查看所有vg信息VG     #PV #LV #SN Attr   VSize   VFree centos   1   2   0 wz--n- <39.00g  4.00mvg01     1   0   0 wz--n-  <2.00g <2.00g
[root@localhost ~]# vgdisplay /dev/vg01 --- Volume group ---VG Name               vg01System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               <2.00 GiBPE Size               4.00 MiB #PE大小默认为4MBTotal PE              511Alloc PE / Size       0 / 0   Free  PE / Size       511 / <2.00 GiBVG UUID               DdXIqq-Sefk-IjRp-fq54-vYV3-XmFF-Vw8kcj[root@localhost ~]# vgdisplay vg01  #显示vg01详细信息,可以如上使用绝对路径也可以直接使用vg名称--- Volume group ---VG Name               vg01System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               <2.00 GiBPE Size               4.00 MiBTotal PE              511Alloc PE / Size       0 / 0   Free  PE / Size       511 / <2.00 GiBVG UUID               DdXIqq-Sefk-IjRp-fq54-vYV3-XmFF-Vw8kcj

16.2.2.5 创建LV

语法:lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vg名称


[root@localhost ~]# lvcreate -n lv01 -L 16M vg01 #在VG01上创建大小为16M的lv01Logical volume "lv01" created.
[root@localhost ~]# lvcreate -n lv02 -l 4 vg01  #在VG01上创建大小为4个PE的lv02Logical volume "lv02" created.
[root@localhost ~]# lvs #查看所有lv信息,因为PE大小为4mb,所以lv01和lv02大小一致LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <35.12g                                                    swap centos -wi-ao----  <3.88g                                                    lv01 vg01   -wi-a-----  16.00m                                                    lv02 vg01   -wi-a-----  16.00m
[root@localhost ~]# lvdisplay /dev/vg01/lv01 #查看lv01的详细信息--- Logical volume ---LV Path                /dev/vg01/lv01LV Name                lv01VG Name                vg01LV UUID                2DDOOC-6SrA-T9xG-cqlq-4Ubl-8YtF-MDkR5TLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-06-16 08:39:52 +0800LV Status              available# open                 0LV Size                16.00 MiBCurrent LE             4Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2
[root@localhost ~]# lvdisplay /dev/vg01/lv02--- Logical volume ---LV Path                /dev/vg01/lv02LV Name                lv02VG Name                vg01LV UUID                sBR4JF-4HSa-rdWj-WG2b-jkiz-JZa7-WltI5ALV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-06-16 08:44:48 +0800LV Status              available# open                 0LV Size                16.00 MiBCurrent LE             4Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:3

16.2.2.6 文件系统格式与挂载


[root@localhost ~]# mkdir /lv01 #创建挂载点
[root@localhost ~]# mkfs.xfs /dev/vg01/lv01 #将lv01格式化为XFS文件系统
meta-data=/dev/vg01/lv01         isize=512    agcount=1, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4096, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vg01/lv01 /lv01  #将lv01挂载到/lv01目录
[root@localhost ~]# echo "/dev/vg01/lv01 /lv01 xfs defaults 0 0" >> /etc/fstab  #将逻辑卷LV01加入开机自动挂载
[root@localhost ~]# unmount /dev/vg01/lv01
bash: unmount: 未找到命令...
[root@localhost ~]# umount /dev/vg01/lv01 #卸载逻辑卷lv01,测试开机自动挂载是否成功
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th /lv01
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    13M  896K   12M    7% /lv01

16.2.3 指定PE大小

指定PE大小用的参数: -s ,如果存储的数据都是大文件,那么PE尽量调大,读取速度快


[root@localhost ~]# vgcreate -s 16M vg02 /dev/sdb2Volume group "vg02" successfully created

PE的大小只有为2的幂数,且最大为512M


[root@localhost ~]# vgdisplay vg02--- Volume group ---VG Name               vg02System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               1.98 GiBPE Size               16.00 MiBTotal PE              127Alloc PE / Size       0 / 0   Free  PE / Size       127 / 1.98 GiBVG UUID               NTiQEe-EV0y-AusA-PDxW-omf8-VP7M-qztDNl

16.2.4 LV扩容

首先,确定一下是否有可用的扩容空间,因为空间是从VG里面创建的,并且LV不能跨VG扩容


[root@localhost ~]# vgsVG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <39.00g 4.00mvg01     1   2   0 wz--n-  <2.00g 1.96gvg02     1   0   0 wz--n-   1.98g 1.98g

扩容使用命令如下:

扩容逻辑卷

lvextend命令举例:

  1. lvextend -L 30m /dev/vg01/lv01 #将逻辑卷lv01扩容到30M

  2. lvextend L 30m /dev/vg01/lv01 #将逻辑卷lv01扩容30M

  3. lvextend -l 30%free /dev/vg01/lv01 #将vg01卷组剩余空间的30%扩容给lv01


[root@localhost ~]# lvextend -L +30m /dev/vg01/lv01 #为lv01扩容30MRounding size to boundary between physical extents: 32.00 MiB.Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents).Logical volume vg01/lv01 successfully resized.
[root@localhost ~]# lvs #产看lv信息,发现逻辑卷lv01已经扩展成功LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos -wi-ao---- <35.12g                                                    swap centos -wi-ao----  <3.88g                                                    lv01 vg01   -wi-ao----  48.00m                                                    lv02 vg01   -wi-a----- 204.00m
[root@localhost ~]# df -Th /dev/vg01/lv01 #查看文件系统lv01发现大小未变
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    13M  896K   12M    7% /lv01
[root@localhost ~]# xfs
xfs_admin      xfs_estimate   xfsinvutil     xfs_mkfile     xfs_rtcp
xfs_bmap       xfs_freeze     xfs_io         xfs_ncheck
xfs_copy       xfs_fsr        xfs_logprint   xfs_quota
xfs_db         xfs_growfs     xfs_mdrestore  xfs_repair
xfsdump        xfs_info       xfs_metadump   xfsrestore
[root@localhost ~]# xfs
xfs_admin      xfs_estimate   xfsinvutil     xfs_mkfile     xfs_rtcp
xfs_bmap       xfs_freeze     xfs_io         xfs_ncheck
xfs_copy       xfs_fsr        xfs_logprint   xfs_quota
xfs_db         xfs_growfs     xfs_mdrestore  xfs_repair
xfsdump        xfs_info       xfs_metadump   xfsrestore

注:可以看到LV虽然扩展了,但是文件系统大小还是原来的,下面开始扩容文件系统:

ext4文件系统扩容使用命令语法: resize2fs 逻辑卷名称

xfs文件系统扩容使用命令语法: xfs_growfs 挂载点

resize2fs和xfs_growfs 两者的区别是传递的参数不一样的,xfs_growfs是采用的挂载点;resize2fs是逻辑卷名称,而且resize2fs命令不能对xfs类型文件系统使用


[root@localhost ~]# xfs_growfs lv01 #扩容文件系统
xfs_growfs: lv01 is not a mounted XFS filesystem
[root@localhost ~]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=1, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4096, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4096 to 12288
[root@localhost ~]# df -Th /dev/vg01/lv01 #查看发现文件系统扩容成功
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    45M  992K   44M    3% /lv01

如下所示可以通过增加-r参数,直接扩容逻辑卷后完成文件系统扩容,一步到位


[root@localhost ~]# lvextend -L 80M -r /dev/vg01/lv01 #同时扩容逻辑卷和文件系统Size of logical volume vg01/lv01 changed from 48.00 MiB (12 extents) to 80.00 MiB (20 extents).Logical volume vg01/lv01 successfully resized.
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=3, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12288 to 20480
[root@localhost ~]# df -Th /dev/vg01/lv01 #查看发现文件系统也扩容成功
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    77M  1.1M   76M    2% /lv01

16.2.5 VG扩容

查看VG剩余空间


[root@localhost ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree centos   1   2   0 wz--n- <39.00g  4.00mvg01     1   2   0 wz--n-  <2.00g <1.72gvg02     1   0   0 wz--n-   1.98g  1.98g

发现VG剩余空间不够后,开始扩容


[root@localhost ~]# pvcreate /dev/sdb3  #使用sdb3创建新的pvPhysical volume "/dev/sdb3" successfully created.
[root@localhost ~]# vgextend vg01 /dev/sdb3 #将新的pv添加到vg01中Volume group "vg01" successfully extended
[root@localhost ~]# vgsVG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <39.00g 4.00mvg01     2   2   0 wz--n-   3.99g 3.71g   #vg01扩容成功vg02     1   0   0 wz--n-   1.98g 1.98g

16.2.6 LVM缩小(实际工作中基本遇不到,尽量避免)

LVM可以动态增加,也可以动态缩小,但是XFS不支持动态缩小,所以我们无法实现基于xfs的动态缩小。btrfs文件系统支持在线缩小

[root@localhost ~]# lvreduce -L -20M /dev/vg01/lv01 #将lv01缩小20MWARNING: Reducing active and open logical volume to 60.00 MiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y    #是否确认缩小Size of logical volume vg01/lv01 changed from 80.00 MiB (20 extents) to 60.00 MiB (15 extents).Logical volume vg01/lv01 successfully resized. #提示逻辑卷lv01已经缩小成功
[root@localhost ~]# df -h /dev/vg01/lv01 #查看文件系统
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01   77M  1.1M   76M    2% /lv01 #发现文件系统并未缩小
[root@localhost ~]#  lvextend -L 10M -r /dev/vg01/lv01Rounding size to boundary between physical extents: 12.00 MiB.New size given (3 extents) not larger than existing size (15 extents)

VG的缩减,要保证你的物理卷是否被使用,是因为它无法缩减一个正在使用的PV


[root@localhost ~]# vgsVG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <39.00g 4.00mvg01     2   2   0 wz--n-   3.99g 3.73gvg02     1   0   0 wz--n-   1.98g 1.98g
[root@localhost ~]# pvsPV         VG     Fmt  Attr PSize   PFree /dev/sda2  centos lvm2 a--  <39.00g  4.00m/dev/sdb1  vg01   lvm2 a--   <2.00g <1.74g/dev/sdb2  vg02   lvm2 a--    1.98g  1.98g/dev/sdb3  vg01   lvm2 a--   <2.00g <2.00g/dev/sdb4         lvm2 ---    2.00g  2.00g
[root@localhost ~]# cp /etc/passwd /lv01
[root@localhost ~]# vgreduce vg01 /dev/sdb1 #测试复制一些测试数据Physical volume "/dev/sdb1" still in use  #将sdb1移出失败,因sdb1正在被使用

测试将sdb1上的数据移动到sdb3后再从vg01中删除sdb1


[root@localhost ~]# pvmove /dev/sdb1 /dev/sdb3  #将sdb1上的数据移动到sdb3上/dev/sdb1: Moved: 6.06%/dev/sdb1: Moved: 22.73%/dev/sdb1: Moved: 100.00% #数据移动完毕
[root@localhost ~]# vgreduce vg01 /dev/sdb1 #从vg01中移除sdb1Removed "/dev/sdb1" from volume group "vg01"
[root@localhost ~]# pvs #查看pv信息,发现sdb1现在不属于vg01,vg01已经缩减成功PV         VG     Fmt  Attr PSize   PFree /dev/sda2  centos lvm2 a--  <39.00g  4.00m/dev/sdb1         lvm2 ---    2.00g  2.00g/dev/sdb2  vg02   lvm2 a--    1.98g  1.98g/dev/sdb3  vg01   lvm2 a--   <2.00g <1.74g/dev/sdb4         lvm2 ---    2.00g  2.00g

16.2.7 LVM删除

创建LVM流程:

pvcreate创建pv -> vgcreate创建卷组 -> lvcreate创建逻辑卷 -> mkfs.xfs lv 格式化-> mount挂载

删除LVM流程:

umount卸载 -> lvremove lv移出卷组中所有逻辑卷-> vgremove vg移出卷组-> pvremove 移出pv


[root@localhost ~]# umount /lv01 #卸载/dev/vg01/lv01逻辑卷
[root@localhost ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: yLogical volume "lv01" successfully removed
[root@localhost ~]# vgremove vg01 #删除vg01
Do you really want to remove volume group "vg01" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume vg01/lv02? [y/n]: yLogical volume "lv02" successfully removedVolume group "vg01" successfully removed
[root@localhost ~]# vgs 查看vg信息,发现vg01已经删除VG     #PV #LV #SN Attr   VSize   VFreecentos   1   2   0 wz--n- <39.00g 4.00mvg02     1   0   0 wz--n-   1.98g 1.98g
[root@localhost ~]# vgremove vg02Volume group "vg02" successfully removed
[root@localhost ~]# pvs #查看pv信息发现所有pv都已经释放PV         VG     Fmt  Attr PSize   PFree/dev/sda2  centos lvm2 a--  <39.00g 4.00m/dev/sdb1         lvm2 ---    2.00g 2.00g/dev/sdb2         lvm2 ---    2.00g 2.00g/dev/sdb3         lvm2 ---    2.00g 2.00g/dev/sdb4         lvm2 ---    2.00g 2.00g
[root@localhost ~]# pvremove /dev/sdb1 #删除pvLabels on physical volume "/dev/sdb1" successfully wiped.
[root@localhost ~]# pvremove /dev/sdb[2,3,4]Labels on physical volume "/dev/sdb2" successfully wiped.Labels on physical volume "/dev/sdb3" successfully wiped.Labels on physical volume "/dev/sdb4" successfully wiped.

16.3 SSM工具介绍

需要安装SSM(system-storage-manager)工具, yum -y install system-storage-manager

语法:

ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点

自动把设备变成pv,创建vg , lv ,格式化文件系统, 自动挂载

举例:ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv

说明:使用sdb1、2、3、4创建pv,然后使用这些PV创建名为名为mail的vg,然后创建名为mail-lv的lv,大小为1G,文件类型为xfs

具体如下所示(因为断网直接使用学神的例子):


[root@xuegod63 ~]#  ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lvPhysical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdb2" successfully created.Physical volume "/dev/sdb3" successfully created.Physical volume "/dev/sdb4" successfully created.Volume group "mail" successfully created
WARNING: ext4 signature detected on /dev/mail/mail-lv at offset 1080. Wipe it? [y/n]: yWiping ext4 signature on /dev/mail/mail-lv.Logical volume "mail-lv" created.
meta-data=/dev/mail/mail-lv      isize=512    agcount=4, agsize=65536 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@xuegod63 ~]# df -h  /mail-lv/
文件系统                   容量  已用  可用 已用% 挂载点
/dev/mapper/mail-mail--lv 1014M   33M  982M    4% /mail-lv

END 2019-6-16 2:35:03

转载于:https://www.cnblogs.com/yj411511/p/11029523.html

学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用相关推荐

  1. LVM管理和ssm存储管理器使用

    LVM 管理和 ssm 存储管理器使用 本节所讲内容: 1 LVM 的工作原理 2 创建 LVM 的基本步骤 3 实戓-使用 SSM 工具为公司的邮件服务器创建可劢态扩容的存储池 LVM 的基本概念 ...

  2. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  3. 学习笔记:带你十天轻松完成 Go 微服务系列(二)- 服务拆分

    学习笔记:带你十天轻松搞定 Go 微服务系列(二) 1.学习课程 2.服务拆分 2.1 按业务服务拆分 2.2 按调用方式拆分 3.创建项目目录 3.1 在 code 中新建项目 3.2 创建 mal ...

  4. LINUX学习基础篇(二十六)swap分区

    LINUX学习基础篇(二十六)swap分区 swap分区 查看swap分区大小 分配swap分区 格式化swap分区 增加swap分区 swap分区 Linux中的swap分区相当于Windows中的 ...

  5. 深度学习之图像分类(二十六)-- ConvMixer 网络详解

    深度学习之图像分类(二十六)ConvMixer 网络详解 目录 深度学习之图像分类(二十六)ConvMixer 网络详解 1. 前言 2. A Simple Model: ConvMixer 2.1 ...

  6. # java学习笔记 2020 2/8(十二)慕课网 构造方法

    java学习笔记 2020 2/8(十二)慕课网 构造方法 构造方法是一种特殊的方法,它是一个与类同名的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会 ...

  7. 趣谈网络协议笔记-二(第十六讲上)

    趣谈网络协议笔记-二(第十六讲上) 流媒体协议:如何在直播里看到美女帅哥? 自勉 给岁月以文明,而不是给文明以岁月!--<三体> 在触不到的獠牙上点火--就像不必仰望那星星就能够解决--就 ...

  8. python学习笔记4(对象/引用;多范式; 上下文管理器)

    python学习笔记4(对象/引用:多范式; 上下文管理器) ### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 21. 动态类型:对象/引用 对象和引用: 对象是 ...

  9. SilverLight学习笔记--进一步学习Isolated Storage独立存储一(理论篇)

    在"silverlight如何在客户端读取文件"以及"silverlight如何在客户端写入文件"两篇文章中我们初步接触了Isolated Storage概念. ...

最新文章

  1. 今日看点:“靠脸进站”的刷脸系统究竟是如何实现的
  2. Android平台开源项目
  3. java web oracle 分页_Oracle分页的两种方式
  4. 为什么要“男孩穷养、女孩富养”
  5. VMware支持客户构建多云未来
  6. NGINX的奇淫技巧 —— 7. IF实现数学比较功能 (2)
  7. gm怎么刷东西 rust_网游GM被玩家暴打,无奈为自己特制无敌BUFF,技能介绍格外嘚瑟...
  8. Python快速计算Fibonacci数列中第n项的方法
  9. Yii框架上传后展示图片
  10. Java Singleton类中的线程安全
  11. iosTableView 局部全部刷新以及删除编辑操作
  12. Delphi2007卸载
  13. Snagit 2021 for mac(屏幕截图工具)
  14. java高级实训输出张三李四_假设某数据库表中有一个姓名字段,查找姓名为张三和李四的条件是...
  15. Excel 2010 VBA 入门 064 按照关键字批量创建超链接
  16. 一文详解IMU模型原理和标定选型
  17. AI人工智能对机器人有什么帮助?这些用处可大了
  18. ELK系列(四)、Logstash读取nginx日志写入ES中
  19. 荣耀X10 Max发布在即 屏幕优势显著
  20. 使用circlize包绘制和弦图

热门文章

  1. 用python做下拉菜单
  2. Android左右声道的控制
  3. 如何做好Clickhouse集群的监控覆盖?
  4. 视觉slam中的一种单目稠密建图方法
  5. 魅族,一家被节操羁绊着的公司
  6. 地图制图基础(三):地图制作要求
  7. uni-app之video视频组件
  8. Linux操作系统的性能将主要取决于,高校邦Linux操作系统安全与性能调优章节测试答案...
  9. 深度分享Windows11系统全新4K高清壁纸
  10. P1463 [POI2001][HAOI2007]反素数 题解