admin管理员组文章数量:1516870
本片文档我可以说是全网最细节的文档之一,他概括了2种磁盘扩容的方式:
1、挂载扩容:挂载新磁盘分区 的方式实现磁盘扩容
2、LVM 逻辑卷扩容:动态扩展已有逻辑卷的容量,而非新增独立挂载点
这两种方式掌握之后,企业上的磁盘扩容你基本上都能统统拿下
目录
一、挂载扩容
概念:一种传统的磁盘存储扩容方式,核心是将新磁盘(或新划分的磁盘分区)通过格式化(如 ext4、xfs 等文件系统)后,直接挂载到操作系统的目标目录(如/data、/home),以实现该目录存储容量的扩展。
1、使用场景
a、新增独立目录存储
:需要给系统新增一个专门的存储目录(而非扩展已有目录),比如服务器需要单独存放日志(
/var/log
)、数据库备份(
/backup
)、用户数据(
/data
),且这些目录的存储需求与原有目录相互独立,不需要合并容量。
b、简单场景、快速扩容 :对扩容灵活性要求低,追求操作简单、耗时短,比如个人电脑、测试服务器临时增加存储,或初创项目小流量服务(无需后续动态调整容量)。
c、非关键业务、数据量小 :业务对存储连续性要求不高,数据量不大(无需跨磁盘合并空间),比如开发环境的临时代码存储、静态文件服务器(图片 / 文档)的容量补充。
d、不支持 LVM 的环境 :老旧操作系统(未预装 LVM)、嵌入式系统、虚拟化轻量实例(资源受限,不支持 LVM 配置),只能通过传统分区挂载方式扩容。
2、操作步骤
a、添加磁盘(在关机状态下进行)
依次按照如下截图完成磁盘添加
b、查看系统中的磁盘设备
lsblk
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 3.9G 0 part [SWAP]
└─sda3 8:3 0 35.9G 0 part /
sdb 8:16 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
#我这里添加的设备名称是sdbc、创建磁盘分区
sudo fdisk /dev/sdb # 替换为你的新磁盘设备,如/dev/sdc
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xd610a734 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n #输入n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #输入p
分区号 (1-4,默认 1):1 #输入1或者回车都一样
起始 扇区 (2048-41943039,默认为 2048): #回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): #回车
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w #输入W
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。交互式分区操作(按以下步骤输入)
n:创建新分区;p:创建主分区;-
分区编号:默认
1(直接回车); -
起始扇区:默认
2048(直接回车); - 结束扇区:默认 “占满磁盘”(直接回车);
w:保存分区并退出。
d、格式化分区
i、查看文件系统类型
df -Th
ii、查看新加磁盘名称0
lsblk如图我的centos7文件系统类型是xfs,磁盘名称是sdb1,所有我在格式化分区的时候使用的命令是
sudo mkfs.xfs /dev/sdb1
[root@localhost ~]# sudo mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
如果你的文件类型ext4,就执行:(centos7默认的文件类型是xfs,所以这个基本上大家用不到)
sudo mkfs.ext4 /dev/sdb1e、创建挂载点目录
本步骤的作用是将你格式化的分区挂载到指定目录下,后续在这个目录下操作就相当于在你格式化的分区上操作
[root@localhost ~]# mkdir /mnt/test #创建挂载目录
[root@localhost ~]# lsblk #查看挂载设备
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 3.9G 0 part [SWAP]
└─sda3 8:3 0 35.9G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# mount /dev/sdb1 /mnt/test #将/dev/sdb1挂载到/mnt/test
#此时使用df -h就可以看到/mnt/test目录有20G空间
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda3 36G 8.9G 27G 25% /
/dev/sda1 297M 163M 134M 55% /boot
tmpfs 378M 0 378M 0% /run/user/0
tmpfs 378M 12K 378M 1% /run/user/42
/dev/sdb1 20G 33M 20G 1% /mnt/test
此时就已经挂载成功了,但是当你重启服务器之后你的挂载会消失,可以设置开机挂载
f、配置永久挂载(重启后自动挂载)
为避免重启后挂载失效,需将挂载配置写入
/etc/fstab
文件:
i、获取分区的 UUID(推荐用 UUID 避免设备名变化)
sudo blkid /dev/sdb1
输出类似:
/dev/sdb1: UUID="xxxx-xxxx-xxxx-xxxx" TYPE="ext4"
,记录下
UUID
。
ii、 编辑
/etc/fstab
文件
sudo vi /etc/fstab
iii、添加以下内容(根据你的 UUID 和文件系统调整):
UUID=xxxx-xxxx-xxxx-xxxx /mnt/test xfs defaults 0 2
字段解释:
UUID
、
挂载点、
文件系统、
挂载选项
、
dump备份标记、
fsck检查顺序
IV、验证 fstab 配置(避免语法错误导致无法启动)
sudo mount -a
若无报错,说明配置正确;若有报错,立即修正 /etc/fstab
二、LVM扩容
1、使用场景
a、扩展原有目录 / 分区容量
:已有目录(如
/root
、
/home
、
/var/lib/mysql
)空间不足,需要直接增加其容量,且不想改变目录路径(避免业务代码 / 配置修改),比如生产数据库的存储目录扩容(数据库文件路径固定,不能轻易变更)。
b、关键业务、弹性扩容需求 :业务增长不确定,未来可能频繁扩容 / 缩容(比如互联网产品的用户数据目录、短视频平台的存储目录),需要 “按需分配容量”(初始只分配部分空间,后续随业务增长逐步扩容),或临时应急扩容(比如促销活动前快速增加存储)。
c、跨磁盘合并存储
:需要将多个物理磁盘(或分区)的空间合并为一个 “虚拟分区” 使用,比如有 3 块 500GB 硬盘,想合并为 1.5TB 供
/data
目录使用,提升单目录可用容量。
d、生产环境、高可用性要求 :关键业务(如金融交易系统、核心数据库)需要扩容时不影响现有数据和业务运行(LVM 扩容可在线执行,无需卸载目录),且支持后续动态调整(比如缩容、更换物理磁盘)。
2、是否可以进行LVM扩容
#在本地执行sudo pvdisplay,如果没有结果返回则不能使用LVM进行扩容
[root@localhost ~]# sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
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 8neNzU-qDA2-aOwz-x8xn-vuaT-O5tN-Krv6y7
--- Physical volume ---
PV Name /dev/sda3
VG Name centos
PV Size 20.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 5119
Free PE 0
Allocated PE 5119
PV UUID liVhwV-fyLa-zf7a-yAGc-3Ctx-2jIa-oLJ7qO
3、操作步骤
a、添加磁盘(在关机状态下进行)
挂载扩容已经演示了,这里就不再演示了
b、创建新的物理卷(PV)
先lsblk查看未分配的磁盘,我这里是sdb
将未分配的磁盘空间创建为 LVM 物理卷:
sudo pvcreate /dev/sdb
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
c、将物理卷加入现有卷组(VG)
i、先查看当前卷组名称:
vgs
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 38.99g 0
ii、当前卷组名为 centos(默认安装时的卷组名),将新物理卷加入:
vgextend centos /dev/sdb
[root@localhost ~]# vgextend centos /dev/sdb
Volume group "centos" successfully extended
d、扩展逻辑卷(LV)
先查看根分区对应的逻辑卷名称:
lvs
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 36.99g
swap centos -wi-ao---- 2.00g
如上图根分区的逻辑卷是
root
,所以扩展root:
lvextend -l +100%FREE /dev/centos/root
#将卷组(VG)中所有未分配的空闲空间,全部分配给指定的逻辑卷(LV)(这里是 /dev/centos/root 根逻辑卷)e、扩展文件系统(使扩容生效)
查看文件系统类型
df -Th如图我本地的文件系统类型是xfs类型
CentOS 7 根分区默认是
xfs
文件系统,执行:
xfs_growfs /dev/centos/root
#将已扩容的 LVM 逻辑卷(/dev/centos/root)中新增的存储空间,同步到 XFS 文件系统,让系统真正识别并使用这些新增空间f、验证
df -h此时我的根分区磁盘成为了57G,扩容成功,有问题的小伙伴们可以评论区留言或者加qq群进行提问哦,qq群:614457375
版权声明:本文标题:从零开始:理解并执行Centos磁盘扩容过程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1771692731a3268396.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论