700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > LVM逻辑卷 LVM管理工具集 LVM创建逻辑卷 调整现有磁盘的分区 使用逻辑分区做逻辑

LVM逻辑卷 LVM管理工具集 LVM创建逻辑卷 调整现有磁盘的分区 使用逻辑分区做逻辑

时间:2022-12-10 07:16:49

相关推荐

LVM逻辑卷 LVM管理工具集 LVM创建逻辑卷 调整现有磁盘的分区 使用逻辑分区做逻辑

一、什么是LVM逻辑卷

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。

Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号连接(软链接),或者使用调整分区大小的工具(分区重规划),但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

二、为什么使用LVM

每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量?

因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。

因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

三、LVM的工作方式

逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次

传统的分区方式是直接对硬盘设备分区,而lvm是对逻

如图所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。

LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。

对于上层应用(系统软件,应用软件)来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。

从用户态应用来看,LVM逻辑卷相当于一个普通的块设备,对其的读写操作和普通的块设备完全相同。而从物理设备层来看,LVM相对独立于底层的物理设备,并且屏蔽了不同物理设备之间的差异。因而在LVM层上实现数据的连续保护问题,可以不需要单独考虑每一种具体的物理设备,避免了在数据复制过程中因物理设备之间的差异而产生的问题。从LVM的内核实现原理上看,LVM是在内核通用块设备层到磁盘设备驱动层的请求提交流之间开辟的另外一条路径,即在通用块设备层到磁盘设备驱动层之间插入了LVM管理映射层用于截获一定的请求进行处理,如图所示。[

用户通过lvm提供接口,依靠内核创建一系列LVM逻辑卷,所有对lvm逻辑卷的读写操作最终都会由LVM在通用块设备层下方截获下来,进行更进一步的处理。这里的进一步处理主要指的是完成写请求的映射,是将请求的数据根据实际情况进行一些拆分和重定位操作,从而可以将请求和数据分发到实际的物理设备中去。

四、LVM管理工具集

五、新建一个逻辑卷

1.任务

本例要求准备一个磁盘,并且做好分区,我准备了一个10G大小的磁盘,并且做了一个主分区/dev/vda1 5G.使用分区 /dev/vda1 构建 LVM 存储,相关要求如下:

新建一个名为 systemvg 的卷组在此卷组中创建一个名为 vo 的逻辑卷,大小为180MiB将逻辑卷 vo 格式化为 EXT4 文件系统将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一个测试文件 votest.txt,内容为“I AM KING.”

[Linux磁盘分区管理]/ck784101777/article/details/101797858

2.使用到的命令

LVM创建工具的基本用法:

vgcreate 卷组名 物理设备.. ..lvcreate -L 大小 -n 逻辑卷名 卷组名

3.创建卷组

1)新建名为systemvg的卷组

创建卷组很简单,直接将分好区的磁盘作为卷组即可,此处卷组名为systemvg

[root@server0 ~]# vgcreate systemvg /dev/vda1Physical volume "/dev/vdb1" successfully createdVolume group "systemvg" successfully created

2)确认结果

命令vgscan查看卷组详情,可查看卷组名和文件类型

[root@server0 ~]# vgscanReading all physical volumes. This may take a while...Found volume group "systemvg" using metadata type lvm2

2.创建逻辑卷

1)新建名为vo的逻辑卷

指定大小为180MiB(可写成-L 180m 或者-L 0.18G) -n指定逻辑卷名,最后跟上卷组名,表示用哪块卷组为此逻辑卷分配空间

[root@server0 ~]# lvcreate -L 180MiB -n vo systemvgLogical volume "vo" created

2)确认结果

[root@server0 ~]# lvscanACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit

3,.格式化及挂载使用

1)格式化逻辑卷/dev/systemvg/vo

格式化成ext4文件类型

[root@server0 ~]# mkfs.ext4 /dev/systemvg/vo.. ..Allocating group tables: doneWriting inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done

2)挂载逻辑卷/dev/systemvg/vo

