Linux 文件系统之LVM详解

LVM是 Logical Volume Manager逻辑卷管理的简写,主要功能对卷能够进行方便的动态扩展和缩减,大提高了磁盘管理的灵活性,工作原理大概如下几点
1.物理磁盘被格式化为PV(Physical Volume) 物理卷,空间被划分为一个个的PE(Physical Extend) 物理拓展
2.把PV加入到VG(Volume Group) 卷组中,在VG中以PE的形式展示
3.LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘,但都是同一个VG中PE
4.LV现在就直接可以格式化后挂载使用了
5.LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

具体实现

centos7 默认没有lvm工具,需要安装lvm2

yum install -y lvm2

准备2块8e格式的分区块

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb9         8400896    10498047     1048576   8e  Linux LVM
/dev/sdb10       10500096    14694399     2097152   8e  Linux LVM

1、创建pv

[[email protected] mnt]# pvcreate /dev/sdb9
[[email protected] mnt]# pvcreate /dev/sdb10
[[email protected] mnt]# pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdb10    lvm2 ---  2.00g 2.00g
  /dev/sdb9     lvm2 ---  1.00g 1.00g

#详细查看
[[email protected] mnt]# pvdisplay

2、创建vg并扩展

[[email protected] mnt]# vgcreate myvg /dev/sdb9
[[email protected] mnt]# vgextend myvg /dev/sdb10
[[email protected] mnt]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  myvg   2   0   0 wz--n- 2.99g 2.99g

#详细查看
[[email protected] mnt]# vgdisplay myvg

3、lv创建

[[email protected] mnt]# lvcreate -L 1G -n mylv myvg

#查看
[[email protected] mnt]# lvs
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 1.00g

4、创建文件系统并挂载

[[email protected] mnt]# mkfs.ext4 -L mylv /dev/myvg/mylv
[[email protected] mnt]# mount /dev/myvg/mylv /mnt/t3
[[email protected] mnt]# df -h|grep mapp
/dev/mapper/myvg-mylv  976M  2.6M  907M    1% /mnt/t3

5、扩展lv 先要查看当前lv所在的组vg还有多少空间

[[email protected] mnt]# lvs
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 1.00g
[[email protected] mnt]# vgs myvg
  VG   #PV #LV #SN Attr   VSize VFree
  myvg   2   1   0 wz--n- 2.99g 1.99g

[[email protected] mnt]# lvextend -L 2G /dev/myvg/mylv

#扩展文件系统
[[email protected] mnt]# resize2fs /dev/myvg/mylv
#检查
[[email protected] mnt]# df -h|grep mapp
/dev/mapper/myvg-mylv  2.0G  3.0M  1.9G    1% /mnt/t3

6、缩减lv 是为了腾出pe

[[email protected] mnt]# umount /dev/mapper/myvg-mylv
[[email protected] mnt]# e2fsck -f /dev/mapper/myvg-mylv
[[email protected] mnt]# resize2fs /dev/myvg/mylv 512M
#这步之前必须确定1G是否能装下源文件
[[email protected] mnt]# lvreduce -L 512M /dev/myvg/mylv

7、 查看VFree是否大于 下面要移除的分区

[[email protected] mnt]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  myvg   2   1   0 wz--n- 2.99g 2.49g
[[email protected] mnt]# pvs
  PV         VG   Fmt  Attr PSize    PFree
  /dev/sdb10 myvg lvm2 a--    <2.00g   <1.50g
  /dev/sdb9  myvg lvm2 a--  1020.00m 1020.00m

8、先转义pe数据,在缩小vg,在移除pv

[[email protected] mnt]# pvmove /dev/sdb10
  /dev/sdb10: Moved: 10.94%
  /dev/sdb10: Moved: 100.00%
[[email protected] mnt]# vgreduce myvg /dev/sdb10
  Removed "/dev/sdb10" from volume group "myvg"
[[email protected] mnt]# pvremove /dev/sdb10
  Labels on physical volume "/dev/sdb10" successfully wiped.

9、如果vg也不要了 这里省去了移除lv操作[lvremove myvg/mylv]

[[email protected] mnt]# vgremove myvg
Do you really want to remove volume group "myvg" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume myvg/mylv? [y/n]: y
  Logical volume "mylv" successfully removed
  Volume group "myvg" successfully removed
[[email protected] mnt]# pvremove /dev/sdb9
  Labels on physical volume "/dev/sdb9" successfully wiped.

快照介绍

原理介绍:快照是对源卷的备份,是基于同一个lv卷的实现。
快照卷特性:
1.源卷的另外一个访问入口
2.快照之后当源卷的已有文件发生变化时候,会复制源文件到快照卷中
3.新增的文件不会复制到快照卷

快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
-L 大小
-r onlyread
-s 快照
snapshot_lv_name 快照卷名
original_lv_name 源卷名

1.创建快照 快照卷源卷都是基于mylv逻辑卷

