LFCS 系列第十一讲:如何使用命令 vgcreate、lvcreate 和 lvextend 管理和创建 LVM

由于 LFCS 考试中的一些改变已在 2016 年 2 月 2 日生效,我们添加了一些必要的专题到 LFCS 系列。我们也非常推荐备考的同学,同时阅读 LFCE 系列

LFCS:管理 LVM 和创建 LVM 分区

在安装 Linux 系统的时候要做的最重要的决定之一便是给系统文件、home 目录等分配空间。在这个地方犯了错,再要扩大空间不足的分区,那样既麻烦又有风险。

逻辑卷管理 (LVM)相较于传统的分区管理有许多优点,已经成为大多数(如果不能说全部的话) Linux 发行版安装时的默认选择。LVM 最大的优点应该是能方便的按照你的意愿调整(减小或增大)逻辑分区的大小。

LVM 的组成结构:

  • 把一块或多块硬盘或者一个或多个分区配置成物理卷(PV)。
  • 一个用一个或多个物理卷创建出的卷组(VG)。可以把一个卷组想象成一个单独的存储单元。
  • 在一个卷组上可以创建多个逻辑卷。每个逻辑卷相当于一个传统意义上的分区 —— 优点是它的大小可以根据需求重新调整大小,正如之前提到的那样。

本文,我们将使用三块 8 GB 的磁盘(/dev/sdb、/dev/sdc 和 /dev/sdd)分别创建三个物理卷。你既可以直接在整个设备上创建 PV,也可以先分区在创建。

在这里我们选择第一种方式,如果你决定使用第二种(可以参考本系列第四讲:创建分区和文件系统)确保每个分区的类型都是 8e

创建物理卷,卷组和逻辑卷

要在 /dev/sdb、/dev/sdc 和 /dev/sdd上创建物理卷,运行:


  1. # pvcreate /dev/sdb /dev/sdc /dev/sdd

你可以列出新创建的 PV ,通过:


  1. # pvs

并得到每个 PV 的详细信息,通过:


  1. # pvdisplay /dev/sdX

(X 即 b、c 或 d)

如果没有输入 /dev/sdX ,那么你将得到所有 PV 的信息。

