逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

LVM使用分层结构,如下图所示。

图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

LVM测试说明

本文将介绍怎么在linux中创建和管理LVM卷。我们将会分成两个部分。第一个部分,我们首先要在一个硬盘上创建多个逻辑卷,然后将它们挂载在/lvm-mount目录。然后我们将要对创建好的卷调整大小。而第二部分,我们将会从另外一块硬盘增加额外的卷到LVM中。

准备磁盘分区

通过使用fdisk,创建磁盘分区。我们需要创建3个1G分区,注意,并不要求分区的大小一致。同样,分区需要使用‘8e’类型来使他们可用于LVM。

1
# fdisk /dev/sdb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Command (m for help): n ## 新建
Command action
   e   extended
   p   primary partition (1-4)
p ## 主分区
  
Partition number (1-4): 1 ## 分区号
First cylinder (1-1044, default 1):  ## 回车用默认的1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G ## 大小
  
Command (m for help): t ## 改变类型
Selected partition 1
Hex code (type L to list codes): 8e ## LVM 的分区代码
Changed system type of partition 1 to 8e (Linux LVM)

重复上面的操作来创建其他两个分区。分区创建完成后,我们应该有类似如下的输出:

1
# fdisk -l
1
2
3
4
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  8e  Linux LVM
/dev/sdb2             133         264     1060290   8e  Linux LVM
/dev/sdb3             265         396     1060290   8e  Linux LVM

准备物理卷(PV)

刚创建的分区是用来储存物理卷的。LVM可以使用不同大小的物理卷。

1
2
3
# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3

使用下列命令检查物理卷的创建情况。下面截取部分输出。”/dev/sdb2″是一个新的”1.01 GiB”物理卷。

1
# pvdisplay
1
2
3
4
5
6
7
8
9
10
--- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name
  PV Size               1.01 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               jszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092

使用下列命令可以删除物理卷。

1
# pvremove /dev/sdb1

准备卷组(VG)

下列命令用来创建名为’volume-group1′的卷组,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3创建。

1
# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- Volume group ---
 VG Name               volume-group1
 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               3.02 GiB
 PE Size               4.00 MiB
 Total PE              774
 Alloc PE / Size       0 / 0
 Free  PE / Size       774 / 3.02 GiB
 VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

从输出中,我们可以看见卷组的使用量/总量。物理卷给卷组提供空间。只要在这个卷组中还有可用空间,我们就可以随意创建逻辑卷。

使用下列命令删除卷组。

1
# vgremove volume-group1

创建逻辑卷(LV)

下列命令创建一个名为’1v1′、大小为100MB的逻辑卷。我们使用小分区减少执行时间。这个逻辑卷使用之前创建的卷组的空间。

1
# lvcreate -L 100M -n lv1 volume-group1

逻辑卷可使用lvdisplay命令查看。

1
# lvdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                YNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlW
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

现在逻辑卷已经准备好了,我们可以格式化和挂载逻辑卷,就像其它ext2/3/4分区一样!

1
2
3
# mkfs.ext4 /dev/volume-group1/lv1
# mkdir /lvm-mount
# mount /dev/volume-group1/lv1 /lvm-mount/

一旦逻辑卷挂载,我们就可以到挂载点 /lvm-mount/ 上读写了。要创建和挂载其它的逻辑卷,我们重复这个过程。

最后,使用lvremove我们可以删除逻辑卷。

1
2
# umount /lvm-mount/
# lvremove /dev/volume-group1/lv1

扩展一个LVM卷

调整逻辑卷大小的功能是LVM最有用的功能。这个部分会讨论我们怎么样扩展一个存在的逻辑卷。下面,我们将会扩展先前创建的逻辑卷‘lv1’扩大到200MB。

注意,调整逻辑卷大小之后,也需要对文件系统调整大小进行匹配。这个额外的步骤各不相同,取决于创建文件系统的类型。在本文中,我们使用’lv1′创建了ext4类型的文件系统,所以这里的操作是针对ext4文件系统的。(ext2/3文件系统也类同)。命令的执行顺序是很重要的。

首先,我们卸载掉lv1卷

1
# umount /lvm-mount/

然后,设置卷的大小为200M

1
# lvresize -L 200M /dev/volume-group1/lv1

接下来,检查磁盘错误

1
# e2fsck -f /dev/volume-group1/lv1

运行以下命令扩展文件系统以后,ext4信息就更新了。

1
# resize2fs /dev/volume-group1/lv1

现在,这个逻辑卷应该已经扩展到200MB了。我们检查LV的状态来验证。

1
# lvdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

现在,这个逻辑卷可以再次挂载,同样这个方法也可用于其他分区。

缩减一个LVM卷

