使用 LVM 添加存储

使用 LVM 添加存储

LVM 为你配置存储的方式提供了极大的灵活性。

逻辑卷管理器Logical Volume Manager(LVM)允许在操作系统和硬件之间建立一个抽象层。通常,你的操作系统会查找磁盘(/dev/sda/dev/sdb 等)和这些磁盘中的分区(/dev/sda1/dev/sdb1 等)。

LVM 在操作系统和磁盘之间创建了一个虚拟层。LVM 不是一个驱动器持有一定数量的分区,而是创建一个统一的存储池(称为卷组Volume Group),跨越任意数量的物理驱动器(称为物理卷Physical Volume)。使用卷组中可用的存储,LVM 可以为你的操作系统提供类似磁盘和分区的功能。

操作系统完全没有意识到它被“欺骗”了。

使用 LVM 添加存储

Drive space

由于 LVM 虚拟地创建卷组和逻辑卷,因此即使在系统运行时,也可以轻松调整它们的大小或移动它们,或者创建新卷。此外,LVM 提供了其它情况下不存在的特性,比如创建逻辑卷的活动快照时无需首先卸载磁盘。

LVM 中的卷组是一个命名的虚拟容器,将底层物理磁盘组合在一起。它充当一个池,可以从中创建不同大小的逻辑卷Logical Volume。逻辑卷包含实际的文件系统并且可以跨越多个磁盘,并且不需要物理上连续。

特性

  • 分区名称通常具有系统名称,例如 /dev/sda1。LVM 具有便于人们理解的名称,例如 home 或者 media
  • 分区的总大小受底层物理磁盘大小的限制。在 LVM 中,卷可以跨越多个磁盘,并且仅受 LVM 中所有物理磁盘总大小的限制。
  • 分区通常只有在磁盘未使用且已卸载时才能调整大小、移动或删除。LVM 卷可以在系统运行时进行操作。
  • 只能通过分配与分区相邻的可用空间来扩展分区。LVM 卷可以从任何地方占用可用空间。
  • 扩展分区涉及移动数据以腾出可用空间,这非常耗时,并且可能会在断电期间导致数据丢失。LVM 卷可以从卷组中的任何地方占用可用空间,甚至可以在另一块磁盘上。
  • 因为在 LVM 中创建卷非常容易,所以它鼓励创建不同的卷,例如创建单独的卷来测试功能或尝试不同的操作系统。对于分区,此过程将非常耗时并且容易出错。
  • 快照只能在 LVM 中创建。它允许你创建当前逻辑卷的时间点镜像,即使在系统运行时也可以。这非常适合备份。

测试设置

