LVM逻辑卷管理器

逻辑卷解释:
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而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是相同的,并且一一对应。

查看卷信息:
查看物理卷信息:pvdisplay /dev/sdb -----可以查看逻辑卷组名称VG Name
[root@localhost ~]# pvdisplay /dev/sdb
— Physical volume —
PV Name /dev/sdb
VG Name ken
PV Size 20.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 5119
Free PE 5069
Allocated PE 50
PV UUID KaBeh7-BEIB-bMtL-2HJn-Ufd9-SL1R-1Ih9qW

查看卷组信息:vgdisplay ken
[root@localhost ~]# vgdisplay ken
— Volume group —
VG Name ken
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 50 / 200.00 MiB
Free PE / Size 10188 / <39.80 GiB
VG UUID dk0mpH-xpav-FG8D-U4L3-bKa4-W6d4-H7P9Ib

查看逻辑卷信息: lvdisplay /dev/mapper/ken-ken1
[root@localhost ~]# lvdisplay /dev/mapper/ken-ken1
— Logical volume —
LV Path /dev/ken/ken1
LV Name ken1
VG Name ken
LV UUID X6Qzcf-G5E8-KQLh-ZQTX-2UZt-DBN3-nGq4pH
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-03-29 21:30:29 +0800
LV Status available
#open 1
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:2

常用的LVM部署命令:
在这里插入图片描述
部署逻辑卷
一、让两块硬盘支持LVM技术:
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
Physical volume “/dev/sdb” successfully created.
Physical volume “/dev/sdc” successfully created.
二、创建卷组
[root@localhost ~]# vgcreate ken /dev/sdb /dev/sdc
Volume group “ken” successfully created —ken为卷组名称可以自定义。
三、创建逻辑卷
切割出一个100M的逻辑卷设备
这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。
[root@localhost ~]# lvcreate -n ken1 -L 200M ken
Logical volume “ken1” created.
四、把生成好的逻辑卷进行格式化
[root@localhost ~]# mkfs.ext4 /dev/ken/ken1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
五、挂载使用
[root@localhost ~]# mount /dev/mapper/ken-ken1 /root/LVDATA/
[root@localhost ~]#

Linux扩容逻辑卷ext4格式
第一步:卸载
[root@ken ~]# umount /test1
第二步:把ken1逻辑卷扩展到300M
[root@ken ~]# umount /test1
[root@ken ~]# lvextend -L 300M /dev/ken/ken1
Size of logical volume ken/ken1 changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
Logical volume ken/ken1 successfully resized.
第三步:检查磁盘完整性
[root@ken ~]# e2fsck -f /dev/ken/ken1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/ken/ken1: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks
第四步:重置硬盘容量
[root@ken ~]# resize2fs /dev/ken/ken1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/ken/ken1 to 307200 (1k) blocks.
The filesystem on /dev/ken/ken1 is now 307200 blocks long.
第五步:重新挂载
可以发现现在已经是300M了
[root@ken ~]# mount /dev/ken/ken1 /test1
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ken-ken1 287M 2.0M 266M 1% /test1
Linux扩容逻辑卷xfs格式
注意:

  1. xfs格式只能扩容,不能减小!

  2. xfs格式无需卸载,支持在线扩容
    第一步:创建一个逻辑卷并格式化为xfs格式
    [root@ken ~]# lvcreate -n lv_xfs -L 300M ken
    Logical volume “lv_xfs” created.
    [root@ken ~]# mkfs.xfs /dev/ken/lv_xfs
    meta-data=/dev/ken/lv_xfs isize=512 agcount=4, agsize=19200 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=1 finobt=0, sparse=0
    data = bsize=4096 blocks=76800, 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@ken ~]# mount /dev/ken/lv_xfs /ken
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ken-lv_xfs 297M 16M 282M 6% /ken
第三步:在线扩容至600M
[root@ken ~]# lvextend -L 600M /dev/ken/lv_xfs
Size of logical volume ken/lv_xfs changed from 300.00 MiB (75 extents) to 600.00 MiB (150 extents).
Logical volume ken/lv_xfs successfully resized.
[root@ken ~]# xfs_growfs /dev/ken/lv_xfs
meta-data=/dev/mapper/ken-lv_xfs isize=512 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=76800, 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 76800 to 153600
第四步:查看磁盘信息
发现xfs格式的逻辑卷已经扩容至600M
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ken-lv_xfs 597M 16M 582M 3% /ken

Linux缩小逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。
第一步:卸载
[root@ken ~]# umount /test1/
第二步:检查系统完整性
[root@ken ~]# e2fsck -f /dev/ken/ken1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/ken/ken1: 11/75088 files (9.1% non-contiguous), 15637/307200 blocks

第三步:大小重置
[root@ken ~]# resize2fs /dev/ken/ken1 200M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/ken/ken1 to 204800 (1k) blocks.
The filesystem on /dev/ken/ken1 is now 204800 blocks long.

第四步:缩小到200M
[root@ken ~]# lvreduce -L 200M /dev/ken/ken1
WARNING: Reducing active logical volume to 200.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce ken/ken1? [y/n]: y
Size of logical volume ken/ken1 changed from 300.00 MiB (75 extents) to 200.00 MiB (50 extents).
Logical volume ken/ken1 successfully resized.
第五步:重新挂载使用
[root@ken ~]# mount /dev/ken/ken1 /test1/
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ken-ken1 190M 1.6M 175M 1% /test1
Linux删除逻辑卷
第一步:取消挂载

[root@ken ~]# umount /test1/

第二步:删除逻辑卷设备

[root@ken ~]# lvremove /dev/ken/ken1
Do you really want to remove active logical volume ken/ken1? [y/n]: y
Logical volume “ken1” successfully removed

第三步:删除卷组

[root@ken ~]# vgremove ken
Volume group “ken” successfully removed

第四步:删除物理卷

[root@ken ~]# pvremove /dev/sdb /dev/sdc
Labels on physical volume “/dev/sdb” successfully wiped.
Labels on physical volume “/dev/sdc” successfully wiped.

摘自:https://www.cnblogs.com/zhouby/p/10683974.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值