[[email protected] ~]# lvcreate -s -L 500m -n mylv-snap -p r /dev/myvg/mylv
  Using default stripesize 64.00 KiB.
  Logical volume "mylv-snap" created.

2.挂载快照

[[email protected] ~]# mount /dev/myvg/mylv-snap  /mnt/t2/
mount: /dev/mapper/myvg-mylv--snap 写保护,将以只读方式挂载

[[email protected] ~]# cp /etc/passwd /mnt/t3/   #源卷中文件,之后修改这个文件跟快对比

3、编辑源卷文件

[[email protected] t3]# echo 999999  >> passwd
[[email protected] t3]# tail -1 passwd
999999

3.1、查看快照卷

[[email protected] t2]# tail -1 passwd
marvin:x:1001:1001::/home/marvin:/bin/bash

4、对源卷添加文件

[[email protected] t3]# cp /root/anaconda-ks.cfg  /mnt/t2/
cp: 无法创建普通文件"/mnt/t2/anaconda-ks.cfg": 只读文件系统
[[email protected] t3]# cp /root/anaconda-ks.cfg  /mnt/t3

4.1、查看快照卷 并没有

[[email protected] t2]# ls
issue  lost+found  passwd

5、删除快照卷

[[email protected] mnt]# umount /mnt/t2
[[email protected] mnt]# lvremove /dev/myvg/mylv-snap
Do you really want to remove active logical volume myvg/mylv-snap? [y/n]: y
  Logical volume "mylv-snap" successfully removed

原文地址:http://blog.51cto.com/marvin89/2107080

时间: 2024-08-03 00:49:53

Linux 文件系统之LVM详解的相关文章

linux之LVM详解

Linux的LVM详解 LVM组成; LVM:logic volume manager .LVM即逻辑卷管理,现在使用版本为第二版,即version2 逻辑卷:pv,physical volume,即计算机上的磁盘设备,例如我的计算机上的/dev/sda3,/dev/sda5. 卷组:vg,volume group.一般由多个pv组成. 逻辑卷:lv,logical volume是在vg上是划分好可以直接使用分区 pe:physical extend,是在pv加入vg后vg把所有pv划分成的很多

Linux逻辑卷管理LVM详解

Linux逻辑卷管理LVM详解 Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题.随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大小. 一.LVM基本术语 LVM是在磁盘分区和文

Linux的Ext2文件系统(Inode&Block)详解

前述:Linux系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不可以太小,太大会导致磁盘容量的浪费,太小会导致产生的文件无法存储的问题.在Linux里面文件是由两部分数据组成,一部分是metadata,另一部分是data.那么这些数据都存放在文件系统的什么地方呢?这就让我们必须得了解文件系统的Inode与Block的基本原理了,而Linux最传统的磁盘文件系统使用的是Ext2,所以我们了解下它的内部原理. 第一部分:磁盘的组成和分区(基础) 磁盘的机械部分: 1.圆形

Linux 性能测试工具Lmbench详解

Linux 性能测试工具Lmbench详解 2010-06-04 16:07 佚名 评测中心 字号:T | T Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench 旨在使系统开发者深入了解关键操作的基础成本. AD:2014WOT全球软件技术峰会北京站 课程视频发布 Linux 性能测试工具Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型

《Linux设备驱动开发详解(第3版)》海量更新总结

本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 2015.2.26 几乎完成初稿. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux设备驱动概述及开发环境构建>[D]删除关于LDD6410开发板的介绍[F]更新新的Ubuntu虚拟机[N]添加关于QEMU模拟vexpress板的描述 第2章 <驱动设计的硬件基础> [N]增加关于SoC的介绍:[N]增加关于eFuse的内容:[D]删除ISA总线的内容了:[N]增加关于SP

Linux开机启动程序详解

我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核.请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存.因此,内核就必须完整地加载到可用RAM的第一个兆字节之内.为了实现这个目的,内核是被压缩了的.这个文件的头部包含着

Linux系统中目录详解

1.Linux文件系统的层次结构 在Linux或Unix操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构. 文件系统的最顶层是由根目录开始的,系统使用"/"来表示根目录.在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件.如此反复就可以构成一个庞大的文件系统. 在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点"."来表示:另一个是当前目录的上一级目录,也叫父目录,可以使用两个

linux下tar命令详解

 linux下tar命令详解  tar是Linux环境下最常用的备份工具之一.tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件.tar可用于建立.还原.查看.管理文件,也可方 便的追加新文件到备份文件中,或仅更新部分的备份文件,以及解压.删除指定的文件.熟悉其常用参数,能方便日常的系统管理工作. 一.版本 还是那句,不同的操作系统,tar的命令参数是有点区别的: 引用 # tar --version tar (GNU tar) 1.

Linux主要shell命令详解(上)

[摘自网络] kill -9 -1即实现用kill命令退出系统 Linux主要shell命令详解 [上篇] shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash.本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性. 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口.它是命令语言.命令解释程序及程序设计语言的统称. shell是用户和Linux内核之间的接口程序,如果把