博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识LVM及ECS上LVM分区扩容
阅读量:7236 次
发布时间:2019-06-29

本文共 11838 字,大约阅读时间需要 39 分钟。

一. LVM简介

二. LVM基本术语
三. 安装LVM
四. 创建和管理LVM**

  • 创建PV
  • 创建VG
  • 创建LV
  • LV格式化及挂载

五. ECS上LVM扩容实战(磁盘扩容)

一. 简介

LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理其实很简单,它就是通过将底层的物理磁盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过逻辑卷来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

二. LVM基本术语

物理磁盘

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/xvda、/dev/vdb等等,是存储系统最低层的存储单元。

PV(Physical Volume)- 物理卷

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘

VG(Volumne Group)- 卷组

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
LVM使用分层结构,如下图所示:

clipboard.png

三. 安装LVM

3.1 检查系统内是否安装了LVM管理工具

# rpm -qa |grep lvmlvm2-2.02.143-12.el6_9.1.x86_64lvm2-libs-2.02.143-12.el6_9.1.x86_64lvm2-devel-2.02.143-12.el6_9.1.x86_64注:目前线上的镜像基本都集成了该工具

3.2 如果没有安装,可以使用yum的方式安装

# yum -y install lvm2*

四. 创建和管理LVM

4.1 创建一个 LVM 分区

fdisk的参数(n/p/1/回车/回车/t/8e/w)

# fdisk /dev/xvdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/xvdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa2228253    Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-6527, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): Using default value 6527Command (m for help): tSelected partition 1Hex code (type L to list codes): 8eChanged system type of partition 1 to 8e (Linux LVM)Command (m for help): pDisk /dev/xvdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa2228253    Device Boot      Start         End      Blocks   Id  System/dev/xvdb1               1        6527    52428096   8e  Linux LVMCommand (m for help): w The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.

注:8e代表是lvm的分区

Command (m for help): tSelected partition 1Hex code (type L to list codes): L 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris         1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT- 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT- 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT- 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx          5  Extended        42  SFS             86  NTFS volume set da  Non-FS data     6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / . 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility    8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt          9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access      a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O         b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor       c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs         e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT             f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            1e  Hidden W95 FAT1

4.2 创建 PV

# pvcreate /dev/xvdb1Physical volume "/dev/xvdb1" successfully created

查看 PV 信息,可以看到有 30G 的容量

# pvdisplay--- NEW Physical volume ---  PV Name               /dev/xvdb1  VG Name                 PV Size               30.00 GiB  Allocatable           NO  PE Size               0     Total PE              0  Free PE               0  Allocated PE          0  PV UUID               fuWBVL-laFd-0Bgm-q1TG-EzuP-xnet-7qwHEo

注:有些信息是后补的,因此可能会有前后信息不一致的情况,请见谅

使用下列命令可以删除物理卷:

# pvremove /dev/xvdb1

4.3 创建 VG

# vgcreate vg1 /dev/xvdb1Volume group "vg1" successfully created

查看卷组信息

# vgdisplay   --- Volume group ---  VG Name               vg1  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               30.00 GiB  PE Size               4.00 MiB  Total PE              7679  Alloc PE / Size       0 / 0

从输出中,我们可以看见卷组的使用量/总量,物理卷给卷组提供空间,只要在这个卷组中还有可用空间,我们就可以创建/扩展逻辑卷。

使用下列命令删除卷组:

# vgremove vg1

4.4 创建 LV

# lvcreate -L 30G -n lv1 vg1  Volume group "vg1" has insufficient free space (7679 extents): 7680 required.     Free  PE / Size       7679 / 30.00 GiB  VG UUID               7lh871-eolr-jXhX-OD3F-kwIo-s9nU-RtSwmh

vgdisplay看有30g,但是实际创建的时候报错了,

free PE 7679 * pe size 4M /1024=29.99 ,先创建一个29G的lv出来再扩展试下

4.5 扩容 LV

# vgdisplay (看下剩下多少)

可以看到还剩下1020M,添加1020M到lv1里面

#  lvextend -L +1020M /dev/vg1/lv1

注:这个扩容是VG本身还有余量,给LV扩容余量而非物理磁盘的扩容

4.6 格式化+挂载 LVM 分区

# mkfs.ext4 /dev/vg1/lv1

挂载 LVM

# mount /dev/vg1/lv1 /lvm

查看容量信息

# df -h

五. ECS上LVM扩容实战(磁盘扩容)

5.1 控制台扩容磁盘(这里不做详细图示了)

ECS 控制台--实例列表--管理--本实例磁盘--更多--磁盘扩容

设置目标容量,确定扩容

扩容完成后需要控制台重启一下ecs实例才可以

注:如果是待挂载状态则挂载后系统内看到的就是扩容后的容量了

5.2 登陆扩容

#fdisk -l

注:查看一下磁盘信息,可以看到,数据盘已经扩容到50g,但是lvm分区还是30g

Disk /dev/xvdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa2228253    Device Boot      Start         End      Blocks   Id  System/dev/xvdb1               1        3916    31455238+  8e  Linux LVMDisk /dev/mapper/vg1-lv1: 32.2 GB, 32208060416 bytes255 heads, 63 sectors/track, 3915 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000

因为是物理磁盘级别的扩容,因此需要卸载挂载的分区,并取消分区卷组的激活

