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

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

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

LVM 的组成结构:

把一块或多块硬盘或者一个或多个分区配置成物理卷(PV)。

一个用一个或多个物理卷创建出的卷组(VG)。可以把一个卷组想象成一个单独的存储单元。

在一个卷组上可以创建多个逻辑卷。每个逻辑卷相当于一个传统意义上的分区 —— 优点是它的大小可以根据需求重新调整大小,正如之前提到的那样。

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

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

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

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

# pvcreate /dev/sdb /dev/sdc /dev/sdd

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

# pvs

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

# pvdisplay /dev/sdX

(X 即 b、c 或 d)

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

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

# vgcreate vg00 /dev/sdb /dev/sdc

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

# vgdisplay vg00

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

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

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

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

# lvcreate -n vol_projects -L 10G vg00

# lvcreate -n vol_backups -l 100%FREE vg00

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

# lvs

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

# lvdisplay

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

# lvdisplay vg00/vol_projects

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

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

# mkfs.ext4 /dev/vg00/vol_projects

# mkfs.ext4 /dev/vg00/vol_backups

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

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

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

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

# lvreduce -L -2.5G -r /dev/vg00/vol_projects

# lvextend -l +100%FREE -r /dev/vg00/vol_backups

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

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

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

# vgextend vg00 /dev/sdd

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

# vgdisplay vg00

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

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

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

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

# blkid /dev/vg00/vol_projects

# blkid /dev/vg00/vol_backups

寻找逻辑卷的 UUID

寻找逻辑卷的 UUID

为每个 LV 创建挂载点:

# mkdir /home/projects

# mkdir /home/backups

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

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects    ext4 defaults 0 0

UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4    defaults 0 0

保存并挂载 LV:

# mount -a

# mount | grep home

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

linux的lvcreate语句,linux中使用命令 vgcreate、lvcreate 和 lvextend 管理和创建 LVM相关推荐

  1. linux lvcreate,LFCS:如何使用vgcreate,lvcreate和lvextend命令管理和创建LVM - 第11部分...

    因为在LFCS考试要求有效的二月变化 2,2016年 ,我们增加了必要的专题到LFCS系列发表在这里. 为了准备这场考试,你是高度鼓励使用联邦经济竞争法系列为好. LFCS:管理LVM和创建LVM分区 ...

  2. linux wget返回值_Linux中curl命令和wget命令的使用介绍与比较

    原文链接: 这篇文章主要给大家介绍了Linux中curl命令和wget命令使用以及这两者之间的区别比较,curl和wget命令都是Linux下的工具,可以用来下载文件.文中介绍的非常详细,相信对大家具 ...

  3. linux dd 编辑,Vim编辑器中,在命令模式下的dd命令是用来( )。

    Vim编辑器中,在命令模式下的dd命令是用来( ). 更多相关问题 下列说法中不正确的是()A.-1的立方根是-1B.0的平方根与立方根相等C.-4的平方根是±2D.每个数都有一个立方 设s=11+1 ...

  4. linux创建目录的语句,Linux的 文件 和 目录 管理(基本语句)

    包括了文件和目录的创建.删除.修改,权限.压缩.搜索.分区.挂载 简单的一些命令: [ pwd ]查看当前所在目录 [ cd .. ]上级目录 [ cd ~ ]当前用户的家目录 [cd -]上次打开目 ...

  5. linux下lvm挂载设备找不到,linux – 如何在“找不到设备:设备未清除”错误消息后创建LVM快照...

    我正在尝试测试LVM,但我首先失败,可能是简单的任务 – 创建快照. 我有以下情况: root@debian:~# vgs VG #PV #LV #SN Attr VSize VFree big 1 ...

  6. linux脚本case语句,shell中的case语句,数组及函数

    case示例 ---------------------------------------------------------------------- .. echo "case&quo ...

  7. linux教程for语句,Bash 中的 For 循环详解

    循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用.在 Bash 脚本中 ...

  8. linux公司面试和工作中常用命令收藏版

    删除0字节文件 代码如下: find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 代码如下: ps -e -o "%C : %p ...

  9. linux显示编程语言语句,linux – 如何使用Glade / GtkD和D编程语言显示Hello World

    >安装在Mac,Linux或Windows计算机上编译D语言的DMD编译器.您可以获得有关此here的更多信息. >在Mac,Linux或Windows计算机上安装Glade界面设计器.使 ...

最新文章

  1. nagios服务配置
  2. 《统计学习方法》—— 逻辑斯谛回归 与 最大熵模型 的介绍以及详细推导
  3. 在Markdown中更改图像大小
  4. Linq to sql 增删改查
  5. Linux自建yum仓及相关知识详解
  6. php设置input时间格式,input[type='date']自定义样式与日历校验功能
  7. 单机游戏mysql启动不了_魔域单机版MySQL数据库启动失败解决办法
  8. 利用soapUI获取freemarker的ftl文件模板
  9. Arduino NBIoT使用方法一
  10. Github建立个人导航网站
  11. dp动态规划刷题总结
  12. css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
  13. 深入分析C#中的异步和多线程
  14. 一些关于KIRIKIRI及2等等等等的研究资料- -
  15. C++之面向对象(上)
  16. FastAdmin自定义批量操作
  17. JS的变量,使用strict模式
  18. android获取网址xml,从网址解析的Android ListFragment(sherlock)xml
  19. CPIM SRM考试通过
  20. Windows中的工作组和域

热门文章

  1. latex公式正体和斜体
  2. 夏日里的清新——南锣鼓巷的北京女孩儿们[原创街拍]
  3. 算法学习(持续更新)
  4. Python人脸识别依赖包安装
  5. python人脸识别实验报告总结_《Python人脸识别:从入门到工程实践》 ——3.7 本章小结...
  6. java kisso_开源项目之kisso
  7. asp.net(c#)全新BS架构考勤完美解决方案
  8. linux根据内容搜索指定文件
  9. 创业初期的时候,一定要亲力亲为
  10. NK4.1-WY33-计算糖果