LVM 磁盘扩容

LVM 磁盘扩容

linux LVM磁盘管理,添加新硬盘,硬盘扩容操作,记录备忘。

前言

之前给公司的同事配置了一台samba服务器,因为主要使用的是UI设计的同事,有大量的共享素材,磁盘很快的已经满了。前两天有同事来告知,映射的网络硬盘已经显示没有可用的空间了。想想那台主机里面的电源,应该可以再挂两个硬盘,于是,对磁盘扩容就玩起来了。

一张来来说明LVM管理:

LVM


添加硬盘

关机,找到一块未用的硬笔,安装在主机里。

查看硬盘使用情况

1
2
3
4
5
6
7
8
9
10
df -HT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 1.6G 53G 3% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.2M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 518M 228M 290M 44% /boot
/dev/mapper/centos-home xfs 942G 933G 9.1G 100% /home //这里是重点,已经满了
tmpfs tmpfs 398M 0 398M 0% /run/user/0

创建分区

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
[root@server ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 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 获取帮助):d
已选择分区 1
分区 1 已删除

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

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):df
已将分区“Linux”的类型更改为“BootIt”

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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


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

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

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 976773167 488385560 df BootIt

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

查看分区信息

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
[root@server ~]# fdisk -l
磁盘 /dev/sda:1000.2 GB, 1000204886016 字节,1953525168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x000b0c67

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 1953523711 976248832 8e Linux LVM

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

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 976773167 488385560 df BootIt

磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节

磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节

磁盘 /dev/mapper/centos-home:941.8 GB, 941759660032 字节,1839374336 个扇区 //记住这个
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节

查看volume group 信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@server ~]# vgdisplay
--- Volume group ---
VG Name centos //记住这个
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238325 / <930.96 GiB
Free PE / Size 16 / 64.00 MiB
VG UUID pSvviC-2h2k-AA3P-OUpk-OvtT-SXWd-qZ2dQa

查看logical volume

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@server ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238325 / <930.96 GiB
Free PE / Size 16 / 64.00 MiB
VG UUID pSvviC-2h2k-AA3P-OUpk-OvtT-SXWd-qZ2dQa

创建physical volume

1
2
[root@server ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.

将physical volume扩展到volume group

1
2
[root@server ~]# vgextend centos /dev/sdb1    //centos 为volume group名称
Volume group "centos" successfully extended

将sdb1容量扩展至/home

查看physical volume

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@server ~]# pvdisplay 
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 931.02 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 238341
Free PE 16
Allocated PE 238325
PV UUID 9PCjzM-KHZJ-mDF2-Qb8d-E6Ye-4elf-AdDi4O

--- Physical volume ---
PV Name /dev/sdb1
VG Name centos
PV Size 465.76 GiB / not usable 3.02 MiB //新挂的500GB盘
Allocatable yes
PE Size 4.00 MiB
Total PE 119234
Free PE 119234
Allocated PE 0
PV UUID eWCdST-avv3-6Asl-KrdI-fS0O-Kmqm-bjosEU

查看logical volume信息

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
[root@server ~]# lvdisplay 
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID VGPZIE-CFT1-70zk-1MGp-s0ce-330x-jytZpX
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-09-26 15:02:00 +0800
LV Status available
# open 2
LV Size <3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1

--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID S3dfG3-rZyv-nR1t-WuLo-0TBt-y6PM-1ZU7Fh
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-09-26 15:02:01 +0800
LV Status available
# open 1
LV Size 877.08 GiB //这里是之前已经满的那块盘
Current LE 224533
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID IKM0LU-JsZh-LYJ1-bacl-oV8t-lySs-sEUGlS
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-09-26 15:02:05 +0800
LV Status available
# open 1
LV Size 50.00 GiB //这里是新挂的盘
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

查看系统挂载信息

1
2
3
4
5
6
7
8
9
10
11
12
13
cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Sep 26 15:02:07 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=ad148335-aa47-4c16-a2bf-9e4727e98749 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0 //看这里
/dev/mapper/centos-swap swap swap defaults 0 0

将新挂的盘整个扩容到/home下:

1
2
3
lvextend -l +100%FREE /dev/mapper/centos-home
Size of logical volume centos/home changed from 877.08 GiB (224533 extents) to 1.31 TiB (343783 extents).
Logical volume centos/home successfully resized. //容量已经从877GB更为1.31TB了。

确认磁盘使用情况

1
2
3
4
5
6
7
8
9
10
[root@server ~]# df -HT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 1.6G 53G 3% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.2M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 518M 228M 290M 44% /boot
/dev/mapper/centos-home xfs 942G 933G 9.1G 100% /home //好像还是没有变化,新的盘没有挂上来
tmpfs tmpfs 398M 0 398M 0% /run/user/0

刷新文件系统

1
2
3
4
5
6
7
8
9
10
11
[root@server ~]# xfs_growfs /dev/mapper/centos-home 
meta-data=/dev/mapper/centos-home isize=256 agcount=4, agsize=57480448 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=229921792, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=112266, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 229921792 to 352033792

因为centos默认的文件系统为xfs。如果创建的文件系统为ext3/ext4则使用下面命令:

1
resize2fs /dev/mapper/centos-home

再次确认磁盘使用信息

1
2
3
4
5
6
7
8
9
10
df -HT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 1.6G 53G 3% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.2M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 518M 228M 290M 44% /boot
/dev/mapper/centos-home xfs 1.5T 933G 510G 65% /home //看这里,磁盘已经加到1.5TB
tmpfs tmpfs 398M 0 398M 0% /run/user/0

扩容完成,参考链接请戳:

参考1:LVM逻辑卷管理

参考2:Centos 7 利用LVM实现动态扩容

小结

  1. 创建分区 #fdisk /dev/sdb

  2. 创建物理卷 #pvcreat /dev/sdb1

  3. 查看卷组名称及使用情况 #vgdisplay

  4. 将物理卷扩展到卷组 #vgextend centos /dev/sdb1 (此处‘centos’是卷组名称)

  5. 将卷组中空闲空间扩展到 /home #lvextend -l +100%FREE /dev/mapper/centos-home

  6. 刷新文件系统是扩容生效 #xfs_growfs /dev/mapper/centos-home (ext4使用这个)resize2fs /dev/mapper/centos-home

注:使用reiserfs 文件系统代替ext3/ext4:resize_reiserfs /dev/mapper/drore-home


LVM 磁盘扩容
https://ywmy.xyz/2018/12/04/LVM-磁盘扩容/
作者
ian
发布于
2018年12月4日
许可协议