本章介绍Linux系统磁盘扩容问题
前言
想到Linux服务器磁盘扩容我们会想到几种办法
- 挂载lvm方式,然后扩展逻辑卷
- 直接用resiz2efs方式进行扩容
但是一般在云主机上,现在已经很少使用lvm的方式去挂载磁盘,所以这里介绍的是使用resize的方式进行扩容
扩容最关键的就是保证原有的数据不丢失,当然能做到热扩容最好了,扩容过程中保证要服务不停止。
那么扩容也分4种情况:
- 小于2T的裸盘扩容
- 小于2T的分区扩容
- 从小于2T的裸盘扩容到大于2T的裸盘
- 从小于2T的分区扩容到大于2T的分区
针对这4种情况,我们下面一一来介绍一下。
一. 小于2T的裸盘扩容
首先先将裸盘挂载上去,挂载方式参考第一章Linux磁盘挂载
现在我们需要做的扩容,将100G的磁盘扩容到200G
-
先查看一下原先sdc的磁盘大小
image.png -
使用resize2fs /dev/sdc将磁盘在线扩容
image.png -
检查一下磁盘是否扩容
image.png
看到这里,磁盘就已经扩容完成
二. 小于2T的分区扩容
1)查看分区信息
使用lsblk命令查看sdc分区,可以看到sdc1分区是100G,现在我们需要扩容到200G
image.png
2)扩充分区
使用growpart命令将分区扩充至200G,如果没有growpart命令,可以先安装
centos机器:yum install cloud-utils-growpart --y
ubuntu机器:apt install cloud-initramfs-growroot -y
growpart /dev/sdc 1
3) 分区扩容
resize2fs /dev/sdc1
image.png
到这里分区就扩容完成
三. 从小于2T的裸盘扩容到大于2T的裸盘
我们现在从200G裸盘,扩容到3T
image.png
其实这种方式和小于2T的裸盘扩容方式一样,可以直接resize,所以不需要过多的介绍了,直接扩容就可以了。
image.png
image.png
四. 从小于2T的分区扩容到大于2T的分区
使用lsblk命令可以看到/dev/sdc有3T磁盘,但是并未挂载
image.png
需要使用gdisk将分区表从MBR转换为GPT,如果没有,请安装gdisk
centos: yum install gdisk -y
ubuntu: apt install gdisk -y
1)卸载挂载点
这个扩容是需要先将挂载点卸载的,要不然无法新建分区
umount /dev/sdc1
2) 对齐扇区
sudo gdisk /dev/xvdb
在提示中输入以下命令,以进入专家模式并设置扇区对齐值。
注意:确保将扇区对齐值从默认的 8 更改为 1。在创建 GPT 分区时使用 8 字节对齐可能会导致出现问题。
Command (? for help): x
Expert command (? for help): l #这个是小写的L,并不是1
Enter the sector alignment value (1-65536, default = 2048): 1
Expert command (? for help): m
3)创建GPT分区
在提示中输入以下命令,以创建 GPT 分区。在最后一个扇区提示中键入 enter,以使用默认扇区编号 2047。
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-6291455966, default = 4294967296) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'BIOS boot partition'
在提示中输入以下命令,以删除根分区:
注:删除分区不会使磁盘里面的文件丢失
Command (? for help): d
Partition number (1-2): 1
在提示中输入以下命令,以将根分区重新创建为 3TB。在第一个扇区、最后一个扇区和十六进制代码或 GUID 提示中,键入 enter 以使用默认设置。
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (2048-6291455966, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-6291455966, default = 6291455966) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdc.
4) 检查设备文件系统
使用 fsck 工具来检查设备 /dev/xvdf1 的文件系统是否正确。有关 fsck 工具的更多信息,请参阅 Ubuntu man 网站上的 fsck。
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (2048-6291455966, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-6291455966, default = 6291455966) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdc.
5) 扩展分区
运行 resize 命令调整文件系统的大小,以将其扩展至 3TB。
注意:调整文件系统大小可能需要 10-20 秒左右。
sudo e2fsck -f /dev/sdc1
e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
cloudimg-rootfs: 57524/262144000 files (0.0% non-contiguous), 16648272/536870655 blocks
6)重新挂载分区
mount /dev/sdc1 /mnt
网友评论