这章节介绍缩减LVM卷大小的方法。命令的顺序同样重要。并且,下列命令对ext2/3/4文件系统同样有效。

注意减少逻辑卷的大小值若小于储存的数据大小,存储在后面的数据会丢失。

首先,卸载掉卷。

1
# umount /dev/volume-group1/lv1

然后,检测磁盘错误。

1
# e2fsck -f /dev/volume-group1/lv1

接下来缩小文件系统,更新ext4信息。

1
# resize2fs /dev/volume-group1/lv1 100M

完成以后,减少逻辑卷大小

1
# lvresize -L 100M /dev/volume-group1/lv1

WARNING: Reducing active logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv1? [y/n]: y Reducing logical volume lv1 to 100.00 MiB Logical volume lv1 successfully resized

最后,验证调整后的逻辑卷大小。

1
# lvdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- Logical volume ---
  LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

http://blog.jobbole.com/71858/

转载于:https://www.cnblogs.com/chenshoubiao/p/4782265.html

Linux LVM简明教程相关推荐

  1. linux lvm分区教程,Linux LVM入门使用教程

    文章目录 [隐藏] LVM测试说明 准备磁盘分区 准备物理卷(PV) 准备卷组(VG) 创建逻辑卷(LV) 扩展一个LVM卷 缩减一个LVM卷 扩展一个卷组 逻辑卷管理LVM是一个多才多艺的硬盘系统工 ...

  2. Linux GCC简明教程(编写c语言程序)

    市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核.桌面环境(例如 GNOME.KDE.Unity 等)和各种常用的必备工具(例如 Shell.gcc.VIM. ...

  3. Linux GCC简明教程(使用GCC编译C语言程序)

    文章目录 Gedit 编辑器 GCC 编译器 1) 生成可执行程序 2) 运行可执行程序 完整的演示 分步骤编译 1) 编译(Compile) 2) 链接(Link) 市面上常见的 Linux 都是发 ...

  4. Linux GCC简明教程(使用GCC编写C语言程序)

    市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核.桌面环境(例如 GNOME.KDE.Unity 等)和各种常用的必备工具(例如 Shell.GCC.VIM. ...

  5. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  6. 共创Linux防火墙,Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  7. GCC编译器简明教程(Linux下C语言开发环境的搭建)

    GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...

  8. linux基础教程 05,Linux应用基础教程-CH05磁盘分区和LVM

    Linux应用基础教程-CH05磁盘分区和LVM (49页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 第5章 磁盘分区和 LVM主讲人 ...

  9. Linux/Unix系统下nginx+php安装简明教程

    本文转载自Linux/Unix系统下nginx+php安装简明教程,请保留转载信息~ 一.安装nginx: 1. 安装pcre库,nginx的rewrite模板需用到pcre库: mkdir -p / ...

最新文章

  1. 容器编排技术 -- 从零开始k8s
  2. 安卓固件修改工具_【固件升级】给力!安卓6.0以上设备均已升级BOOX OS 2.3系统...
  3. HDU2186 一定要记住我爱你【水题】
  4. 新手学习算法----二叉树(将一个二叉查找树按照中序遍历转换成双向链表)
  5. 关于hadoop2.4.1伪分布式系统的搭建
  6. apache sentry
  7. linux远程ssh的端口映射,SSH端口映射
  8. 莫烦python进化算法_使用遗传算法解决TSP问题(莫烦python 学习笔记)
  9. 国际版云购网站代码开发实现案例
  10. 挖金矿问题java课程设计_动态规划--国王挖金矿问题
  11. 读卡器 linux 驱动,基于Linux的公交一卡通读卡器驱动设计
  12. 谷歌大牛Jeff Dean亲自撰文:深度学习研究的黄金十年
  13. windows各版本序列号集合
  14. Linux系统swap分区扩容,swap分区扩容
  15. matlab工具箱及应用 pdf,matlab工具箱中文.pdf
  16. 大二单片机笔记,串口通信代码【郭天祥】【700字】【勿笑】【原创】
  17. 广东省计算机二级c语言真题,广东省计算机二级考试题及答案
  18. 字典的基础及字典的使用实例
  19. Linux Command sar 网卡流量
  20. k-means算法与pca结合对多特征组聚类

热门文章

  1. 这个是我的第一篇日志
  2. 瑞星布局:安全软件的时尚模式
  3. 迁移Exchange Server 2003
  4. 问题 J: 输出是m的倍数或n的倍数、但不是m和n的公倍数的数
  5. linux释放内存后设备起不来,Linux-Memory小记
  6. 数据:DeFi总锁仓量突破230亿美元
  7. SAP License:定义在制品和结果分析过账OKG8
  8. 赛锐信息:SAP进化论
  9. rdlc报表输入中文出现小方块
  10. 卷积神经网络之ResNet网络模型学习