Leif160519的blog Leif160519的blog

——————

目录
ESXi下Linux磁盘在线无损扩容解决方案
/    

ESXi下Linux磁盘在线无损扩容解决方案 置顶!

事先声明

本文章仅作为参考,学习之用,且不可直接画瓢,数据无价,请谨慎操作!!!
本人和平台不对任何因这篇文章导致的数据丢失或损坏负责!!!

一、场景列举

有LVM无LVM
分区12
硬盘34

下面介绍上述四种场景的扩容方案

二、扩容方案-扩容5G

2.1 场景1,有分区,有LVM

image.png

方法一、增大原磁盘空间

1.将硬盘空间扩大5GB
2.刷新硬盘

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
或
echo 1 >  /sys/class/block/sda/device/rescan
或
echo '- - -' > /sys/class/scsi_host/host0/scan

3.对硬盘进行分区

fdisk /dev/sda

分别按下:n(新建分区)-》p(选择主分区)-》3(设置分区号)-》回车(使用默认起始扇区)-》回车(使用默认last扇区)-》t(设置磁盘标志符)-》3(选择分区3)-》8e(将标识符改为8e-LVM)-》w(保存分区表)

4.刷新分区表

partprobe /dev/sda

image.png

5.创建pv

pvcreate /dev/sda3

6.扩容vg

vgextend centos /dev/sda3

7.扩容lv

# 将剩余的空间100%全部给lv扩容
lvextend -l +100%FREE /dev/mapper/centos-root
或者
# 将lv额外增加5G空间
lvextend -L +5G /dev/mapper/centos-root

注意:若提示Insufficient free space: 1280 extents needed, but only 1279 available,将100%或者5G数字改小一些即可

8.文件系统合并

xfs_growfs /dev/mapper/centos-root

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/mapper/centos-root

image.png

成功!

注意:使用扩大本磁盘容量的方式扩容LVM,若lvm所在的分区在磁盘的最后,可以通过parted命令扩大分区之后扩容lvm,反之建议直接新建分区进行扩容。

若磁盘比较多,无法定位哪块盘的情况下,执行/dev/disk/by-path命令查看scsi

方法二、添加一块新硬盘

1.在ESXi设置中新增一块5G硬盘

image.png
2.对新硬盘进行分区

fdisk /dev/sdb

分别按下:n(新建分区)-》p(选择主分区)-》1(设置分区号)-》回车(使用默认起始扇区)-》回车(使用默认last扇区)-》t(设置磁盘标志符)-》1(选择分区3)-》8e(将标识符改为8e-LVM)-》w(保存分区表)

3.刷新分区表

partprobe /dev/sdb

image.png

4.创建pv

pvcreate /dev/sdb1

5.扩容vg

vgextend centos /dev/sdb1

6.扩容lv

# 将剩余的空间100%全部给lv扩容
lvextend -l +100%FREE /dev/mapper/centos-root
或者
# 将lv额外增加5G空间
lvextend -L +5G /dev/mapper/centos-root

注意:若提示Insufficient free space: 1280 extents needed, but only 1279 available,将100%或者5G数字改小一些即可

7.文件系统合并

xfs_growfs /dev/mapper/centos-root

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/mapper/centos-root

image.png

成功!

2.1 场景2,有分区,无LVM

image.png
1.将原硬盘容量直接扩大5GB
2.刷新磁盘

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

image.png
3.删除分区,重新新建分区

fdisk /dev/sdb

分别按下:d(删除分区)-》n(新建分区)-》p(选择主分区)-》1(设置分区号)-》回车(使用默认起始扇区)-》回车(使用默认last扇区)-》w(保存分区表)

删除分区的方式非常危险,为避免异常情况,建议使用`parted /dev/sdb resizepart x 100%`进行分区扩容(x代表分区序号,可以通过parted /dev/sdb print命令查看,如果提示需要修复gpt,选择fix,这种方式也适用于有分区,有lvm而且没有swap分区的情况)

