​Linux 逻辑分区创建、扩容及缩减

网友投稿 2698 2022-08-23

​Linux 逻辑分区创建、扩容及缩减

​Linux 逻辑分区创建、扩容及缩减

1.前言

虚拟化环境已挂载目录磁盘空间不足,希望在不影响现有业务的情况下,动态将某个挂载点目录扩容。

如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容。

1.1环境介绍

操作系统

Red Hat Enterprise Linux Server release 7.3 (Maipo)

硬盘1

300G

硬盘2(新添加硬盘)

100G

1.2流程说明

LV建立流程:

1.建立PV

2.建立VG,将PV加入到VG中。

3.建立LV,并设置LV大小。

4.格式化LV或LP成你需要的文件系统。

LV删除流程:

1.umount FS

2.删除LV。

3.将PV从所在的VG中删除。

4.删除VG。

创建LV有两种方式,一种是基于磁盘的,另外一种是基于分区的。如果是基于分区的就必须通过fdisk或parted方式划分好分区。如果基于磁盘,直接就可以通过pvcreate来创建物理卷。因为只有创建好了物理卷之后才能添加到卷组,并在卷组里面创建逻辑卷,后格式化才能存放数据。

2.几个常用命令介绍

2.1 fdisk命令

fdisk一般用来磁盘分区,也可以用来查看磁盘分区情况。

/dev/sda1和/dev/sda2是两个主分区,其中前者是启动分区。

注意/dev/sda2是LVM文件系统,这个是后续动态扩容的关键点。

后续三个就是逻辑卷分别是:

磁盘 /dev/mapper/rhel-root: 53.7 GB

磁盘 /dev/mapper/rhel-swap: 8455 MB

磁盘 /dev/mapper/rhel-home:258.9 GB

2.2 lsblk命令

lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,这个命令很好用,因为可以让电脑上的磁盘和分区信息很清晰。

这里同样看出系统已有一块硬盘sda,具备两个分区,分别是sda1和sda2。

其中sda2分区有三个逻辑卷,分别就是上述对应的rhel-root、rhel-swap和rhel-home。

注意:这里rhel-root、rhel-swap和rhel-home,三者都被“-”分割开。

rhel是vg,是卷组(Volume Group, VG)

后者root和swap是逻辑卷(Logical Volume, LV)。

正是在逻辑卷上做文件系统。也正是逻辑卷创建之后,其大小可以伸缩。

2.3 df命令

linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。显示指定磁盘文件的可用空间。

df这个命令读取的数据计划都是针对整个文件系统的,主要在super block内信息,因此读取速度非常快速.

注:

tmpfs,临时文件系统,是一种基于内存的文件系统。和ramdisk不同,后者是个块设备,前者是个文件系统。df下是不显示swap分区的。所以这里只显示/dev/mapper/rhel-root。

可以看出来rhel-root是xfs文件系统

3.扩容

3.1 热添加一块硬盘

在虚拟机管理平台上,热添加一块硬盘。

验证新增的硬盘:

从最后可以看出/dev/sdb为107.4 GB容量,这里是没有任何分区的。

查看当前pv、vg以及lv的情况。

关于pv、vg以及lv的关系详见下图:

3.2 创建pv

#创建一个新pv 注意要选择dev/sdb这个新加的硬盘[root@DV-POS-AP01 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created.[root@DV-POS-AP01 ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size 299.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 76543 Free PE 1 Allocated PE 76542 PV UUID es8Nfp-S2DB-tuTI-NHce-sumJ-n7h1-5aXQhs "/dev/sdb1" is a new physical volume of "100.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 100.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID OjdlGe-4UfC-mB2e-039C-sKJ9-0yQ0-h336dI

3.3 扩展vg

