前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux - How to use LVM in Linux

Linux - How to use LVM in Linux

作者头像
小小工匠
发布2021-08-16 15:07:00
21.1K0
发布2021-08-16 15:07:00
举报
文章被收录于专栏:小工匠聊架构

Logical Volume Manager概述

这里写图片描述
这里写图片描述

在如今,每台服务器空间都会因为我们的需求增长而不断扩展。逻辑卷可以用于RAID,SAN。单个物理卷将会被加入组以创建卷组,在卷组中,我们需要切割空间以创建逻辑卷。在使用逻辑卷时,我们可以使用某些命令来跨磁盘、跨逻辑卷扩展,或者减少逻辑卷大小,而不用重新格式化和重新对当前磁盘分区。卷可以跨磁盘抽取数据,这会增加I/O数据量。

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

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

LVM特性

  • 可以在任何时候灵活地扩展空间。
  • 可以安装和处理任何文件系统。
  • 可以通过迁移来恢复错误磁盘。
  • 可以使用快照功能恢复文件系统到先前的阶段。等等……

操作系统

操作系统 —— 安装有LVM的CentOS 6.5


创建LVM磁盘分区

在此,我们可以使用下列命令查看到物理卷(PV),卷组(VG),逻辑卷(LV)。

代码语言:javascript
复制
# pvs 
# vgs
# lvs

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

代码语言:javascript
复制
# fdisk -cu /dev/sda
  • c – 关闭DOS兼容模式,推荐使用该选项。
  • u – 当列出分区表时,会以扇区而不是柱面显示。
代码语言:javascript
复制
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)
这里写图片描述
这里写图片描述

接下来,请遵循以下步骤来创建新分区。

  • 选择n来创建新分区。
  • 选择p来创建主分区。
  • 选择我们需要创建的分区号。
  • 按Enter两次来使用整个磁盘空间。
  • 我们需要修改新创建的分区类型,输入t。
  • 选择需要修改的分区号,选择我们创建的分区号1。
  • 这里,我们需要修改类型。我们需要创建LVM,因此我们使用LVM的类型代码8e。如果不知道类型代码,按L来列出所有类型代码。
  • 打印我们创建的分区以确认。 这里我们可以看到Linux LVM的ID 8e。
  • 写入修改并退出fdisk。

重复以上步骤,为另外2个磁盘sdb和sdc创建新分区。然后重启机器,使用fdisk命令来验证分区表。

代码语言:javascript
复制
# fdisk -l
这里写图片描述
这里写图片描述

创建物理卷(PV)

现在,该使用3个磁盘来创建物理卷了。这里,我已经使用pvs命令将物理磁盘列了出来,现在只有一个默认的pvs被列出来了。

代码语言:javascript
复制
# pvs

然后,使用命令创建新的物理磁盘。

代码语言:javascript
复制
# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1

或者

# pvcreate /dev/sda1
# pvcreate /dev/sdb1
# pvcreate /dev/sdc1

再次列出磁盘来查看新创建物理磁盘。

代码语言:javascript
复制
# pvs

或者

# pvdisplay 

查看更详细信息 
这里写图片描述
这里写图片描述

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

代码语言:javascript
复制
# pvremove /dev/sda1

创建卷组(VG)

使用可用的空闲PV来创建名为tecmintaddvg的卷组,PE大小为32。显示当前卷组,我们可以看到只有带有1个PV的一个卷组在使用。

代码语言:javascript
复制
# vgs

这将使用上面创建的3个物理卷创建名为tecmintaddvg的卷组,PE大小为32MB。

代码语言:javascript
复制
# vgcreate -s 32M tecmint_add_vg /dev/sda1 /dev/sdb1 /dev/sdc1

接下来,再次运行vgs命令来验证卷组。

代码语言:javascript
复制
# vgs

或者 

# vgdisplay 
这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

理解vgs命令输出:

  1. 卷组名。
  2. 本卷组中使用的物理卷。
  3. 显示本卷组中的可用空闲空间。
  4. 卷组总大小。
  5. 本卷组中的逻辑卷,这里我们还没创建,所以是0。
  6. SN = 卷组包含的快照数量。(后面,我们会创建一个快照。)
  7. 卷组状态,如可写,可读,可调整大小,已导出,部分的和集群的。这里是wz——意为w = 可写,z = 可调整大小。
  8. 卷组中使用的物理卷(PV)数量。

使用-v命令来显示更多卷组信息

代码语言:javascript
复制
# vgs -v
这里写图片描述
这里写图片描述

获取更多关于新创建的卷组信息

代码语言:javascript
复制
# vgdisplay tecmint_add_vg
这里写图片描述
这里写图片描述
  1. 卷组名称
  2. 使用的LVM架构。
  3. 可读写,备好待用。
  4. 该卷组可以调整大小。
  5. 使用和激活的物理磁盘数量。
  6. 卷组总大小。
  7. 这里单个PE大小为32。
  8. 该卷组中可用的PE总数。
  9. 当前还没有在卷组中创建任何LV,因此它是空闲的。
  10. 该卷组的UUID。

删除卷组。

代码语言:javascript
复制
# vgremove tecmint_add_vg 

创建逻辑卷(LV)

现在,创建3个名为tecmint_documents,tecmint_manager和tecmint_public的逻辑卷。这里,我们可以看到如何分别以PE为单位和GB为单位来创建逻辑卷。