创建的逻辑卷名的路径为 /dev/卷组名/逻辑卷名

[root@server0 ~]# mkdir /vo//创建挂载点[root@server0 ~]# mount /dev/systemvg/vo /vo //挂载[root@server0 ~]# df -hT /vo/ //检查结果Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/systemvg-vo ext4 171M 1.6M 157M 1% /vo

六、调整现有磁盘的分区,使用逻辑分区做逻辑卷

实验内容:

本例要求沿用前一天案例,对磁盘/dev/vda的分区表进行调整,要求如下:不更改原有分区,利用剩余空间新增三个分区,大小依次为:500MiB、2000MiB、512MiB

然后再基于刚建立的 2000MiB 分区构建新的 LVM 存储:

新的逻辑卷命名为 database,大小为50个物理扩展单元(Physical Extent),属于 datastore 卷组在 datastore 卷组中的所有逻辑卷,其物理扩展单元(Physical Extent)的大小为16MiB使用 EXT3 文件系统对逻辑卷 database 格式化,此逻辑卷应该在开机时自动挂载到 /mnt/database 目录

实验前需知:

1)创建卷组时,可以通过-s选项指定PE的大小。

2)在给新建的逻辑卷分配空间时,空间大小只能是PE大小的倍数。

3) 使用fdisk进行磁盘分区,分区的规则规定1-3为主分区,4为扩展分区

我已经创建了3个主分区,当我创建了3个主分区后,系统会要求我创建扩展分区,简单介绍一下扩展分区和逻辑分区的关系,

当我们创建了足够的分区后(3个主分区,1个扩展分区),接下来系统会提示你All primary partitions are in use,Adding logical partition(所有主分区已经用光,添加逻辑分区),然后会让你创建一个扩展分区,但是扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分

总结起来就是:创建扩展分区,再通过创建逻辑分区使用扩展分区

如图,紫色区域是主分区,黄色区域为扩展区分区,红色区域为存在于扩展分区中的逻辑分区

【Linux系统磁盘管理】/ck784101777/article/details/101797858

步骤一:调整现有磁盘分区

1)新建扩展分区(使用剩余可用空间)

[root@server0 ~]# fdisk /dev/vdaCommand (m for help): p //确认原有分区表,有3个主分区.. ..Device Boot Start End Blocks Id System/dev/vda1 2048 411647 204800 8e Linux LVM/dev/vda2 411648 4507647 2048000 83 Linux/dev/vda3 4507648 6555647 1024000 83 LinuxCommand (m for help): n //新建分区Partition type:p primary (3 primary, 0 extended, 1 free)e extendedSelect (default e): e //类型指定为e(扩展分区)Selected partition 4 //只一个可用编号,自动选取First sector (6555648-20971519, default 6555648): //起始位置默认Using default value 6555648Last sector, +sectors or +size{K,M,G} (6555648-20971519, default 20971519):Using default value 20971519 //结束位置默认Partition 4 of type Extended and of size 6.9 GiB is setCommand (m for help): p.. ..Device Boot Start End Blocks Id System/dev/vda1 2048 411647 204800 8e Linux LVM/dev/vda2 411648 4507647 2048000 83 Linux/dev/vda3 4507648 6555647 1024000 83 Linux/dev/vda4 6555648 20971519 7207936 5 Extended

2)在扩展分区中新建3个逻辑分区

在这里我们需要创建三个逻辑分区

创建第1个逻辑分区(由于主分区编号已用完,分区类型自动选l逻辑分区):

Command (m for help): nAll primary partitions are in useAdding logical partition 5 //分区编号5First sector (6557696-20971519, default 6557696): //起始位置默认Using default value 6557696Last sector, +sectors or +size{K,M,G} (6557696-20971519, default 20971519): +500M //结束位置默认Partition 5 of type Linux and of size 500 MiB is set

创建第2个逻辑分区:

Command (m for help): nAll primary partitions are in useAdding logical partition 6 //分区编号6First sector (7583744-20971519, default 7583744): //起始位置默认Using default value 7583744Last sector, +sectors or +size{K,M,G} (7583744-20971519, default 20971519): +2000M//结束位置默认Partition 6 of type Linux and of size 2 GiB is set

创建第3个逻辑分区:

Command (m for help): nAll primary partitions are in useAdding logical partition 7 //分区编号7First sector (11681792-20971519, default 11681792): //起始位置默认Using default value 11681792Last sector, +sectors or +size{K,M,G} (11681792-20971519, default 20971519): +512M//结束位置默认Partition 7 of type Linux and of size 512 MiB is set

根据预计的用途调整分区类型(可选):

Command (m for help): t //修改Partition number (1-7, default 7): 5 //第5个分区Hex code (type L to list all codes): 8e //类型为8e(LVM)Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): t //修改Partition number (1-7, default 7): 6 //第6个分区Hex code (type L to list all codes): 8e //类型为8e(LVM)Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): t //修改Partition number (1-7, default 7): 7 //第7个分区Hex code (type L to list all codes): 82 //类型为82(交换分区)Changed type of partition 'Linux' to 'Linux swap / Solaris'

确认分区结果并保存:

Command (m for help): p.. ..Device Boot Start End Blocks Id System/dev/vdb1 2048 411647 204800 8e Linux LVM/dev/vdb2 411648 4507647 2048000 83 Linux/dev/vdb3 4507648 6555647 1024000 83 Linux/dev/vdb4 6555648 20971519 7207936 5 Extended/dev/vdb5 6557696 7581695 512000 8e Linux LVM/dev/vdb6 7583744 11679743 2048000 8e Linux LVM/dev/vdb7 11681792 12730367 524288 82 Linux swap / SolarisCommand (m for help): w //保存退出The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks. //提示重启

3)刷新分区表

[root@server0 ~]# partprobe /dev/vdb[root@server0 ~]# reboot

步骤二:新建卷组、逻辑卷

1)新建卷组datastore,指定PE大小为16Mi

【什么是PE】/ck784101777/article/details/9817

[root@server0 ~]# vgcreate -s 16MiB datastore /dev/vdb6Volume group "datastore" successfully created[root@server0 ~]# vgscan //确认新建的卷组Reading all physical volumes. This may take a while...Found volume group "systemvg" using metadata type lvm2Found volume group "datastore" using metadata type lvm2

2)新建逻辑卷database,大小设置为50个PE

指定逻辑卷大小的方式有两种,一是-L 后跟大小(M,G,KB),二是 -l 后跟PE数量

上面创建卷组时指定一个pe大小为16m,所以这里总大小为16*50=800

[root@server0 ~]# lvcreate -l 50 -n database datastoreLogical volume "database" created[root@server0 ~]# lvscan //确认新建的逻辑卷ACTIVE '/dev/systemvg/vo' [180.00 MiB] inheritACTIVE '/dev/datastore/database' [800.00 MiB] inherit

步骤三:格式化及使用逻辑卷

1)格式化逻辑卷/dev/datastore/database

[root@server0 ~]# mkfs.ext3 /dev/datastore/database.. ..Allocating group tables: doneWriting inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done

2)配置开机挂载

[root@server0 ~]# mkdir /mnt/database //创建挂载点[root@server0 ~]# vim /etc/fstab.. ../dev/datastore/database /mnt/database ext3 defaults 0 0

3)验证挂载配置

[root@server0 ~]# mount -a[root@server0 ~]# df -hT /mnt/database/ //确认挂载点设备Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/datastore-database ext3 772M 828K 715M 1% /mnt/database

六、扩展卷组大小,扩展逻辑卷的大小

实验内容:

本实验需要准备一张逻辑卷,大小随意,我上面的实验中创建了一个逻辑卷vo,大小180M,我将使用此逻辑卷完成实验

原文件系统中的内容必须保持完整必要时可使用其他磁盘的分区来扩展注意:分区大小很少能完全符合要求的大小,所以大小在270MiB和300MiB之间都是可以接受的(PE调整到1即可解决)

