Logical Volume Manager概述

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

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

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

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


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 actione   extendedp   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)

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

  • 选择n来创建新分区。

  • 选择p来创建主分区。

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

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

# fdisk -l


创建物理卷(PV)

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

# pvs

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

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

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

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

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

# 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 

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

理解vgs命令输出:

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

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

# vgs -v

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

# vgdisplay tecmint_add_vg

  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

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

# pvs

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

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

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

# vgdisplay tecmint_add_vg

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

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

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

按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

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

这里,我们可以看到,当创建第三个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

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


永久挂载

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

获取mtab挂载条目*

打开fstab文件

添加自动挂载条目

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

# mount -av

验证fstab条目

总结

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

Linux - How to use LVM in Linux相关推荐

  1. linux 主分区转换 lvm,求教linux下 主分区和逻辑分区之间如何转换

    各位达人, 我在 windows xp下用虚拟机 vmware 装了 Redhat Enterprise Linux 5.0. 后来 Redhat linux磁盘空间不够,然后用虚拟机扩容了两次, 不 ...

  2. linux分区空间不足--lvm逻辑卷的实现过程

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  3. linux如何关闭 lvm管理,Linux之LVM管理

    在网络中磁盘管理是一项很重要的管理,磁盘内存储着重要的信息,它对于整个网络正常运行息息相关,我们又知道对于企业的各种数据每时每刻都在发生着变化,对于快速增长的企业来说它的数据信息量也在跟着快速增长,我 ...

  4. linux原有的文件系统扩展,原来linux不用LVM也能扩展文件系统

    以前总以为UNIX/LINUX使用了lvm才能扩展或缩小卷和文件系统,今天才发现我错了:即使没有lvm,linux也能扩展卷和及其相应的文件系统而不会丢失原有数据. 以下是测试步骤,记录备查. 1.系 ...

  5. oracle在linux上使用裸设备,在linux下构建基于LVM的裸设备数据库

    我的环境很简单,vm workstation下面装了一个linux 4,oracle 10g版本,由于不属于trouble shooting和performance tuning 而只是搭建一套裸设备 ...

  6. Linux系统分区及LVM使用(一)

    一.MBR分区 使用fdisk等分区工具,使用MBR(Master Boot Record)管理单个磁盘,这就决定了其分区表最多支持4个分区,分区类型包括主分区和扩展分区,逻辑分区可以被再次分割成多个 ...

  7. Linux下逻辑卷LVM的管理和RAID磁盘阵列

    Linux系统安全 | Linux下逻辑卷LVM的管理和RAID磁盘阵列 原创 谢公子 [谢公子学安全](javascript:void(0);) 昨天 转载自公众号:谢公子学安全 图片 图片 LVM ...

  8. Linux系统存储之LVM

    Linux系统存储之LVM 1.lvm存在意义及名词解释 - lvm存在意义: 解决存储容量的问题: - 图解lvm如何解决存储容量的问题 - 名词解释 2.lvm的建立 pvcreate----&g ...

  9. linux磁盘扩空间,Linux磁盘空间扩容(LVM)

    Linux磁盘空间扩容(lvm) 随着系统的运行时间增长,业务数据的增长,原有磁盘的空间会存在空间不足情况,导致系统不能正常运行,或者系统管理员磁盘没有完全划完,根据使用者的需求自行划分.那么怎么才能 ...

最新文章

  1. python列表的实现原理_Python列表对象实现原理
  2. Day 12: OpenCV —— Java开发者的人脸检测
  3. 前端学习(1749):前端调试值之如何查看整站的资源和编辑
  4. C语言 static
  5. AndroidTelephony学习大纲
  6. leaflet地图原理_基于 leaflet 的标注绘图
  7. 爬虫 - scrapy框架设置代理
  8. python在同一行输入n个数转义符_python:转义符\
  9. java 无锁并发_高并发情况下怎样尽量实现无锁编程
  10. Word技巧和快捷键
  11. 人脸识别活体检测技术
  12. android手机截屏代码,Android手机截屏代码
  13. 【爬虫实战】01利用python爬虫并进行数据分析(链家 爬虫)
  14. 【bfs】密码锁-C++
  15. 数据分析——房源分析项目
  16. GBase产品学习-GBase 8s中查看数据库
  17. 炉石传说JJC英雄简评 JJC combo收集:Ver 1.0
  18. 计算机教师职称申报工作总结,信息技术(计算机)教师职称评定工作总结
  19. 2016福州大学软件工程收官团队作业成绩汇总
  20. Python学习十四:访问列表元素、遍历列表

热门文章

  1. 青海省西宁市职称计算机考试试题,【青海西宁2017年第一批职称计算机考试时间4月8日起】- 环球网校...
  2. arduino定时器控制舵机_Arduino学习经验(一)之解决舵机库和pwm输出冲突
  3. 简单的全连接神经网络(tensorflow实现)
  4. python programming training(三):搜索算法
  5. pytorch笔记:policy gradient
  6. SecureCRT使用
  7. c++图的创建_使用 Amazon Neptune 构建基于图数据库的应用
  8. Matplotlib实例教程(十一)堆栈图
  9. python 中文乱码问题解决方案
  10. 面试总结-13年的最后一天,在面试与被虐中度过