细述LVM

 前言:

    LVM(Logical Volume Manager)是基于内核的一种逻辑卷管理器,LVM适合于管理大存储设备,并允许用户动态调整文件系统大小。此外,LVM的快照功能可以帮助我们快速备份数据。LVM为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。

看图识LVM

    

RJY6[NG2X]{LIBOO~LFJWNN.png

使用LVM创建逻辑卷需要我们提前了解以下几个概念:

    PE:Physical Ex

        LVM默认使用4MB的PE块,他是整个LVM最小的存储单元,也就是说,我们的文件数据都是由写入PE来处理的。简单的说,这个PE就是有点像文件系统里面的block大小。

    PV:Physical Volume 物理卷

        物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。LVM提供了命令工具可以将分区转换为物理卷,通过组合物理卷可以生成卷组。

    VG:Volume Group 卷组

        卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合成后生成卷组。卷组的大小取决于物理卷的容量以及个数。

    LV:Logical Volume 逻辑卷

        逻辑卷就是LVM逻辑意义上的分区,我们可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

 

PV常用命令: 

            pvcreate    #创建一个PV物理卷
            pvchange    #修改PV的属性
            pvresize    #调整一个PV的大小
            pvremove    #删除一个PV
            pvmove      #移动PE到指定物理卷
            pvscan      #搜索所有磁盘上的物理卷
            pvs         #显示PV的简要信息
            pvdisplay   #显示PV的属性信息

VG常用命令:

            vgcreate    #创建卷组
                -l:设置此卷组可容纳的LV最大数,默认为255
                -p:设置此卷组包含PV的最大数,默认为255
                -s:设置此卷组PE大小,默认为4M
            vgextend   #扩展VG大小
            vgchange   #修改VG属性信息
            vgreduce   #缩减VG大小
            vgremove   #删除VG
            vgscan    #搜索所有磁盘上的卷组
            vgs      #显示VG简要信息
            vgdisplay  #显示VG属性信息
            vgck        #检查VG元数据
LV常用命令:
            lvcreate    #创建LV分区
                -l:设置LV大小,以PE为单位
                -L:设置LV大小,以字节为单位
                -n:设置LV名称
                -p:设置LV权限读写权限,默认为可读可写
                -s:设置一个快照卷,对一个已存在的LV做快照
            lvextend    #扩展LV大小
            lvreduce    #缩减LV大小
            lvchange    #修改LV属性信息
                -ay:标记LV为可用状态
                -an:标记LV为不可用状态
            lvremove    #删除LV
            lvscan      #搜索所有磁盘上的逻辑卷
            lvs         #显示LV简要信息
            lvdisplay   #显示LV属性信息

实战演习:

[root@server ~]# fdisk -l | grep ^/de

/dev/sda1   *           1          64      512000   83  Linux

/dev/sda2              64        2611    20458496   8e  Linux LVM

/dev/sdb1               1          14      112423+  83  Linux

/dev/sdb2              15          80      530145   83  Linux

/dev/sdc1               1         654     5253223+  8e  Linux LVM

/dev/sdd1               1         654     5253223+  8e  Linux LVM

/dev/sde1               1         654     5253223+  8e  Linux LVM

创建PV:

[root@server ~]# pvcreate /dev/sd{c,d,e}1

  Physical volume "/dev/sdc1" successfully created

  Physical volume "/dev/sdd1" successfully created

  Physical volume "/dev/sde1" successfully created

[root@server ~]#

查看创建的PV

[root@server ~]# pvs            #查看PV的简要信息

  PV         VG       Fmt  Attr PSize  PFree

  /dev/sda2  VolGroup lvm2 a--  19.51g    0 

  /dev/sdc1           lvm2 ---   5.01g 5.01g

  /dev/sdd1           lvm2 ---   5.01g 5.01g

  /dev/sde1           lvm2 ---   5.01g 5.01g

[root@server ~]#
[root@server ~]# pvdisplay             #查看PV详细信息
  --- Physical volume ---  
  "/dev/sde1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---            #新PV
  PV Name               /dev/sde1            #物理卷名称
  VG Name               
  PV Size               5.01 GiB                #物理卷大小
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               VREiVr-2Jr5-jNM8-EoKo-Agxw-oypN-kyUrXI
   
[root@server ~]#

 创建VG:

[root@server ~]# vgcreate -s 2M myvg /dev/sdc1 /dev/sdd1

  Volume group "myvg" successfully created

[root@server ~]#

查看VG:

 [root@server ~]# vgs

  VG       #PV #LV #SN Attr   VSize  VFree 

  VolGroup   1   2   0 wz--n- 19.51g     0 

  myvg       2   0   0 wz--n- 10.02g 10.02g        #新建的VG,名称:myvg,大小10G

[root@server ~]#
[root@server ~]# vgdisplay 

  --- Volume group ---

  VG Name               myvg            #卷组名

  System ID             

  Format                lvm2

  Metadata Areas        2

  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                2

  Act PV                2

  VG Size               10.02 GiB        #卷组大小

  PE Size               2.00 MiB        #PE大小2M

  Total PE              5128

  Alloc PE / Size       0 / 0   

  Free  PE / Size       5128 / 10.02 GiB        #剩余容量

  VG UUID               W0FnIa-Z5Th-XRaM-EfcZ-HWeF-Jdee-jVTVyT

扩展myvg大小:

[root@server ~]# vgextend myvg /dev/sde1

  Volume group "myvg" successfully extended

缩减myvg大小:

[root@server ~]# vgreduce myvg /dev/sde1

  Removed "/dev/sde1" from volume group "myvg"

 创建LV:

[root@server ~]# lvcreate -L +6G -n mylv myvg                创建大小为6G,名称为mylv的逻辑卷!卷组为myvg
  Logical volume "mylv" created
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  6.00g                           #大小6G                         
[root@server ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/myvg/mylv        #逻辑卷mylv的路径
  LV Name                mylv                        #逻辑卷名称mylv
  VG Name                myvg                      #基于myvg卷组
  LV UUID                EXKn5D-lVzU-JdlO-GYoo-CYpz-y20L-xn5cI5
  LV Write Access        read/write
  LV Creation host, time server.lili.com, 2015-06-10 17:47:02 +0800
  LV Status              available
  # open                 0
  LV Size                6.00 GiB
  Current LE             3072
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
 
[root@server ~]# mkfs.ext4 /dev/myvg/mylv        #格式化LV
 
[root@server ~]# mkdir /data        #创建挂载路径
[root@server ~]# mount /dev/myvg/mylv /data/        #挂载mylv
 
[root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data        #大小为6G的/data

这样我们就成功的创建了我们的逻辑卷!可是随着业务的增加!data目录不够用了,我们就可以扩展mylv的大小,可在线扩展。

扩展mylv: 

[root@server ~]# lvextend -L +1G -n /dev/myvg/mylv         #扩展物理边界增加1G
  Size of logical volume myvg/mylv changed from 6.00 GiB (3072 extents) to 7.00 GiB (3584 extents).
  Logical volume mylv successfully resized
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      5.8G   12M  5.5G   1% /data            #仍然为6G        #逻辑卷没增加
[root@server ~]# resize2fs /dev/myvg/mylv         #扩展逻辑边界。        注:只对ext文件系统使用。这里也可以指定扩展逻辑边界大小,默认物理边界大小。
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1835008 blocks long.
[root@server ~]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 17.57g                                                    
  lv_swap VolGroup -wi-ao----  1.94g                                                    
  mylv    myvg     -wi-a-----  7.00g           
 [root@server ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      6.8G   14M  6.5G   1% /data        #大小为7G了

缩减:

缩减的顺序应该与创建时的顺序相反,也就是卸载文件系统、删除逻辑卷、删除卷组、删除物理卷。缩减很危险,不到万不得已千万别缩减。缩减需离线。

缩减步骤:

1、先确定缩减后的目标大小;并确保对应的每一步逻辑卷大小中有足够的空间可容纳原有所有数据;

2、先制裁文件系统,并要执行强制检测

3、缩减逻辑边界

4、缩减物理边界

[root@server ~]# umount /data/
[root@server ~]# e2fsck -f /dev/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
/dev/myvg/mylv: 11/458752 files (0.0% non-contiguous), 65023/1835008 blocks
 
[root@server ~]# resize2fs /dev/myvg/mylv 2G        # 缩减逻辑边界至2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 524288 blocks long.
 
[root@server ~]# lvreduce -L 2G /dev/myvg/mylv         # 缩减物理边界至2G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y            # 确认,后果自负
  Size of logical volume myvg/mylv changed from 7.00 GiB (3584 extents) to 4.00 GiB (2048 extents).
  Logical volume mylv successfully resized
[root@server ~]# mount /dev/myvg/mylv /data/        # 重新挂载
[root@server ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  3.6G   13G  23% /
tmpfs                 491M  228K  491M   1% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/sr0              4.4G  4.4G     0 100% /media/CentOS_6.6_Final
/dev/mapper/myvg-mylv
                      1.9G  9.0M  1.8G   1% /data        # 2G大小

 

创建快照卷:

    快照卷是对逻辑卷进行的,因此必须跟目标逻辑卷在同一个卷组中,无须指明卷组。需确保剩余卷组可容纳快照。

lvcreate
-L :大小
-n: 名称
-s:快照
-p r:只读
[root@server ~]# fuser /data/        # 创建快照卷时尽量避免有访问时创建快照!

/data/:               8640c          # 有访问
[root@server ~]# mount -o remount,ro /dev/myvg/mylv /data/ && lvcreate -L 1G -n mylv-snap -p r -s /dev/myvg/mylv && mount -o remount,rw /dev/myvg/mylv /data/       
# 先以只读方式挂载逻辑卷&&然后创建快照&&然后在以读写方式挂载逻辑卷
  Logical volume "mylv-snap" created
[root@server ~]# mkdir /snap        # 创建挂载点
[root@server ~]# mount /dev/myvg/mylv-snap /snap/        # 挂载快照
mount: block device /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only    #只读

卸载快照卷:

[root@server ~]# umount /snap/        # 卸载

[root@server ~]# lvremove /dev/myvg/mylv-snap     # 移除快照

Do you really want to remove active logical volume mylv-snap? [y/n]: y    # 确认

  Logical volume "mylv-snap" successfully removed

 

好了!以上皆为个人学习总结!如有错误和遗落,还望指点!!

原创文章,作者:水蒸气,如若转载,请注明出处:http://www.178linux.com/5210

(0)
上一篇 2015-06-15 16:20
下一篇 2015-06-15 16:22

相关推荐

  • N23-第四周博客作业

    1、复制 /etc/skel 目录为 /home/tuser1,要求 /home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 && chmod -R g-r,o-r /home/tuser1 (1)使用cp命令的-r选项,将/e…

    Linux干货 2016-12-05
  • bash之运算、测试、if语句及for循环语句

      一、逻辑运算         布尔运算:真、假         与运算:                 真 && 真 = 真       …

    Linux干货 2015-05-25
  • lvs

    1、什么是LVS LVS是Linux Virtual Server的简写,以为Linux虚拟服务器,是一个虚拟服务器集群,其具有很好的可伸缩性、可靠性、可管理性。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务…

    Linux干货 2016-10-29
  • 博客作业网络班22期+第6周(9.12-9.18)

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost /]# cp /etc/rc.d/rc.sysinit /tmp[root@localhost /]# sed -i 's/\…

    Linux干货 2016-09-19
  • Linux常见小知识点

    什么是Linux? Linux是一款支持多任务,多线程,多用户的类Unix系统 Linux常见的发行版本 Redhat  Linux   Linux发行版中比较重要的一个版本,多用于企业,由Redhat公司提供收费技术支持和更新,其衍生版本有centos为免费版本 Debain linux      系统分为…

    Linux干货 2017-03-26
  • M22 wireshark使用方法简介

    wireshark是一款著名的开源抓包软件,它可以抓取网卡的数据包,以供网络管理员分析。 一 安装方法 debain系安装方法: sudo add-apt-repository ppa:wireshark-dev/stable sudo apt update sudo apt install wireshark 启动wireshark: sudo wires…

    2017-03-20