频道栏目
首页 > 系统 > Linux > 正文
Linux LVM磁盘空间扩容的新方法
2018-08-10 10:09:31           
收藏   我要投稿

导读

传统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。

查看系统的磁盘分区结构布局:

wKioL1YLfVPTY9skAAOcK511YJk228.jpg

进入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的具体情况:

wKioL1YLfruRyevSAAIz7IvNYsQ437.jpg

可以看到,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:

wKiom1YLf66w16_vAAJ1GYypXHk027.jpg wKioL1YLf9-g5IIwAAJusLn2JhU974.jpg

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

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未分配空间。

wKioL1YLgMSxnEiSAASBEEJJM9A404.jpg

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

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

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

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

wKiom1YLgbuRuGWZAAJCvXv5Q-E095.jpg

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

wKioL1YLgpSS1DGRAAJrJmlUYic871.jpg

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

wKiom1YLgeDDUR5pAAHOAEXgCW8389.jpg

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

[root@user ~]#pvs

PVVG Fmt Attr PSizePFree

/dev/sda2centos lvm2 a-- 14.51g 5.00g

/dev/sdbcentos 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

PVVG Fmt Attr PSizePFree

/dev/sda2centos lvm2 a-- 14.51g 5.00g

/dev/sdbcentos lvm2 a-- 10.00g 5.00g

[root@user ~]#vgs

VG#PV #LV #SN Attr VSize VFree

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

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

LV及文件系统扩容

1. 扩容LV

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

查看原来LV空间情况:

[root@user ~]#lvs

LVVG Attr LSizePool 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

FreePE / Size 2048 / 8.00 GiB

VG UUIDU8Io1J-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 14G4.2G 8.5G 33% /

devtmpfs 489M 0489M 0% /dev

tmpfs 498M 80K498M 1% /dev/shm

tmpfs 498M 7.0M491M 2% /run

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

/dev/sda1 477M 95M354M 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 22G4.2G 16G 21% /

devtmpfs 489M 0489M 0% /dev

tmpfs 498M 80K498M 1% /dev/shm

tmpfs 498M 7.0M491M 2% /run

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

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

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

3. 扩容swap分区

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

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

[root@user ~]#free -m

total used freeshared buffers cached

Mem: 994 635 3587 55 204

-/+ buffers/cache: 375618

Swap: 1023 01023

[root@user ~]#swapon -s

Filename Type Size UsedPriority

/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 UsedPriority

/dev/dm-0 partition 3145724 0 -1

[root@user ~]#free -m

total used freeshared buffers cached

Mem: 994636357 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分区简单快速,分区所需的停机时间比较短。

点击复制链接 与好友分享!回本站首页
上一篇:bash学习心得(Linux)
下一篇:Dubbo和Zookeeper常见错误解决
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站