实验前需知:

对于已经格式化好的逻辑卷,在扩展大小以后,必须通知内核新大小,可以通过以下工具来通知内核

2)如果此逻辑卷上的文件系统是EXT3/EXT4类型,需要使用resize2fs工具;

3)如果此逻辑卷上的文件系统是XFS类型,需要使用xfs_growfs。

实现此案例需要按照如下步骤进行。

步骤一:确认逻辑卷vo的信息

1)找出逻辑卷所在卷组

查看一下有多少个逻辑卷

[root@server0 ~]# lvscanACTIVE '/dev/systemvg/vo' [180.00 MiB] inheritACTIVE '/dev/datastore/database' [800.00 MiB] inherit

2)查看该卷组的剩余空间是否可满足扩展需要

终点需要关注的内容我用红色标记出来了,第一个是卷组总大小,第二个是PE大小,第三个是当前逻辑卷卷大小(用PE表示或M表示)

此例中卷组systemvg的总大小都不够300MiB、剩余空间才16MiB,因此必须先扩展卷组。只有剩余空间足够,才可以直接扩展逻辑卷大小。

[root@server0 ~]# vgdisplay systemvg--- Volume group ---VG Name systemvgSystem IDFormat lvm2Metadata Areas 1Metadata Sequence No 2VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 0Max PV 0Cur PV 1Act PV 1VG Size 196.00 MiB //卷组总大小PE Size 4.00 MiBTotal PE 49Alloc PE / Size 45 / 180.00 MiBFree PE / Size 4 / 16.00 MiB //剩余空间大小VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

步骤二:扩展卷组

1)将提前准备的分区/dev/vdb5添加到卷组systemvg

我们要准备一个分区,可以是主分区或逻辑分区

[root@server0 ~]# vgextend systemvg /dev/vdb5Physical volume "/dev/vdb5" successfully createdVolume group "systemvg" successfully extended

2)确认卷组新的大小

[root@server0 ~]# vgdisplay systemvg--- Volume group ---VG Name systemvg.. ..VG Size 692.00 MiB //总大小已变大PE Size 4.00 MiBTotal PE 173Alloc PE / Size 45 / 180.00 MiBFree PE / Size 128 / 512.00 MiB //剩余空间已达512MiBVG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

步骤三:扩展逻辑卷大小

1)将逻辑卷/dev/systemvg/vo的大小调整为300MiB

我们已经将卷组的大小扩充了,现在我们要扩展逻辑卷的大小,-L 扩容大,注意,这里的扩容是扩容到300M而不是在原基础上添加300M

[root@server0 ~]# lvextend -L 300MiB /dev/systemvg/voExtending logical volume vo to 300.00 MiBLogical volume vo successfully resized

2)确认调整结果

[root@server0 ~]# lvscanACTIVE '/dev/systemvg/vo' [300.00 MiB] inheritACTIVE '/dev/datastore/database' [800.00 MiB] inherit

3)刷新文件系统大小

确认逻辑卷vo上的文件系统类型:

[root@server0 ~]# blkid /dev/systemvg/vo/dev/systemvg/vo: UUID="d4038749-74c3-4963-a267-94675082a48a" TYPE="ext4"

选择合适的工具刷新大小:

[root@server0 ~]# resize2fs /dev/systemvg/voresize2fs 1.42.9 (28-Dec-)Resizing the filesystem on /dev/systemvg/vo to 307200 (1k) blocks.The filesystem on /dev/systemvg/vo is now 307200 blocks long.

确认新大小(约等于300MiB):

[root@server0 ~]# mount /dev/systemvg/vo /vo/[root@server0 ~]# df -hT /voFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/systemvg-vo ext4 287M 2.1M 266M 1% /vo

LVM逻辑卷 LVM管理工具集 LVM创建逻辑卷 调整现有磁盘的分区 使用逻辑分区做逻辑卷 扩展卷组大小 扩展逻辑卷的大小

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。