逻辑卷管理器(Logical Volume Manager)

本章的内容包含如下几大部分(因为做者水平有限,错误之处请留言谢谢!):node

(1)什么是LVM,PV,PE,VG,LV。centos

(2)LVM的实际操做安全

(3)怎样放大LV的容量微信

(4)怎样缩小LV的容量app

(5)怎样删除逻辑卷ide


LVM的定义:中文翻译就是逻辑卷管理器,能够整合多个物理分区在一块儿,让这些分区看起来像是一个磁盘同样,并且,还能够在未来其余的物理分区或将其从这个lvm管理的磁盘当中删除,能够弹性调整文件系统的容量。spa

PV:指的就是物理卷,咱们实际分区要调整系统标识符成为8e(LVM的标识符)而后在通过pvcreat的命令转化成LVM最底层的物理卷(PV)。翻译

PE:指的就是物理扩展块,它是LVM中最小的存储快,默认使用4MB的PE块,咱们的文件数据写入都是写入PE来处理的,简单来讲,PE就像是文件系统里面的block大小。orm

VG:就是将许多PV整合成VG,一个VG最大的容量可达256GB,与PE有关。blog

LV:最终的VG会被切成LV,这个LV就是最后能够被格式化使用的分区。


PV命令:

pvcreat:将物理分区新建成为PV。

pvscan:查询目前系统里面任何具备PV的磁盘。

pvdisplay:显示出目前系统上面的PV状态

pvremove:将PV属性删除,让该分区不具备PV属性。


VG命令:

vgcreat:新建VG

vgscan:查找系统上面是否存在VG。

vgdisply:显示目前系统上面的VG状态。

vgxtend:在VG内增长额外的pv。

vgreduce:在VG内删除PV。

vgchange:删除一个VG。


LV命令:

lvcreat:新建LV

lvscan:查找系统上面是否存在LV。

lvdisply:显示目前系统上面的LV状态。

lvxtend:在LV里面增长的LV状态。

lvreduce:在LV里面减小容量。

lvmove:删除一个LV。

lvresize:对LV进行容量大小的调整。


实际上只看这些概念的东西是很不容易理解的,反正我是不理解,举个列子就很清楚了:

小明想吃馒头,家里的面粉不够,因而从隔壁老王家,老李家,老张家,分别借来一些面粉,准备蒸馒头吃,首先须要把面粉(物理卷pv)揉成一个大面团(卷组VG),而后把这些面团分割成一个个小馒头(逻辑卷LV)并且每一个小馒头的重量必须是每勺面粉(PE)的倍数。

相信举了这个例子以后你们都已经很明白了他们的含义以及它们之间的关系了把,那么它们是怎样实现的那,你们看图就一目了然了:

微信图片_20180310094012.jpg

(2)LVM的实际操做

1:新建一个磁盘,分出4个区,每一个分区容量1G,

2:先将前三个建成一个VG,在把最后一个分区增长到VG里面VG的名称设置为vbirdvg,且PE的大小为16MB,

3:将所有的VG容量丢给LV,LV的名称设置为vbirdlv,最后将lv,格式化为ext4,且挂载在/mnt/lvm中。

第一步:

blob.png

由图可知我新建了sdc,而且分了4个物理区,我先用pvscan查看一下,系统上面有没有pv,而后在把四个分区新建成pv格式。

blob.png

下面用pvdisplay这个命令显示出更详细的每一个PV信息,这里只列出一个,

blob.png

第二步:

[root@centos6 ~]# vgcreate -s 16M vbirdvg /dev/sdc{1,2,3}                  将/dev/sdc123新建成为一个VG,且指定PE为16M,vgcreate [-s N[mgt]]VG名称PV名称,-s后面接pe的大小, 单位是mgt,均可以

  Volume group "vbirdvg" successfully created

[root@centos6 ~]# vgscan                                                                      查看系统上面是否有VG存在。

  Reading all physical volumes.  This may take a while...                             阅读全部物理卷。这可能须要一段时间

  Found volume group "vbirdvg" using metadata type lvm2                      使用元数据类型lvm2找到卷组“vbirdvg

