LVM解析

一、什么是LVM?

LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可 能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。

dm模块:device mapper 设备映射组件,能够将一个或者多个底层设备组织成一个逻辑设备的模块。

二、 LVM基本术语

前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。

物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

由N个磁盘可以组成一个很大的空间VG1,然后从VG1上面划分需要使用的分区。

1. PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区,如上图所示: 几个LV建立在VG上,VG建立在PV之上,PV是物理卷,可以是整块硬盘或者硬盘分区。

2.VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV。

3.LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。

1、查看系统中新增加的硬盘

[[email protected] ~]# fdisk -l

2、在/dev/sdb上划分4个10G分区备用这里分区格式需要调整为8e  【8e  Linux LVM 】

分别是sdb1,sdb5,6,7

[[email protected] ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2838e1c6
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  8e  Linux LVM
/dev/sdb2            1307       13054    94365810    5  Extended
/dev/sdb5            1307        2612    10490413+  8e  Linux LVM
/dev/sdb6            2613        3918    10490413+  8e  Linux LVM
/dev/sdb7            3919        5224    10490413+  8e  Linux LVM

3.介绍pv管理工具

pvs  简要pv信息显示

pvdisplay  显示PV的详细信息

pvcreate   /dev/device

创建PV,查看PV,查看PV的详细信息

[[email protected] ~]# pvcreate /dev/sdb7

[[email protected] ~]# pvdisplay

如果想查看某个具体的pv,可以    pvdisplay   /dev/sdb7

4 VG的管理工具

vgs 可以简要显示所有卷组

vgdisplay   可以显示详细信息

vgcreate  创建vg

创建vg,查看vg

[[email protected] ~]# vgcreate myvg /dev/sdb7
[[email protected] ~]# vgdisplay myvg
--- Volume group ---
VG Name               myvg
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               10.00 GiB
PE Size               4.00 MiB
Total PE              2560
Alloc PE / Size       0 / 0
Free  PE / Size       2560 / 10.00 GiB
VG UUID               IqtLDN-aRmA-Wmzc-6EYw-GooA-fcz6-6JUFzg
这里可以看到 PE的大小为4M,此时再查看pv状态,发现PE的大小就已经确定
[[email protected] ~]# pvdisplay  /dev/sdb7
--- Physical volume ---
PV Name               /dev/sdb7
VG Name               myvg
PV Size               10.00 GiB / not usable 4.54 MiB
Allocatable           yes
PE Size               4.00 MiB
Total PE              2560
Free PE               2560
Allocated PE          0
PV UUID               SXyy1i-qb1j-ixlk-Q1js-RPT8-CaWN-WWhmBt

通过使用命令pvs发现我们已经创建了三个pv

[[email protected] ~]# pvs
PV         VG   Fmt  Attr PSize  PFree
/dev/sdb7  myvg lvm2 a--u 10.00g 10.00g
/dev/sdb8       lvm2 ----  3.01g  3.01g
/dev/sdb9       lvm2 ---- 20.01g 20.01g

现在我们扩展下VG的大小,并查看发现myvg已经变大

[[email protected] ~]# vgextend myvg /dev/sdb8
[[email protected] ~]# vgdisplay myvg

移除pv,使用命令pvmove    命令如: pvmove /dev/sdb8,然后再vgreduce myvg 、dev/sdb8,从VG当中移除,此命令在生产环境中操作极具风险性,所以不再演示操作,也不建议大家以后操作

LV管理工具

lvs

lvdisplay

lvcreate  -L #[mMgGtT]   -n NAME VolumeGroup

在myvg当中创建一个mylv,指定大小为11.3G 指定名字为mylv

[[email protected] ~]# lvcreate -L 11.3G -n mylv myvg

创建完成lv之后就可以像软raid分区一样,格式化挂载使用了

[[email protected] ~]# mkfs -t ext4 -b 2048 -L mylv /dev/myvg/mylv

创建目录并将mylv挂载

[[email protected] mapper]# mkdir /backup003
[[email protected] mapper]# mount /dev/mapper/myvg-mylv /backup003

进入目录,然后下载两个文件并查看

[[email protected] mapper]# cd /backup003
[[email protected] backup003]# wget http://down1.chinaunix.net/distfiles/httpd-2.2.0.tar.bz2
[[email protected] backup003]# wget http://down1.chinaunix.net/distfiles/nginx-1.2.5.tar.gz
[[email protected] backup003]# ls
httpd-2.2.0.tar.bz2  lost+found  nginx-1.2.5.tar.gz

扩展逻辑卷 lvextend -L [+][mMgGtT] /dev/VG_NAME/LV_NAME

[[email protected] backup003]# vgextend myvg /dev/sdb9
Volume group "myvg" successfully extended
[[email protected] backup003]# vgdisplay
--- Volume group ---
VG Name               myvg
System ID
Format                lvm2
Metadata Areas        3
Metadata Sequence No  4
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                3
Act PV                3
VG Size               33.02 GiB
PE Size               4.00 MiB
Total PE              8452
Alloc PE / Size       2893 / 11.30 GiB
Free  PE / Size       5559 / 21.71 GiB
VG UUID               IqtLDN-aRmA-Wmzc-6EYw-GooA-fcz6-6JUFzg

将lv扩展到20G的大小

[[email protected] backup003]# lvextend -L 20G /dev/mapper/myvg-mylv 
Size of logical volume myvg/mylv changed from 11.30 GiB (2893 extents) to 20.00 GiB (5120 extents).
Logical volume mylv successfully resized.

扩展lv首先是lv的大小扩展,然后是文件系统的扩展,即先修改物理便捷,在修改逻辑边界

[[email protected] backup003]# resize2fs /dev/mapper/myvg-mylv

然后进行解除挂载,重新挂载

[[email protected] ~]# umount /dev/mapper/myvg-mylv
[[email protected] ~]# mount /dev/mapper/myvg-mylv /backup003

然后可以看到目录大小已经改变

[[email protected] ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              48G  1.7G   44G   4% /
tmpfs                 931M     0  931M   0% /dev/shm
/dev/sda1             1.9G   76M  1.8G   5% /boot
/dev/sda3              20G   44M   19G   1% /data
/dev/mapper/myvg-mylv
20G   20M   19G   1% /backup003

缩减逻辑卷,危险性较大,不建议操作,不允许联机进行的

1   umount  /dev/VG_NAME/LV_NAME

2   做文件系统检测  e2fsck -f    /dev/VG_NAME/LV_NAME

3   修改其逻辑边界,resize2fs /dev/mapper/myvg-mylv  #[mMgGtT] 并指明缩减至多大

4   lvreduce -L [-] ##[mMgGtT]  /dev/mapper/myvg-mylv

5    mount /dev/mapper/myvg-mylv /backup003

示例:

[[email protected] ~]# umount /dev/mapper/myvg-mylv
[[email protected] ~]#  e2fsck -f   /dev/mapper/myvg-mylv
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
mylv: 13/1310720 files (0.0% non-contiguous), 207882/10485760 blocks
[[email protected] ~]# resize2fs /dev/mapper/myvg-mylv 12G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/myvg-mylv to 6291456 (2k) blocks.
The filesystem on /dev/mapper/myvg-mylv is now 6291456 blocks long.
[[email protected] ~]# lvreduce -L 12G /dev/mapper/myvg-mylv
WARNING: Reducing active logical volume to 12.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv? [y/n]: y
Size of logical volume myvg/mylv changed from 20.00 GiB (5120 extents) to 12.00 GiB (3072 extents).
Logical volume mylv successfully resized.
[[email protected] ~]# mount /dev/mapper/myvg-mylv /backup003
[[email protected] ~]# cd /backup003
[[email protected] backup003]# ls
httpd-2.2.0.tar.bz2  lost+found  nginx-1.2.5.tar.gz

文件系统挂载使用: 挂载光盘设备,光盘设备文件是/dev/sr0,而符号链接文件一般为 /dev/cdrom

[[email protected] ~]# mount -o ro /dev/sr0 /mnt   以只读的方式挂载光驱,卸载光驱文件系统  umount   /dev/sr0

dd命令的使用,用法是  dd   if  = 源文件    of  =  目标文件 ;bs 复制单元大小,count= n 复制多少个bs

实例如下:

[[email protected] ~]# dd if=/etc/fstab of=/tmp/fstab2 bs=1 count=10

备份mbr      [[email protected] ~]# dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破坏MBR    [[email protected] ~]# dd if=/dev/zero  of=/dev/sda  bs=512 count=1

两个特殊设备:

/dev/null   数据黑洞   /dev/zero   字符制造

一种挂载光盘镜像文件的合理方式:

步骤说明:

1 下载光盘镜像至backup003目录;

2 查看目录下的镜像文件

3 挂载镜像文件至/mnt下

4 查看

[[email protected] backup003]# wget     
--2018-02-26 15:31:30--  http://mirrors.163.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
Resolving mirrors.163.com... 59.111.0.251
Connecting to mirrors.163.com|59.111.0.251|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4521459712 (4.2G) [application/octet-stream]
Saving to: “CentOS-7-x86_64-DVD-1708.iso”
100%[=================================================================================================================>] 4,521,459,712 10.7M/s   in 6m 45s  
2018-02-26 15:38:15 (10.7 MB/s) - “CentOS-7-x86_64-DVD-1708.iso” saved [4521459712/4521459712]
[[email protected] backup003]# ls
CentOS-7-x86_64-DVD-1708.iso  httpd-2.2.0.tar.bz2  lost+found  nginx-1.2.5.tar.gz
[[email protected] backup003]# mount CentOS-7-x86_64-DVD-1708.iso /mnt -o loop
[[email protected] backup003]# cd /mnt
[[email protected] mnt]# ls
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
[[email protected] mnt]# ll
total 664
-rw-rw-r--. 3 root root     14 Sep  5 13:25 CentOS_BuildTag
drwxr-xr-x. 3 root root   2048 Sep  5 13:36 EFI
-rw-rw-r--. 3 root root    227 Aug 30 14:33 EULA
-rw-rw-r--. 3 root root  18009 Dec  9  2015 GPL
drwxr-xr-x. 3 root root   2048 Sep  5 13:46 images
drwxr-xr-x. 2 root root   2048 Sep  5 13:36 isolinux
drwxr-xr-x. 2 root root   2048 Sep  5 13:36 LiveOS
drwxrwxr-x. 2 root root 641024 Sep  4 22:05 Packages
drwxr-xr-x. 2 root root   4096 Sep  5 13:43 repodata
-rw-rw-r--. 3 root root   1690 Dec  9  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 3 root root   1690 Dec  9  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 Sep  6 10:51 TRANS.TBL

原文地址:http://blog.51cto.com/30bear/2073153

时间: 2024-11-02 23:02:21

LVM解析的相关文章

Linux01-企业核心技术之逻辑卷LVM深入解析和实战36

一.扩展逻辑卷 1.lvextend-L [+]# /PATH/TO/LV,[+]表示扩展到:#表示扩展至: a)扩展逻辑卷的风险较小,可在线扩展: 2.resize2fs:扩展到和物理边界一样大 a)命令格式:resize2fs -p /PATH/TO/LV 如:lvcreate -L 2G -n testlv myvg mke2fs -j /dev/myvg/testlv mkdir users mount /dev/myvg/testlv /users mount lvextend -L

RHEL6.5 LVM使用解析

Linux用户在安装操作系统时,会遇到的一个常见问题就是如何正确地评估各分区大小,以便划分合适的硬盘空间.普通的磁盘分区管理方式在各分区划分好后就无法改变其大小,而当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上.或遇到某个分区空间快耗尽时,解决的方法通常是使用符号链接,或者新建目录外挂分区以及使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题.其实在Linux下,利用LVM,这些问题都可以迎刃而解,用户在

解析Linux中LVM与磁盘配额

LVM 逻辑卷管理 LVM 概述 LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上.文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性. 要建立 LVM 分区管理机制,首先,将普通分区或整个硬盘创建为物理卷:然后,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组:最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷.逻辑卷才是最终用户可以格

HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据方案

故障描述 HP FC MSA2000存储,由于RAID5阵列中出现2块硬盘损坏并离线,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用,用户联系联系北亚数据,整个存储空间由8块450GB SAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用. 由于存储是因为RAID阵列中某些磁盘掉线,从而导致整个存储不可用.因此接收到磁盘以后先对所有磁盘做物理检测,检测完后发现没有物理故障.接着使用坏道检测工具检测磁盘坏道,发现也没有坏道. 解决方法:

Linux LVM逻辑卷配置过程详解

Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要. LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出

saltstack参数解析及代码分享

altstack搭建haproxy代理的nginx服务 关于saltstack的搭建,请参见我的博客. 测试salt正常: [[email protected] package]# salt '*' cmd.run 'free -m' server2.example.com: total       used       free     shared    buffers     cached Mem:           996        185        811          

HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程

故障描述 HP FC MSA2000存储,由于RAID5阵列中出现2块硬盘损坏并离线,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪,上层LUN无法正常使用,用户联系联系北亚数据,整个存储空间由8块450GB SAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用. 由于存储是因为RAID阵列中某些磁盘掉线,从而导致整个存储不可用.因此接收到磁盘以后先对所有磁盘做物理检测,检测完后发现没有物理故障.接着使用坏道检测工具检测磁盘坏道,发现也没有坏道. 解决方法:

Linux入门之磁盘管理(8)LVM逻辑卷的使用

在Linux中虽然有raid来保证数据的稳定以及磁盘性能的提高,但是其扩展性并不是很好,在很多生产环境中,都是数据正在使用中,在这时如果中断一段时间就会有很大的损失,因此Linux提供了LVM虚拟逻辑卷的概念,同样多个磁盘设备或分区设备组合在一起,但是,如果空间需要缩减或者扩展,可以很方便的进行动态改变,甚至进行数据快照. 逻辑卷管理器(LVM): 1.允许对卷进行方便操作的抽象层,包括重新定义文件系统的大小 2.允许在多个目录设备间重新组织文件系统 (1)将设备指定为物理卷 (2)用一个或多个

Linux入门之磁盘管理(9)LVM逻辑卷案例

Linux入门之磁盘管理(9)LVM逻辑卷案例 案例介绍阶段(1): 创建一个由两个物理卷组成的大小未20G的卷组myvg,要求其PE大小为16M:而在此卷组中创建一个大小未5G的逻辑卷lvtest,此逻辑卷要能在开机后自动挂载至/mnt/lvtest目录,且支持ACL功能. 1.准备工作 #这里我们分别从两个磁盘选择10G来准备组合为PV [[email protected] ~]# fdisk -l | grep -o '/.*B' /dev/sda: 21.5 GB /dev/sdb: 2