[root@DV-POS-AP01 ~]# vgextend rhel /dev/sdb1 Volume group "rhel" successfully extended[root@DV-POS-AP01 ~]# pvscan PV /dev/sda2 VG rhel lvm2 [299.00 GiB / 4.00 MiB free] PV /dev/sdb1 VG rhel lvm2 [100.00 GiB / 100.00 GiB free] Total: 2 [398.99 GiB] / in use: 2 [398.99 GiB] / in no VG: 0 [0 ][root@DV-POS-AP01 ~]# vgdisplay --- Volume group --- VG Name rhel System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 2 Act PV 2 VG Size 398.99 GiB PE Size 4.00 MiB Total PE 102142 Alloc PE / Size 76542 / 298.99 GiB Free PE / Size 25600 / 100.00 GiB VG UUID F6ge78-mPXm-dKfW-nrND-Y9jx-LmCi-qimmuu

3.4 创建lv

3.4.1 使用lvcreate创建oracle的lv

#查看VG 名称:rhel[root@DV-POS-AP01 ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 2 4 0 wz--n- 398.99g 301.12g #[root@DV-POS-AP01 ~]# lvcreate -L 20G -n oracle rhel Logical volume "oracle" created.[root@DV-POS-AP01 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home rhel -wi-ao---- 15.00g oracle rhel -wi-a----- 20.00g prod rhel -wi-ao---- 5.00g root rhel -wi-ao---- 50.00g swap rhel -wi-ao---- 27.88g

3.4.2 格式化并挂载

#格式化[root@DV-POS-AP01 ~]# mkfs.xfs /dev/rhel/oraclemeta-data=/dev/rhel/oracle isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=2560, versinotallow=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0#创建目录[root@DV-POS-AP01 ~]# mkdir /prod/oracle#挂载目录 [root@DV-POS-AP01 ~]# mount /dev/rhel/oracle /prod/oracle#验证[root@DV-POS-AP01 ~]# df -TH文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 54G 4.8G 49G 9% /devtmpfs devtmpfs 4.1G 0 4.1G 0% /devtmpfs tmpfs 4.2G 91k 4.2G 1% /dev/shmtmpfs tmpfs 4.2G 387M 3.8G 10% /runtmpfs tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup/dev/sda1 xfs 1.1G 181M 883M 17% /boottmpfs tmpfs 821M 0 821M 0% /run/user/989tmpfs tmpfs 821M 17k 821M 1% /run/user/0/dev/mapper/rhel-home xfs 17G 39M 17G 1% /home/dev/mapper/rhel-prod xfs 5.4G 34M 5.4G 1% /prod/dev/mapper/rhel-oracle xfs 22G 34M 22G 1% /prod/oracle

3.5 扩展lv

3.5.1 扩展swap

[root@DV-POS-AP01 ~]# lvmlvm> lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home rhel -wi-ao---- 241.12g root rhel -wi-ao---- 50.00g swap rhel -wi-ao---- 7.88glvm> vgs VG #PV #LV #SN Attr VSize VFree rhel 2 3 0 wz--n- 398.99g 100.00glvm> lvextend -L +20G /dev/rhel/swap Size of logical volume rhel/swap changed from 7.88 GiB (2016 extents) to 27.88 GiB (7136 extents). Logical volume rhel/swap successfully resized.# 同步文件系统[root@DV-POS-AP01 ~]# swapoff -a[root@DV-POS-AP01 ~]# mkswap /dev/rhel/swapmkswap: /dev/rhel/swap: warning: wiping old swap signature.正在设置交换空间版本 1,大小 = 29229052 KiB无标签,UUID=a41ec99a-b838-40bc-a52e-5e0de0a320b7[root@DV-POS-AP01 ~]# swapon -vaswapon /dev/mapper/rhel-swapswapon: /dev/mapper/rhel-swap:找到交换区签名:版本为 1,页面大小为 4,相同 字节顺序swapon: /dev/mapper/rhel-swap:页大小=4096,交换区大小=29930553344,设备大小=29930553344[root@DV-POS-AP01 ~]# free -h total used free shared buff/cache availableMem: 7.6G 1.4G 1.7G 370M 4.6G 5.6GSwap: 27G 0B 27G

