LVM 使用与扩容总结

转载请注明出处:

  LVM(Logical Volume Manager,逻辑卷管理器)是一个用于Linux系统的磁盘管理工具。它提供了一种更加灵活的存储管理机制,可以方便地进行磁盘的扩容、缩减、快照以及迁移等操作。

基本概念

  1. 物理卷(PV):物理磁盘或分区,如/dev/sda1
  2. 卷组(VG):由一个或多个物理卷组成的集合。
  3. 逻辑卷(LV):从卷组中分配的逻辑磁盘,可以被文件系统格式化并用于存储数据。

安装LVM

  在ubuntu系统可以通过下面的命令进行安装

复制代码
# Ubuntu/Debian  
sudo apt-get install lvm2  

创建LVM 

第一步:创建物理卷(PV)

  假设有一个新的磁盘/dev/sdb,需要先将其初始化为物理卷:

复制代码
sudo pvcreate /dev/sdb  

  应用示例:

复制代码
root@swan2:~# sudo pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created.
root@sdwan2:~# vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <96.95 GiB
  PE Size               4.00 MiB
  Total PE              24818
  Alloc PE / Size       12409 / 48.47 GiB
  Free  PE / Size       12409 / 48.47 GiB
  VG UUID               RCjkb6-7ngM-9nss-OWOL-eqMR-9MDp-JCyLjk

第二步:创建卷组(VG)

  创建一个名为vg_data的卷组,将新创建的物理卷加入其中:

复制代码
sudo vgcreate vg_data /dev/sdb  

第三步:创建逻辑卷(LV)

  创建一个名为lv_data的逻辑卷,大小为10G:

复制代码
sudo lvcreate -n lv_data -L 10G vg_data  

第四步:格式化逻辑卷

  对逻辑卷进行格式化,例如使用ext4文件系统:

复制代码
sudo mkfs.ext4 /dev/vg_data/lv_data  

第五步:挂载逻辑卷

  创建一个挂载点,然后将逻辑卷挂载到该挂载点:

复制代码
mkdir /mnt/data  
sudo mount /dev/vg_data/lv_data /mnt/data  

扩容LVM

  假设我们需要将逻辑卷lv_data扩展到20G,可以遵循以下步骤:

第一步:增加物理卷

  假设在物理卷/dev/sdb上增加了空间(例如增加了第二个物理卷/dev/sdc),首先需要将新的物理卷初始化:

复制代码
sudo pvcreate /dev/sdc  

  然后,将其加入到卷组:

复制代码
sudo vgextend vg_data /dev/sdc  

  应用示例:

复制代码
root@sdwan2:~# sudo vgextend ubuntu-vg /dev/vdb
  Volume group "ubuntu-vg" successfully extended
root@swan2:~# vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.09 TiB
  PE Size               4.00 MiB
  Total PE              286961
  Alloc PE / Size       12409 / 48.47 GiB
  Free  PE / Size       274552 / <1.05 TiB
  VG UUID               RCjkb6-7ngM-9nss-OWOL-eqMR-9MDp-JCyLjk
   

第二步:扩展逻辑卷

  使用以下命令将逻辑卷lv_data扩展到20G:

复制代码
sudo lvextend -L 20G /dev/vg_data/lv_data  

  或者,如果想使用所有可用的空间:

复制代码
sudo lvextend -l +100%FREE /dev/vg_data/lv_data  

  应用示例:

复制代码
root@swan2:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from 48.47 GiB (12409 extents) to 1.09 TiB (286961 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@sdwan2:~#

第三步:扩展文件系统

  扩展完逻辑卷后,需要扩展文件系统以利用新增的空间:

复制代码
sudo resize2fs /dev/vg_data/lv_data  

  应用示例:

复制代码
root@swan2:~# sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 141
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 293848064 (4k) blocks long.

root@swan2:~#

查看LVM的信息

  可以使用以下命令查看LVM的信息:

  • 查看所有物理卷:

    复制代码
    sudo pvdisplay  
  • 查看所有卷组:

    复制代码
    sudo vgdisplay  
  • 查看所有逻辑卷:

    复制代码
    sudo lvdisplay  
  • 查看详细的LVM状态:

    复制代码
    lvs
相关推荐
严谨的麻辣烫13 小时前
Linux sysctl 网络参数调优实战:高并发与长连接场景下的内核配置
linux·网络·php
阡陌..17 小时前
Ubuntu 22.04 离线环境完全配置指南:从 GCC 到 NVIDIA 驱动再到 Samba 共享
linux·运维·ubuntu
toooooop819 小时前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
重生的黑客19 小时前
Linux 进程程序替换与自定义 Shell:从 exec 函数族到命令行解释器
linux·运维·服务器·shell
北极糊的狐19 小时前
阿里云服务器-命令2-Linux 系统实时资源监视器 top 命令详解(进程级实时资源监控)
linux·运维·服务器
三言老师20 小时前
clear与history历史命令管理实操
linux·运维·服务器·网络·centos
味悲21 小时前
Linux 环境下 DNS 服务器搭建
linux·运维·服务器
dok121 天前
Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》 (7)open,release (8) write read
linux
皮卡狮1 天前
进程间通信:认识匿名管道和进程池实现
linux
feasibility.1 天前
wsl安装Ubuntu方法(含网络不稳定处理)
linux·运维·windows·ubuntu