您当前的位置:首页 > 计算机 > 软件应用 > 虚拟模拟

虚拟机下Linux磁盘在线无损扩容解决方案

时间:12-14来源:作者:点击数:

一、场景列举

  有LVM 无LVM
分区 1 2
硬盘 3 4

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

二、扩容方案-扩容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.在虚机设置中新增一块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

成功!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