fdisk-磁盘分区与分区扩容

前言

最近项目上线,涉及部署升级相关的内容,我们原先的数据量不大加上用的阿里云,所以许多基础设施方面的问题都不用自己来操心,这次项目组使用了第三方厂商的共享存储,所以得自己去处理分区,磁盘相关基础设置,这里主要记录了如何使用 Linux 中的 fdisk 工具对磁盘进行分区管理

LVM

为了方便进行硬盘资源的动态管理,我采用 LVM 来管理分区和磁盘(LVM是 Logical Volume Manager 逻辑卷管理的简写)

LVM 磁盘管理结构如下:

20171229151451892696996.png

1.一个硬盘可以分多个区

2.每个区可以用来创建一个 PV(物理卷)

3.多个pv可以加入到同一个 VG(卷组)

4.从 VG 可以划分多个 LV(逻辑卷)

LVM 最大的特点是提出了 VG 的概念,VG 可以理解为一个虚拟的大磁盘,他底下是由多个小磁盘组成,从 VG 中我们可以划分出不同的 LV 当作磁盘使用,更方便的是利用 LV 我们还可以实现磁盘在线扩容,相比传统的硬盘管理方式,LVM更加灵活方便,谁用谁知道。

fdisk 磁盘分区

使用分区工具创建 LVM 分区和创建其他分区一样,只是 LVM 分区的格式是 8e,流程如下:

1.想分区需要先选择待分区磁盘,命令: fdisk /dev/sdx,其中 sdx 待分区磁盘

2.输入 n 创建分区

3.选择分区类型,这里我们选择创建一个主分区(一共可以创建四个主分区,一个扩展分区),注意扩展分区不要创建在主分区前面

4.设置起始扇号,分区大小

5.输入 t 更改分区类型,然后选择确定,开始分区,新创建的分区一般都在 /dev/mapper/ 目录下

20171229151454068079166.png

6.写入分区表,命令 w

使用分区

要想使用分区需要先格式化分区,然后挂载

格式化可以使用 mkfs 命令,如下,我们这里格式化为 ext4 类型,因为性能好一点

mkfs.ext4 /dev/mapper/分区号

挂载磁盘很简单,直接使用 Linux 自带的 mount 命令就可以,其中 my_mount_point 是我的挂载点(其实就是创建的一个目录)

mount /opt/my_mount_point

使用 LVM 管理磁盘

前面只是做铺垫,这里才开始进入重点,使用 LVM 进行磁盘管理

之前我们创建的分区在集群环境下并不建议直接使用,而是将这些分区作为 PV(物理卷),添加到 VG(卷组)中,然后再在 VG 中划分 LV(逻辑卷)来使用

创建物理卷

pvcreate

1
2
root@ubuntu:~# pvcreate /dev/mapper/361430041007df79a001961fb0000000c-part2
Physical volume "/dev/mapper/361430041007df79a001961fb0000000c-part2" successfully created

创建卷组

vgcreate DATA_VG_GROUP_235 /dev/mapper/361430041007df79a001961fb0000000c-part2

创建逻辑卷

1
2
root@inspurdb01:~# lvcreate -L 10G -n db_back_2 DATA_VG_GROUP_235
Logical volume "db_back_2" created.

这里在卷组 DATA_VG_GROUP_235 下创建了一个逻辑卷 db_back_2

挂载逻辑卷使用

要挂载逻辑卷需要先创建一个文件夹作为挂载点,我这里的是 opt 目录下的 db_back_2

先格式化磁盘为 ext4格式

mkfs.ext4 /dev/mapper/DATA_VG_GROUP_235-db_back_2

挂载磁盘到挂载点

mount /dev/mapper/DATA_VG_GROUP_235-db_back_2 /opt/db_back_2

LVM 在线扩容

在线扩容分两种,扩容 VG 和扩容 LV

扩容 VG

扩容 VG 很方便,Linux 提供了 vgextend 命令,只需要 vgextend vg_name pv_name ,就可以把对应的 PV 添加进 VG 了

扩容 LV

lvextend -L +5G /dev/DATA_VG_GROUP_235/db_back_2

当前 LV 扩容 5G

更新逻辑卷信息

1
2
3
root@ubuntu:/opt# resize2fs /dev/mapper/DATA_VG_GROUP_235-db_back_2
resize2fs 1.42.13 (17-May-2015)
The filesystem is already 3932160 (4k) blocks long. Nothing to do!

其他相关命令或者操作

这些命令是分区过程中经常使用的一些命令或者相关操作

更新系统分区信息

partprobe,该命令不用重启就能更新系统分区信息

查看当前系统已存在物理卷

1
2
3
4
5
6
7
8
9
10
11
root@ubuntu:~# pvdisplay
--- Physical volume ---
PV Name /dev/mapper/361430041007df79a001961fb0000000c-part1
VG Name DATA_VG_GROUP_235
PV Size 300.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 76799
Free PE 25599
Allocated PE 51200
PV UUID zU9IMo-2AyK-L7bb-KKYB-mPS1-CjJF-SZ8XiL

查看当前系统已存在卷组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@ubuntu:~# vgdisplay
--- Volume group ---
VG Name DATA_VG_GROUP_235
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 300.00 GiB
PE Size 4.00 MiB
Total PE 76799
Alloc PE / Size 51200 / 200.00 GiB
Free PE / Size 25599 / 100.00 GiB
VG UUID QeFjlc-b5FF-aA9I-KhWT-pgB1-fCCy-NxHy2a

查看当前系统存在的逻辑卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@ubuntu:~# lvdisplay
--- Logical volume ---
LV Path /dev/DATA_VG_GROUP_235/db_back
LV Name db_back
VG Name DATA_VG_GROUP_235
LV UUID PFcPEA-22W1-kWcR-PIjy-ppqc-5RL3-OhUkcF
LV Write Access read/write
LV Creation host, time inspurdb01, 2017-12-28 17:57:20 +0800
LV Status available
# open 1
LV Size 200.00 GiB
Current LE 51200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:4

查看文件系统信息

df -Th

查看系统块设备

lsblk -l

坚持原创技术分享,您的支持将鼓励我继续创作!