[root@k8s-master-02:~ 10:31:32] # parted /dev/vda print
Warning: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra 83886080 blocks) or continue with the current setting? 
Fix/Ignore? Fix                                                           
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  2150MB  2147MB  ext4
 3      2150MB  64.4GB  62.3GB

[root@k8s-master-02:~ 10:32:47] # parted /dev/vda resizepart 3 100%
Information: You may need to update /etc/fstab.

[root@k8s-master-02:~ 10:33:04] # pvs                            
  PV         VG     Fmt  Attr PSize   PFree
  /dev/vda3  ubuntu lvm2 a--  <58.00g    0 
[root@k8s-master-02:~ 10:33:06] # pvresize /dev/vda3
  Physical volume "/dev/vda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@k8s-master-02:~ 10:33:10] # lvextend -l +100%FREE /dev/ubuntu/root
  Size of logical volume ubuntu/root changed from <58.00 GiB (14847 extents) to <98.00 GiB (25087 extents).
  Logical volume ubuntu/root successfully resized.
[root@k8s-master-02:~ 10:33:20] # xfs_growfs /dev/ubuntu/root
meta-data=/dev/mapper/ubuntu-root isize=512    agcount=5, agsize=3538688 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=15203328, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6911, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 15203328 to 25689088
[root@k8s-master-02:~ 10:33:26] # df -h /
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root   98G   17G   82G  18% /

4.刷新分区表

partprobe /dev/sdb

image.png
5.文件系统合并

xfs_growfs /dev/sdb1

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/sdb1

image.png
成功!

注意:若一块硬盘有多个分区,则只能对最后一个分区进行扩容操作,中间分区不建议扩容,风险太大。

2.1 场景3,无分区,有LVM

image.png

方法一、增大原磁盘空间

1.将原磁盘空间扩大5GB
2.刷新磁盘

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

image.png
3.刷新pv

pvresize /dev/sdb

image.png
4.扩容lv

# 将剩余的空间100%全部给lv扩容
lvextend -l +100%FREE /dev/mapper/data-backup
或者
# 将lv额外增加5G空间
lvextend -L +5G /dev/mapper/data-backup

注意:若提示Insufficient free space: 1280 extents needed, but only 1279 available,将100%或者5G数字改小一些即可

5.文件系统合并

xfs_growfs /dev/mapper/data-backup

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/mapper/data-backup

image.png

成功!

若磁盘比较多,无法定位哪块盘的情况下,执行/dev/disk/by-path命令查看scsi

方法二、添加一块新硬盘

1.添加一块5G的硬盘

image.png
2.创建pv

pvcreate /dev/sdc

3.扩容vg

vgextend data /dev/sdc

4.扩容lv

# 将剩余的空间100%全部给lv扩容
lvextend -l +100%FREE /dev/mapper/data-backup
或者
# 将lv额外增加5G空间
lvextend -L +5G /dev/mapper/data-backup

注意:若提示Insufficient free space: 1280 extents needed, but only 1279 available,将100%或者5G数字改小一些即可

5.文件系统合并

xfs_growfs /dev/mapper/data-backup

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/mapper/centos-root

image.png
成功!

2.1 场景4,无分区,无LVM

image.png
1.将原磁盘容量增大5G
2.刷新硬盘

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
或
echo 1 >  /sys/class/block/sda/device/rescan
或
echo '- - -' > /sys/class/scsi_host/host0/scan

image.png

3.文件系统合并

xfs_growfs /dev/sdb

注意:若文件系统格式为ext*,则使用命令resize2fs /dev/sdb

image.png
成功!


“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

标  题ESXi下Linux磁盘在线无损扩容解决方案
作  者Leif160519
出  处https://github.icu/articles/2020/06/26/1593159154169.html
关于博主:坐标六朝古都南京,服务器运维工程师+桌面运维工程师,如有问题探讨可以直接下方留言。
声援博主:如果您觉得文章对您有帮助,可以评论、订阅、收藏。您的鼓励是博主的最大动力!