Linux系统中lvm是什么?有什么作用?

Linux系统中lvm是什么?有什么作用?,第1张

在学习Linux知识的过程中,大家都会接触到很多专业术语,让人琢磨不透,完全不知道是什么意思,比如:LVM。那么Linux系统中lvm是什么?LVM中文意思为逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,接下来我们来看看详细的内容介绍。

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薪。我也正在学习呢。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8349272.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存