700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux--逻辑卷管理器

Linux--逻辑卷管理器

时间:2018-12-24 13:12:13

相关推荐

Linux--逻辑卷管理器

这章我们学习了解一下逻辑卷管理器的相关概念以及实际操作。

一.概念简介

逻辑卷管理器是允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小;

是允许在多个物理设备间重新组织文件系统 。

在此,我们先了解一下物理卷的概念, 物理卷是用固定大小的物理区域来定义的 ,表示为PE。

当我们将设备指定为物理卷时,用一个或者多个物理卷来创建一个卷组。

所以可以知道,PE便是逻辑卷的最小单位。

在物理卷上创建逻辑卷之后可以在逻辑卷上创建文件系统。

那么学习逻辑卷,可以应用在哪些方面,又或者说,逻辑卷的用处体现在什么方面?

由逻辑卷的概念我们可以知道很明显的用处,便是重新设定文件系统大小。

随着对磁盘的使用,块设备以及文件系统的剩余空间不够,此时就需要使用逻辑卷对文件系统进行在线拉伸,

这样既能确保文件系统大小扩展,又可以保证业务正常运行以及保留数据。

二.创建LVM过程

1.新增分区或增加新的硬盘

如果新增硬盘,注意在VMware添加后,需要在终端输入 echo '- - -' > /sys/class/scsi_host/host0/scan,识别新磁盘。

如果是分区,则需要注意分区的ID设置为8e,fdisk 选项t来修改分区ID

2.创建物理卷pv

pvcreate /dev/sdX /dev/sdXn /dev/md1:创建sdX,sdXn为md1物理卷pv

1 [root@mmmm(mei) ~]# pvcreate /dev/sdd /dev/sde /dev/sdf2 Physical volume "/dev/sdd" successfully created3 Physical volume "/dev/sde" successfully created4 Physical volume "/dev/sdf" successfully created

查看pv相关命令:

pvs:查看所有pv物理卷

1 [root@mmmm(mei) ~]# pvs2 PV VG Fmt Attr PSize PFree3 /dev/sdd lvm2 ---- 1.00g 1.00g4 /dev/sde lvm2 ---- 1.00g 1.00g5 /dev/sdf lvm2 ---- 1.00g 1.00g

pvdisplay [/dev/sdX]:查看某物理卷详细信息

1 [root@mmmm(mei) ~]# pvdisplay /dev/sdd 2 "/dev/sdd" is a new physical volume of "1.00 GiB"#描述 3 --- NEW Physical volume --- 4 PV Name/dev/sdd 5 VG Name #由于第一步创建pv,并没有创建vg,所以此处为空 6 PV Size1.00 GiB 7 Allocatable NO 8 PE Size0 9 Total PE 010 Free PE011 Allocated PE012 PV UUIDgUwnnl-CZO1-hidM-0cAz-ijeE-mL2R-9t2dEK

3.创建卷组vg

vgcreate [-s xM] vgName /dev/sdX …… :选项-s指定PE大小,创建卷组,组名+成员

1 [root@mmmm(mei) ~]# vgcreate -s 16M testvg /dev/sdd /dev/sde /dev/sdf2 Volume group "testvg" successfully created

vgs:查看所有卷组vg

1 [root@mmmm(mei) ~]# vgs2 VG#PV #LV #SN Attr VSize VFree3 testvg 3 0 0 wz--n- 2.95g 2.95g #三个1G的pv组成,可查看是否正确组成卷组vg

vgdisplay [vgname]:查看某卷组详细信息

1 [root@mmmm(mei) ~]# vgdisplay testvg 2 --- Volume group --- 3 VG Nametestvg 4 System ID 5 Formatlvm2 6 Metadata Areas 3 7 Metadata Sequence No 1 8 VG Access read/write 9 VG Status resizable10 MAX LV011 Cur LV012 Open LV013 Max PV014 Cur PV315 Act PV316 VG Size2.95 GiB17 PE Size16.00 MiB# -s 指定PE大小18 Total PE 18919 Alloc PE / Size 0 / 0 20 Free PE / Size 189 / 2.95 GiB21 VG UUIDo1lhj2-SnLl-4kVa-jDPn-jHXF-0Bcd-gfqThl

4.创建逻辑卷lv

lvcreate -l pe num /-L size -n lvname vgname:创建逻辑卷 -l指定PE数量,-L指定大小

1 [root@mmmm(mei) ~]# lvcreate -L 1G -n testlv testvg2 Logical volume "testlv" created.

