Linux - How to use LVM in Linux

简介: Linux - How to use LVM in Linux

Logical Volume Manager概述

20170120181537751.png


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


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


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

20170120180108599.jpg

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


20170120181633924.png


LVM特性


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


操作系统

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



创建LVM磁盘分区

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


# pvs 
# vgs
# lvs


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

# fdisk -cu /dev/sda


  • c – 关闭DOS兼容模式,推荐使用该选项。
  • u – 当列出分区表时,会以扇区而不是柱面显示。
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)

20170120192015393.jpg


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


选择n来创建新分区。


选择p来创建主分区。


选择我们需要创建的分区号。

按Enter两次来使用整个磁盘空间。

我们需要修改新创建的分区类型,输入t。

选择需要修改的分区号,选择我们创建的分区号1。

这里,我们需要修改类型。我们需要创建LVM,因此我们使用LVM的类型代码8e。如果不知道类型代码,按L来列出所有类型代码。

打印我们创建的分区以确认。

这里我们可以看到Linux LVM的ID 8e。

写入修改并退出fdisk。

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

# fdisk -l

20170120192403580.jpg


创建物理卷(PV)


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

# pvs


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

# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
或者
# pvcreate /dev/sda1
# pvcreate /dev/sdb1
# pvcreate /dev/sdc1


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

# pvs
或者
# pvdisplay 
查看更详细信息


20170120193212706.jpg

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

# pvremove /dev/sda1


创建卷组(VG)


使用可用的空闲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
或者 
# vgdisplay


20170120194956339.jpg


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

20170120195130435.jpg


理解vgs命令输出:


卷组名。

本卷组中使用的物理卷。

显示本卷组中的可用空闲空间。

卷组总大小。

本卷组中的逻辑卷,这里我们还没创建,所以是0。

SN = 卷组包含的快照数量。(后面,我们会创建一个快照。)

卷组状态,如可写,可读,可调整大小,已导出,部分的和集群的。这里是wz——意为w = 可写,z = 可调整大小。

卷组中使用的物理卷(PV)数量。


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

# vgs -v


20170120195311109.jpg


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

# vgdisplay tecmint_add_vg

20170120195423956.jpg

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


删除卷组。

# vgremove tecmint_add_vg


创建逻辑卷(LV)


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

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

# lvs

20170120200838914.png

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

# pvs


20170120200922586.png

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


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


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

# vgdisplay tecmint_add_vg

20170120203945957.png


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

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

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


20170120204124069.png

按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


20170120204228632.png


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


20170120204314836.png

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


创建文件系统


要使用逻辑卷,我们需要格式化。这里我使用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

20170120204417320.png

让我们在/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

20170120204504043.png

永久挂载


现在,这些逻辑卷是临时挂载上去的,要永久挂载,我们需要添加条目到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

20170120204620186.png

获取mtab挂载条目*

20170120204648728.png

打开fstab文件

20170120204711947.png


添加自动挂载条目

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

# mount -av

20170120204811610.png


验证fstab条目


总结


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

相关文章
|
4月前
|
运维 Linux 虚拟化
linux|磁盘管理工作|lvm逻辑管理卷的创建和使用总结(包括扩容,根目录扩容演示)
linux|磁盘管理工作|lvm逻辑管理卷的创建和使用总结(包括扩容,根目录扩容演示)
128 0
|
4月前
|
存储 机器学习/深度学习 安全
Linux加强篇007-使用RAID与LVM磁盘阵列技术
山重水复疑无路,柳暗花明又一村
231 0
Linux加强篇007-使用RAID与LVM磁盘阵列技术
|
7月前
|
Linux
14.3.6 【Linux】LVM 相关指令汇整与 LVM 的关闭
14.3.6 【Linux】LVM 相关指令汇整与 LVM 的关闭
46 0
|
7月前
|
Linux
14.3.4 【Linux】使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率
14.3.4 【Linux】使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率
72 0
|
7月前
|
Linux
Linux逻辑卷LVM和磁盘配额
Linux逻辑卷LVM和磁盘配额
36 0
|
8月前
|
Linux Shell KVM
【Linux系统KVM虚拟机实战】LVM逻辑卷之扩展Swap交换分区
【Linux系统KVM虚拟机实战】LVM逻辑卷之扩展Swap交换分区
160 0
|
9月前
|
存储 安全 NoSQL
Linux LVM 最佳实践
LVM (logical volume manager) 逻辑卷管理是通过将底层物理硬盘抽象封装起来的,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有的数据,新加入磁盘也不会改变现有上层的逻辑卷,作为一种动态的逻辑磁盘管理机制,很大程度上提高了磁盘管理的灵活性。
238 0
|
10月前
|
5G Linux
Linux逻辑卷管理LVM
目前我们用的物理磁盘有内存限制,当我们把磁盘占满了,如果将文件放在其他磁盘对于以后的维护很是麻烦,单靠物理磁盘是无法解决空间增长的问题的这个时候逻辑卷就起到了很重要的作用,这篇文章的学习目标是,了解逻辑卷的优势特点,学会如何创建逻辑卷并且扩展逻辑卷。
151 0
linux 根分区磁盘 LVM 拉升(磁盘扩容)
linux 根分区磁盘 LVM 拉升(磁盘扩容)
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。