VMware环境下Linux磁盘空间(LVM)扩容方法

引言

最近在安装Oracle ASM的过程中,解压文件被迫终止,提示可用空间不足。下面简单描述磁盘扩容的步骤。

环境

  1. 环境:VMware Workstation 16 PRO下的虚拟机
  2. 系统:Oracle Linux Server 7.9 (Redhat 7系列可参考)
  3. 内核:Linux 5.4.17-2102.201.3.el7uek.x86_64
  4. 文件系统类型:LVM
[root@oracle19c-asm ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb           8:16   0   40G  0 disk 
sdc           8:32   0   40G  0 disk 
sda           8:0    0   20G  0 disk 
├─sda2        8:2    0   19G  0 part 
│ ├─ol-swap 252:1    0    2G  0 lvm  [SWAP]
│ └─ol-root 252:0    0   17G  0 lvm  /   # 根目录挂载点为LVM
└─sda1        8:1    0    1G  0 part /boot

目标

安装系统时分配磁盘空间共20G,采用默认分区配置,根目录分到19G空间。
现将磁盘扩容至30G,可用空间全部分配给根目录。

[root@oracle19c-asm ~]# df -H
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             1.9G     0  1.9G   0% /dev
tmpfs                2.0G     0  2.0G   0% /dev/shm
tmpfs                2.0G   11M  2.0G   1% /run
tmpfs                2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/ol-root   19G   18G  416M  98% /  # 根目录空间不足
/dev/sda1            1.1G  245M  819M  23% /boot
tmpfs                383M   37k  383M   1% /run/user/0
Server.x86_64

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

步骤

检查磁盘

root 用户登录,使用 df -H 检查磁盘使用情况,如上图所示,根目录使用了98%了,急需扩容。
使用lsblk检查所有磁盘情况,以及挂载类型。

sdb和sdc为新磁盘,大小为40G,理论上可用此空间去扩容根目录,因后期需要另作它用,所以本次实验不使用sdb和sdc,而是直接扩容sda。
检查根目录挂载类型为lvm。

VMware扩展磁盘空间

  1. 关闭虚拟机
  2. VMware扩展磁盘空间
    请添加图片描述
    因为是先操作后截图,导致图中硬盘原始大小为30G,请忽略该细节问题。
  3. 开启虚拟机
  4. 检查扩容情况
[root@oracle19c-asm ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb           8:16   0   40G  0 disk 
sdc           8:32   0   40G  0 disk 
sda           8:0    0   30G  0 disk  # 由原来的20G变为扩容后的30G
├─sda2        8:2    0   19G  0 part 
│ ├─ol-swap 252:1    0    2G  0 lvm  [SWAP]
│ └─ol-root 252:0    0   17G  0 lvm  /
└─sda1        8:1    0    1G  0 part /boot

此时sda磁盘总容量为30G,说明扩容成功。

创建分区

  1. 如上图所示,sda共30G,其中sda1和sda2共20G,还有10G未显示
  2. 查看磁盘分区类型,使用命令 prarted /dev/xxx print
[root@oracle19c-asm ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  21.5GB  20.4GB  primary               lvm

其中Partition Table: msdos显示我们用的MBR分区,后续我们使用fdisk去操作。如果是gpt,则为GPT分区,则应该使用gdisk分区。这个细节问题很多人都没提,主义不要搞错,否则会导致分区失败。

  1. 使用命令 fdisk -l 查看磁盘情况
[root@oracle19c-asm ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d3163

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/ol-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/ol-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

为便于全面理解,我尽可能多贴代码,对排版上造成的影响,还请大家理解。
关注sda:sda1和sda2共约21G(1048576 + 19921920),而sda总大小32.2G,因此可以判断该磁盘有剩余空间,接下来的流程会使用到该剩余空间。

也会有人问我们分配的不是总大小30G,而为啥到这个界面就是32.2G了,这主要是因为两种计算方式不一致,程序按照1024M=1G计算,而计算机按照1000M=1G,因此会产生一定误差,比如生活中常见的U盘,实际容量会小于标注容量。

关于sdb和sdc,没有分区,所以不显示Device等信息。

  1. 将未分配的磁盘空间划分为新区,由前面内容可判断应该使用 fdisk 命令。
[root@oracle19c-asm ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n  # n代表新建分区,m可以列出帮助文档
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p  # 选择P,新建主分区
Partition number (3,4, default 3):   # 编号为3,默认即可
First sector (41943040-62914559, default 41943040):   # 开始扇区 默认即可
Using default value 41943040
Last sector, +sectors or +size{K,M,G} (41943040-62914559, default 62914559):   # 结束扇区,可根据提示调整,我默认分配整个剩余扇区,直接回车
Using default value 62914559
Partition 3 of type Linux and of size 10 GiB is set

Command (m for help): #然后输入w代表保存,q代表退出
  1. 检查分区情况
[root@oracle19c-asm ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb           8:16   0   40G  0 disk 
sdc           8:32   0   40G  0 disk 
sda           8:0    0   30G  0 disk 
├─sda2        8:2    0   19G  0 part 
│ ├─ol-swap 252:1    0    2G  0 lvm  [SWAP]
│ └─ol-root 252:0    0   17G  0 lvm  /
├─sda3        8:3    0   10G  0 part   # 新增sda3分区
└─sda1        8:1    0    1G  0 part /boot

出现sda3,共10G空间,代表分区成功。

配置LVM

  1. 创建物理卷
[root@oracle19c-asm ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.
  1. 查看PV和VG的信息
[root@oracle19c-asm ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2  
  VG Name               ol
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               P4dWEe-BCvh-WrZg-a0Bc-NYda-p9Pd-bJb13R
   
  "/dev/sda3" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               AjbAO2-KDQj-VIIB-s8rJ-Zdwe-dLr1-CDU2D3

[root@oracle19c-asm ~]# vgdisplay 
  --- Volume group ---
  VG Name               ol  # 记住VG的名称
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   # VG剩余空间为0
  VG UUID               G9n7aL-bdnz-qeVO-Y3GA-edf4-lUNe-4tI80Z

由图中可以看出卷组的名称为ol,卷组剩余空间为0

  1. 将创建的物理卷加入到卷组中
[root@oracle19c-asm ~]# vgextend ol /dev/sda3
  Volume group "ol" successfully extended
  1. 再次查看卷组信息
[root@oracle19c-asm ~]# vgdisplay 
  --- Volume group ---
  VG Name               ol
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  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               28.99 GiB
  PE Size               4.00 MiB
  Total PE              7422
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       2559 / <10.00 GiB  # VG剩余10G空间
  VG UUID               G9n7aL-bdnz-qeVO-Y3GA-edf4-lUNe-4tI80Z

卷组剩余空间为10G

  1. 再次使用 df -H 命令查看磁盘情况
[root@oracle19c-asm ~]# df -H
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             1.9G     0  1.9G   0% /dev
tmpfs                2.0G     0  2.0G   0% /dev/shm
tmpfs                2.0G   11M  2.0G   1% /run
tmpfs                2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/ol-root   19G   19G  159M 100% /  # 此时还未成功扩容
/dev/sda1            1.1G  245M  819M  23% /boot
tmpfs                383M   21k  383M   1% /run/user/0
Server.x86_64

记住根目录所对应的文件系统 /dev/mapper/ol-root

  1. 扩展逻辑卷大小
[root@oracle19c-asm ol]# lvextend /dev/ol/root /dev/sda3
  Size of logical volume ol/root changed from <17.00 GiB (4351 extents) to 26.99 GiB (6910 extents).
  Logical volume ol/root successfully resized.

也可以使用 lvextend /dev/mapper/ol-root /dev/sda3

参考: /dev/mapper/ol-root的意思是说你有一个VG (volume group卷组)叫作ol, 这个ol里面有一个LV叫作root。其实这个/dev/mapper/ol-root文件是一个连接文件,是连接到/dev/dm-0的,你可以用命令ll /dev/mapper/ol-root进行查看。

其实在系统里/dev/ol/root 和 /dev/mapper/ol-root以及/dev/dm-0都是一个东西,都可当作一个分区来对待。

  1. 检查数据块大小和数量
[root@oracle19c-asm ol]# xfs_growfs /dev/mapper/ol-root 
meta-data=/dev/mapper/ol-root    isize=256    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 7075840  # 扩容成功
  1. 最后再使用 df -H 命令
[root@oracle19c-asm ol]# df -H
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             1.9G     0  1.9G   0% /dev
tmpfs                2.0G     0  2.0G   0% /dev/shm
tmpfs                2.0G   11M  2.0G   1% /run
tmpfs                2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/ol-root   29G   19G   11G  63% /  # 扩容成功
/dev/sda1            1.1G  245M  819M  23% /boot
tmpfs                383M   21k  383M   1% /run/user/0
Server.x86_64

自此,根目录成功扩容。

【VMware环境下Linux磁盘空间(LVM)扩容方法】的更多相关文章

  1. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  3. PHP如何将图片文件上传到另外一台服务器上

    这篇文章主要介绍了PHP如何将图片文件上传到另外一台服务器上,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  4. Next.js实现react服务器端渲染的方法示例

    这篇文章主要介绍了Next.js实现react服务器端渲染的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. H5移动开发Ajax上传多张Base64格式图片到服务器

    这篇文章主要为大家详细介绍了H5移动开发Ajax上传多张Base64格式图片到服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. 利用php做服务器和web前端的界面进行交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段。本篇文章主要介绍了利用php做服务器和web前端的界面进行交互,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

  7. PHP编写文件多服务器同步程序

    这篇文章主要为大家详细介绍了PHP编写文件多服务器同步程序的相关资料,感兴趣的朋友可以参考一下

  8. ajax上传多图到php服务器的方法

    这篇文章主要为大家详细介绍了ajax上传多图到php服务器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. vue如何在多个不同服务器下访问不同地址

    这篇文章主要介绍了vue如何在多个不同服务器下访问不同地址,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  10. node.js的Express服务器基本使用教程

    express是一个开源的node.js项目框架,下面这篇文章主要给大家介绍了关于node.js的Express服务器基本使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. Windows系统下新增环境变量如何立即生效

    在“我的电脑”->“属性”->“高级”->“环境变量”中增加或修改环境变量后,需重启系统才能使之生效。不用担心DOS窗口中的修改会影响环境变量的值,DOS窗口中的环境变量只是Windows环境变量的一个副本而已。诡异啊,使用win+R->cmd启动的cmd.exe会发现在电脑属性中设置的环境变量立马生效了,在其他模式下启动的cmd却没有发生效果,怪哉!!进程killexplorer.exe桌面,然后运行cmd打开explorer以管理员权限打开cmd执行指定命令

  2. Windows下安装使用ffmpeg

    ①Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。7-zip是一个免费的压缩管理程序,它可以让你打开FFmpeg文件。】3、ffmpeg安装成功验证打开命令提示符窗口。输入命令“ffmpeg–version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了。

  3. Linux安装phpstudy(无联网版)

    Centos安装脚本,直接在浏览器打开#

  4. 45个 GIT 经典操作场景,专治不会合代码

    大家好,我是小富~技术交流关注公众号:程序员内点事传送门:原文地址git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便。但找工作面试和一些需彰显个人实力的场景,仍然需要我们掌握足够多的git命令。下边我们整理了45个日常用git合代码的经典操作场景,基本覆盖了工作中的需求。我刚才提交了什么?如果你用 git commit -a 提交了一次变化(changes),而你又不确定到底这次提交了

  5. 【VMware环境下Linux磁盘空间(LVM)扩容方法】

    VMware环境下Linux系统磁盘扩容,系统为Oracle Linux Server 7.9,Redhat7系列可供参考(如Centos7),磁盘类型为LVM,将根目录从20G扩容至30G。

  6. 神级程序员们都在用的技术网站!总结好了,分享给你

    作为一个程序员、码农、新时代的农民工来说,一些必备的网站(如:搜索引擎、代码管理、技术学习、工具查找、技术博客等)是非常必要的。所以,今天民工哥给

  7. linux安装ffmpeg, ubuntu安装ffmpeg,centos安装ffmpeg

    ubuntu安装安装 apt-get install ffmpeg查看是否安装成功 ffmpeg,效果图如下:centos安装

  8. 用宝塔的定时任务写shell命令会以root执行的解决方法

    用宝塔定时任务功能写shell命令来创建的文件的所有者都是root,然后web访问是以www用户访问的,会出现permissiondenied情况,修改成如下方法可以www执行命令:例:

  9. 谷歌Gmail邮箱开启SMTP/IMAP服务流程

    本篇专门定向讲解谷歌Gmail邮箱,如何开通SMTP协议的流程,在讲篇幅前,我需要你确定3件事: 1.你已经有谷歌账号了 2.你很清楚自己为什么想要开通SMTP服务 3.你已经掌握一定的基础知识,能够

  10. 百度商桥代码安装不显示解决方法

    商桥不显示首先会想到的就是代码安装的位置不对,但是当你发现无论是安装位置还是检测都显示正常时,站长们会有点手足无措了,今天跟大家说说商桥安装以后不显示问题的解决方法。百度商桥显示比较个性化,人性化。其次,如果不正确的情况下,查看“分页显示商桥”。最后,设置完成后刷新网站页面,如果没有立刻显示的话,再清理一下浏览器缓存,看看百度商桥是否显示正常了。

返回
顶部