码迷,mamicode.com
首页 > 其他好文 > 详细

LVM逻辑卷管理

时间:2015-10-01 01:52:20      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:physical   volume   逻辑卷   linux   lvm2   磁盘管理   

 

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,通过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)。 可以做这样一个设想来理解以上三者的关系:如果把PV比做地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,而在地球上划分一个区域并标记为亚洲,那么亚洲就相当于一个LVM

PE
physical extent
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,(我理解为物理块,下面的LE则是对应逻辑块)具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。 

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

    


首先我们先准备好虚拟机,这次实验准备的是CentOS6.6的版本,并在此基础上添加几块磁盘,过程如下:


1) 在下图设备项内鼠标单击选择硬盘

技术分享


鼠标单击硬盘项之后会出现下图,选择上硬盘之后我们在单击下方的添加硬盘

技术分享


这里一路下一步即可,根据自己的实验需求进行添加硬盘数量

技术分享


添加完成之后可以看到设备项内的硬盘已经添加成功了!


技术分享



下面我们开机进入CentOS系统



先查看一下我们系统所有磁盘设备的识别情况及编号(/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde)

    [root@Lab6-1 ~]# fdisk -l    
    Disk /dev/sda: 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: 0x000f3537
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        2611    20458496   8e  Linux LVM
    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: 0x00000000
    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: 0x00000000
    Disk /dev/sdd: 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: 0x00000000
    Disk /dev/sde: 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: 0x00000000
    Disk /dev/mapper/vg_lab1-lv_root: 18.9 GB, 18865979392 bytes
    255 heads, 63 sectors/track, 2293 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: 0x00000000
    Disk /dev/mapper/vg_lab1-lv_swap: 2080 MB, 2080374784 bytes
    255 heads, 63 sectors/track, 252 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: 0x00000000


pv相关常用命令:

1.pvcreate: 创建pv命令

  [root@Lab6-1 ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created

2.pvs:查看指定或所有pv简要信息

 [root@Lab6-1 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  vg_lab1 lvm2 a--  19.51g     0 
  /dev/sdb           lvm2 ---  20.00g 20.00g
  /dev/sdc           lvm2 ---  20.00g 20.00g
 [root@Lab6-1 ~]# pvs /dev/sdb
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb        lvm2 ---  20.00g 20.00g

3.pvdisplay:查看指定或所有pv的更详细信息

 
[root@Lab6-1 ~]# pvdisplay /dev/sdb /dev/sdc
  "/dev/sdb" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               TQ5RI0-oWGj-Kf6Q-eoNJ-ZCMN-q5Jf-SYokrx
   
  "/dev/sdc" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Czisys-v7cm-SxMP-IynN-0GqC-NW5d-EzYRn1

4.pvscan:扫描系统上的所有pv

[root@Lab6-1 ~]# pvscan
  PV /dev/sda2   VG vg_lab1   lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb                 lvm2 [20.00 GiB]
  PV /dev/sdc                 lvm2 [20.00 GiB]
  Total: 3 [59.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 2 [40.00 GiB]

5.pvremove: 移除pv

[root@Lab6-1 ~]# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped


vg相关常用命令:

1.vgcreate:首次创建一个vg时使用,这里vgcreate 后要指定vg的名字(VG_NAME) 在跟需要添加进vg的pv设备

[root@Lab6-1 ~]# vgcreate myvg /dev/sdb 
  Volume group "myvg" successfully created
[root@Lab6-1 ~]# vgcreate myvg /dev/sdb /dev/sdc
  Physical volume "/dev/sdc" successfully created
  Volume group "myvg" successfully created

 

2.vgs:查看指定或所有vg简要信息

    [root@Lab6-1 ~]# vgs
      VG      #PV #LV #SN Attr   VSize  VFree 
      myvg      2   0   0 wz--n- 39.99g 39.99g
      vg_lab1   1   2   0 wz--n- 19.51g     0 
    [root@Lab6-1 ~]# vgs myvg
      VG   #PV #LV #SN Attr   VSize  VFree 
      myvg   2   0   0 wz--n- 39.99g 39.99g

3.vgdisplay:查看指定或所有vg的更详细信息

[root@Lab6-1 ~]# vgdisplay myvg
  --- 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               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               0hflFu-aoBa-0URf-m509-6wWj-QMrp-79LYeR

4.vgextend:扩展vg大小

[root@Lab6-1 ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created
[root@Lab6-1 ~]# vgextend myvg /dev/sdd
  Volume group "myvg" successfully extended
[root@Lab6-1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  myvg      3   0   0 wz--n- 59.99g 59.99g
  vg_lab1   1   2   0 wz--n- 19.51g     0 
[root@Lab6-1 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  vg_lab1 lvm2 a--  19.51g     0 
  /dev/sdb   myvg    lvm2 a--  20.00g 20.00g
  /dev/sdc   myvg    lvm2 a--  20.00g 20.00g
  /dev/sdd   myvg    lvm2 a--  20.00g 20.00g

5.vgreduce:缩减vg大小,从vg移除某pv

[root@Lab6-1 ~]# vgreduce myvg /dev/sdd
  Removed "/dev/sdd" from volume group "myvg"
[root@Lab6-1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  myvg      2   0   0 wz--n- 39.99g 39.99g
  vg_lab1   1   2   0 wz--n- 19.51g     0 
[root@Lab6-1 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  vg_lab1 lvm2 a--  19.51g     0 
  /dev/sdb   myvg    lvm2 a--  20.00g 20.00g
  /dev/sdc   myvg    lvm2 a--  20.00g 20.00g
  /dev/sdd           lvm2 ---  20.00g 20.00g

6.vgremove:移除vg

[root@Lab6-1 ~]# vgremove myvg
  Volume group "myvg" successfully removed
[root@Lab6-1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  vg_lab1   1   2   0 wz--n- 19.51g    0 
[root@Lab6-1 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  vg_lab1 lvm2 a--  19.51g     0 
  /dev/sdb           lvm2 ---  20.00g 20.00g
  /dev/sdc           lvm2 ---  20.00g 20.00g
  /dev/sdd           lvm2 ---  20.00g 20.00g


lv相关常用命令:

  1. lvcreate:首次创建一个lv时使用,格式:lvcreate -L # -n LV_NAME VG_NAME

     -L: 指定lv卷的大小

     -n:设定lv卷名字

        [root@Lab6-1 ~]# lvcreate -L 10G -n my_lv myvg
      Logical volume "my_lv" created

2.lvs:查看指定或所有lv简要信息

     [root@Lab6-1 ~]# lvs
      LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      my_lv   myvg    -wi-a----- 10.00g                                                    
      lv_root vg_lab1 -wi-ao---- 17.57g                                                    
      lv_swap vg_lab1 -wi-ao----  1.94g

3.lvdisplay:查看指定或所有lv的更详细信息,创建lv之后会把lv识别成设备文件,路径为/dev/VG_NAME/LV_NAME 而不在是lv卷的名字

[root@Lab6-1 ~]# lvdisplay /dev/myvg/my_lv 
  --- Logical volume ---
  LV Path                /dev/myvg/my_lv
  LV Name                my_lv
  VG Name                myvg
  LV UUID                g0n789-ZVMz-xtgN-Qixv-wTye-cCY6-pk15sc
  LV Write Access        read/write
  LV Creation host, time Lab6-1, 2015-09-22 22:39:33 -0400
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

4.lvextend:扩展lv卷物理边界大小,这里扩展大小有两种方式 例如:+5G表示原有空间增加5G  5G表示将空间扩展至5G

 resize2fs:调整lv文件系统边界大小,只有同时扩展完成才可以使用生效

[root@Lab6-1 ~]# lvextend -L 15G /dev/myvg/my_lv         # 调整lv大小至15G
  Size of logical volume myvg/my_lv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume my_lv successfully resized
[root@Lab6-1 ~]# mke2fs -t ext4 /dev/myvg/my_lv 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@Lab6-1 ~]# mount  /dev/myvg/my_lv  /mnt/
[root@Lab6-1 ~]# mount
/dev/mapper/vg_lab1-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-my_lv on /mnt type ext4 (rw)
[root@Lab6-1 ~]# lvextend -L 15G /dev/myvg/my_lv       # 调整lv大小至15G   
  Size of logical volume myvg/my_lv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume my_lv successfully resized
[root@Lab6-1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_lab1-lv_root
                       18G  3.9G   13G  24% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/mapper/myvg-my_lv
                      9.8G   23M  9.2G   1% /mnt
[root@Lab6-1 ~]# resize2fs /dev/myvg/my_lv     # 不指明大小,表示扩展至跟物理边界一样大
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/my_lv is mounted on /mnt; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/my_lv to 3932160 (4k) blocks.
The filesystem on /dev/myvg/my_lv is now 3932160 blocks long.

[root@Lab6-1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_lab1-lv_root
                       18G  3.9G   13G  24% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/mapper/myvg-my_lv
                       15G   25M   14G   1% /mnt

5.lvreduce:缩减lv物理边界大小

 resize2fs:调整文件系统边界大小

[root@Lab6-1 ~]# umount /mnt                            # 必须要先卸载
[root@Lab6-1 ~]# e2fsck -f /dev/myvg/my_lv             # 必须强制检查一次文件系统
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/my_lv: 11/983040 files (0.0% non-contiguous), 100864/3932160 blocks
[root@Lab6-1 ~]# resize2fs /dev/myvg/my_lv 10G            # 文件系统大小缩减至10G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/my_lv to 2621440 (4k) blocks.
The filesystem on /dev/myvg/my_lv is now 2621440 blocks long.
[root@Lab6-1 ~]# lvreduce -L 10G /dev/myvg/my_lv         # 物理边界缩减至10G
  WARNING: Reducing active logical volume to 10.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce my_lv? [y/n]: y                 # 这是危险操作是否确认
  Size of logical volume myvg/my_lv changed from 15.00 GiB (3840 extents) to 10.00 GiB (2560 extents).
  Logical volume my_lv successfully resized
[root@Lab6-1 ~]# mount /dev/myvg/my_lv /mnt
[root@Lab6-1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_lab1-lv_root
                       18G  3.9G   13G  24% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   28M  424M   7% /boot
/dev/mapper/myvg-my_lv

6.lvremove:移除lv

    [root@Lab6-1 ~]# lvremove /dev/myvg/my_lv
    Do you really want to remove active logical volume my_lv? [y/n]: y
      Logical volume "my_lv" successfully removed


6.为lv创建快照,-p r:设置权限为只读,-s:创建快照选项 

[root@Lab6-1 ~]# lvcreate -s -L 10G -n my_lv_snapshot -p r /dev/myvg/my_lv
  Logical volume "my_lv_snapshot" created
[root@Lab6-1 ~]# lvs
  LV             VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  my_lv          myvg    owi-aos--- 10.00g                                                    
  my_lv_snapshot myvg    sri-a-s--- 10.00g      my_lv  0.00                                   
  lv_root        vg_lab1 -wi-ao---- 17.57g                                                    
  lv_swap        vg_lab1 -wi-ao----  1.94g

    



完。

LVM逻辑卷管理

标签:physical   volume   逻辑卷   linux   lvm2   磁盘管理   

原文地址:http://corazon.blog.51cto.com/9658694/1699612

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!