TypechoJoeTheme

主机评测

VPS教程

专注云服务器评测和优惠码发布

从零开始创建lvm虚拟磁盘阵_

2020-10-26
/
0 评论
/
1,365 阅读
/
百度已收录
10/26

前言

逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分割系统。

最先由IBM开发,在AIX系统上实现,OS/2 操作系统与 HP-UX也支持这个功能。在1998年,Heinz Mauelshagen 根据在 HP-UX 上的逻辑卷管理器,写作出第一个 Linux 版本的逻辑卷管理器。

LVM基本术语:

  • PV:物理卷,PV处于LVM系统最低层,它可以是整个硬盘,或者与磁盘分区具有相同功能的设备(如RAID),但和基本的物理存储介质相比较,多了与LVM相关管理参数
  • VG:卷组,创建在PV之上,由一个或多个PV组成,可以在VG上创建一个或多个“LVM分区”(逻辑卷),功能类似非LVM系统的物理硬盘
  • LV:逻辑卷,从VG中分割出的一块空间,创建之后其大小可以伸缩,在LV上可以创建文件系统(如/var,/home)
  • PE:物理区域,每一个PV被划分为基本单元(也被称为PE),具有唯一编号的PE是可以被LVM寻址的最小存储单元,默认为4MB

我们可以通过LVM灵活便捷的管理系统中的磁盘,并且根据需求快速、无感得扩容目标磁盘,并且几乎不会影响性能。

过程

创建lvm分区的方法其实非常的简单,主要分为以下几个步骤:

1、创建磁盘分区part

目前做LVM分区比较推荐的工具还是fdisk,不是说parted不能做,而是fdisk可能更加方便一点。流程如下:

  1. # fdisk /dev/nvme0n1
  2. Command (m for help): n ## 新建
  3. Command action
  4. e extended
  5. p primary partition (1-4)
  6. p ## 主分区
  7. Partition number (1-4): 1 ## 分区号
  8. First cylinder (2048-543352123, default 2048): ## 回车用默认的1
  9. Last cylinder, +cylinders or +size{K,M,G} (2048-543352123, default 543352123): ## 回车默认大小大小
  10. Command (m for help): t ## 改变toggle类型
  11. Selected partition 1
  12. Hex code (type L to list codes): 8e ## LVM 的分区代码8e
  13. Changed system type of partition 1 to 8e (Linux LVM)

2、创建物理卷PV

在分区完成之后需要做的就是创建物理卷,直接将刚才创建的分区进行
pvcreate:

  1. # pvcreate /dev/nvme0n1p1

3、创建虚拟卷VG

在创建玩物理卷之后,需要对该磁盘进行虚拟卷的创建。需要注意的是一个虚拟卷可以由多个物理卷构成。例如:

  1. # vgcreate nvme /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1

该命令的意义就在于创建一个叫做nvme的虚拟卷,由/dev/nvme0n1p1、 /dev/nvme1n1p1、 /dev/nvme2n1p1三个做了pv的分区构成

4、创建逻辑卷LG

到了这一步,基本上LVM的创建已经到了尾声了,最后一步就是从虚拟卷中创建一个逻辑卷。如下:

  1. # lvcreate -L 2.91T -n data nvme

这条命令的意思为从虚拟卷nvme中创建一个2.91T的逻辑卷作为lvm分区并命名为data,如果想一次性全部用完所有的容量,也可以这样:

  1. # lvcreate -l -n data nvme

此时在linux的/dev/文件夹下面我们可以看到有/nvme/data的文件结构。

5、挂载并更新文件

在创建完lvm分区后,我们需要将分区挂在到系统中的路径中。假设需要挂载的路径是/data。

  1. # mkdir /data ##创建该路径
  2. # mount /dev/mapper/nvme-data /data ##需要注意的时候这里推荐使用/dev/mapper/nvme-data作为挂载的设备路径,而不是/dev/nvme/data

之后通过blkid命令获取这个新的lvm分区的UUID,然后更新到/etc/fstab中就可以了

脚本化

上述的LVM实现过程可以直接通过shell脚本进行实现:

  1. #!/bin/bash
  2. ##本案例中以服务器的/dev/nvme0n1这块nvme磁盘为例进行操作
  3. OPTS="noatime,nobarrier,errors=remount-ro,nofail" ##部分写入/etc/fstab的固定变量
  4. umount /data/ && parted /dev/nvme0n1 rm 1 ## 首先确保目标磁盘没有残留的分区信息。
  5. echo "n
  6. p
  7. 1
  8. t
  9. 8e
  10. w
  11. " | fdisk /dev/nvme0n1 ##通过fdisk工具创建一个分区
  12. echo "y
  13. " | pvcreate /dev/nvme0n1p1 ##创建一个物理卷
  14. echo "y
  15. y
  16. y
  17. " | vgcreate nvme /dev/nvme0n1 ##创建一个虚拟卷
  18. echo "y
  19. " | lvcreate -L 2.91T -n data nvme && mkfs.ext4 /dev/nvme/data && mount /dev/mapper/nvme-data /data/
  20. ##创建一个逻辑卷并进行格式化,然后挂载到目标路径
  21. sed -i '$d' /etc/fstab ##将UUID等相关信息更新到/etc/fstab中
  22. #do
  23. if [ $? -eq 0 ]; then
  24. UUID=$(blkid /dev/mapper/nvme-data | sed -e 's/.*\(UUID=.*\) TYPE.*/\1/')
  25. echo -e "${UUID}\t\t/data\t\text4\t\t${OPTS}\t\t0 0" >> /etc/fstab
  26. fi
  27. seq=$(($seq+1))
  28. #done
lvm
朗读

赞 · 0
赞赏
感谢您的支持,我会继续努力哒!
打开手机扫一扫,即可进行打赏哦!
版权属于:

主机评测

本文链接:

https://www.zjpc.cc/25.html(转载时请注明本文出处及文章链接)

评论 (0)
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 泡泡
  • 阿鲁
  • 颜文字
火爆
火爆
火爆