在Linux中使用LVM构建灵活的磁盘存储(第一部分)

Babin Lonston 的头像

·

·

·

31,251 次阅读

逻辑卷管理器(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
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中国 荣誉推出

9 条回复

  1. ZMOM1031 的头像
    ZMOM1031

    LVM用着确实很方便,但是在高要求环境下用RAID靠谱一点,否则磁盘挂了你找谁?

    来自杭州
  2. linux 的头像
    linux

    RAID5或RAID0之上,你再用 LVM。

    不过,我真的不喜欢 LVM,感觉麻烦,或者是因为场景不太需要。

    来自北京
  3. ZMOM1031 的头像
    ZMOM1031

    我个人不讨厌LVM。我只在LVM上用过RAID,没有在RAID上用过LVM,另外我只有模拟场景,从没在真实场景下用过(还是学生)我觉得LVM不错的地方就是可以把多块磁盘的空间合并到一起创建一个超大的空间,方便文件的存放管理

    来自杭州
  4. 微博评论 的头像
    微博评论

    受教

    来自北京
  5. 微博评论 的头像
    微博评论

    有空了我试试性能

    来自北京
  6. linux 的头像
    linux

    在 LVM 上使用 raid 就只能使用软 RAID 了,其实也还可以。
    LVM 能将多个零散的存储拼合到一起,是不错的。只是一般设计服务器的时候,预先对用量会有估计,所以有时候用不到这种;当然,有时候存在没办法预先估计,而增长速度也不确定的情况下,不能用多台机器分担及使用 NAS 之类时,LVM 还是相当有用的。

    来自北京
  7. ykyx00 的头像
    ykyx00

    lvm也没想象中的那么容易坏吧,lvm和raid各有优势吧,从理论上来说raid更加安全,lvm更容易扩展

    来自西安
  8. linux 的头像
    linux

    不是 LVM 坏,是硬盘的硬件坏。。。

    来自北京
  9. hyplove 的头像
    hyplove

    没规划经验,刚好拿来学一下!

    来自上海

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注