LVM的全称为Logical Volume

Manager,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume

group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical

volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。它的结构如下图所示:

图1

LVM(逻辑分区管理)中的几个概念:

PV(physical

volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。它只是在物理分区中划出了一个特殊的区域,用于记载与LVM相关的管理参数。 VG(volume

group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。

LV(logical

volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。

PE(physical

extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。

LE(logical

extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。由于受内核限制的原因,一个逻辑卷(Logic

Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了逻辑卷的最大容量,4

MB(默认) 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大的PE。在Red

Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2

的倍数。

下面我们通过一个实例来说明如何创建LVM:

1.准备物理分区(Physical

Partions)

首先,我们需要选择用于

LVM 的物理存储器。这些通常是标准分区,但也可以是已创建的 Linux Software RAID

卷。这里我利用fdisk命令,将sdb、sdc两块磁盘分了两个区sdb1、sdc1,

通过fdisk的t指令指定分区为8e类型(Linux LVM) 。如图2所示。 

图2

2.创建物理卷PV(Physical Volumes)

[root@cfbdb5 oracle]#pvcreate

/dev/sdb1

Physical volume "/dev/sdb1"

successfully created

[root@cfbdb5 oracle]#pvcreate

/dev/sdc1 Physical volume "/dev/sdc1"

successfully created

3.创建卷组VG(Volume

Groups),命名为vg_test

[root@cfbdb5 ~]#vgcreate

vg_test /dev/sdb1

Volume group "vg_test"

successfully created

使用卷组查看命令vgdisplay显示卷组情况:

[root@cfbdb5 oracle]#vgdisplay

--- Volume group ---

VG Name  vg_test

System ID  Format  lvm2

Metadata Areas

1

Metadata Sequence No

6

VG Access  read/write

VG Status  resizable

MAX LV  0

Cur LV  1

Open LV  1

Max PV  0

Cur PV  1

Act PV  1

VG Size  19.99

GB

PE Size  4.00

MB

Total PE  5118

Alloc PE / Size

2560 /

10.00 GB

Free  PE /

Size  2558

/ 9.99 GB

VG UUID  YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc

4.创建逻辑卷LV(Logical

Volumes) ,命名为test_lv

创建逻辑卷的命令为lvcreate,-l

参数为定PE数来设定逻辑分区大小,也可以使用-L参数直接指定逻辑分区大小,-n参数指定逻辑分区名称。

[root@cfbdb5 oracle]#lvcreate -l 2000 -n

lv_test vg_test

Logical volume "lv_test"

created

也可以使用-L参数

[root@cfbdb5 oracle]#lvcreate -L 10G -n

lv_test vg_test

Rounding up size to full

physical extent 19.99 GB

Logical volume "lv_test"

created

使用lvdisplay命令查看逻辑卷情况:

[root@cfbdb5 oracle]#lvdisplay

--- Logical volume ---

LV Name  /dev/vg_test/lv_test

VG Name  vg_test

LV UUID  kgUoMy-W1qG-7tAQ-dI5j-Z2KO-a8Td-mXAFbc

LV Write Access

read/write

LV Status  available

# open  0

LV Size  19.99 GB

Current LE  5118

Segments  1

Allocation  inherit

Read ahead sectors

auto

- currently set to

256

Block device  253:2

5.创建文件系统,并挂载

在逻辑卷上创建ext3文件系统:

[root@cfbdb5 oracle]#mkfs -t

ext3

/dev/vg_test/lv_test

[root@cfbdb5 oracle]#mount

/dev/vg_test/lv_test /opt/oracle/

[root@cfbdb5 oracle]# df -h

Filesystem  Size

Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

16G

4.7G  11G  32%

/

/dev/sda1  99M  27M  67M

29% /boot

tmpfs  872M  0  872M  0%

/dev/shm

/dev/mapper/vg_test-lv_test

9.9G

151M  9.2G  2%

/opt/oracle

管理LVM

LVM的最大好处就是可以动态地调整分区大小,而无须重新启动机器,下面让我们来体验一下吧!继续上面的实例,现假设逻辑卷/dev/vg_test/lv_test空间不足,需要增加其大小,我们分两种情况讨论:

1.卷组中有剩余的空间

通过vgdisplay命令可以检查当前卷组空间使用情况:

[root@cfbdb5 oracle]#vgdisplay

--- Volume group ---

VG Name  vg_test

System ID  Format  lvm2

Metadata Areas

1

Metadata Sequence No

6

VG Access  read/write

VG Status  resizable

MAX LV  0

Cur LV  1

Open LV  1

Max PV  0

Cur PV  1

Act PV  1

VG Size  19.99

GB

PE Size  4.00

MB

Total PE  5118

Alloc PE / Size

2560 /

10.00 GB

Free  PE /

Size  2558

/ 9.99 GB

VG UUID  YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc

确定当前卷组剩余空间9.99GB,剩余PE数量为2558个。在这里将所有的剩余空间全部增加给逻辑卷

/dev/vg_test/lv_test。

[root@cfbdb5 oracle]# lvextend -l +2558

/dev/vg_test/lv_test

Extending logical volume

lv_test to 19.99 GB

Logical volume lv_test

successfully resized

也可以通过-L直接指定大小,通过 +/- 来 增加/减小

空间。

修改逻辑卷大小后,通过resize2fs来修改文件系统的大小。

[root@cfbdb5 oracle]#resize2fs

/dev/vg_test/lv_test

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/vg_test/lv_test is mounted on /opt/oracle;

on-line resizing required

Performing an on-line resize of /dev/vg_test/lv_test to 5240832

(4k) blocks.

The filesystem on /dev/vg_test/lv_test is now 5240832 blocks

long.

再次查看文件系统的大小:

[root@cfbdb5 oracle]#df -h

Filesystem  Size

Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

16G

4.7G  11G  32%

/

/dev/sda1  99M  27M  67M

29% /boot

tmpfs  872M  0  872M  0%

/dev/shm

/dev/mapper/vg_test-lv_test

20G

156M  19G  1%

/opt/oracle

2.卷组中空间不足

当卷组中没有足够的空间用于扩展逻辑卷的大小时,就需要增加卷组的容量,而增加卷组容量的惟一办法就是向卷组中添加新的物理卷。 首先需要对新增加的磁盘进行分区、创建物理卷等工作。),接下来是利用vgextend命令将新的物理卷加入到卷组中,

我们这里使用/dev/sdc1。

[root@cfbdb5 oracle]#vgextend vg_test /dev/sdc1

Volume group "vg_test"

successfully extended

[root@cfbdb5 oracle]#vgdisplay

--- Volume group ---

VG Name  vg_test

System ID  Format  lvm2

Metadata Areas

2

Metadata Sequence No

8

VG Access  read/write

VG Status  resizable

MAX LV  0

Cur LV  1

Open LV  1

Max PV  0

Cur PV  2

Act PV  2

VG Size  59.98

GB

PE Size  4.00

MB

Total PE  15356

Alloc PE / Size

5118 /

19.99 GB

Free  PE /

Size  10238

/ 39.99 GB

VG UUID  YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc

完成卷组的扩容后,就可以按照第一种情况的方法完成逻辑卷的扩容,最终实现分区的动态调整。

linux+4t分区+扩容lvm,Linux中利用LVM实现分区动态扩容相关推荐

  1. oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法

    Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...

  2. linux mmc分区_【经验记录】如何给嵌入式Linux的SD/MMC卡驱动中添加多个分区

    How to add multi partition for SD/MMC card in Linux Driver 之所以写这个,是因为,在这个过程中,自己明显感觉到了,做事情一定要有一定的方法,方 ...

  3. mac删除恢复分区|如何在Mac中恢复丢失的分区

    始终存在这样的情况:Mac中的文件丢失,被错误删除或者只是丢失.分区也是如此.Mac中的分区也可能丢失或删除,这会让您失去保存在其上的全部文件.导致分区丢失的常见原因有: 硬盘崩溃 病毒攻击,电涌 不 ...

  4. linux文件存储管理,深入探讨Linux文件系统管理小结

    [IT168 技术]经过长时间学习Linux文件系统管理,于是和大家分享一下,由于Linux 的 成本低与开放源代码文件系统 ,除了已在开发者群体中广泛流行,它亦是现时网站供应商最常使用的平台.下面就 ...

  5. linux eval命令详解,linux命令详解——eval

    shell中的eval 功能说明:从新运算求出参数的内容. 语 法:eval [参数] 补充说明:eval可读取一连串的参数,而后再依参数自己的特性来执行. 参 数:参数不限数目,彼此之间用分号分开. ...

  6. Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动...

    Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动 原文:Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux ...

  7. 从源码分析常见的基于Array的数据结构动态扩容机制

    本文的写作冲动来源于今晚看到的老赵的一则微博"大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Di ...

  8. linux 扩展zhu分区,Linux分区调整(LVM和非LVM环境中扩容和缩小)

    前言:我的上一篇博文详细介绍了磁盘.格式以及分区知识,里面也涉及了LVM,本文主要实践下LVM和非LVM环境中Linux分区如何扩容和缩小. 分区调整原理: Linux磁盘分区和磁盘格式紧密相连,想要 ...

  9. linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结

    物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...

最新文章

  1. 李宏毅深度学习——第一天(Bias and Variance)
  2. c语音 udp最大长度_c语言udp自定义头文件 网络通信程序
  3. mysql性能测试工具msyqlslap_mysqlslap工具测试mysql DB的性能
  4. 【C++】【TinyXml】xml文件的读写功能使用——写xml文件
  5. SnipperImages(Silverlight DEMO)控件设计之--Slider和ColorSlider
  6. 剑指OFFER之二进制中1的个数(九度OJ1513)
  7. 动态规划(冬令营课堂笔记)
  8. Ado.Net读取Excel常见问题总结
  9. ASUS蓝屏和重装系统之后驱动问题总结
  10. 使用xsd文件验证xml
  11. 汉字编码与拼音输入法
  12. 电脑状态栏中,声音图标不见了怎么办?三招帮你找回!
  13. OA实施分析:OA系统选型警惕哪些陷阱
  14. 跨行入测绘,看航测小白如何实现纯免相控作业
  15. 文本摘要评测工具ROUGE的搭建和测试
  16. 静态重定位和动态重定位
  17. 修改北斗AR地球仪激活验证
  18. 猫眼api html,猫眼电影数据抓取
  19. Seata源码走读分析
  20. 竞业协议“下沉”,普通程序员逃不过的坑

热门文章

  1. 任发科:DevOps的前世来生,从《目标》、《凤凰项目》到《持续交付》
  2. 球球速刷LC--BFS DFS 二轮
  3. MATLAB导入Excel时间格式
  4. Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件
  5. 移柯L620接入电信云平台
  6. 超级好用的7个程序员笔记软件,你最常用的是哪个?
  7. ubuntu添加自定义vga输出分辨率
  8. 大学STEM教育的技能水平和收获
  9. skylin TerraExplorer自定义飞行路线如何监听结束事件
  10. 软件开发的各个生命周期