
Linux系统中lvm是什么?
LVM,全称Logical Volume
Manager,即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在磁盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
一般来说,物理磁盘或分区之间是分隔的,数据无法跨盘或分区,而各磁盘或分区的大小固定,重新调整比较麻烦。LVM可以将这些底层的物理磁盘或分区整合起来,抽象成容量资源池,以划分成逻辑卷的方式供上层使用,其最主要的功能即是可以在无需关机无需重新格式化的情况下d性调整逻辑卷的大小。
LVM的写入模式
LVM有两种写入模式:线性模式和条带模式
线性模式即写完一个设备后再写另一个设备
条带模式就有点类似于RAID0,即数据是被分散写入到LVM各成员设备上的。
因为条带模式的数据不具有安全性,且LVM并不强调读写性能,故LVM默认为线性模式,这样即使一个设备坏了,其它设备上的数据还在。
LVM条带模式:交错存储数据,数据均匀地分布在VG的指定磁盘中,对于I/O密集的应用有良好的效果。
(1)条带化后可以均匀分配II/O压力,从而改善磁盘性能
(2)避免单一磁盘的热点问题
(3)可以是数据分布均匀
[root@localhost ~]# lsblk
sdb 8:16 0 1G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 3G 0 disk
sde 8:64 0 4G 0 disk
[root@localhost ~]# pvcreate /dev/sd{b..e}
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created.
[root@localhost ~]# vgcreate datavg /dev/sd{b..e}
Volume group "datavg" successfully created
[root@localhost ~]# lvcreate -L 2G -n lv_data1 -i4 datavg
Using default stripesize 64.00 KiB.
Logical volume "lv_data1" created.
[root@localhost ~]# lvdisplay -m
……..
--- Logical volume ---
LV Path/dev/datavg/lv_data1
LV Namelv_data1
VG Namedatavg
LV UUIDg5gVhI-u0cO-BwOK-7OfU-Jg0w-Gl0B-24KPz7
LV Write Accessread/write
LV Creation host, time localhost.localdomain, 2021-04-23 15:34:46 +0800
LV Status available
# open 0
LV Size2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
[root@localhost ~]# lvcreate -L 1G -i3 -I 128 -n lv_data2 datavg /dev/sdb /dev/sdc /dev/sdd
Rounding size 1.00 GiB (256 extents) up to stripe boundary size <1.01 GiB(258 extents).
Logical volume "lv_data2" created.
[root@localhost ~]# lvdisplay -m
…………….
--- Logical volume ---
LV Path/dev/datavg/lv_data1
LV Namelv_data1
VG Namedatavg
LV UUIDg5gVhI-u0cO-BwOK-7OfU-Jg0w-Gl0B-24KPz7
LV Write Accessread/write
LV Creation host, time localhost.localdomain, 2021-04-23 15:34:46 +0800
LV Status available
# open 0
LV Size2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
--- Segments ---
Logical extents 0 to 511:
Typestriped
Stripes 4
Stripe size 64.00 KiB
Stripe 0:
Physical volume /dev/sdb
Physical extents 0 to 127
Stripe 1:
Physical volume /dev/sdc
Physical extents 0 to 127
Stripe 2:
Physical volume /dev/sdd
Physical extents 0 to 127
Stripe 3:
Physical volume /dev/sde
Physical extents 0 to 127
--- Logical volume ---
LV Path/dev/datavg/lv_data2
LV Namelv_data2
VG Namedatavg
LV UUID9LDa2t-u4mi-m8Uv-KZtD-82hl-MUxY-GX6BPy
LV Write Accessread/write
LV Creation host, time localhost.localdomain, 2021-04-23 15:41:24 +0800
LV Status available
# open 0
LV Size<1.01 GiB
Current LE 258
Segments 1
Allocation inherit
Read ahead sectors auto
--- Segments ---
Logical extents 0 to 257:
Typestriped
Stripes 3
Stripe size 128.00 KiB
Stripe 0:
Physical volume /dev/sdb
Physical extents 128 to 213
Stripe 1:
Physical volume /dev/sdc
Physical extents 128 to 213
Stripe 2:
Physical volume /dev/sdd
Physical extents 128 to 213
[root@localhost ~]# dmsetup deps /dev/datavg/lv_data{1,2}
/dev/datavg/lv_data1: 4 dependencies: (8, 64) (8, 48) (8, 32) (8, 16)
/dev/datavg/lv_data2: 3 dependencies: (8, 48) (8, 32) (8, 16)
[root@localhost ~]# mkdir data{1,2}
[root@localhost ~]# mkfs.xfs /dev/datavg/lv_data
lv_data1 lv_data2
[root@localhost ~]# mkfs.xfs /dev/datavg/lv_data1
[root@localhost ~]# mkfs.xfs /dev/datavg/lv_data2
[root@localhost ~]# mount /dev/datavg/lv_data1 data1
[root@localhost ~]# mount /dev/datavg/lv_data2 data2
# dd if=/dev/zero of=/root/data1/1 bs=1M count=1024
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.000.00 96.100.000.003.90
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda 0.00 0.00 0.00 0 0
sdb2044.16 0.65138368.83 0 106544
sdc2049.3511.69138327.27 9 106512
sdd2040.26 0.00138306.49 0 106496
sde2048.0511.69138223.38 9 106432
可以看到4块磁盘均有数据同时写入
# dd if=/dev/zero of=/root/data2/2 bs=1M count=1024
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
1.040.00 47.921.040.00 50.00
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda 3.1233.33 0.00 32 0
dm-0 3.1233.33 0.00 32 0
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
dm-3 0.00 0.00 0.00 0 0
dm-4 0.00 0.00 0.00 0 0
dm-5 0.00 0.00 0.00 0 0
dm-6 0.00 0.00 0.00 0 0
sdb1129.17 9.38144000.00 9 138240
sdc1126.04 0.00144133.33 0 138368
sdd1132.2918.23144000.00 17 138240
sde 0.00 0.00 0.00 0 0
dm-7 0.00 0.00 0.00 0 0
dm-8 3386.4627.60432000.00 26 414720
可以看到3块磁盘均有数据同时写入
逻辑卷(LVM)它是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储设备之上的一个抽象层,优点在于灵活管理。特点: 1、动在线态扩容 2、离线裁剪 3、数据条带化 4、数据镜像相关特点分析,可以参考黑马程序员社区一个板块都是技术知识。我朋友在黑马学的运维,现在13k16薪。我也正在学习呢。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)