#  umount /lvm# vgchange -an vg1  0 logical volume(s) in volume group "vg1" now active

注:取消激活后,可以尝试mount /dev/vg(tab键补充)就会发现已经没有vg的路径了

将扩容后的空闲磁盘创建一个分区出来

fdisk /dev/xvdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/xvdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa2228253    Device Boot      Start         End      Blocks   Id  System/dev/xvdb1               1        3916    31455238+  8e  Linux LVMCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (3917-6527, default 3917): Using default value 3917Last cylinder, +cylinders or +size{K,M,G} (3917-6527, default 6527): Using default value 6527Command (m for help): pDisk /dev/xvdb: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa2228253    Device Boot      Start         End      Blocks   Id  System/dev/xvdb1               1        3916    31455238+  8e  Linux LVM/dev/xvdb2            3917        6527    20972857+  83  LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.

将新增的分区加到卷组里面

# vgextend vg1 /dev/xvdb2  Physical volume "/dev/xvdb2" successfully created  Volume group "vg1" successfully extended

查看卷组信息可以看到FREE PE多了出来

# vgdisplay  --- Volume group ---  VG Name               vg1  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  7  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               0  Max PV                0  Cur PV                2  Act PV                2  VG Size               50.00 GiB  PE Size               4.00 MiB  Total PE              12799  Alloc PE / Size       7679 / 30.00 GiB  Free  PE / Size       5120 / 20.00 GiB  VG UUID               9dBOCJ-KiSM-r6vK-pICt-n2tQ-fqBT-SLluiM

扩容前重新激活一下逻辑卷

# vgchange -ay vg1  1 logical volume(s) in volume group "vg1" now active

将这20G空间扩容到逻辑卷上

# lvextend -L +20G /dev/vg1/lv1   Size of logical volume vg1/lv1 changed from 30.00 GiB (7679 extents) to 50.00 GiB (12799 extents).  Logical volume lv1 successfully resized.

查看卷组信息,已经都分配完了

# vgdisplay  --- Volume group ---  VG Name               vg1  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  8  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               0  Max PV                0  Cur PV                2  Act PV                2  VG Size               50.00 GiB  PE Size               4.00 MiB  Total PE              12799  Alloc PE / Size       12799 / 50.00 GiB  Free  PE / Size       0 / 0     VG UUID               9dBOCJ-KiSM-r6vK-pICt-n2tQ-fqBT-SLluiM

重置一下逻辑卷的大小并挂载

# mount /dev/vg1/lv1 /lvm# resize2fs /dev/vg1/lv1 resize2fs 1.41.12 (17-May-2010)Filesystem at /dev/vg1/lv1 is mounted on /lvm; on-line resizing requiredold desc_blocks = 2, new_desc_blocks = 4Performing an on-line resize of /dev/vg1/lv1 to 13106176 (4k) blocks.The filesystem on /dev/vg1/lv1 is now 13106176 blocks long.# df -ThFilesystem          Type   Size  Used Avail Use% Mounted on/dev/xvda1          ext4    20G   18G  1.4G  93% /tmpfs               tmpfs  498M     0  498M   0% /dev/shm/dev/mapper/vg1-lv1 ext4    50G  180M   47G   1% /lvm# lvdisplay  --- Logical volume ---  LV Path                /dev/vg1/lv1  LV Name                lv1  VG Name                vg1  LV UUID                627piC-rDhg-M3eE-13XC-Ed8p-HCfs-PDY0c4  LV Write Access        read/write  LV Creation host, time lvm, 2018-03-21 07:21:18 +0000  LV Status              available  # open                 0  LV Size                50.00 GiB  Current LE             12799  Segments               2  Allocation             inherit  Read ahead sectors     auto  - currently set to     256  Block device           253:0

注:实际操作中如果df -h看不到扩容后的大小,看下resize2fs是不是有提示执行e2fsck的提示

# resize2fs /dev/vg1/lv1 resize2fs 1.41.12 (17-May-2010)Please run 'e2fsck -f /dev/vg1/lv1' first.

区别应是我前面挂载了所以直接resize成功,不挂载则需要检查一下磁盘信息

详情请

转载地址:http://yxgfm.baihongyu.com/

你可能感兴趣的文章
数据结构(九)查找
查看>>
JAVA常用的集合类
查看>>
Unity3D MainCamera和NGUI UICamera的小插曲
查看>>
gnuWin32-mini-2016.10.30
查看>>
Cassandra博客更新预告
查看>>
Linux 格式化和挂载数据盘
查看>>
mybatis 中 prefix="" suffixOverrides="," prefixOverrides="" suffix=""
查看>>
分类算法三(贝叶斯)
查看>>
栈 后缀表达式
查看>>
笔记:2016-6-17
查看>>
动态SQL番外篇
查看>>
项目中数据库超时设置整理
查看>>
boot和settlement日志在不断加大,需要清理
查看>>
mysql #1062 – Duplicate entry '1′ for key ‘PRIMARY'
查看>>
【转载】小小的公共库,大大的耦合,你痛过吗?
查看>>
图的遍历(深度优先搜索法和广度优先搜索法)
查看>>
在线更新问题 HDU5877 线段树
查看>>
[转] 深入浅出mongoose-----包括mongoose基本所有操作,非常实用!!!!!
查看>>
CSS创建三角形(小三角)的几种方法
查看>>
Python简单基础小程序
查看>>