设为首页 收藏本站
查看: 596|回复: 0

[经验分享] Linux磁盘管理之LVM详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-28 09:29:57 | 显示全部楼层 |阅读模式
LVM逻辑卷管理
一、LVM简介
二、LVM基本术语
三、LVM相关PV,VG,LV相关命令的使用
四、安装LVM
五、创建和管理LVM
    1、创建PV
    2、创建VG
    3、创建LV
    4 、LV的格式化及挂载
六、快照卷snapshot的使用介绍
==================================================================================


一、LVM简介

        LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
==================================================================================


二、LVM基本术语

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

物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统。
物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
逻辑块(Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
======================================================================

三、LVM相关PV,VG,LV相关命令的使用
pv管理工具:
        pvs:简要显示pv信息
        pvdisplay:显示pv的详细信息
        pvcreate /dev/device...: 创建pv
           pvmove :删除pv


vg管理工具:
        vgs:简要显示vg信息
        vgdisplay:显示vg的详细信息
        vgcreate vgName pv :创建vg
          -s #[kKmMgGtTpPeE]:指定pe大小
        vgextend :vg扩展  
        vgreduce :vg缩减,先做pvmove
        vgremove :删除vg

lv管理工具:
        lvs:简要显示lv信息
        lvdisplay:显示lv的详细信息
        lvcreate -L #[mMgGtT] -n NAME vgName:创建lv,其中-L指定逻辑卷大小,-n指定逻辑卷名

        lvremove /dev/vgName/lvName:删除逻辑卷
              lvextend    扩展LV

              -L    [+]n    指明要扩展或扩展到的LV容量

          lvreduce   缩减LV

              -L    [-]n    指明要缩减或缩减到的LV容量

    创建LVM快照的方法:

              lvcreate -L 大小 -p r -s -n 快照卷名字 原卷名字

                -p  权限 。 一般是只读  r

                -s :snapshot --意思是创建快照卷   

===============================================================================

四、安装LVM并创建磁盘分区

测试环境:CentOS6.5 x64 ;2块磁盘(20G)/dev/sdb,/dev/sdc
1
2
3
4
5
6
7
8
[iyunv@localhost ~]# rpm -qa | grep lvm  //检查系统是否安装lvm工具   
[iyunv@localhost ~]# yum list | grep lvm   //查看系统中的lvm软件包
lvm2.x86_64                              2.02.118-3.el6_7.2             updates
[iyunv@localhost ~]# yum install -y lvm2  //安装lvm2
Installed:
  lvm2.x86_64 0:2.02.118-3.el6_7.2                                                                                 
.......
Complete!                            //安装成功



准备2个磁盘,并给其分配10G的磁盘分区
wKioL1XemzSjnd1DAAIC9IEtImc749.jpg
为/dev/sdb划分10G磁盘分区
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
26
27
28
29
30
[iyunv@localhost ~]# fdisk /dev/sdb   //给/dev/sdb分区
Command (m for help): n       //新建分区
Command action
   e   extended
   p   primary partition (1-4)
p                           //主分区
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G  

Command (m for help): t                   //修改分区类型
Selected partition 1                 //选择分区编号
Hex code (type L to list codes): 8e      
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p       //显示分区信息
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x669de8cf
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  8e  Linux LVM

Command (m for help): w      //保存退出
[iyunv@localhost ~]# partx -a /dev/sdb     //同步到内核
BLKPG: Device or resource busy
error adding partition 1



为/dev/sdc划分10G磁盘分区
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
26
27
28
29
30
[iyunv@localhost ~]# fdisk /dev/sdc      
Command (m for help): n              //新建分区
Command action
   e   extended
   p   primary partition (1-4)
p                                   //主分区
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G

Command (m for help): t            //修改分区类型
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p            //显示分区信息
Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x585eb85b
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1306    10490413+  8e  Linux LVM

Command (m for help): w                 //保存退出
[iyunv@localhost ~]# partx -a /dev/sdc      //通知内核读取分区信息
BLKPG: Device or resource busy
error adding partition 1



===================================================================================

五、创建和管理LVM
示例:创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

1、创建PV
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
26
27
[iyunv@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1          //创建pv
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
[iyunv@localhost ~]# pvdisplay                     //显示当前系统的pv信息
  "/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               W2n9yi-R45E-fO7o-iWlP-3uIo-lk4h-IdwYEj

  "/dev/sdc1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               M4qjVw-9Mfx-unh9-z6r9-riXd-voiX-Z7acZe




    2、创建VG
1
2
3
[iyunv@localhost ~]# vgcreate -s 16M testvg /dev/sdb1 /dev/sdc1  //创建vg并指定pe大小
  Volume group "testvg" successfully created
[iyunv@localhost ~]# vgdisplay            //显示vg的详细信息



wKioL1Xer7-yEE9iAAFUxvtBaXs301.jpg

   3、创建LV
1
2
3
[iyunv@localhost ~]# lvcreate -L 5G -n testlv testvg  //创建一个5G的lv
  Logical volume "testlv" created.
[iyunv@localhost ~]# lvdisplay       //显示lv的详细信息



wKioL1XesVHD1yF7AAFd0HarpBI665.jpg

    4、LV的格式化及挂载
1
2
3
4
5
[iyunv@localhost ~]# mke2fs -t ext4 /dev/testvg/testlv //将lv格式化,文件系统为ext4
[iyunv@localhost ~]# mkdir /users
[iyunv@localhost ~]# mount /dev/testvg/testlv /users  //挂载lv到/users目录
[iyunv@localhost ~]# ls /users
lost+found



wKiom1XevA_jMaGpAAERs4QnMGY620.jpg

六、快照卷snapshot的使用介绍
         快照(snapshot)是LVM所提供的一个非常有用的特性。它的原理是复制原始卷的元数据(metadata)来创建一个逻辑卷,并没有复制物理卷上的任何数据, 因此它的创建过程是实时瞬间完成的。快照是特殊类型的逻辑卷,它含有创建时刻所指定的原始逻辑卷的完整数据,您可以操作快照而无需担心数据的变更令备份失效。
     LVM 快照利用一种称为“写时复制(COW,Copy-On-Write)的技术来跟踪和维持其数据的一致性。它的原理比较简单,就是跟踪原始卷上块的改变, 在这些数据被改变之前将其复制到快照自己的预留空间里。 当对快照进行读取的时候,被修改的数据从快照的预留空间中读取,未修改的数据则重定向到原始卷上去读取,因此在快照的文件系统与设备之间多了一层COW设备。
# lsmod | grep dm   #使用snapshot需要内核模块dm-snapshot
# modprobe dm-snapshot    #如有需要,必须先加载此模块

# lvs;vgs   # 先查看一下目前LV和VG的大小   
wKioL1Xeu6Txj8-IAADJEkcUILk307.jpg
理论上,您所建立的快照卷的大小应该是原始卷的1.1倍大小,但鉴于创建快照的目的多是为临时备份数据,因此实际使用时可视您的备份速度和数据变更的频繁程度来决定快照卷的大小。例如,您预计完成一个完整备份大概需要1个小时,而在这个时间之内数据变更的大小不会超过100M,那么您就可以安全地创建100M大小的快照卷。

开始建立逻辑卷testvg/testlv的快照(注意这里取1.1倍大小空间):
1
2
3
[iyunv@localhost users]# lvcreate -L 5.5G -p r -s -n testlvs testvg/testlv
  Reducing COW size 5.50 GiB down to maximum usable size 5.11 GiB.
  Logical volume "testlvs" created.



wKiom1Xeu1-AyJvpAAHI0LpWgQo782.jpg
注意:这时候快照卷看到的文件是快照原卷那一刻的文件,原卷里的文件做任何变化,快照卷中的文件都不会改变!!可以将快照卷的文件备份到其他位置!

卸载快照卷
1
[iyunv@localhost users]# umount /dev/testvg/testlvs  //卸载快照卷



删除快照卷
1
2
3
[iyunv@localhost users]# lvremove /dev/testvg/testlvs
Do you really want to remove active logical volume testlvs? [y/n]: y
Logical volume "testlvs" successfully removed



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105347-1-1.html 上篇帖子: Ubuntu14.04快速搭建SVN服务器及日常使用 下篇帖子: linux文件系统详解 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表