标签 LVM 下的文章

LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。

Take Snapshot in LVM

在LVM中录制快照

如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件已经存在了。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。

快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。

前置阅读

我的服务器设置

  • 操作系统 — 安装有LVM的CentOS 6.5
  • 服务器IP — 192.168.0.200

步骤1: 创建LVM快照

首先,使用‘vgs’命令检查卷组中的空闲空间以创建新的快照。

# vgs
# lvs

Check LVM Disk Space

检查LVM磁盘空间

正如你所见,在vgs命令输出中,我们可以看到有8GB的剩余空闲空间。所以,让我们为我的名为tecmint\_datas的卷创建快照。处于演示的目的,我将会使用以下命令来创建1GB的快照卷。

# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

或者

# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

上面的两个命令都是干得同一件事:

  • -s – 创建快照
  • -n – 为快照命名

Create LVM Snapshot

创建LVM快照

此处,是对上面高亮要点的说明。

  1. 我在此创建的快照的大小。
  2. 创建快照。
  3. 创建快照名。
  4. 新的快照名。
  5. 要创建快照的卷。

如果你想要移除快照,可以使用‘lvremove’命令。

# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

Remove LVM Snapshot

移除LVM快照

现在,使用以下命令列出新创建的快照。

# lvs

Verify LVM Snapshot

验证LVM快照

上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是tecmint\_datas。是的,因为我已经为tecmint\_datas l-volume创建了一个快照。

Check LVM Snapshot Space

检查LVM快照空间

让我们添加一些新文件到tecmint\_datas里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。

# lvs

Check Snapshot Status

检查快照状态

你看到了,现在已经用掉了51%的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。

# lvdisplay vg_tecmint_extra/tecmint_data_snap

View Snapshot Information

查看快照信息

再来对上面图片中高亮的要点作个清楚的说明。

  1. 快照逻辑卷名称。
  2. 当前使用的卷组名。
  3. 读写模式下的快照卷,我们甚至可以挂载并使用该卷。
  4. 快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。
  5. 该快照属于tecmint\_datas逻辑卷。
  6. 逻辑卷在线并可用。
  7. 我们录制快照的源卷大小。
  8. 写时复制表大小,Cow = copy on Write,这是说对tecmint\_data卷所作的任何改变都会写入此快照。
  9. 当前使用的快照大小,我们的tecmintdata有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmintdatas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)
  10. 给出快照组块的大小。

现在,让我们复制超过1GB的文件到tecmint\_datas。让我们看看会发生什么。如果你那么做了,你将会见到‘Input/output error’这样的错误信息,它告诉你快照超出空间大小了。

Add Files to Snapshot

添加文件到快照

如果该逻辑卷满了,它就会自动丢失新的数据,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。tecmint\_datas的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。

步骤2: 在LVM中扩展快照

如果我们需要在超过容量前扩展快照卷的大小,我们可以使用以下命令来完成此项任务。

# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

现在,那里有总计2GB大小的快照空间。

Extend LVM Snapshot

扩展LVM快照

接下来,使用以下命令来验证新的大小和写时复制表。

# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

要知道快照卷的大小使用%

# lvs

Check Size of Snapshot

检查快照大小

然而,如果你的快照大小和源卷一样,我们就没有必要担心这些问题了。

步骤3: 恢复快照或合并

要恢复快照,我们首先需要卸载文件系统。

# unmount /mnt/tecmint_datas/

Un-mount File System

卸载文件系统

只想检查挂载点是否卸载成功,可以使用下面的命令。

# df -h

Check File System Mount Points

检查文件系统挂载点

这里,我们的挂载已经被卸载,所以我们可以继续恢复快照。要恢复快照,可以使用lvconvert命令。

# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

Restore LVM Snapshot

恢复LVM快照

在合并完成后,快照卷将被自动移除。现在我们可以使用df命令来查看分区大小。

# df -Th

