LVM逻辑卷

逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

物理卷 PV 卷组 VG 逻辑卷 LV 基本单元 PE

(硬盘格式化成为PV,PV的单位为PE,每个PE默认大小为4MiB, 多个PV合成一个VG ,VG作为一个整体再划分为多个LV以供我们使用,即使用的是LV)

PV 相当于硬件,买的多大就多大,扩展不了

LV 一盘水饺

VG 全部面团团在一起

PE 所包水饺的大小

一、创建逻辑卷

第1步:让新添加的两块硬盘设备支持LVM技术。

选中所用的关机的虚拟机,鼠标右键选择设置

重启虚拟机 init 6 或者 鼠标重启

[root@localhost ~]# yum install -y lvm2

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

2 /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc

3 [root@localhost ~]# pvcreate /dev/sdb /dev/sdc

4 Physical volume "/dev/sdb" successfully created.

5 Physical volume "/dev/sdc" successfully created.

第2步:把两块硬盘设备加入到storage卷组中,然后查看卷组的状态。

1 [root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc

2 Volume group "storage" successfully created

3 [root@localhost ~]# vgdisplay

4 ‐‐‐ Volume group ‐‐‐

5 VG Name storage

6 System ID

7 Format lvm2

8 Metadata Areas 2

9 Metadata Sequence No 1

10 VG Access read/write

11 VG Status resizable

12 MAX LV 0

13 Cur LV 0

14 Open LV 0

15 Max PV 0

16 Cur PV 2

17 Act PV 2

18 VG Size 39.99 GiB

19 PE Size 4.00 MiB

20 Total PE 10238

21 Alloc PE / Size 0 / 0

22 Free PE / Size 10238 / 39.99 GiB

23 VG UUID YCh944‐XIga‐w4Uo‐ppVO‐m2CC‐XtdL‐Y1AgnY

24 ………………省略部分输出信息………………

第3步:切割出一个约为160MB的逻辑卷设备。

这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为

单位,所使用的参数为-L。例如,使用-L 160M生成一个大小为160MB的逻辑卷。另外一

种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例

如,使用-l 40可以生成一个大小为40×4MB=160MB的逻辑卷。

1 [root@localhost ~]# lvcreate ‐n lv ‐L 160M storage

2 Logical volume "lv" created.

3 # 另一种创建逻辑卷的方式为 lvcreate ‐n lv ‐l 40 storage

4 [root@localhost ~]# lvdisplay

5 ‐‐‐ Logical volume ‐‐‐

6 LV Path /dev/storage/lv

7 LV Name lv

8 VG Name storage

9 LV UUID jKe29V‐IAC5‐zren‐OsoK‐01cU‐nwPU‐xW5paJ

10 LV Write Access read/write

11 LV Creation host, time localhost.localdomain, 2019‐07‐23 19:20:45 +0800

12 LV Status available

13 # open 0

14 LV Size 160.00 MiB

15 Current LE 40

16 Segments 1

17 Allocation inherit

18 Read ahead sectors auto

19 ‐ currently set to 8192

20 Block device 253:2

21 ………………省略部分输出信息………………

第4步:把生成好的逻辑卷进行格式化,然后挂载使用。

Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链

接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/

卷组名称/逻辑卷名称)。

1 [root@localhost ~]# mkfs.ext4 /dev/storage/lv

2 mke2fs 1.42.9 (28‐Dec‐2013)

3 Filesystem label=

4 OS type: Linux

5 Block size=1024 (log=0)

6 Fragment size=1024 (log=0)

7 Stride=0 blocks, Stripe width=0 blocks

8 40960 inodes, 163840 blocks

9 8192 blocks (5.00%) reserved for the super user

10 First data block=1

11 Maximum filesystem blocks=33816576

12 20 block groups

13 8192 blocks per group, 8192 fragments per group

14 2048 inodes per group

15 Superblock backups stored on blocks:

16 8193, 24577, 40961, 57345, 73729

17

18 Allocating group tables: done

19 Writing inode tables: done

20 Creating journal (4096 blocks): done

21 Writing superblocks and filesystem accounting information: done

22 [root@localhost ~]# mkdir /lv

23 [root@localhost ~]# mount /dev/storage/lv /lv

第5步:查看挂载状态,并写入到配置文件,使其永久生效。

1 [root@localhost ~]# df ‐h

2 Filesystem Size Used Avail Use% Mounted on

3 /dev/mapper/rhel‐root 17G 5.6G 12G 33% /

4 devtmpfs 478M 0 478M 0% /dev

5 tmpfs 489M 0 489M 0% /dev/shm

6 tmpfs 489M 6.7M 482M 2% /run