[root@centos6 ~]# pvscan                                                    查询系统上具备的PV的磁盘,发现sdc4没被用掉哈

  PV /dev/sdc1   VG vbirdvg         lvm2 [1.00 GiB / 1.00 GiB free]

  PV /dev/sdc2   VG vbirdvg         lvm2 [1.00 GiB / 1.00 GiB free]

  PV /dev/sdc3   VG vbirdvg         lvm2 [1.00 GiB / 1.00 GiB free]

  PV /dev/sdc4                      lvm2 [1.01 GiB]

  Total: 4 [4.01 GiB] / in use: 3 [3.00 GiB] / in no VG: 1 [1.01 GiB]

[root@centos6 ~]# vgdisplay                                                                     显示目前系统上面的VG状态,     

  --- Volume group ---

  VG Name               vbirdvg

  System ID             

  Format                lvm2

  Metadata Areas        3

  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                3

  Act PV                3

  VG Size               3.00 GiB

  PE Size               16.00 MiB

  Total PE              192

  Alloc PE / Size       0 / 0   

  Free  PE / Size       192 / 3.00 GiB

  VG UUID               GyaL2t-ANXT-J3gY-uawe-wnTX-Qx57-0M1u7F

[root@centos6 ~]# vgextend vbirdvg /dev/sdc4                                                  将sdc4的容量增长到VG中

  Volume group "vbirdvg" successfully extended

[root@centos6 ~]# vgdisplay                                                                   显示系统上面的VG状态。

  --- Volume group ---

  VG Name               vbirdvg

  System ID             

  Format                lvm2

  Metadata Areas        4

  Metadata Sequence No  2

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                4

  Act PV                4

  VG Size               4.00 GiB

  PE Size               16.00 MiB

  Total PE              256                                              PE的数量由原来的192变为256个,

  Alloc PE / Size       0 / 0   

  Free  PE / Size       256 / 4.00 GiB

  VG UUID               GyaL2t-ANXT-J3gY-uawe-wnTX-Qx57-0M1u7F

   

[root@centos6 ~]# lvcreate -l 256 -n vbirdlv vbirdvg                 将整个vbirdvg分配给vbirdlv,要注意PE总共256个,                                      lvcreate [-L N[mgt] ]  [-n LV名称] VG名称,-L后面接容量,-n后面接LV的名称-l接pe个数

  Logical volume "vbirdlv" created.

[root@centos6 ~]# lvdisplay                                                                   显示系统上LV的状态

  --- Logical volume ---

  LV Path                /dev/vbirdvg/vbirdlv

  LV Name                vbirdlv

  VG Name                vbirdvg

  LV UUID                m7gbpi-1Y1t-GfJb-KMRx-xaXB-QSlx-IOLeaf

  LV Write Access        read/write

  LV Creation host, time centos6.magedu.com, 2018-03-11 02:34:03 +0800

  LV Status              available

  # open                 0

  LV Size                4.00 GiB

  Current LE             256

  Segments               4

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0

   

[root@centos6 ~]# mkfs -t ext4 /dev/vbirdvg/vbirdlv                                 格式化

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

262144 inodes, 1048576 blocks

52428 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=1073741824

32 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

Writing inode tables: done                            

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@centos6 ~]# mkdir /mnt/lvm                                                 建立挂载点

[root@centos6 ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm                                  挂载

[root@centos6 ~]# df                                                                    查看

Filesystem           1K-blocks    Used Available Use% Mounted on

/dev/sda3             20511356 4161156  15301624  22% /

tmpfs                  1019176      76   1019100   1% /dev/shm

/dev/sda5             20511356   45000  19417780   1% /app

/dev/sda1               194241   40350    143651  22% /boot

/dev/sdb4               505396     408    478484   1% /mnt/sdb4

/dev/mapper/vbirdvg-vbirdlv

                       3997376    8184   3779480   1% /mnt/lvm

总结:

你们能看到这里,说明尚未懵,上面的操做都是我一步步写的,虽然比较长,可是很是详细,难度不大,就是要记住这些乱七八糟的命令,就行了,没什么其余办法。

3)放大LV的容量

[root@localhost /]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   20G  3.3G   17G  17% /

devtmpfs                 977M     0  977M   0% /dev

tmpfs                    993M     0  993M   0% /dev/shm

tmpfs                    993M  9.2M  984M   1% /run

tmpfs                    993M     0  993M   0% /sys/fs/cgroup