作为演示,假设你的系统具有以下驱动器配置:

  1. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  2. xvda 202:0 0 8G 0 disk
  3. `-xvda1 202:1 0 8G 0 part /
  4. xvdb 202:16 0 1G 0 disk
  5. xvdc 202:32 0 1G 0 disk
  6. xvdd 202:48 0 2G 0 disk
  7. xvde 202:64 0 5G 0 disk
  8. xvdf 202:80 0 8G 0 disk

步骤 1. 初始化磁盘以用于 LVM

运行 pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。输出应如下:

  1. Physical volume "/dev/xvdb" successfully created
  2. Physical volume "/dev/xvdc" successfully created
  3. Physical volume "/dev/xvdd" successfully created
  4. Physical volume "/dev/xvde" successfully created
  5. Physical volume "/dev/xvdf" successfully created

使用 pvs 或者 pvdisplay 查看结果:

  1. "/dev/xvde" is a new physical volume of "5.00 GiB"
  2. --- NEW Physical volume ---
  3. PV Name /dev/xvde
  4. VG Name
  5. PV Size 5.00 GiB
  6. Allocatable NO
  7. PE Size 0
  8. Total PE 0
  9. Free PE 0
  10. Allocated PE 0
  11. PV UUID 728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn
  12.  
  13. "/dev/xvdb" is a new physical volume of "1.00 GiB"
  14. --- NEW Physical volume ---
  15. PV Name /dev/xvdb
  16. VG Name
  17. PV Size 1.00 GiB
  18. Allocatable NO
  19. PE Size 0
  20. Total PE 0
  21. Free PE 0
  22. Allocated PE 0
  23. PV UUID zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ
  24.  
  25. "/dev/xvdd" is a new physical volume of "2.00 GiB"
  26. --- NEW Physical volume ---
  27. PV Name /dev/xvdd
  28. VG Name
  29. PV Size 2.00 GiB
  30. Allocatable NO
  31. PE Size 0
  32. Total PE 0
  33. Free PE 0
  34. Allocated PE 0
  35. PV UUID R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc
  36.  
  37. "/dev/xvdc" is a new physical volume of "1.00 GiB"
  38. --- NEW Physical volume ---
  39. PV Name /dev/xvdc
  40. VG Name
  41. PV Size 1.00 GiB
  42. Allocatable NO
  43. PE Size 0
  44. Total PE 0
  45. Free PE 0
  46. Allocated PE 0
  47. PV UUID FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae
  48.  
  49. "/dev/xvdf" is a new physical volume of "8.00 GiB"
  50. --- NEW Physical volume ---
  51. PV Name /dev/xvdf
  52. VG Name
  53. PV Size 8.00 GiB
  54. Allocatable NO
  55. PE Size 0
  56. Total PE 0
  57. Free PE 0
  58. Allocated PE 0
  59. PV UUID TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p

步骤 2. 创建卷组

运行 vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。通过 vgs 或者 vgdisplay 查看结果:

  1. --- Volume group ---
  2. VG Name myvg
  3. System ID
  4. Format lvm2
  5. Metadata Areas 5
  6. Metadata Sequence No 1
  7. VG Access read/write
  8. VG Status resizable
  9. MAX LV 0
  10. Cur LV 0
  11. Open LV 0
  12. Max PV 0
  13. Cur PV 5
  14. Act PV 5
  15. VG Size 16.98 GiB
  16. PE Size 4.00 MiB
  17. Total PE 4347
  18. Alloc PE / Size 0 / 0
  19. Free PE / Size 4347 / 16.98 GiB
  20. VG UUID ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh

步骤 3: 创建逻辑卷

运行以下命令:

  1. lvcreate myvg --name media --size 4G
  2. lvcreate myvg --name home --size 4G

使用 lvs 或者 lvdisplay 验证结果:

  1. --- Logical volume ---
  2. LV Path /dev/myvg/media
  3. LV Name media
  4. VG Name myvg
  5. LV UUID LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT
  6. LV Write Access read/write
  7. LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000
  8. LV Status available
  9. # open 0
  10. LV Size 4.00 GiB
  11. Current LE 1024
  12. Segments 1
  13. Allocation inherit
  14. Read ahead sectors auto
  15. - currently set to 256
  16. Block device 252:0
  17.  
  18. --- Logical volume ---
  19. LV Path /dev/myvg/home
  20. LV Name home
  21. VG Name myvg
  22. LV UUID Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK
  23. LV Write Access read/write
  24. LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000
  25. LV Status available
  26. # open 0
  27. LV Size 4.00 GiB
  28. Current LE 1024
  29. Segments 1
  30. Allocation inherit
  31. Read ahead sectors auto
  32. - currently set to 256
  33. Block device 252:1

步骤 4: 创建文件系统

使用以下命令创建文件系统:

  1. vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
  2. mkfs.ext3 /dev/myvg/media
  3. mkfs.ext3 /dev/myvg/home

挂载它:

  1. mount /dev/myvg/media /media
  2. mount /dev/myvg/home /home

使用 lsblk 命令查看完整配置:

  1. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  2. xvda 202:0 0 8G 0 disk
  3. `-xvda1 202:1 0 8G 0 part /
  4. xvdb 202:16 0 1G 0 disk
  5. xvdc 202:32 0 1G 0 disk
  6. xvdd 202:48 0 2G 0 disk
  7. xvde 202:64 0 5G 0 disk
  8. `-myvg-media 252:0 0 4G 0 lvm /media
  9. xvdf 202:80 0 8G 0 disk
  10. `-myvg-home 252:1 0 4G 0 lvm /home

