【BASE】Linux_物理卷,卷组、逻辑卷关系

概念

什么是LVM

LVM(Logical Volume Manager),即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

什么是PE

LVM 默认使用 4MB 的 PE 区块,而 LVM 的 LV 在 32 位系统上最多仅能含有 65534 个 PE(lvm1 的格式),因此默认的 LVM 的 LV 会有 4M*65534/(1024M/G)=256G。

什么是PV

物理卷即物理磁盘分区就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。若是想要使用LVM来管理这个分区,可使用fdisk将其ID改成LVM能够识别的值,即8e。

什么是VG

PV的集合,所谓的 LVM 大磁盘就是将许多 PV 整合成 VG ,所以 VG 就是 LVM 组合起来的大磁盘! 那么这个大磁盘最大可以到多少容量呢?这与下面要说明的PE 以及 LVM 的格式版本有关,在默认的情况下, 使用 32位的 Linux 系统时,基本上 LV最大仅能支持到 65534 个 PE 而已,若使用默认的 PE 为 4MB 的情况下, 最大容量则仅能达到约 256GB 而已~ 不过,这个问题在 64位的 Linux 系统上面已经不存在了!LV 几乎没有啥容量限制了!

实际应用

背景:

  1. 磁盘/dev/sda
  2. 已经分了两个区,但是没有全部分完
  3. 建立新的区,把剩下的空间都分出去给最新的区,然后挂载到 /data 目录下

操作

对磁盘进行初始化

 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
# 查看信息

root@xjr-pc:/# fdisk -l
Disk /dev/loop0116.8 MiB122433536 字节239128 个扇区
单元扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节


Disk /dev/loop1116.8 MiB122458112 字节239176 个扇区
单元扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节


Disk /dev/sda931.5 GiB1000204886016 字节1953525168 个扇区
单元扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理)512 字节 / 4096 字节
I/O 大小(最小/最佳)4096 字节 / 4096 字节
磁盘标签类型gpt
磁盘标识符EA6D9475-DF17-407B-B235-54A6F9C3987D

设备          起点      末尾      扇区   大小 类型
/dev/sda1     2048   1050623   1048576   512M EFI 系统
/dev/sda2  1050624 250066943 249016320 118.8G Microsoft 基本数据

image.png

n : 创建新的分区 t :修改分区类型 选择 11 号 (为了跟上面 sda2 分区的类型保持一致) p: 查看当前当前分区信息 q:不保存任何内容退出 w: 保存当前分区内容并退出

将新创建的分区格式化为 ext4 格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 查看分区信息(可以看到新建的分区 sda3 并没有 UUID -- 40位唯一标识符)
root@xjr-pc:/# lsblk -f
NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
loop0  squashfs                                            /snap/core/14946
loop1  squashfs                                            /snap/core/14784
sda
├─sda1 vfat           48DC-9635                            /boot/efi
├─sda2 ext4           459aabff-d2f3-11e9-b047-98eecb619235 /
└─sda3

# 格式化 并 分配40位唯一标识符
mkfs -t ext4 /dev/sda3

【命令说明】: mkfs -t ext4 /dev/sda3 这是一个在Linux系统中创建 ext4 文件系统的命令, 它将文件系统格式化为 ext4 文件系统并挂载到 /dev/sdb1 这个设备。 其中 mkfs 是用于创建文件系统的命令, -t 选项指定要创建的文件系统类型, 这里是 ext4。/dev/sdb1 则是要被格式化的设备名。

【1】在磁盘分区表中,每个分区除了有一个类型标志外,还有一个用于识别该分区的唯一标识符。这个唯一标识符通常被称为UUID,它是一个由40位十六进制数组成的字符串。
【2】UUID在操作系统中具有重要作用,因为它可以用来唯一地标识硬盘上的每个分区。在Linux和其他类Unix操作系统中,每个分区都会自动生成一个UUID,以便在系统启动时自动挂载分区。而在Windows系统中,UUID通常称为卷标(Volume Label),它可以用于给磁盘卷设置自定义的名字。
【3】需要注意的是,UUID是一个十六进制字符串,其中包含字母和数字。这意味着它可以表达非常大的数字范围,使得每个分区都有其唯一的标识符。

最后核对信息

1
2
3
4
5
6
7
8
root@xjr-pc:/# lsblk -f
NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
loop0  squashfs                                            /snap/core/14946
loop1  squashfs                                            /snap/core/14784
sda
├─sda1 vfat           48DC-9635                            /boot/efi
├─sda2 ext4           459aabff-d2f3-11e9-b047-98eecb619235 /
└─sda3 ext4           cab5cfc6-ffc1-4c22-a064-f102da339225

挂载目录( mount 命令 )

命令说明: mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。 Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。

1
root@xjr-pc:/# mount /dev/sda3 /data

注意:通过这个命令挂载的都是临时的,每次重启都要重新挂载

永久挂载磁盘

  • 首先得到/dev/sda3 这个分区的UUID,使用以下命令:sudo blkid /dev/sda3
  • 用vi编辑器打开/etc/fstab文件,参照该文件中已存在的挂载信息再添加一条来挂载sda3。

image.png
其中第一列为UUID
第二列为挂载目录,该目录必须为空目录
第三列为文件系统类型
第四列为参数
第五列0表示不备份
最后一列必须为2或0(除非引导分区为1)
最后使用mount -a命令来检测挂载,该命令用来检测fstab文件是否有错,如果有错误则不会挂载成功。

0%