Check Size of Snapshot

在快照卷自动移除后,你可以用下面的命令查看逻辑卷大小。

# lvs

Check Size of Logical Volume

检查逻辑卷大小

重要:要自动扩展快照,我们可以通过修改配置文件来进行。对于手动扩展,我们可以使用lvextend。

使用你喜欢的编辑器打开lvm配置文件。

# vim /etc/lvm/lvm.conf

搜索单词autoextend。默认情况下,该值和下图中的类似。

LVM Configuration

LVM配置

修改此处的10075,这样自动扩展的起始点就是75,而自动扩展百分比为20,它将自动扩容百分之20

如果快照卷达到75%,它会自动为快照卷扩容20%。这样,我们可以自动扩容了。使用wq!来保存并退出。

这将把快照从超载导致下线事故中拯救出来,这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法,让我们在下一个话题中来讨论吧。


via: http://212.71.234.61/take-snapshot-of-logical-volume-and-restore-in-lvm/

作者:Babin Lonston 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

前面我们已经了解了怎样使用LVM创建弹性的磁盘存储。这里,我们将了解怎样来扩展卷组,扩展和缩减逻辑卷。在这里,我们可以缩减或者扩展逻辑卷管理(LVM)中的分区,LVM也可称之为弹性卷文件系统。

前置需求

什么时候我们需要缩减卷?

或许我们需要创建一个独立的分区用于其它用途,或者我们需要扩展任何空间低的分区。遇到这种情况时,使用 LVM我们可以很容易地缩减大尺寸的分区,以及扩展空间低的分区,只要按下面几个简易的步骤来即可。

我的服务器设置 —— 需求

  • 操作系统 – 安装有LVM的CentOS 6.5
  • 服务器IP – 192.168.0.200

如何扩展卷组以及缩减逻辑卷

扩展逻辑卷

目前,我们已经有一个PV,VG和2个LV。让我们用下面的命令来列出它们。

# pvs
# vgs
# lvs

Logical Volume Extending

逻辑卷扩展

在物理卷和卷组中没有空闲空间可用了,所以,现在我们不能扩展逻辑卷的大小。要扩展,我们需要添加一个物理卷(PV),然后通过扩展vg来扩展卷组,这样我们就会得到足够大的空间来扩展逻辑卷大小了。所以,首先我们应该去添加一个物理卷。

要添加一个新PV,我们必须使用fdisk来创建一个LVM分区。

# fdisk -cu /dev/sda
  • 选择n来创建新分区。
  • 选择p来创建主分区。
  • 选择我们需要创建的分区号。
  • 如果有其它可用磁盘,请按1
  • 使用t来修改分区类型。
  • 输入8e来将分区类型修改为Linux LVM。
  • 使用p来打印创建的分区(这里我们没有使用该选项)。
  • w写入修改。

完成后重启系统。

Create LVM Partition

创建LVM分区

使用fdisk列出并检查我们创建的分区。

# fdisk -l /dev/sda

Verify LVM Partition

验证LVM分区

接下来,使用下列命令来创建新PV(物理卷)。

# pvcreate /dev/sda1

使用下面的命令来验证pv。

# pvs

Create Physical Volume

创建物理卷

扩展卷组

添加该pv到vg\_tecmint卷组来扩展卷组的大小,以获取更多空间来扩展lv

# vgextend vg_tecmint /dev/sda1

让我们检查现在正在使用的卷组的大小。

# vgs

Extend Volume Group

扩展卷组

我们甚至可以看到哪个PV用于创建使用中的特定卷组。

# pvscan

Check Volume Group

检查卷组

这里,我们可以看到卷组所处的物理卷。我们已经添加了一个pv,而且它完全空着。在扩展逻辑卷之前,让我们先看看我们所拥有的各个卷组的大小。

Check All Logical Volume

检查所有逻辑卷

  • LogVol00用于Swap。
  • LogVol01用于/。
  • 现在我们有16.50GB大小的空间用于/(root)。
  • 当前有4226物理扩展(PE)可用。

现在,我们打算去扩展/分区LogVol01。在扩展后,我们可以像上面那样列出它的大小以确认。我们能可以使用GB或PE来扩展,这一点我已经在LVM第一部分解释过了,这里我使用PE来扩展。

要获取可用的物理扩展大小,运行以下命令。

# vgdisplay

Check Available Physical Size

检查可用的物理扩展

总共有4607空闲PE可用,亦即有18GB空间空间可用。因此,我们可以将我们的逻辑卷扩展到18GB这么大。让我们使用PE大小来扩展。

# lvextend -l +4607 /dev/vg_tecmint/LogVol01

使用+来添加更多空间。在扩展后,我们需要改变文件系统大小,使用以下命令。

# resize2fs /dev/vg_tecmint/LogVol01

Expand Logical Volume 扩展逻辑卷

  • 用来使用物理扩展扩展逻辑卷的命令。
  • 这里我们可以看到它从16.51GB扩展到了34GB。
  • 如果文件系统已被挂载并处于使用中,改变文件系统大小。
  • 要扩展逻辑卷,我们不需要卸载文件系统

现在,让我们看看当前使用的改变大小后的逻辑卷。

# lvdisplay

Resize Logical Volume

改变逻辑卷大小

  • LogVol01用于扩展的卷 /。
  • 扩展后,从16.50GB上升到了34.50GB。
  • C当前扩展,在扩展前有4226,我们已经添加了4607个扩展,因此现在有8833。

现在,如果我们检查可用的vg的话,空闲PE将会是0。

# vgdisplay

查看扩展的结果。

# pvs
# vgs
# lvs

Verify Resize Partition

验证分区大小改变

  • 添加的新物理卷。
  • 卷组vg\_tecmint从17.51GB扩展到了35.50GB。
  • 逻辑卷LogVol01从16.51GB扩展到了34.50GB。

这里,我们已经完成扩展卷组和逻辑卷的过程。让我们一起迈向逻辑卷管理中一些有趣的部分。

缩减逻辑卷(LVM)

这里,我们将了解如何缩减逻辑卷。人人都说它很危险,在缩减lvm的时候可能会导致灾难。缩减lvm在逻辑卷管理中比其它部分要来得确实有趣得多。

  • 在开始之前,备份好数据总是对的,这样如果出错,就不会头痛了。
  • 要缩减逻辑卷,需要小心翼翼地完成5个步骤。
  • 在扩展一个卷的时候,我们可以在该卷挂载时扩展它(在线),但对于缩减,我们必须在缩减前卸载文件系统。

让我们来了解一下下面这5个步骤。

  • 卸载文件系统以便缩减。
  • 在卸载后检查文件系统。
  • 缩减文件系统。
  • 5减少当前逻辑卷大小。
  • 再检查文件系统以防出错。
  • 将文件系统再次挂载回去。

为了演示,我已经创建了独立的卷组和逻辑卷。这里,我将缩减逻辑卷tecmintreducetest。现在它有18GB大小,我们需要将它缩减到10GB而不丢失数据。也就是说,我们需要从18GB中减少8GB。卷中已经有4GB被使用。

18GB ---> 10GB

在缩减大小的时候,我们只需要缩减8GB,所以在缩减后它总计会有10GB。

# lvs

Reduce Logical Volume

缩减逻辑卷

这里,我们可以看到文件系统信息。

# df -h

Check File System Size

检查文件系统大小

  • 卷大小是18GB。
  • 它已经使用了3.9GB。
  • 可用空间是13GB。

首先,卸载挂载点。

# umount -v /mnt/tecmint_reduce_test/

Unmount Parition

卸载分区

然后,使用以下命令来检查文件系统错误。

# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test

Scan Parition for Errors

扫描分区错误

注意:必须通过所有文件系统检查的5个步骤,若未完全通过,则你的文件系统可能存在问题。

接下来,缩减文件系统。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8GB

Reduce File System

缩减文件系统

使用GB来缩减逻辑卷。

# lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Logical Partition

缩减逻辑分区

要使用PE来缩减逻辑卷,我们需要知道默认PE大小和卷组的总PE大小,以进行一次小小的计算来得出准确的缩减大小。

# lvdisplay vg_tecmint_extra

这里,我们需要使用bc命令来做一些小计算来获得10GB的PE大小。

1024MB x 10GB = 10240MB or 10GB

10240MB / 4PE = 2048PE

CTRL+D来退出BC。

Calculate PE Size

计算PE大小

使用PE来缩减大小。

# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Size Using PE

使用PE来缩减大小

将文件系统大小调整回去。在这一步中,如果发生任何错误,这就意味着我们已经将文件系统搞乱了。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test

Resize File System

将文件系统挂载回同样的挂载点。

# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/

Mount File System

挂载文件系统

检查分区和文件的大小。

# lvdisplay vg_tecmint_extra

这里,我们可以看到最后的结果,逻辑已经被缩减到10GB。

Verify Logical Volume Size

在本文中,我们已经了解了如何来扩增卷组、逻辑卷以及缩减逻辑卷。在下一部分(第三部分)中,我们将了解如何为逻辑卷做快照并将它恢复到更早的状态。


via: http://www.tecmint.com/extend-and-reduce-lvms-in-linux/

作者:Babin Lonston 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

逻辑卷管理器(LVM)让磁盘空间管理更为便捷。如果一个文件系统需要更多的空间,可以在它的卷组中将空闲空间添加到其逻辑卷中,而文件系统可以根据你的意愿调整大小。如果某个磁盘启动失败,用于替换的磁盘可以使用卷组注册成一个物理卷,而逻辑卷扩展可以将数据迁移到新磁盘而不会丢失数据。

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

LVM特性

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

我的服务器设置 - 需求

  • 操作系统 —— 安装有LVM的CentOS 6.5
  • 服务器IP地址 —— 192.168.0.200

在Linux中创建LVM磁盘存储

1. 我们已经在虚拟磁盘(VDA)中使用了带LVM的CentOS 6.5操作系统。在此,我们可以使用下列命令查看到物理卷(PV),卷组(VG),逻辑卷(LV)。

# pvs 
# vgs
# lvs

Check Physical Volumes检查物理卷
下面是上面截图中各个参数的说明。

  • 物理磁盘大小(PV Size)
  • 用作虚拟磁盘vda的磁盘
  • 卷组大小(VG Size)
  • 卷组名称(vg\_tecmint)
  • 逻辑卷名称(LogVol00,LogVol01)
  • LogVol00分配给swap,大小1GB
  • LogVol01分配给/,大小16.5GB

从上面看,我们可以知道VDA磁盘中没有足够的空闲空间。

2. 为了创建一个新卷组,我们需要在这台服务器上添加额外的3个硬盘。3个驱动器不是强制使用的,只要一个就足够用来创建新的VG,并在其中创建LV了。我在这里添加了更多的磁盘,目的只是用于演示和更多命令功能的说明。

下面是我已经额外添加的磁盘。

sda, sdb, sdc

# fdisk -l

Verify Added Disks验证添加的磁盘

  • 用于操作系统(CentOS 6.5)的默认磁盘。
  • 默认磁盘上定义的分区(vda1 = swap),(vda2 = /)。
  • 额外添加的磁盘Disk1,Disk2,Disk3。

各个磁盘大小都是20GB,默认的卷组的PE大小为4MB,我们在该服务器上配置的卷组使用默认PE。