/dev/sda1                197M  139M   59M  71% /boot

/dev/mapper/centos-app    20G   84M   20G   1% /app

tmpfs                    199M  4.0K  199M   1% /run/user/42

tmpfs                    199M   24K  199M   1% /run/user/1000

tmpfs                    199M     0  199M   0% /run/user/0

/dev/mapper/storage-vo   772M  2.5M  730M   1% /baiyijie                        逻辑卷vo如今的容量

[root@localhost /]# umount /baiyijie                                                            扩展前必定要先卸载设备和挂载点

[root@localhost /]# df -h                                                                               查看发现已经卸载

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   20G  3.3G   17G  17% /

devtmpfs                 977M     0  977M   0% /dev

tmpfs                    993M     0  993M   0% /dev/shm

tmpfs                    993M  9.2M  984M   1% /run

tmpfs                    993M     0  993M   0% /sys/fs/cgroup

/dev/sda1                197M  139M   59M  71% /boot

/dev/mapper/centos-app    20G   84M   20G   1% /app

tmpfs                    199M  4.0K  199M   1% /run/user/42

tmpfs                    199M   24K  199M   1% /run/user/1000

tmpfs                    199M     0  199M   0% /run/user/0

[root@localhost /]# lvextend -L 2000M /dev/storage/vo                           把逻辑卷vo扩展至2000M.

  Size of logical volume storage/vo changed from 800.00 MiB (200 extents) to 1.95 GiB (500 extents).

  Logical volume storage/vo successfully resized.

[root@localhost /]# e2fsck -f /dev/storage/vo                                            检查磁盘完整性,并重置硬盘容量。

e2fsck 1.42.9 (28-Dec-2013)

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/storage/vo: 11/200000 files (0.0% non-contiguous), 31901/819200 blocks

[root@localhost /]# resize2fs /dev/storage/vo                            经过resize2fs将文件系统的容量确实增长!

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/storage/vo to 2048000 (1k) blocks.

The filesystem on /dev/storage/vo is now 2048000 blocks long.


[root@localhost /]# mount /dev/storage/vo /baiyijie                       挂载

[root@localhost /]# df -h                                                                   查看

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   20G  3.3G   17G  17% /

devtmpfs                 977M     0  977M   0% /dev

tmpfs                    993M     0  993M   0% /dev/shm

tmpfs                    993M  9.2M  984M   1% /run

tmpfs                    993M     0  993M   0% /sys/fs/cgroup

/dev/sda1                197M  139M   59M  71% /boot

/dev/mapper/centos-app    20G   84M   20G   1% /app

tmpfs                    199M  4.0K  199M   1% /run/user/42

tmpfs                    199M   24K  199M   1% /run/user/1000

tmpfs                    199M     0  199M   0% /run/user/0

/dev/mapper/storage-vo   1.9G  2.9M  1.8G   1% /baiyijie                           能够看到确实增长了哈哈

(4)缩小LV的容量

现实企业中通常不多会缩lv的容量的,若是有,说明你在的整个企业很low,仍是赶忙走吧!

总结:在LVM中逻辑卷的扩容和所容都须要先取消逻辑卷与目录的挂载关联,扩容操做是先扩容后检查文件系统的完整性,而缩容操做是为了保证数据的安全,须要先检查文件系统完整性在缩容。

(5)删除逻辑卷

[root@localhost /]# umount /baiyijie                                                                      先取消逻辑卷与目录的挂载关联,这里没有写入到配置文件中就再也不演示

[root@localhost /]# lvremove /dev/storage/vo                                                        删除逻辑卷设备,须要输入y来确认

Do you really want to remove active logical volume storage/vo? [y/n]: y                              确认

  Logical volume "vo" successfully removed

[root@localhost /]# vgremove storage                                                                          删除卷组,只写卷组名称就能够,不须要设备的绝对路径,下面也是

  Volume group "storage" successfully removed

[root@localhost /]# pvremove /dev/sdc /dev/sdd                                                           删除物理卷设备

  Labels on physical volume "/dev/sdc" successfully wiped.

  Labels on physical volume "/dev/sdd" successfully wiped.

总结:

在LVM中的删除顺序不是随意的,要先删除逻辑卷,卷组,而后是物理卷,切记。

相关文章
相关标签/搜索