实践[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
相关推荐
聆风吟º20 分钟前
无需 VNC / 公网 IP!用 Docker-Webtop+cpolar,在手机浏览器远程操控 Linux
linux·运维·docker
deng-c-f37 分钟前
Linux C/C++ 学习日记(22):Reactor模式(二):实现简易的webserver(响应http请求)
linux·c语言·网络编程·reactor·http_server
BTU_YC42 分钟前
CentOS 7 虚拟IP配置指南:使用传统network-scripts实现高可用
linux·tcp/ip·centos
陌路2043 分钟前
LINUX14 进程间的通信 - 管道
linux·网络
大聪明-PLUS1 小时前
从头开始为 ARM 创建 Ubuntu 映像
linux·嵌入式·arm·smarc
chenzhou__1 小时前
MYSQL学习笔记(个人)(第十五天)
linux·数据库·笔记·学习·mysql
序属秋秋秋2 小时前
《Linux系统编程之入门基础》【Linux基础 理论+命令】(上)
linux·运维·服务器·ubuntu·centos·命令模式
一张假钞7 小时前
Ubuntu SSH 免密码登陆
linux·ubuntu·ssh
Wang's Blog7 小时前
Linux小课堂: 文件操作警惕高危删除命令与深入文件链接机制
linux·运维·服务器
水月wwww9 小时前
操作系统——进程管理
linux·操作系统·vim·进程·进程调度