使用 /dev/sdb/dev/sdc创建卷组 ,命名为vg00(在需要时是可以通过添加其他设备来扩展空间的,我们等到说明这点的时候再用,所以暂时先保留/dev/sdd`):


  1. # vgcreate vg00 /dev/sdb /dev/sdc

就像物理卷那样,你也可以查看卷组的信息,通过:


  1. # vgdisplay vg00

由于 vg00 是由两个 8 GB 的磁盘组成的,所以它将会显示成一个 16 GB 的硬盘:

LVM 卷组列表

当谈到创建逻辑卷,空间的分配必须考虑到当下和以后的需求。根据每个逻辑卷的用途来命名是一个好的做法。

举个例子,让我们创建两个 LV,命名为 vol_projects (10 GB) 和 vol_backups (剩下的空间), 在日后分别用于部署项目文件和系统备份。

参数 -n 用于为 LV 指定名称,而 -L 用于设定固定的大小,还有 -l (小写的 L)在 VG 的预留空间中用于指定百分比大小的空间。


  1. # lvcreate -n vol_projects -L 10G vg00
  2. # lvcreate -n vol_backups -l 100%FREE vg00

和之前一样,你可以查看 LV 的列表和基础信息,通过:


  1. # lvs

或是查看详细信息,通过:


  1. # lvdisplay

若要查看单个 LV 的信息,使用 lvdisplay 加上 VG 和 LV 作为参数,如下:


  1. # lvdisplay vg00/vol_projects

逻辑卷列表

如上图,我们看到 LV 已经被创建成存储设备了(参考 LV Path 那一行)。在使用每个逻辑卷之前,需要先在上面创建文件系统。

这里我们拿 ext4 来做举例,因为对于每个 LV 的大小, ext4 既可以增大又可以减小(相对的 xfs 就只允许增大):


  1. # mkfs.ext4 /dev/vg00/vol_projects
  2. # mkfs.ext4 /dev/vg00/vol_backups

我们将在下一节向大家说明,如何调整逻辑卷的大小并在需要的时候添加额外的外部存储空间。

调整逻辑卷大小和扩充卷组

现在设想以下场景。vol_backups 中的空间即将用完,而 vol_projects 中还有富余的空间。由于 LVM 的特性,我们可以轻易的减小后者的大小(比方说 2.5 GB),并将其分配给前者,与此同时调整每个文件系统的大小。

幸运的是这很简单,只需:


  1. # lvreduce -L -2.5G -r /dev/vg00/vol_projects
  2. # lvextend -l +100%FREE -r /dev/vg00/vol_backups

减小逻辑卷和卷组

在调整逻辑卷的时候,其中包含的减号 (-) 或加号 (+) 是十分重要的。否则 LV 将会被设置成指定的大小,而非调整指定大小。

有些时候,你可能会遭遇那种无法仅靠调整逻辑卷的大小就可以解决的问题,那时你就需要购置额外的存储设备了,你可能需要再加一块硬盘。这里我们将通过添加之前配置时预留的 PV (/dev/sdd),用以模拟这种情况。

想把 /dev/sdd 加到 vg00,执行:


  1. # vgextend vg00 /dev/sdd

如果你在运行上条命令的前后执行 vgdisplay vg00 ,你就会看出 VG 的大小增加了。


  1. # vgdisplay vg00

查看卷组磁盘大小

现在,你可以使用新加的空间,按照你的需求调整现有 LV 的大小,或者创建一个新的 LV。

在启动和需求时挂载逻辑卷

当然,如果我们不打算实际的使用逻辑卷,那么创建它们就变得毫无意义了。为了更好的识别逻辑卷,我们需要找出它的 UUID (用于识别一个格式化存储设备的唯一且不变的属性)。

要做到这点,可使用 blkid 加每个设备的路径来实现:


  1. # blkid /dev/vg00/vol_projects
  2. # blkid /dev/vg00/vol_backups

寻找逻辑卷的 UUID

为每个 LV 创建挂载点:


  1. # mkdir /home/projects
  2. # mkdir /home/backups

并在 /etc/fstab 插入相应的条目(确保使用之前获得的UUID):


  1. UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0
  2. UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0

保存并挂载 LV:


  1. # mount -a
  2. # mount | grep home

挂载逻辑卷

在涉及到 LV 的实际使用时,你还需要按照曾在本系列第八讲:管理用户和用户组中讲解的那样,为其设置合适的 ugo+rwx

总结

本文介绍了 逻辑卷管理,一个用于管理可扩展存储设备的多功能工具。与 RAID(曾在本系列讲解过的 第六讲:组装分区为RAID设备——创建和管理系统备份)结合使用,你将同时体验到(LVM 带来的)可扩展性和(RAID 提供的)冗余。

在这类的部署中,你通常会在 RAID 上发现 LVM,这就是说,要先配置好 RAID 然后它在上面配置 LVM。

原文发布时间为:2016-07-21

本文来自合作伙伴“Linux中国”

时间: 2024-10-31 07:23:15

LFCS 系列第十一讲:如何使用命令 vgcreate、lvcreate 和 lvextend 管理和创建 LVM的相关文章

linux中使用命令 vgcreate、lvcreate 和 lvextend 管理和创建 LVM

由于 LFCS 考试中的一些改变已在 2016 年 2 月 2 日生效,我们添加了一些必要的专题到 LFCS 系列.我们也非常推荐备考的同学,同时阅读 LFCE 系列. 在安装 Linux 系统的时候要做的最重要的决定之一便是给系统文件.home 目录等分配空间.在这个地方犯了错,再要扩大空间不足的分区,那样既麻烦又有风险. 逻辑卷管理 (LVM)相较于传统的分区管理有许多优点,已经成为大多数(如果不能说全部的话) Linux 发行版安装时的默认选择.LVM 最大的优点应该是能方便的按照你的意愿

LFCS 系列第四讲:对存储设备分区、格式化文件系统和配置交换分区

LFCS 系列第四讲:对存储设备分区.格式化文件系统和配置交换分区 去年八月份,Linux 基金会发起了 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证,给所有系统管理员一个展现自己的机会.通过基础考试后,他们可以胜任在 Linux 上的整体运维工作:包括系统支持.一流水平的诊断和监控以及在必要之时向其他支持团队提交帮助请求等. LFCS 系列第四讲 需要注意的是,Linux 基金会认证是非常严格的,通过与否完全要看个人能力

LFCS 系列第六讲:组装分区为RAID设备——创建和管理系统备份

LFCS 系列第六讲:组装分区为RAID设备--创建和管理系统备份 Linux 基金会已经发起了一个全新的 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中级系统管理任务的认证.该认证包括:维护正在运行的系统和服务的能力.全面监控和分析的能力以及何时向上游团队请求支持的决策能力. LFCS 系列第六讲 以下视频介绍了 Linux 基

LFCS 系列第七讲:通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务

LFCS 系列第七讲:通过 SysVinit.Systemd 和 Upstart 管理系统自启动进程和服务 几个月前, Linux 基金会宣布 LFCS (Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证.这其中包括维护已经在运行的系统和服务的能力.第一手的问题查找和分析能力.以及决定何时向开发团队提交问题的能力. 第七讲: Linux 基金会认证系统管理员 下面的视频简要介绍了 Linux 基金会认证计划.

LFCS 系列第八讲:管理用户和用户组、文件权限和属性以及启用账户 sudo 访问权限

由于 Linux 是一个多用户的操作系统(允许多个用户通过不同主机或者终端访问一个独立系统),因此你需要知道如何才能有效地管理用户:如何添加.编辑.禁用和删除用户账户,并赋予他们足以完成自身任务的必要权限. (LCTT 译注:本篇原文章节顺序有误,根据理解做了调整.) 添加用户账户 添加新用户账户,你需要以 root 运行以下两条命令中的任意一条: # adduser [new_account] # useradd [new_account] 当新用户账户添加到系统时,会自动执行以下操作: 自动

LFCS 系列第十讲:学习简单的 Shell 脚本编程和文件系统故障排除

理解终端Terminals和 Shell 首先要声明一些概念. Shell 是一个程序,它将命令传递给操作系统来执行. Terminal 也是一个程序,允许最终用户使用它与 Shell 来交互.比如,下边的图片是 GNOME Terminal. Gnome Terminal 启动 Shell 之后,会呈现一个命令提示符 (也称为命令行) 提示我们 Shell 已经做好了准备,接受标准输入设备输入的命令,这个标准输入设备通常是键盘. 你可以参考该系列文章的 第一讲 如何在 Linux 上使用 GN

LFCS 系列第一讲:如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件

LFCS 系列第一讲:如何在 Linux 上使用 GNU sed 等命令来创建.编辑和操作文件 Linux 基金会宣布了一个全新的 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证计划.这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证.这些能力包括支持运行的系统服务,以及第一手的故障诊断.分析,以及为工程师团队在升级时提供明智的决策. Linux 基金会认证系统管理员--第一讲 请观看下面关于

LFCS 系列第九讲: 使用 Yum、RPM、Apt、Dpkg、Aptitude 进行 Linux 软件包管理

软件包管理 简单的说,软件包管理是系统中安装和维护软件的一种方法,这里说的维护包含更新和卸载. 在Linux早期,程序只以源代码的方式发行,还带有所需的用户使用手册和必备的配置文件,甚至更多.现如今,大多数发行商一般使用预装程序或者被称为软件包的程序集合.用户可以使用这些预装程序或者软件包安装到该发行版中.然而,Linux最伟大的一点是我们仍然能够获得程序的源代码用来学习.改进和编译. 软件包管理系统是如何工作的 如果某一个软件包需要一定的资源,如共享库,或者需要另一个软件包,这就称之为依赖性.

LFCS 系列第十二讲:如何使用 Linux 的帮助文档和工具

由于 2016 年 2 月 2 号开始启用了新的 LFCS 考试要求, 我们在 LFCS 系列系列添加了一些必要的内容.为了考试的需要,我们强烈建议你看一下LFCE 系列. LFCS: 了解 Linux 的帮助文档和工具 当你习惯了在命令行下进行工作,你会发现 Linux 已经有了许多使用和配置 Linux 系统所需要的文档. 另一个你必须熟悉命令行帮助工具的理由是,在LFCS 和 LFCE 考试中,它们是你唯一能够使用的信息来源,没有互联网也没有百度.你只能依靠你自己和命令行. 基于上面的理由