3.5.2 逻辑卷扩展 oracle

查看卷组rhel及oracle逻辑卷容量

[root@DV-POS-AP01 ~]# df -TH文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 54G 4.8G 49G 9% /devtmpfs devtmpfs 4.1G 0 4.1G 0% /devtmpfs tmpfs 4.2G 91k 4.2G 1% /dev/shmtmpfs tmpfs 4.2G 387M 3.8G 10% /runtmpfs tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup/dev/sda1 xfs 1.1G 181M 883M 17% /boottmpfs tmpfs 821M 0 821M 0% /run/user/989tmpfs tmpfs 821M 17k 821M 1% /run/user/0/dev/mapper/rhel-home xfs 17G 39M 17G 1% /home/dev/mapper/rhel-prod xfs 5.4G 34M 5.4G 1% /prod/dev/mapper/rhel-oracle xfs 22G 34M 22G 1% /prod/oracle[root@DV-POS-AP01 ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 2 5 0 wz--n- 398.99g 281.12g[root@DV-POS-AP01 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home rhel -wi-ao---- 15.00g oracle rhel -wi-ao---- 20.00g prod rhel -wi-ao---- 5.00g root rhel -wi-ao---- 50.00g swap rhel -wi-ao---- 27.88g

lvextend扩容

[root@DV-POS-AP01 ~]# lvextend -L 50G /dev/rhel/oracle Size of logical volume rhel/oracle changed from 20.00 GiB (5120 extents) to 50.00 GiB (12800 extents). Logical volume rhel/oracle successfully resized.

使用xfs_growfs调整xfs格式文件系统大小并验证

[root@DV-POS-AP01 ~]# df -TH文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 54G 4.8G 49G 9% /devtmpfs devtmpfs 4.1G 0 4.1G 0% /devtmpfs tmpfs 4.2G 91k 4.2G 1% /dev/shmtmpfs tmpfs 4.2G 387M 3.8G 10% /runtmpfs tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup/dev/sda1 xfs 1.1G 181M 883M 17% /boottmpfs tmpfs 821M 0 821M 0% /run/user/989tmpfs tmpfs 821M 17k 821M 1% /run/user/0/dev/mapper/rhel-home xfs 17G 39M 17G 1% /home/dev/mapper/rhel-prod xfs 5.4G 34M 5.4G 1% /prod/dev/mapper/rhel-oracle xfs 22G 34M 22G 1% /prod/oracle[root@DV-POS-AP01 ~]# xfs_growfs /dev/rhel/oraclemeta-data=/dev/mapper/rhel-oracle isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=2560, versinotallow=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 5242880 to 13107200[root@DV-POS-AP01 ~]# df -TH文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 54G 4.8G 49G 9% /devtmpfs devtmpfs 4.1G 0 4.1G 0% /devtmpfs tmpfs 4.2G 91k 4.2G 1% /dev/shmtmpfs tmpfs 4.2G 387M 3.8G 10% /runtmpfs tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup/dev/sda1 xfs 1.1G 181M 883M 17% /boottmpfs tmpfs 821M 0 821M 0% /run/user/989tmpfs tmpfs 821M 17k 821M 1% /run/user/0/dev/mapper/rhel-home xfs 17G 39M 17G 1% /home/dev/mapper/rhel-prod xfs 5.4G 34M 5.4G 1% /prod/dev/mapper/rhel-oracle xfs 54G 34M 54G 1% /prod/oracle

3.6回缩逻辑卷

3.6.1 xfs格式

xfs一般只能增加不能减少空间,如果要减少,必须格式化重新挂载,所以有重要数据最好不要这样操作。

备份数据