lvs:查看所有逻辑卷lv

1 [root@mmmm(mei) ~]# lvs2 LVVGAttr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert3 testlv testvg -wi-a----- 1.00g

lvdisplay [/dev/vgname/lvname]:查看某逻辑卷详细信息

1 [root@mmmm(mei) ~]# lvdisplay /dev/testvg/testlv 2 --- Logical volume --- 3 LV Path/dev/testvg/testlv 4 LV Nametestlv 5 VG Nametestvg 6 LV UUID3DA5wa-GIUg-qtJt-0wY4-j8uT-8LEd-vzSnid 7 LV Write Access read/write 8 LV Creation host, time mmmm, -08-11 21:31:27 +0800 9 LV Status available# 有时候可以禁用逻辑卷10 # open 011 LV Size1.00 GiB12 Current LE 6413 Segments214 Allocation inherit15 Read ahead sectorsauto16 - currently set to25617 Block device 253:0

5.挂载,在这里需要注意的是,在挂载前需要对逻辑卷进行格式化,也可以对pv格式化再进行创建vg、lv

1 [root@mmmm(mei) ~]# mount /dev/testvg/testlv /testlv2 mount: you must specify the filesystem type3 [root@mmmm(mei) ~]# mkfs.ext4 /dev/testvg/testlv 4 mke2fs 1.41.12 (17-May-)5 Filesystem label=6 OS type: Linux.......

1 [root@mmmm(mei) ~]# mount /dev/testvg/testlv /testlv2 [root@mmmm(mei) ~]# df /testlv/3 Filesystem 1K-blocks Used Available Use% Mounted on4 /dev/mapper/testvg-testlv5999320 1284 945608 1% /testlv

三.删除过程

1.卸载umont

2.lvremove

1 [root@mmmm(mei) ~]# lvremove /dev/testvg/testlv 2 Do you really want to remove active logical volume testlv? [y/n]: y3 Logical volume "testlv" successfully removed

3.vgremove vgmage

1 [root@mmmm(mei) ~]# vgs2 VG #PV #LV #SN Attr VSize VFree3 testvg 2 0 0 wz--n- 1.97g 1.97g4 [root@mmmm(mei) ~]# vgremove testvg5 Volume group "testvg" successfully removed

4.使用pvremove 命令:pvremove + pvname即可

1 [root@mmmm(mei) ~]# pvremove /dev/sdd2 Labels on physical volume "/dev/sdd" successfully wiped

四.拓展已存在逻辑卷

第一种情况,需要扩展的pe数量

vg可以提供 lvextend -L +500M /dev/testvg/testlv

resize2fs /dev/testvg/testlv

或者lvextend中指定 -r 选项,即:lvextend -L +500M -r /dv/testvg/testlv

1 [root@mmmm(mei) ~]# lvextend -L +1G /dev/testvg/testlv# -L 选项注意:+表示在原有大小基础上增加,直接跟数字表示变成该数字大小2 Size of logical volume testvg/testlv changed from 1.00 GiB (64 extents) to 2.00 GiB (128 extents).3 Logical volume testlv successfully resized.4 [root@mmmm(mei) ~]# resize2fs /dev/testvg/testlv 5 resize2fs 1.41.12 (17-May-)6 Filesystem at /dev/testvg/testlv is mounted on /testlv; on-line resizing required7 old desc_blocks = 1, new_desc_blocks = 18 Performing an on-line resize of /dev/testvg/testlv to 524288 (4k) blocks.9 The filesystem on /dev/testvg/testlv is now 524288 blocks long.

1 [root@mmmm(mei) ~]# lvs2 LVVGAttr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert3 testlv testvg -wi-ao---- 2.00g

第二种情况,vg空间不够,需先扩展vg

扩展vg就是往vg中加pv,这里命令使用结合上面所使用的,便不多介绍。

1.加硬盘,或创建分区等来增加block device

2.创建pv

pvcreate /dev/sdb

3.扩展vg

vgextend vgmage /dev/sdb

4.lvextend -L 4G -r /dev/vgmage/lv01

第三种,减小逻辑卷

在这里需要注意的是,减小逻辑卷一定要特别注意,不能减小有数据的区,防止损坏数据。

那我们如何知道哪些块设备是空闲的呢?

这里就需要用到文件格式化的命令——e2fsck,对块设备

另一方面我们需要知道,一切皆文件,即需要保证文件系统永远小于块设备,所以需要

先减少文件系统大小。具体步骤如下:

1 [root@mmmm(mei) ~]# umount /testlv/ 2 [root@mmmm(mei) ~]# e2fsck -f /dev/testvg/testlv 3 e2fsck 1.41.12 (17-May-) 4 Pass 1: Checking inodes, blocks, and sizes 5 Pass 2: Checking directory structure 6 Pass 3: Checking directory connectivity 7 Pass 4: Checking reference counts 8 Pass 5: Checking group summary information 9 /dev/testvg/testlv: 11/131072 files (0.0% non-contiguous), 16812/524288 blocks10 [root@mmmm(mei) ~]# resize2fs /dev/testvg/testlv 1000M11 resize2fs 1.41.12 (17-May-)12 Resizing the filesystem on /dev/testvg/testlv to 256000 (4k) blocks.13 The filesystem on /dev/testvg/testlv is now 256000 blocks long.14 15 [root@mmmm(mei) ~]# lvreduce -L 1000M /dev/testvg/testlv 16 Rounding size to boundary between physical extents: 1008.00 MiB.17 WARNING: Reducing active logical volume to 1008.00 MiB.18 THIS MAY DESTROY YOUR DATA (filesystem etc.)19 Do you really want to reduce testvg/testlv? [y/n]: y20 Size of logical volume testvg/testlv changed from 2.00 GiB (128 extents) to 1008.00 MiB (63 extents).21 Logical volume testlv successfully resized.22 [root@mmmm(mei) ~]# mount -a23 [root@mmmm(mei) ~]# lvs24 LVVGAttr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert25 testlv testvg -wi-a----- 1008.00m

五.XFS文件系统的在线扩展

xfs文件系统创建逻辑卷步骤同ext一样,不一样的xfs文件系统的在拓展

在这里多加注意的是,xfs文件系统不支持减小逻辑卷。

1 root@localhost(mei) ~]# pvcreate /dev/sdc /dev/sdd /dev/sde 2 Physical volume "/dev/sdc" successfully created. 3 Physical volume "/dev/sdd" successfully created. 4 Physical volume "/dev/sde" successfully created. 5 [root@localhost(mei) ~]# vgcreate testvg /dev/sdc /dev/sdd /dev/sde -s 16M #指定PE大小 6 Volume group "testvg" successfully created 7 [root@localhost(mei) ~]# lvcreate -l 2 -n testlv testvg#指定PE个数, 8 Logical volume "testlv" created. 9 [root@localhost(mei) ~]# lvdisplay /dev/testvg/testlv 10 --- Logical volume ---11 LV Path/dev/testvg/testlv12 LV Nametestlv13 VG Nametestvg14 LV UUIDfBiNq7-tp3F-C5gy-37u9-t7bU-fXkL-PyYAZG15 LV Write Access read/write16 LV Creation host, time localhost.localdomain, -08-12 19:38:01 +080017 LV Status available18 # open 019 LV Size32.00 MiB #即两个PE大小20 Current LE 221 Segments122 Allocation inherit23 Read ahead sectorsauto24 - currently set to819225 Block device 253:3

第一种情况,需要扩展的pe数量,vg可以提供

lvextend -L +500M /dev/vgmage/lv01

xfs_growfs /dev/vgmage/lv01 或 lvextend中指定-r

1 [root@localhost(mei) ~]# lvextend -L 1600M -r /dev/testvg/testlv 2 Size of logical volume testvg/testlv changed from <1.47 GiB (94 extents) to 1.56 GiB (100 extents). 3 Logical volume testvg/testlv successfully resized. 4 meta-data=/dev/mapper/testvg-testlv isize=512 agcount=2, agsize=4096 blks 5= sectsz=512 attr=2, projid32bit=1 6= crc=1 finobt=0 spinodes=0 7 data= bsize=4096 blocks=8192, imaxpct=25 8= sunit=0swidth=0 blks 9 naming =version 2 bsize=4096 ascii-ci=0 ftype=110 log=internalbsize=4096 blocks=855, version=211= sectsz=512 sunit=0 blks, lazy-count=112 realtime =none extsz=4096 blocks=0, rtextents=013 data blocks changed from 8192 to 409600

第二种情况,vg空间不够,需先扩展vg,扩展vg就是往vg中加pv

1.加硬盘,或创建分区等来增加block device

2.创建pv

pvcreate /dev/sdb

3.扩展vg

vgextend vgmage /dev/sdb

4.lvextend -L 4G -r /dev/vgmage/lv01

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。