LVM条带化

简介: LVM条带化

1、条带化的概念


       一般以LVM管理的存储,一个vg中可能会有很多pv,同样的,一个lv可能跨越多块pv,为了使硬盘存储速度加快,就会用到条带化的技术,即把连续的数据分成大小相同的数据块,然后依次存储在各个pv上。类似于RAID0,使存储速度加快。但并不会使数据像RAID0一样危险容易丢失,因为在正式使用中,不会像此时做测试一样没有任何保障地将多块硬盘做成一个vg,而是普遍连接的后台存储,在划分LUN之前,已经在物理硬盘上做好RAID5或RAID1,在RAID5或RAID1的基础上再划分出多块LUN,即系统上的pv,即使pv所在硬盘损坏,但有底层的硬RAID冗余,并不会丢失数据。


2、条带化lv的创建


查询磁盘

[root@localhost ~]# ls /dev/sd*

/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1  /dev/sdd  /dev/sdd1  /dev/sde  /dev/sde1  /dev/sdf  /dev/sdf1  /dev/sdg  /dev/sdg1

#分别对/dev/sdb~sdg磁盘分,并且设置分区为8e

[root@localhost ~]# fdisk /dev/dbc

   n 创建分区

   p 选择主分区

   分区编号    回车默认

   起始位置    回车默认

   结束位置    回车默认

   t 选择8e

   p 查看分区信息

   w 保存

 

#重读分区表

[root@localhost ~]# partprobe /dev/sdb /dev/sdc /dev/sde /dev/sdf /dev/sdf /dev/sdg  

#将每块硬盘做为一个PV,先全部执行完成

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1

 Physical volume "/dev/sdb1" successfully created.

 Physical volume "/dev/sdc1" successfully created.

 Physical volume "/dev/sdd1" successfully created.

#查询pvs

[root@localhost ~]# pvs

   PV         VG     Fmt  Attr PSize   PFree  

 /dev/sda2  centos lvm2 a--  <18.00g   4.00m

 /dev/sdb1         lvm2 ---  <50.00g <50.00g

 /dev/sdc1         lvm2 ---  <50.00g <50.00g

 /dev/sdd1         lvm2 ---  <50.00g <50.00g

#创建vgs

[root@localhost ~]# vgcreate /dev/vg01 /dev/sdb1 /dev/sdc1 /dev/sdd1

 Volume group "vg01" successfully created

#查询vgs      

[root@localhost ~]# vgs

 VG     #PV #LV #SN Attr   VSize    VFree  

 centos   1   2   0 wz--n-  <18.00g    4.00m

 vg01     3   0   0 wz--n- <149.99g <149.99g

[root@localhost ~]# vgdisplay vg01

 --- Volume group ---

 VG Name               vg01

 System ID            

 Format                lvm2

 Metadata Areas        3

 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                3

 Act PV                3

 VG Size               <149.99 GiB

 PE Size               4.00 MiB

 Total PE              38397

 Alloc PE / Size       0 / 0  

 Free  PE / Size       38397 / <149.99 GiB

 VG UUID               lRj7ML-wbQt-fwrE-69DH-yTsd-xDYq-8egXVU


再创建条带化的lv,下面用到的lvextend的参数如下:


-i:此处写lv用到的pv的数量,不能超过所在vg的pv数量,一般设置与vg的pv个数相同


-I:条带单元大小,单位Kb


-L:lv的大小,默认为Mb,可带单位G,M,K


-l:小写L,分配给lv的LE个数,对应于VG中的PE,在上条vgdisplay的输出中可看到VG中一共有38397个PE。


-n:自定义lv的名字,默认从lvol0开始往下排。


为了下面测试条带化下的lvextend,所以将此vg的所有空间都给这个lv,即38397个LE,一共149G的可用空间。


[root@localhost ~]# lvcreate -i 3 -I 512 -l 38397 -n lv01 vg01

 Logical volume "lv01" created.

[root@localhost ~]# lvdisplay /dev/vg01/lv01

 --- Logical volume ---

 LV Path                /dev/vg01/lv01

 LV Name                lv01

 VG Name                vg01

 LV UUID                6oKWk2-Orir-9a7f-dzgf-pq4n-Zrm1-RJIqjh

 LV Write Access        read/write

 LV Creation host, time localhost.localdomain, 2022-11-08 17:48:37 +0800

 LV Status              available

 # open                 0

 LV Size                <149.99 GiB

 Current LE             38397

 Segments               1

 Allocation             inherit

 Read ahead sectors     auto

 - currently set to     8192

 Block device           253:2

[root@localhost ~]# mkfs.xfs /dev/vg01/lv01

 meta-data=/dev/vg01/lv01         isize=512    agcount=16, agsize=2457472 blks

          =                       sectsz=512   attr=2, projid32bit=1

          =                       crc=1        finobt=0, sparse=0

 data     =                       bsize=4096   blocks=39318528, imaxpct=25

          =                       sunit=128    swidth=384 blks

 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

 log      =internal log           bsize=4096   blocks=19200, version=2

          =                       sectsz=512   sunit=8 blks, lazy-count=1

 realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@localhost ~]# mkdir -v /mnt/lv01

 mkdir: 已创建目录 "/mnt/lv01"

[root@localhost ~]# mount /dev/vg01/lv01 /mnt/lv01/

[root@localhost ~]# dd if=/dev/zero of=/mnt/lv01/1.txt bs=1M count=3000000

#条带化测试结果

 dd: 写入"/mnt/lv01/1.txt" 出错: 设备上没有空间

 记录了153481+0 的读入

 记录了153480+0 的写出

 160935444480字节(161 GB)已复制,2123.93 秒,75.8 MB/秒

[root@localhost ~]# lvs -v --segments

 LV   VG     Attr       Start   SSize    #Str Type    Stripe  Chunk

 root centos -wi-ao----      0   <10.00g    1 linear       0     0

 swap centos -wi-ao----      0    <8.00g    1 linear       0     0

 lv01 vg01   -wi-ao----      0  <149.99g    3 striped 128.00k    0

 lv02 vg02   -wi-ao----      0   <50.00g    1 linear       0     0

 lv02 vg02   -wi-ao---- <50.00g  <50.00g    1 linear       0     0

 lv02 vg02   -wi-ao----  99.99g  <50.00g    1 linear       0     0


3、条带化lvm和非条带化lvm对比

微信图片_20230527184212.png


目录
相关文章
|
2月前
|
存储 Unix 数据挖掘
RAID5数据恢复—zfs文件系统下重组RAID5阵列的方法详解
RAID5数据恢复环境: 一台存储上有一组由12块SCSI硬盘(11块数据盘+1块热备盘)组建的RAID5磁盘阵列,FreeBSD操作系统+zfs文件系统。 RAID5故障:
|
存储
RAID与LVM
RAID与LVM
322 1
14.3.5 LVM 的 LV 磁盘快照
14.3.5 LVM 的 LV 磁盘快照
91 0
|
安全 计算机视觉
LVM&RAID 特点&区别
LVM&RAID 特点&区别
272 0
|
数据库
RAID和LVM的组合
因为RAID实际使用是使用RAID卡来控制RAID设备的构建。但是RAID设备一旦空间构建完毕,那么其分区空间无法扩展,所以我们raid一定要做足够的空间,然后通过LVM来把block空间变为PE空间,动态的去使用RAID设备的空间给不同的挂载点。
1062 0
|
存储 Linux 对象存储