7 tmpfs 489M 0 489M 0% /sys/fs/cgroup

8 /dev/sr0 3.6G 3.6G 0 100% /media/cdrom

9 /dev/sda1 1014M 139M 876M 14% /boot

10 tmpfs 98M 0 98M 0% /run/user/0

11 /dev/mapper/storage‐lv 151M 1.6M 139M 2% /lv

12 [root@localhost ~]# echo "/dev/storage/lv /lv ext4 defaults 0 0" >> /etc/fstab

二、扩容逻辑卷

用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组

成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备

和挂载点的关联。

第1步:把lv扩容至300MB

1 [root@localhost ~]# umount /lv

2 [root@localhost ~]# lvextend ‐L 300M /dev/storage/lv

3 Size of logical volume storage/lv changed from 160.00 MiB (40 extents) to

300.00 MiB (75 extents).

4 Logical volume storage/lv successfully resized.

第2步:检查硬盘完整性,并重置硬盘容量。

1 [root@localhost ~]# e2fsck ‐f /dev/storage/lv

2 e2fsck 1.42.9 (28‐Dec‐2013)

3 Pass 1: Checking inodes, blocks, and sizes

4 Pass 2: Checking directory structure

5 Pass 3: Checking directory connectivity

6 Pass 4: Checking reference counts

7 Pass 5: Checking group summary information

8 /dev/storage/lv: 11/40960 files (0.0% non‐contiguous), 10825/163840 block

s

9 [root@localhost ~]# resize2fs /dev/storage/lv

10 resize2fs 1.42.9 (28‐Dec‐2013)

11 Resizing the filesystem on /dev/storage/lv to 307200 (1k) blocks.

12 The filesystem on /dev/storage/lv is now 307200 blocks long.

第3步:重新挂载硬盘设备并查看挂载状态。

1 [root@localhost ~]# mount ‐a

2 [root@localhost ~]# df ‐h

3 Filesystem Size Used Avail Use% Mounted on

4 /dev/mapper/rhel‐root 17G 5.6G 12G 33% /

5 devtmpfs 478M 0 478M 0% /dev

6 tmpfs 489M 0 489M 0% /dev/shm

7 tmpfs 489M 6.7M 482M 2% /run

8 tmpfs 489M 0 489M 0% /sys/fs/cgroup

9 /dev/sr0 3.6G 3.6G 0 100% /media/cdrom

10 /dev/sda1 1014M 139M 876M 14% /boot

11 tmpfs 98M 0 98M 0% /run/user/0

12 /dev/mapper/storage‐lv 287M 2.1M 266M 1% /lv

三、缩小逻辑卷

相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境

中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩

容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行

缩容操作前记得先把文件系统卸载掉。

第1步:卸载逻辑卷,检查文件系统的完整性。

1 [root@localhost ~]# umount /lv

2 [root@localhost ~]# e2fsck ‐f /dev/storage/lv

3 e2fsck 1.42.9 (28‐Dec‐2013)

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/storage/lv: 11/77824 files (0.0% non‐contiguous), 15987/307200 block

s

第2步:把逻辑卷lv的容量减小到100MB

1 [root@localhost ~]# resize2fs /dev/storage/lv 100M

2 resize2fs 1.42.9 (28‐Dec‐2013)

3 Resizing the filesystem on /dev/storage/lv to 102400 (1k) blocks.

4 The filesystem on /dev/storage/lv is now 102400 blocks long.

5 [root@localhost ~]# lvreduce ‐L 100M /dev/storage/lv

6 WARNING: Reducing active logical volume to 100.00 MiB.

7 THIS MAY DESTROY YOUR DATA (filesystem etc.)

8 Do you really want to reduce storage/lv? [y/n]: y

9 Size of logical volume storage/lv changed from 300.00 MiB (75 extents) to

100.00 MiB (25 extents).

10 Logical volume storage/lv successfully resized.

第3步:重新挂载文件系统并查看系统状态。

1 [root@localhost ~]# mount ‐a

2 [root@localhost ~]# df ‐h

3 Filesystem Size Used Avail Use% Mounted on

4 /dev/mapper/rhel‐root 17G 5.6G 12G 33% /

5 devtmpfs 478M 0 478M 0% /dev

6 tmpfs 489M 0 489M 0% /dev/shm

7 tmpfs 489M 6.7M 482M 2% /run

8 tmpfs 489M 0 489M 0% /sys/fs/cgroup

9 /dev/sr0 3.6G 3.6G 0 100% /media/cdrom

10 /dev/sda1 1014M 139M 876M 14% /boot

11 tmpfs 98M 0 98M 0% /run/user/0

12 /dev/mapper/storage‐lv 93M 1.6M 85M 2% /lv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值