遇到一个问题,我们购买了几台服务器,有一台服务器是作为数据存储使用,采购方采购了25T,分配下来是13T+12T的组合方式我之前以为是ext4不能分配25T,后来查资料得知ext4最大容量1EB
,但是如果直接挂载到Linux磁盘下会导致出现俩挂载点,这不是我们想要的,我们需要两块磁盘合并挂载。
方案
- 使用mdamd来实现raid磁盘挂载
- 使用vg挂载虚拟磁盘
但是因为raid的短板效应,导致我们最终实现少了1T,这是不能接受的,所以我们最终选择了虚拟磁盘卷的LVM方式挂载,但是这种方式并不是很熟,故作记录如何使用vg实现多个磁盘合并挂载。本次并不直接挂载真实硬盘,而是使用虚拟机挂载。
概念
LVM:逻辑卷管理器,可以动态地扩大和缩小分区,LVM需要使用软件包为lvm2,LVM之所以能够伸缩容量,其实现的方法就是将LV里空闲的PE移出,或向LV中添加空闲pe
- PV: (Physical Volume)物理卷: 分区后在未格式化为文件系统前,使用pvcreate将分区转化为pv,要求分区的system Id为8e, 即为LVM格式的系统标识
- VG: (Volume Group)卷组: 将多个pv组合起来,使用vgcreate创建成卷组,一个卷组包含了多个PV,相当于重新整合了多个分区后得到的磁盘.虽然整合多个PV,但是VG的所有空间都是根据PE大小划分为多个PE,在LVM模式下的存储都以PE为单元,类似于文件系统中的Block
- PE: (Physical Extend)物理存储单元: VG中的存储单元,是数据实际存储的位置
- LV: (Logical Volume)分区: 对VG中的PE单元进行划分,划分为LV后就相当于划分了分区,只需再对LV进行格式化,就可以变为普通文件系统
- LE: (Logical Extent)逻辑存储单元:也是LV中的逻辑单元,和pe大小一样,从vg中划分lv,实际上是从vg中划分vg中的pe,划分为lv后就不再称为pe,而称为le.
指令如下
命令 | 解释 |
---|---|
pvcreate | 将物理磁盘分区标记为物理磁盘卷,物理卷是LVM的基本构建块,这也是数据实际存储的位置 |
vgcreate | 创建卷组,由一个或多个物理卷组成 |
lvcreate | 在卷组中创建逻辑卷, 逻辑卷类似于传统分区,可以分配卷组大小 |
具体操作流程如下
bash
sudo lsblk 查看需要挂载的盘符
sudo pvcreate /dev/sdb /dev/sdc 标记物理磁盘为物理卷
sudo vgcreate test_volume_group /dev/sdb /dev/sdc 创建逻辑卷组
sudo lvcreate -l 100%FREE -n test_logical_volume test_volume_group 创建逻辑卷分区
sudo mkfs.ext4 /dev/test_volume_group/test_logical_volume 格式化分区
sudo mkdir /mnt/greged_disks 创建挂载目录
sudo mount /dev/test_volume_group/test_logical_volume /mnt/greged_disks/ 挂载逻辑卷
1. 准备工作
- 我们首先创建两块虚拟磁盘,每个磁盘分配2G内存

- 本次虚拟机平台为ubuntu22.04
内部服务器使用的Linux发行版
- 安装
lvm2
:sudo apt install lvm2
2. 创建逻辑卷组
使用 pvcreate
创建物理卷
bash
lsblk
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sudo pvcreate /dev/sdb /deb/sdc # 创建物理卷
3. 创建卷组
使用vgcreate
创建卷组,我们创建一个分组 名称为test_volume_group
shell
sudo vgcreate test_volume_group /dev/sdb /dev/sdc
4. 创建逻辑卷
使用lvcreate
在test_volume_group
逻辑卷组中,创建逻辑卷,大小为100%空间
perl
sudo lvcreate -l 100%FREE -n test_logical_volume test_volume_group
5. 格式化物理卷
使用mkfs.ext4
格式化卷为ext4格式
bash
sudo mkfs.ext4 /dev/test_volume_group/test_logical_volume
5. 挂载磁盘
创建挂载点,并使用mount
将卷挂载到文件夹中
bash
sudo mkdir /mnt/greged_disks 创建挂载目录
sudo mount /dev/test_volume_group/test_logical_volume /mnt/greged_disks/ 挂载逻辑卷
6. 配置开启自动挂载
改写/etc/fstab
文件,并添加磁盘到该文件中,但是最好使用生成的UUID
Linux中设备与引导过程中的设备名称并不是持久性的,相同的设备名称可能会因为扫描顺序的改变或时间戳的变化导致原先分配的设备名称并不对应真实设备
参考:https://access.redhat.com/solutions/44389

xml
sudo blkid # 查看磁盘uuid
vim /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=16b7f2e7-9a6e-4194-b299-9f474a6073ef /mnt/greged_disks ext4 defaults 0 0