LVM逻辑卷

因为传统的磁盘管理不能对磁盘进行磁盘管理,所以诞生了LVM技术,LVM技术最大的特色就是对磁盘进行动态管理。因为LVM的逻辑卷的大小更改能够进行动态调整,且不会出现丢失数据的状况。linux

 

LVM(Logic Volume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区管理的一种机制。对于其余的的UNIX(AIX/HP/SUM)操做系统,以及Windows系统也有相似的磁盘管理软件。web

 

LVM管理的方式很是简单,就是经过将底层的物料磁盘抽象并封装起来,而后以逻辑的方式呈现给上层应用。ide



LVM 机制的基本概念
PV(物理卷)
VG(卷组)
LV(逻辑卷)工具


image.png


  • 逻辑卷管理概念定义:测试

image.png

image.png

主要命令spa

image.png


实验环境:操作系统

VMware Workstation Pro3d

image.png


image.png

image.png

image.png

image.png

image.png

image.png

image.png

先添加一块硬盘作如下实验使用。orm


---blog

划分磁盘分区:

查看系统是否识别新添加的硬盘      fdisk -l

image.png注:/dev/sdb/为新添加的磁盘


将sdb磁盘进行分区,分出3个主分区,1个扩展分区,2个逻辑分区,分区大小全为2G.

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xb6f3b9c8 建立新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+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 获取帮助):
命令(输入 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): e 
已选择分区 4
起始 扇区 (12584960-41943039,默认为 12584960):
将使用默认值 12584960
Last 扇区, +扇区 or +size{K,M,G} (12584960-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 14 GiB

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (12587008-41943039,默认为 12587008):
将使用默认值 12587008
Last 扇区, +扇区 or +size{K,M,G} (12587008-41943039,默认为 41943039):+2G
分区 5 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (16783360-41943039,默认为 16783360):
将使用默认值 16783360
Last 扇区, +扇区 or +size{K,M,G} (16783360-41943039,默认为 41943039):+2G
分区 6 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

image.png


安装LVM管理工具

使用yum方式安装:    yum install lvm2 -y

建立PV,将磁盘分区/dev/sdb1-3 初始化为物理卷

格式:pvcreate 物理设备/分区设备

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


查看PV

image.png

注:

PV Name PV名字
VG Name 隶属的VG名字
PV Size PV的大小
Allocatable 是否可分配
PE Size 每一个PE的大小
Total PE PE的数量
  Free PE 剩余的PE
 Allocated PE 可分配的PE
 PV UUID PV的UUID号


pvs也能够查看PV信息,没有pvdisplay详细

image.png


pvscan  扫描磁盘中的物理卷

image.png


建立VG——将物理卷/dev/sdb1-3 组合成一个卷组

格式:vgcreate 卷组名(自定义)  物理卷名

image.png

image.png


一样但是使用vgs/vgscan查看

image.png


建立LV

lvcreate -L 1G -n lv01 vg01    //从vg01这个卷组中分出1G的空间给lv01

image.png

注:

-L 指定建立的LV的大小

-I 指定建立的LV的PE数量

-n LV的名字


查看LV的信息 lvdisplay

image.png

一样能够使用lvs和lvscan查看

image.png


image.png

这时的VFree从5.99g减小到了4.99g,另外的1g被分配到了lv01


格式化LV

mkfs.xfs /dev/vg01/lv01   #将/dev/vg01/lv01格式化为xfs文件系统

image.png


挂载使用

mkdir /opt/lv01   #建立用于挂载的目录

mount /dev/vg01/lv01 /opt/lv01/  #临时将逻辑卷挂载到目录下

image.png


将挂载信息写入/etc/fstab,实现开机自动挂载

image.png

mount -a  #检测/etc/fstab文件,并运行挂载


添加测试数据

向/opt/lv01写入测试数据以验证LVM的磁盘动态管理

image.png


LVM的扩容操做

LVM最大的好处就是能够对磁盘进行动态管理,并且不会丢失现有的数据

(1)LV的扩容

查看vg01剩余容量,还有4.99G可用

image.png


对lv01进行扩容:lvextend -L +1G /dev/vg01/lv01

image.png

vg从4.99变成了3.99    lv从1G变为2G 


使用dh -hT 命令查看分区使用的状况:

image.png

发现实际容量并无变化,那是由于系统还不认识刚刚添加进来的磁盘的文件系统,因此还须要对文件系统进行扩容


这里我使用的文件系统是xfs文件系统,使用如下命令去扩容:

xfs_growfs /opt/lv01/

image.png


若是是ext系列的文件系统,使用如下命令扩容:

resize2fs 设备名或挂载点


扩容后,在使用df -hT查看分区状况:

image.png


再看看挂载点/opt/lv01里面有没有变化:

image.png

挂载点目录里的数据正常,表明对lv01在线扩容完成。


(2)VG的扩容

VG的扩容有两种方法:

第一种:经过增长PV来实现扩容。

建立PV:使用/dev/sdb5来建立一个PV

pvcreate  /dev/sdb5

image.png


扩容VG:

查看如今的vg01的容量

[root@localhost lv01]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg01   3   1   0 wz--n- <5.99g <3.99g
[root@localhost lv01]# vgextend vg01 /dev/sdb5
  Volume group "vg01" successfully extended
[root@localhost lv01]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   4   1   0 wz--n- 7.98g 5.98g

image.png


第二种:经过扩展RAID设备的容量来间接对VG进行扩容,这是基于RAIDA设备作的LVM。

 须要注意是:raid设备大小变化后,须要调整PV的大小:

pvresize raid的设备名称



LV的缩减操做

缩减操做须要离线处理

(1) 卸载文件系统

image.png

(2)缩减LV

image.png


(3)挂载查看

image.png

这是由于xfs文件系统只支持增长,不支持减小。可是不是说xfs系统文件不能减小,只是缩减后须要格式化才能挂载上,可是这样操做原来的数据就丢失了


image.png

image.png

image.png

在看挂载点,没有任何数据。


若是是ext系统的话,不会出现这种结果

卸载挂载后

检查磁盘:e2fsck -f /dev/vg01/lv01

缩减文件系统:resize2fs /dev/vg01/lv01

缩减LV: lvreduce -L 1G /dev/vg01/lv01

注:文件系统和LV缩减的大小必须保持一致,1G表明缩减到的大小



移除LVM

(1)卸载挂载

(2)移除LV

image.png

image.png

lvremove /dev/vg01/lv01

vgremove vg01

pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5

到此,LVM移除完成。

相关文章
相关标签/搜索