实践[Linux] 两块不同磁盘(13T+12T)如何挂载

遇到一个问题,我们购买了几台服务器,有一台服务器是作为数据存储使用,采购方采购了25T,分配下来是13T+12T的组合方式我之前以为是ext4不能分配25T,后来查资料得知ext4最大容量1EB,但是如果直接挂载到Linux磁盘下会导致出现俩挂载点,这不是我们想要的,我们需要两块磁盘合并挂载。

方案

  1. 使用mdamd来实现raid磁盘挂载
  2. 使用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. 创建逻辑卷

使用lvcreatetest_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
相关推荐
HLC++4 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室5 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy8 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕9 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫10 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生10 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1111 小时前
linux基础IO
linux·运维·服务器
BelongPanda13 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯13 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983414 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器