Volume Group Display卷组显示

  • VG Name – 卷组名称。
  • Format – LVM架构使用LVM2。
  • VG Access – 卷组为读写模式,备好待用。
  • VG Status – 卷组可调整大小,如果我们需要添加更多空间,我们可以扩展更多。
  • Cur LV – 当前卷组中有2个逻辑卷。
  • CurPV and Act PV – 当前使用的物理磁盘是1(vda),已被激活,因此我们可以使用该卷组。
  • PE Size – 磁盘的物理扩展大小,可以定义使用PE,或者GB,LVM的默认PE大小是4MB。例如,如果我们需要创建5GB大小的逻辑卷,我们可以使用总计1280 PE,你们懂我的意思么?

这里解释一下 -> 1024MB = 1GB,这样的话,1024MB x 5 = 5120PE = 5GB,然后5120/4 = 1280,4是默认的PE大小。

  • Total PE – 该卷组具有的PE数量。
  • Alloc PE – 总的PE使用量,已经使用的全部PE,4482 x 4PE = 17928。
  • Free PE – 这里因为已经使用,所以没有空闲PE了。

3. 只使用了vda,当前CentOS在使用lvm的vda物理磁盘中安装了/boot,/,swap,,该磁盘中没有空间剩余。

# df -TH

Check the Disk Space检查磁盘空间
上面的图片中显示了用于根的挂载点已使用了18GB,因此没有空闲空间可用了。

4. 那么,让我们创建新的物理卷(pv),以及名为tecmintaddvg的卷组(vg),并在其中创建逻辑卷(lv)。这里,我们可以创建4个逻辑卷,分别名为 tecmint\_documentstecmint\_manager以及tecmintaddvg

我们可以扩展当前使用的卷组以获得更多空间。但在这里,我们将要做的是,创建新的卷组,然后在里面肆意妄为吧。过会儿,我们可以看到怎样来扩展使用中的卷组的文件系统。

在使用新磁盘前,我们需要使用fdisk来对磁盘分区。

# fdisk -cu /dev/sda
  • c – 关闭DOS兼容模式,推荐使用该选项。
  • u – 当列出分区表时,会以扇区而不是柱面显示。

Create New Physical Partitions创建新的物理分区
接下来,请遵循以下步骤来创建新分区。

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

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

# fdisk -l

Verify Partition Table验证分区表

创建物理卷

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

# pvs

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

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

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

# pvs

Create Physical Volumes创建物理卷

创建卷组

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

# vgs

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

# vgcreate -s 32M tecmint_add_vg /dev/sda1 /dev/sdb1 /dev/sdc1

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

# vgs

Create Volume Groups创建卷组Verify Volume Groups验证卷组
理解vgs命令输出:

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

7. 使用命令来显示更多卷组信息。

# vgs -v

Check Volume Group Information检查卷组信息
8. 要获取更多关于新创建的卷组信息,运行以下命令。

# vgdisplay tecmint_add_vg

List New Volume Groups列出新卷组

  • 卷组名称
  • 使用的LVM架构。
  • 可读写,备好待用。
  • 该卷组可以调整大小。
  • 使用和激活的物理磁盘数量。
  • 卷组总大小。
  • 这里单个PE大小为32。
  • 该卷组中可用的PE总数。
  • 当前还没有在卷组中创建任何LV,因此它是空闲的。
  • 该卷组的UUID。

创建逻辑卷

9. 现在,创建3个名为tecmint\_documents,tecmint\_managertecmint\_public的逻辑卷。这里,我们可以看到如何分别以PE为单位和GB为单位来创建逻辑卷。首先,使用以下命令来列出当前逻辑卷。

# lvs

List Current Volume Groups列出当前卷组
10. 这些逻辑卷处于vg\_tecmint卷组中使用pvs命令来列出并查看有多少空闲空间可以创建逻辑卷。

# pvs

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

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

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

# vgdisplay tecmint_add_vg

Create New Logical Volume创建新逻辑卷

  • 默认分配给该卷组的PE为32MB,这里单个的PE大小为32MB。
  • 总可用PE是1725。

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