#查看磁盘空间,将/prod缩减到5G [root@DV-POS-AP01 ~]# df -Th文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 50G 4.5G 46G 9% /devtmpfs devtmpfs 3.9G 0 3.9G 0% /devtmpfs tmpfs 3.9G 88K 3.9G 1% /dev/shmtmpfs tmpfs 3.9G 369M 3.5G 10% /runtmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda1 xfs 1014M 173M 842M 17% /boottmpfs tmpfs 783M 0 783M 0% /run/user/989tmpfs tmpfs 783M 16K 783M 1% /run/user/0/dev/mapper/rhel-home xfs 15G 37M 15G 1% /home/dev/mapper/rhel-prod xfs 10G 33M 10G 1% /prod[root@DV-POS-AP01 ~]# xfsdump -f /prod.dump /prodxfsdump: using file dump (drive_simple) strategyxfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control ============================= dump label dialog ==============================please enter label for this dump session (timeout in 300 sec) -> ""session label entered: """" --------------------------------- end dialog ---------------------------------xfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specifiedxfsdump: level 0 dump of DV-POS-AP01:/prodxfsdump: dump date: Thu Aug 11 14:29:45 2022xfsdump: session id: c54b7945-38ac-4625-943f-2c0eaebf0124xfsdump: session label: """"xfsdump: ino map phase 1: constructing initial dump listxfsdump: ino map phase 2: skipping (no pruning necessary)xfsdump: ino map phase 3: skipping (only one dump stream)xfsdump: ino map construction completexfsdump: estimated dump size: 20800 bytes ============================= media label dialog =============================please enter label for media in drive 0 (timeout in 300 sec) -> ""media label entered: """" --------------------------------- end dialog ---------------------------------xfsdump: creating dump session media file 0 (media 0, file 0)xfsdump: dumping ino mapxfsdump: dumping directoriesxfsdump: dumping non-directory filesxfsdump: ending media filexfsdump: media file size 21016 bytesxfsdump: dump size (non-dir files) : 0 bytesxfsdump: dump complete: 6 seconds elapsedxfsdump: Dump Summary:xfsdump: stream 0 /prod.dump OK (success)xfsdump: Dump Status: SUCCESS

使用umount 卸载/prod

[root@DV-POS-AP01 ~]# umount /prod

使用lvreduce将/prod的Logical Volume缩减为5G

[root@DV-POS-AP01 ~]# lvreduce -L 5G /dev/rhel/prod WARNING: Reducing active and open logical volume to 5.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce rhel/prod? [y/n]: y Size of logical volume rhel/prod changed from 10.00 GiB (2560 extents) to 5.00 GiB (1280 extents). Logical volume rhel/prod successfully resized.

调整文件系统大小,但是XFS用xfs_growfs不能直接确认

[root@DV-POS-AP01 ~]# xfs_growfs /dev/rhel/prodxfs_growfs: /dev/rhel/prod is not a mounted XFS filesystem

使用mkfs.xfs格式化

[root@DV-POS-AP01 ~]# mkfs.xfs -f /dev/rhel/prodmeta-data=/dev/rhel/prod isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=2560, versinotallow=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0

挂载/prod

[root@DV-POS-AP01 ~]# mount /dev/rhel/prod /prod查看磁盘空间,已将/prod缩减到5G[root@DV-POS-AP01 ~]# df -Th文件系统 类型 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root xfs 50G 4.5G 46G 9% /devtmpfs devtmpfs 3.9G 0 3.9G 0% /devtmpfs tmpfs 3.9G 88K 3.9G 1% /dev/shmtmpfs tmpfs 3.9G 369M 3.5G 10% /runtmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda1 xfs 1014M 173M 842M 17% /boottmpfs tmpfs 783M 0 783M 0% /run/user/989tmpfs tmpfs 783M 16K 783M 1% /run/user/0/dev/mapper/rhel-home xfs 15G 37M 15G 1% /home/dev/mapper/rhel-prod xfs 5.0G 33M 5.0G 1% /prod

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HDU 1323 Perfection(公因子)
下一篇:提升代码的可读性系列--基础篇(增强代码可读性是函数的作用吗)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~