您的位置:首页 > 运维架构 > Linux

linux系统之逻辑卷管理器LVM建立以及LVM相关操作

2017-11-05 21:18 375 查看

一.出现LVM的原因和解决办法

Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。

而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

二.LVM的简介

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。



三.LVM的基本术语

物理存储介质(PhysicalStorageMedia)

指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。

*物理卷(Physical Volume,PV)

指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

*卷组(Volume Group,VG)

类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

*逻辑卷(Logical Volume,LV)

类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

*物理块(Physical Extent,PE)

每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

*逻辑块(Logical Extent,LE)

逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。


大体分布图为:



四.lvm的建立

1.划分物理分区,并修改分区标签为lvm

##############################################

[root@server ~]# fdisk /dev/vdb

Command (m for help): n

Select (default p): p

First sector (2048-20971519, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +2G

Partition 1 of type Linux and of size 2 GiB is set

reate vg0 /dev/vdb1

Command (m for help): wq

Command (m for help): p

Command (m for help): t

Selected partition 1

Hex code (type L to list all codes): l

Hex code (type L to list all codes): 8e

Command (m for help): wq

The partition table has been altered!

###############################################


2.[root@server ~]# pvcreate /dev/vdb1  ###创建物理卷

  Physical volume "/dev/vdb1" successfully created

3.vgcPartition number (1-4, default 1):

[root@server ~]# vgcreate vg0 /dev/vdb1 ###创建物理卷组

  Volume group "vg0" successfully created

4.[root@server ~]# lvcreate -L 100M -n lv0 vg0 ###创建逻辑卷

  Logical volume "lv0" created

5.[root@server ~]# mkfs.xfs /dev/vg0/lv0  ###格式化设备

6.[root@server ~]# mount /dev/vg0/lv0 /wrh  ###设备挂载投入使用

###监控命令

  ###打开另外一个shell

[root@server ~]# watch -n 1 'pvs;echo ==========;vgs;echo ==========;lvs;echo ==========;df -h /wrh'


五.lvm的拉伸

1.在xfs文件系统下:

当vg中剩余容量充足的时候

   lvextend -L 400M /dev/vg0/lv0             ###拉伸到400M

   xfs_growfs /dev/vg0/lv0

当cg中剩余容量不足的时候

   >新建分区

   >pvcreate /dev/vdb2

   >vgextend vg0 /dev/vdb2

   >lvextend -L 700M /dev/vg0/lv0      ###拉伸到700M

   >xfs_growfs /dev/vg0/lv0

2.在ext文件系统中:

####格式化之前要先卸载

####格式化为ext4文件系统

mkfs.ext4 /dev/vg0/lv0

(1)拉伸

lvextend -L 400M /dev/vg0/lv0

resize2fs /dev/vg0/lv0

(2)缩减

*对设备的缩减     (补充查看文件大小 du -sh)

umount /wrh  ##卸载

e2fsck -f /dev/vg0/lv0  ###扫描设备文件大小 保护内容不被破坏  确定不超出最大范围

resize2fs /dev/vg0/lv0 200M

mount /dev/vg0/lv0 /wrh/

lvreduce -L 200M /dev/vg0/lv0

*对卷组的缩减

pvmove /dev/vdb1 /dev/vdb2 ###当要移除的分区存在数据,那么则需要把数据迁移到其他pv中

vgreduce vg0 /dev/vdb1

pvremove /dev/vdb1

四.lvm的块照

创建快照

[root@server ~]# lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0

删除块照

lvremove /dev/vg0/lv0

vgremove vg0

pvremove /dev/vdb2


(补充partprobe)同步分区表
使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,
而使用partprobe则可以使kernel重新读取分区 信息,从而避免重启系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: