linux lvm 扩容磁盘,Linux LVM磁盘空间扩容的新方法

2023-05-16

导读

传统LVM扩容方法需要增加PV磁盘,扩容多次后,服务器的磁盘数量会越来越多,容易增加日后维护存储和磁盘布局的难度。当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器磁盘空间可以直接扩容,只需增加原本正在使用中的PV磁盘空间即可完成扩容,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。

LVM扩容方法介绍

传统的LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。但扩容多次后,VG中会存在多个PV,磁盘逻辑结构变得复杂,容易增加日后维护存储和磁盘分区布局的难度。

当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器的磁盘空间可以直接扩容,只需增加原本正在使用中的磁盘空间即可,无需再添加额外磁盘作为PV,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。

本文将介绍如何通过使用GParted分区软件扩大PV空间的方式来扩容整个VG,从而最终扩大文件系统的使用空间。

扩容PV步骤

我们以运行在ESXi虚拟机上的Centos/RHEL 7版本Linux为例,该虚拟机安装了两块硬盘,大小分别为10GB和5GB,作为PV,建立了一个VG。查看系统的磁盘分区结构布局:

d714b2c76782b0a2edce38f8d1a5d97a.png

进入parted分区管理界面,键入print all查看机器的分区情况,可以看到该机器有两块硬盘/dev/sda和/dev/sdb,其中sda有两个分区,分区sda1为boot启动分区,分区sda2为LVM PV分区,lvm的VG(centos)由两个LV(root和swap)组成。另外,parted无法识别/dev/sdb,显示错误“unrecognised disk label”。

分别键入pvs、lvs和vgs命令查看LVM的具体情况:

527864cb1740c91175391bbb20a7663b.png

可以看到,sda2和sdb均为LVM VG中的PV,sda2位sda磁盘中的第二个分区,而对于使用sdb整块硬盘建立的PV,parted是无法识别的,因为该磁盘为没有建立文件系统的裸设备。LVM中有一个VG(centos),VG的大小为14.5G,该VG由两个LV,root和swap组成。

2. 增大虚拟机的两块硬盘大小。

使用Vsphere Client连接Vcenter,右键点击该虚拟机选择“编辑设置”,在“硬件”选项卡中,分别将硬盘1和硬盘2的大小各增加5GB:

805e34ff44fb4f5624b81e30703589b7.png

e436075c76ec516bc4bd56e9311198bb.png

可以键入以下命令系统能够马上识别新增空间:

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

echo '1' > /sys/class/scsi_disk/0\:0\:1\:0/device/rescan

又或者直接重启系统,让内核识别新增空间。

运行parted,键入print all free,发现磁盘大小已经增加,而且在磁盘/dev/sda尾部有5GB未分配空间。

ec3ebf226be7bb30cd8ff86af3499159.png

3. 使用GParted分区软件进行分区

访问http://www.gparted.org 下载最新版GParted Live CD,比如笔者下载的GParted镜像文件是gparted-live-0.21.0-1-i586.iso。

将该ISO文件上传到ESX主机的数据存储中,然后挂载到虚拟机的光驱中,接着调整启动顺序用该CD引导启动该虚拟机。

Live CD启动后能开到该机器硬盘的分区结构和未分配空间:

9eff65652dc927b5fa9d73d71e9060e1.png

鼠标右键点击/dev/sda2分区,用鼠标点击右边的三角符号,拉动鼠标将分区扩容5GB,点击“调整大小/移动”,最后点击工具栏上的“Apply”应用更改。

9bdd966b7f7e8dc2caf2c0d5a3350006.png

点击工具栏最右边的按钮选择/dev/sdb硬盘,会看到sdb硬盘所有的空间都是未分配,因为sdb磁盘是直接在上面建立PV的裸设备磁盘,这种磁盘没有分区表和分区,GParted无法识别并进行分区。

d7a27826c562a59ad42429aaa5dbcdba.png

卸载光盘,重启虚拟机进入本地系统,查看PV空间:

[root@user ~]# pvs

PV        VG     Fmt  Attr PSize PFree

/dev/sda2 centos lvm2 a--  14.51g 5.00g

/dev/sdb  centos lvm2 a--   5.00g    0

使用GParted,sda2扩容成功。

键入pvresize命令扩容sdb:

[root@user ~]# pvresize -v /dev/sdb

Using physical volume(s) on command line

Archiving volume group "centos"metadata (seqno 6).

Resizing volume "/dev/sdb" to10485760 sectors.

Resizing physical volume /dev/sdb from 0 to2559 extents.

Updating physical volume"/dev/sdb"

Creating volume group backup"/etc/lvm/backup/centos" (seqno 7).

Physical volume "/dev/sdb" changed

1 physical volume(s) resized / 0 physicalvolume(s) not resized

键入pvs、vgs确认扩容后的空间:

[root@user ~]# pvs

PV        VG     Fmt  Attr PSize PFree

/dev/sda2 centos lvm2 a--  14.51g 5.00g

/dev/sdb  centos lvm2 a--  10.00g 5.00g

[root@user ~]# vgs

VG    #PV #LV #SN Attr   VSize  VFree

centos  2   2   0 wz--n- 24.50g 10.00g

可以看到两个PV和VG中都有可分配的剩余空间了,PV扩容完毕。

LV及文件系统扩容

1. 扩容LV

将LV swap扩容到3GB,另外的LV root则分配剩余的全部空间。

查看原来LV空间情况:

[root@user ~]#lvs

LV  VG     Attr       LSize Pool Origin Data%  Move LogCpy%Sync Convert

root centos -wi-ao---- 13.50g

swap centos -wi-ao----  1.00g

现在的root LV大小为13.5G,swap LV大小为1G。

将LV swap的空间增加2GB:

[root@user ~]#lvextend -L +2g /dev/centos/swap

Extending logical volume swap to 3.00 GiB

Logical volume swap successfully resized

查看VG剩余PE数量:

--- Volume group ---

VG Name               centos

System ID

Format                lvm2

Metadata Areas        2

Metadata Sequence No  8

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                2

Act PV                2

VG Size               24.50 GiB

PE Size               4.00 MiB

Total PE              6273

Alloc PE / Size       4225 / 16.50 GiB

Free PE / Size       2048 / 8.00 GiB

VG UUID              U8Io1J-a7CY-X81w-lpiA-wj5A-3XOa-vKlWFL

剩余2048个PE。

扩容root LV:

[root@user ~]# lvextend -l +2048 /dev/centos/root

Extending logical volume root to 21.50 GiB

Logical volume root successfully resized

查看LV大小确认:

[root@user ~]# lvextend -l +2048 /dev/centos/root

Extending logical volume root to 21.50 GiB

Logical volume root successfully resized

两个LV已经扩容成功。

2. 扩容根文件系统

LV扩容后需文件系统还没有扩容,键入df –h查看空间:

[root@user ~]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   14G 4.2G  8.5G  33% /

devtmpfs                 489M     0 489M   0% /dev

tmpfs                    498M   80K 498M   1% /dev/shm

tmpfs                    498M  7.0M 491M   2% /run

tmpfs                    498M    0  498M   0% /sys/fs/cgroup

/dev/sda1                477M   95M 354M  22% /boot

根分区现在大小是14GB。

使用resize2fs命令对跟分区文件系统进行在线扩容:

[root@user ~]#resize2fs -p /dev/centos/root

resize2fs 1.42.9(28-Dec-2013)

Filesystem at/dev/centos/root is mounted on /; on-line resizing required

old_desc_blocks = 2,new_desc_blocks = 3

The filesystem on/dev/centos/root is now 5637120 blocks long.

再次查看分区大小:

[root@user ~]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   22G 4.2G   16G  21% /

devtmpfs                 489M     0 489M   0% /dev

tmpfs                    498M   80K 498M   1% /dev/shm

tmpfs                    498M  7.0M 491M   2% /run

tmpfs                    498M     0 498M   0% /sys/fs/cgroup

/dev/sda1                477M  95M  354M  22% /boot

分区大小已经扩容为22GB。

3. 扩容swap分区

Swap分区不能直接扩容,需先将其删除再重建。

分别使用free –m和swapon –s命令查看swap分区大小。可以看到这时候swap分区大小还是1GB。

[root@user ~]# free -m

total       used       free    shared    buffers     cached

Mem:       994        635        358    7         55         204

-/+ buffers/cache:      375       618

Swap:       1023       0      1023

[root@user ~]#swapon -s

Filename                       Type           Size    Used   Priority

/dev/dm-0                      partition      1048572 0       -1

停止swap分区:

[root@user ~]# swapoff -v /dev/centos/swap

swapoff /dev/centos/swap

重新建立swap分区:

[root@user ~]# mkswap /dev/centos/swap

mkswap:/dev/centos/swap: warning: wiping old swap signature.

Setting up swapspaceversion 1, size = 3145724 KiB

no label,UUID=6dca44dc-9bf2-40b2-b0c8-d73cbe409002

启用Swap分区:

[root@user ~]#swapon -v /dev/centos/swap

swapon /dev/centos/swap

swapon:/dev/mapper/centos-swap: found swap signature: version 1, page-size 4, samebyte order

swapon:/dev/mapper/centos-swap: pagesize=4096, swapsize=3221225472, devsize=3221225472

再次查看swap分区大小,swap分区已变成了3GB:

[root@user ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/dm-0                               partition       3145724 0       -1

[root@user ~]#free -m

total       used       free    shared    buffers     cached

Mem:         994        636       357          7         55        204

-/+ buffers/cache:      376        617

Swap:       3071          0       3071

注意事项:

建立LVM时,若使用整块硬盘作为PV,应先在磁盘上建立分区表和分区,再设置分区的lvm标志位(Parted中使用set lvm on,fdisk中按t,然后设置8e ),不然的话就会出现本例子中sdb磁盘无法被GParted或者其他分区软件识别的情况,很容易被误操作。另外,对任何分区操作前应先对分区数据进行备份。

经验总结:

通过直接增大PV空间来对LVM磁盘分区进行扩容,可以减少PV磁盘数量,使磁盘布局简单化,方便存储以及磁盘日后的维护工作。但需要使用GParted光盘引导服务器重启进行分区,若服务器不能停机则不太适合该方法。这种方法比较适合使用虚拟机或者共享存储的机器,磁盘可以直接扩容,加上虚拟机环境机器启动速度较快,且GParted分区简单快速,分区所需的停机时间比较短。

原文为博主所著,并刊登于《网络运维与管理》杂志2015.07期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux lvm 扩容磁盘,Linux LVM磁盘空间扩容的新方法 的相关文章

随机推荐

  • arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计

    3 通信程序设计 ARM 与单片机的串口通信程序包括两方面 xff1a 一方面是作为上位机的ARM 的串口通信程序 xff0c 另一方面是作为下位机的单片机的串口通信程序 在通信之前必须制定合理的通信协议以保证通信的可靠性和成功率 现约定双
  • 联想服务器rd系列,联想ThinkServer RD550服务器首发评测

    IT168 评测 9月22日 xff0c 在 34 新云力量 联想企业级业务策略暨ThinkServer Gen5发布会 34 上 xff0c 联想正式发布了基于最新的英特尔至强E5 2600 v3系列处理器ThinkServer第五代产品
  • 6、镜像和容器

    文章目录 隐藏 开发者必备的 Docker 实践指南镜像与容器 本文是全系列中第8 10篇 xff1a 专题 Docker入门 Docker踩坑及个人学习汇总 获取Centos7安装Docker各种姿势 xff08 指定版本 xff09 T
  • 《Docker-在Windows上安装Docker桌面》

    文章目录 Windows上安装Docker桌面一 Docker Desktop下载二 Docker Desktop 安装三 下载并安装Linux内核更新程序包四 安装 Linux 分发五 配置docker的镜像加速器六 通过Linux分发版
  • stm32经典笔试题_stm32嵌入式试题

    第一章 为什么学习 STM32 STM32 是一系列以 ARM Cortex M 为内核的 32 位嵌入式微控制器 第二章 初识 STM32 库 1 什么是启动文件 xff1f 启动文件的作用是什么 xff1f 具体实现了哪些功能 xff1
  • imu相机标定_相机+imu标定

    官方上是跑在ros indigo上的 xff0c 但是实测用kinetic也没问题 xff0c 主要就是装依赖的时候改下名字 下面命令行里有写注释 1 工具箱 Kalibr 安装 安装依赖 sudo apt get install pyth
  • linux双系统如何选择顺序,双系统中怎么设置Ubuntu多系统的默认启动顺序?

    很多人在安装Linux系统 xff0c 如Fedora或Ubuntu等操作系统玩的时候 xff0c 一般还会保留一份Windows操作系统作为主用系统 xff0c 但是发现安装了Linux系统之后 xff0c 默认的启动菜单就变成了Linu
  • rpe matlab,Constant velocity range-parameterized EKF initialization

    The RPEKF is a special type of filter that can be initialized using angle only measurements that is azimuth and or eleva
  • 计算机与工作 生活的小论文,电脑与生活作文

    电脑与生活作文 在生活 工作和学习中 xff0c 大家或多或少都会接触过作文吧 xff0c 作文是人们把记忆中所存储的有关知识 经验和思想用书面形式表达出来的记叙方式 那要怎么写好作文呢 xff1f 以下是小编收集整理的电脑与生活作文 xf
  • gVim的字体和背景颜色设置

    电脑环境是XP xff0c 软件是gVim7 3 xff0c 安装在C盘的 Program Files 下 如何设置gVim的字体和背景颜色 xff1a C gt Program Files gt Vim gt vimrc文件 xff0c
  • xlight ftp linux,Xlight FTP Server

    Xlight FTP Server的功能按钮都是中文的 xff0c 国内用户可以轻易地创建新的服务器 xff0c 并且能够为同一台计算机的多个端口创建各自的虚拟服务器 此外 xff0c 它还具有用户虚拟目录 xff0c 每个用户的虚拟目录都
  • 参数控制c语言代码走向,C语言可变参数完全解读

    本文转自 xff1a http www cnblogs com wangyonghui archive 2010 07 12 1776068 html 一 是什么 我们学习C语言时最经常使用printf 函数 xff0c 但我们很少了解其原
  • VHDL计算机硬件能直接执行吗,第5章 VHDL程序结构.ppt

    第5章 VHDL程序结构 VHDL 数字系统设计 第5章 VHDL程序结构 VHDL语言的特点 xff1a VHDL语言具有很强的电路描述和建模能力 xff0c 能从多个层次对数字系统进行建模和描述 xff0c 从而大大简化了硬件设计任务
  • opencv双目标定原理_双目视觉原理及流程概述

    击上方 新机器视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 双目原理 双目视觉是利用视差原理的一种视觉方法 如图所示为空间中一点P在左右相机中的成像点Pleft 61 Xleft Yleft xf
  • java怎么写算法_用Java写算法之一:冒泡排序

    从这篇文章开始 xff0c 我会陆陆续续将我所能用Java实现的算法在这里简单做个梳理 xff0c 也算温故而知新吧 受个人水平和时间限制 xff0c 可能会有错漏 xff0c 欢迎各位批评指正 那么 xff0c 就从冒泡排序开始 显然 x
  • docker显示linux桌面,怎样在桌面上安装 Docker CE?

    按照这些简单的步骤在你的 Linux Mac 或 Windows 桌面上安装 Docker CE 在上一篇文章中 xff0c 我们学习了容器世界的一些基本术语 当我们运行命令并在后续文章中使用其中一些术语时 xff0c 这些背景信息将会派上
  • 信号量-邮箱-消息队列的区别

    为什么要用 xff1a 任务间的通信可以通过全局变量或者信号量来完成 全局变量虽然可以承载通信的内容 xff0c 但是接收方无法意识到信息的到达 xff0c 除非发送方向接收方发送一个信号量 xff0c 或者接收方不断该全局变量 xff1b
  • 乱码大全(二) (转)

    乱码大全 二 转 64 more 64 2 XxencodeXML namespace prefix 61 o ns 61 34 urn schemas microsoft com Office office 34 gt 提到Uuencod
  • 成都麻将胡牌算法

    四川麻将胡牌算法 xff08 不支持风 花牌 xff09 支持缺一门 七小对 xff0c 正常胡牌 xff0c 带杠 感谢 华仔 对我的代码提出了宝贵的意见 xff0c 华仔很适合做测试啊 xff01 xff01 include lt st
  • linux lvm 扩容磁盘,Linux LVM磁盘空间扩容的新方法

    导读 传统LVM扩容方法需要增加PV磁盘 xff0c 扩容多次后 xff0c 服务器的磁盘数量会越来越多 xff0c 容易增加日后维护存储和磁盘布局的难度 当服务器是虚拟机 xff0c 或者使用SAN NAS存储的物理机时 xff0c 由于