Gitlab通过LVM无损扩容

一、添加硬盘

无论虚拟机还是物理机,通过各自的方法添加硬盘。

二、 开机后使用fdisk -l 命令查看新增的硬盘

磁盘 /dev/sdb:536.9 GB 是新增的硬盘
磁盘 /dev/mapper/centos_gitlab-root:18.2 GB 是将进行扩容的目标磁盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@gitlab ~]# fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00003017

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

磁盘 /dev/sdb:536.9 GB, 536870912000 字节,1048576000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos_gitlab-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos_gitlab-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

三、对新硬盘分区

通过fdisk命令对新硬盘进行分区,fdisk + 硬盘名称(根据实际情况)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[root@gitlab ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x1b8f4ec4 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-1048575999,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-1048575999,默认为 1048575999):
将使用默认值 1048575999
分区 1 已设置为 Linux 类型,大小设为 500 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:536.9 GB, 536870912000 字节,1048576000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1b8f4ec4

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 1048575999 524286976 83 Linux

命令(输入 m 获取帮助):wq
The partition table has been altered!

Calling ioctl() to re-read partition table.

四、开始扩容

使用mkfs.ext4对新创建的分区进行格式化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@gitlab ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
32768000 inodes, 131071744 blocks
6553587 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2279604224
4000 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

创建物理卷

1
2
3
4
[root@gitlab ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.

查看当前物理卷属性

使用pvdisplay命令查看物理卷信息:物理卷名称、所属卷组、卷大小、PE大小、总PE数等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@gitlab ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos_gitlab
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 Uxxs2H-fqny-3gjD-eZpq-opJZ-ygIf-fFkhCu

--- Physical volume ---
PV Name /dev/sdb1
VG Name centos_gitlab
PV Size <500.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 127999
Free PE 127999
Allocated PE 0
PV UUID OCWyXg-0HQZ-UydA-DxqB-hUfk-Kk7N-6T6JEq

扩容卷组

注意:扩充的容量要小于物理卷容量。例如500G的卷添加499.9G

1
2
3
4
[root@gitlab ~]# lvextend -L +499.9G /dev/mapper/centos_gitlab-root 
Rounding size to boundary between physical extents: 499.90 GiB.
Size of logical volume centos_gitlab/root changed from <17.00 GiB (4351 extents) to <516.90 GiB (132326 extents).
Logical volume centos_gitlab/root successfully resized.

使用xfs_growfs命令更新XFS文件系统的大小,(实际增加存储空间)

1
2
3
4
5
6
7
8
9
10
11
[root@gitlab ~]# xfs_growfs /dev/mapper/centos_gitlab-root 
meta-data=/dev/mapper/centos_gitlab-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 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 135501824

五、扩容完成

查看扩容后的磁盘情况

1
2
3
4
5
6
7
8
9
[root@gitlab ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos_gitlab-root 517G 13G 505G 3% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 52K 1.9G 1% /dev/shm
tmpfs 1.9G 16M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
tmpfs 379M 0 379M 0% /run/user/0

Gitlab通过LVM无损扩容
http://anximin.github.io/2024/02/20/git_gitlab_extend/
作者
Sylar
发布于
2024年2月20日
许可协议