# bc

1725PE/3 = 575 PE. 
575 PE x 32MB = 18400 --> 18GB

Calculate Disk Space计算磁盘空间
CRTL+D退出bc。现在让我们使用575个PE来创建3个逻辑卷。

# 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命令来列出创建的逻辑卷。

# lvs

List Created Logical Volumes列出创建的逻辑卷

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

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

# 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命令来列出创建的逻辑卷。

# lvs

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

创建文件系统

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

# mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_public
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager

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

# 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/

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

# df -h

Mount Logical Volumes挂载逻辑卷

永久挂载

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

# cat /etc/mtab

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

# vim /etc/fstab

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

/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

Get mtab Mount Entry获取mtab挂载条目*Open fstab File打开fstab文件Add Auto Mount Entry添加自动挂载条目
重启前,执行mount -a命令来检查fstab条目。

# mount -av

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

在我即将奉献的文章中,我将介绍如何扩展卷组、逻辑卷,减少逻辑卷,拍快照以及从快照中恢复。


via: http://www.tecmint.com/create-lvm-storage-in-linux/

作者:Babin Lonston 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

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

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

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

LVM测试说明

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

准备磁盘分区

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

# fdisk /dev/sdb 

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)

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

# fdisk -l 

   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可以使用不同大小的物理卷。

# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3 

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

# pvdisplay 

  --- 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

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

# pvremove /dev/sdb1 

准备卷组(VG)

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

# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

使用下列命令可以来验证卷组。

# vgdisplay 

  --- 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

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

使用下列命令删除卷组。

# vgremove volume-group1 

创建逻辑卷(LV)

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

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

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

# lvdisplay 

  --- 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分区一样!

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

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

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

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

扩展一个LVM卷

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

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

首先,我们卸载掉lv1卷

# umount /lvm-mount/ 

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

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

接下来,检查磁盘错误

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

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

# resize2fs /dev/volume-group1/lv1 

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

# lvdisplay 

  --- 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文件系统同样有效。

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

首先,卸载掉卷。

# umount /dev/volume-group1/lv1

然后,检测磁盘错误。

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

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

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

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

# 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

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

# lvdisplay 

--- 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

扩展一个卷组

本节将讨论扩展卷组的方法,将一个物理卷添加到卷组。让我们假设我们的卷组'volume-group1'已经满了,需要扩大。手上的硬盘(sdb)已经没有其他空闲分区,我们添加了另外一个硬盘(sdc)。我们将看到如何把sdc的分区添加到卷组以扩展。

检测现在卷组状态

# vgdisplay volume-group1 

 --- Volume group ---
  VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  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       25 / 100.00 MiB
  Free  PE / Size       749 / 2.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

首先,我们创建一个2GB分区sdc1,类型为LVM(8e),如教程前所述。

# fdisk /dev/sdc 

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):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

然后,我们创建一个物理卷 /dev/sdc1

# pvcreate /dev/sdc1 

现在,物理卷已经准备好了,我们可以简单地将它增加到已存在的卷组'volume-group1'上。

# vgextend volume-group1 /dev/sdc1 

使用vgdisplay来验证(可以看到卷组大小已经增大)。

# vgdisplay 

  --- Volume group ---
  VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               5.03 GiB
  PE Size               4.00 MiB
  Total PE              1287
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       1262 / 4.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

注意,尽管我们使用一个单独的磁盘做示范,其实只要是‘8e’类型的磁盘分区都可以用来扩展卷组。

总结一下,LVM是一个非常给力的工具,用来创建和管理可变大小的分区。本文中,我们已经介绍了动态分区如何在LVM中创建和使用。我们也介绍了扩展/缩小逻辑卷和卷组的方法,和如何增加一个新的磁盘到LVM。

希望对你有帮助。


via: http://xmodulo.com/2014/05/use-lvm-linux.html

译者:Vic\_\_\_ 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出