首先,使用以下命令来列出当前逻辑卷。

代码语言:javascript
复制
# lvs
这里写图片描述
这里写图片描述

这些逻辑卷处于vg_tecmint卷组中使用pvs命令来列出并查看有多少空闲空间可以创建逻辑卷。

代码语言:javascript
复制
# pvs
这里写图片描述
这里写图片描述

卷组大小为54GB,而且未被使用,所以我们可以在该组内创建LV。让我们将卷组平均划分大小来创建3个逻辑卷,就是说54GB/3 = 18GB,创建出来的单个逻辑卷应该会是18GB。

方法1: 使用PE创建逻辑卷

首先,让我们使用物理扩展(PE)为单位来创建逻辑卷。我们需要知道分配到该卷组的默认PE大小,以及总的可用PE大小来创建新的逻辑卷,运行下面的命令来获取使用中的卷组信息。

代码语言:javascript
复制
# vgdisplay tecmint_add_vg
这里写图片描述
这里写图片描述
  1. 默认分配给该卷组的PE为32MB,这里单个的PE大小为32MB。
  2. 总可用PE是1725。

只要用bc命令做一点小小的计算来看看就知道了。

代码语言:javascript
复制
# bc
1725PE/3 = 575 PE. 
575 PE x 32MB = 18400 --> 18GB
这里写图片描述
这里写图片描述

按CRTL+D退出bc。现在让我们使用575个PE来创建3个逻辑卷。

代码语言:javascript
复制
# lvcreate -l (Extend size) -n (name_of_logical_volume) (volume_group)
# lvcreate -l 575 -n tecmint_documents tecmint_add_vg
# lvcreate -l 575 -n tecmint_manager tecmint_add_vg
# lvcreate -l 575 -n tecmint_public tecmint_add_vg
  • -l – 使用扩展大小创建
  • -n – 给逻辑卷命名

使用lvs命令来列出创建的逻辑卷。

代码语言:javascript
复制
# lvs
这里写图片描述
这里写图片描述

方法2: 使用GB大小创建逻辑卷

在使用GB大小创建逻辑卷时,我们不能获得精确的大小。因此,最好的办法是用扩展。

代码语言:javascript
复制
# lvcreate -L 18G -n tecmint_documents tecmint_add_vg
# lvcreate -L 18G -n tecmint_manager tecmint_add_vg
# lvcreate -L 18G -n tecmint_public tecmint_add_vg
# lvcreate -L 17.8G -n tecmint_public tecmint_add_vg

使用lvs命令来列出创建的逻辑卷。

代码语言:javascript
复制
# lvs
这里写图片描述
这里写图片描述

这里,我们可以看到,当创建第三个LV的时候,我们不能收集到18GB空间。这是因为尺寸有小小的改变,但在使用或者尺寸来创建LV时,这个问题会被忽略。


创建文件系统

要使用逻辑卷,我们需要格式化。这里我使用ext4文件系统来创建卷,并打算挂载到/mnt。

代码语言:javascript
复制
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_public
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager
这里写图片描述
这里写图片描述

让我们在/mnt下创建目录,并将已创建好文件系统的逻辑卷挂载上去。

代码语言:javascript
复制
# mount /dev/tecmint_add_vg/tecmint_documents /mnt/tecmint_documents/
# mount /dev/tecmint_add_vg/tecmint_public /mnt/tecmint_public/
# mount /dev/tecmint_add_vg/tecmint_manager /mnt/tecmint_manager/

使用下面的命令来列出并确认挂载点。

代码语言:javascript
复制
# df -h
这里写图片描述
这里写图片描述

永久挂载

现在,这些逻辑卷是临时挂载上去的,要永久挂载,我们需要添加条目到fstab中。要达到这个目的,让我们使用下面的命令来获取挂载条目

代码语言:javascript
复制
# cat /etc/mtab

在输入来自mtab中的挂载条目内容时,我们需要在fstab中做些小小的改变,修改rw为默认。

代码语言:javascript
复制
# vim /etc/fstab

我们的fstab条目应该和下面的类似,使用wq!保存并退出fstab。

代码语言:javascript
复制
/dev/mapper/tecmint_add_vg-tecmint_documents    /mnt/tecmint_documents  ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_public       /mnt/tecmint_public     ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_manager      /mnt/tecmint_manager    ext4    defaults 0 0
这里写图片描述
这里写图片描述

获取mtab挂载条目*

这里写图片描述
这里写图片描述

打开fstab文件

这里写图片描述
这里写图片描述

添加自动挂载条目

重启前,执行mount -a命令来检查fstab条目。

代码语言:javascript
复制
# mount -av
这里写图片描述
这里写图片描述

验证fstab条目

总结

这里,我们已经了解了怎样来使用逻辑卷构建灵活的存储,从使用物理磁盘到物理卷,物理卷到卷组,卷组再到逻辑卷。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/01/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Logical Volume Manager概述
  • LVM特性
  • 操作系统
  • 创建LVM磁盘分区
  • 创建物理卷(PV)
  • 创建卷组(VG)
    • 使用-v命令来显示更多卷组信息
      • 获取更多关于新创建的卷组信息
        • 删除卷组。
        • 创建逻辑卷(LV)
          • 方法1: 使用PE创建逻辑卷
            • 方法2: 使用GB大小创建逻辑卷
            • 创建文件系统
            • 永久挂载
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档