步骤 5: 扩展 LVM

添加一块新的 /dev/xvdg 磁盘。要扩展 home 卷,运行以下命令:

  1. pvcreate /dev/xvdg
  2. vgextend myvg /dev/xvdg
  3. lvextend -l 100%FREE /dev/myvg/home
  4. resize2fs /dev/myvg/home

运行 df -h,你应该可以看到新的磁盘大小。

就是这样!

LVM 为你配置存储的方式提供了极大的灵活性。尝试一下,并享受 LVM 的乐趣!

原文链接:https://linux.cn/article-14080-1.html

原创文章,作者:OZGDY,如若转载,请注明出处:https://www.wangzhanshi.com/n/7371.html

(0)
OZGDY的头像OZGDY
上一篇 2025年1月1日 16:29:31
下一篇 2025年1月1日 16:29:33

相关推荐

  • 详解linux pwm驱动编写

    pwm方波可以用来控制很多的设备,比如它可以被用来控制电机。简单来说,就是单位时间内的方波越多,那么电机的转速就会越快;反之就越慢。通过这个特性,soc就可以轻松地利用pwm对外设…

    Linux 2025年1月1日
  • Linux上增加自定义脚本的展现量

    前言 在一台Linux机器上写好一个脚本以后,希望这个脚本让这台机器上其他用户使用,但是不可能会让别人记住这个脚本的路径,这个时候该怎么办呢? 原理 在回答上面的问题之前,我们首先…

    Linux 2025年1月1日
  • 为 Linux 用户准备的 FreeDOS 命令

    如果你已经尝试过 FreeDOS ,你可能已经被命令行所吓倒。DOS 命令可能稍微不同于你所使用的 Linux 命令行,因此,使用它的命令行上需要学习一些新的命令。 但是对于 Li…

    2025年1月1日
  • 解决linux下zip文件解压乱码问题

    原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下…

    Linux 2025年1月1日
  • Linux虚拟机无网络问题的解决方案(yum无法使用)

    在下载虚拟机后,由于网络没有配置好,会遇到没网问题,导致yum无法使用,下载不了软件,当我们安装软件时出现下面情况: 下面给出解决方案(亲测有效) 非常详细!!! 第一步:编辑虚拟…

    2024年12月17日
  • Linux 4.9内核正式发布!来看看更新了什么?

    前言 在历经8个rc版本之后,Linux 4.9版本的内核于2016年12月11日如期与大家见面。根据Linux的创始人Linus Torvalds的声明,Linux Kernel…

    2025年1月1日
  • Linux中虚拟机宕机之后解决办法

    Linux中虚拟机宕机之后解决办法 问题现象 一次意外操作,导致虚拟机无法启动,重启宿主操作系统也无效。  恢复方法 第一步: 删除原来建立的虚拟机。 第二步: 重新建立新虚拟机。…

    2025年1月1日
  • 在 Linux 上用 Audacity 编辑音频

    Audacity 是开源软件世界中的一个经典的强大工具,可以用于录音、编辑等对声音进行操作。 Audacity 声音编辑器是填补了一个似乎没有人意识到的空白的开源应用程序。它最初是…

    2025年1月1日
  • linux服务器下配置多tomcat实现实例

    linux服务器下配置多tomcat 车辆交易用的系统模块,正在做。老板要看看,以便车城那边的人提出意见。于是在服务器上再次增加一个tomcat。 以前是配置过的,配置过程其实很简…

    Linux 2025年1月1日
  • Linux上使用Docker下载和运行Redis的完整步骤

    在 Linux 上使用 Docker 下载和运行 Redis 的完整步骤: 步骤 1:安装 Docker 首先确保你的 Linux 系统上已经安装了 Docker。 Ub…

    Linux 2024年12月17日

发表回复

登录后才能评论