Linux磁盘管理之LVM

来源:互联网 发布:东京奥运会知乎 编辑:程序博客网 时间:2024/06/05 21:16

LVMLogical Volume Manager 逻辑卷管理

传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

LVM使用原理结构,如下图所示。

wKiom1bqYGiAnGLVAAB4fcoZSeY617.png

 

 

命令总览:

功能

物理卷管理

卷组管理

逻辑卷管理

Scan扫描

pvscan

vgscan

lvscan

Create建立

pvcreate

vgcreate

lvcreate

Display显示

pvdisplay

vgdisplay

lvdisplay

Remove删除

pvremove

vgremove

lvremove

Extend扩展


vgextend

lvextend

 

 准备磁盘分区

 

通过fdisk命令创建/dev/sdb5,/dev/sdb6,/dev/sdb7,/dev/sdb8四个分区。大小可以不同

[root@localhost ~]# fdisk /dev/sdb
Command (m for help): tPartition number (1-8, default 8): 5Hex code (type L to list all codes): 8eChanged type of partition 'Linux' to 'Linux LVM'

分区创建好之后应有如下输出:

[root@localhost ~]# fdisk -l /dev/sdbDisk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0xc0d9ee4a   Device Boot      Start         End      Blocks   Id  System/dev/sdb1            2048    20973567    10485760   fd  Linux raid autodetect/dev/sdb2        20973568    23070719     1048576   fd  Linux raid autodetect/dev/sdb3        23070720    44042239    10485760   83  Linux/dev/sdb4        44042240   125829119    40893440    5  Extended/dev/sdb5        44044288    65015807    10485760   8e  Linux LVM/dev/sdb6        65017856    85989375    10485760   8e  Linux LVM/dev/sdb7        85991424    96477183     5242880   8e  Linux LVM/dev/sdb8        96479232   106964991     5242880   8e  Linux LVM

 

 

准备物理卷 

 

[root@localhost ~]# pvcreate /dev/sdb{5,6,7}  Physical volume "/dev/sdb5" successfully created  Physical volume "/dev/sdb6" successfully created  Physical volume "/dev/sdb7" successfully created

创建完成后可以用pvdisplay查看。这里跳过。

删除物理卷的命令为:

[root@localhost ~]# pvremove /dev/sdb5

 

  

 

准备卷组

 

 创建一个名为testvg的卷组

 

[root@localhost ~]# vgcreate testvg /dev/sdb{5,6,7}  Volume group "testvg" successfully created

 

卷组创建好之后就可以用vgdisplay看一下

 [root@localhost ~]# vgdisplay   --- Volume group ---  VG Name               testvg  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               11.99 GiB  PE Size               4.00 MiB  Total PE              3069  Alloc PE / Size       0 / 0     Free  PE / Size       3069 / 11.99 GiB  VG UUID               ofhCb0-42oG-3lEF-Tq7S-cLEv-dH91-mvcdOe

 删除的命令为:

 [root@localhost ~]# vgremove testvg

 

 

在卷组里创建逻辑卷

 

创建一个大小8G,名为testlv的逻辑卷

 

 

 [root@localhost ~]# lvcreate -L 8G -n testlv testvg   Logical volume "testlv" created.

 

使用lvdisplay查看

 [root@localhost ~]# lvdisplay   --- Logical volume ---  LV Path                /dev/testvg/testlv  LV Name                testlv  VG Name                testvg  LV UUID                b3OHcq-LnQy-lNfj-XDgM-s9tx-rAtq-levoi1  LV Write Access        read/write  LV Creation host, time localhost.localdomain, 2016-03-17 16:28:39 +0800  LV Status              available  # open                 0  LV Size                8.00 GiB  Current LE             2048  Segments               2  Allocation             inherit  Read ahead sectors     auto  - currently set to     8192  Block device           253:0

删除逻辑卷的命令为:

[root@localhost ~]# lvremove /dev/testvg/testlv

 

 

接下来,这个逻辑卷就相当于一个可以动态扩容的盘了

先格式化并挂载使用。

[root@localhost ~]# mke2fs -t ext4 /dev/testvg/testlv[root@localhost ~]# mkdir /lvm-mount[root@localhost ~]# mount /dev/testvg/testlv /lvm-mount/

 

 

扩展LVM逻辑卷 

 

 

给刚刚创建的testlv增加2G空间

扩展时可以不用卸载此设备。

[root@localhost ~]# lvextend -L +2G /dev/testvg/testlv   Size of logical volume testvg/testlv changed from 8.00 GiB (2048 extents) to 10.00 GiB (2560 extents).  Logical volume testlv successfully resized.

运行 resize2fs命令,更新文件系统

[root@localhost ~]# resize2fs /dev/testvg/testlv resize2fs 1.42.9 (28-Dec-2013)Filesystem at /dev/testvg/testlv is mounted on /lvm-mount; on-line resizing requiredold_desc_blocks = 1, new_desc_blocks = 2The filesystem on /dev/testvg/testlv is now 2621440 blocks long.

验证:现在应该增加到10G了

[root@localhost ~]# lvdisplay   --- Logical volume ---  LV Path                /dev/testvg/testlv  LV Name                testlv  VG Name                testvg  LV UUID                b3OHcq-LnQy-lNfj-XDgM-s9tx-rAtq-levoi1  LV Write Access        read/write  LV Creation host, time localhost.localdomain, 2016-03-17 16:28:39 +0800  LV Status              available  # open                 1  LV Size                10.00 GiB  Current LE             2560  Segments               3  Allocation             inherit  Read ahead sectors     auto  - currently set to     8192  Block device           253:0

 

 

 缩减逻辑卷

 

 

注意:在对逻辑卷减小操作时,需要先把逻辑卷卸载。若缩减后分区大小小于数据时,存储在后面的数据会丢失。

[root@localhost ~]# umount /dev/testvg/testlv

卸载过后,需要使用fsck检查磁盘是否出错(-f强制检查)

[root@localhost ~]# fsck.ext4 -f /dev/testvg/testlv

 

完成以后,减少逻辑卷大小

[root@localhost ~]# lvresize -L 5G /dev/testvg/testlv

接下来缩小文件系统,更新ext4信息

[root@localhost ~]# resize2fs /dev/testvg/testlv

 

使用lvdisplay验证一下:

[root@localhost ~]# lvdisplay  [root@localhost ~]# lvdisplay   --- Logical volume ---  LV Path                /dev/testvg/testlv  LV Name                testlv  VG Name                testvg  LV UUID                b3OHcq-LnQy-lNfj-XDgM-s9tx-rAtq-levoi1  LV Write Access        read/write  LV Creation host, time localhost.localdomain, 2016-03-17 16:28:39 +0800  LV Status              available  # open                 0  LV Size                5.00 GiB  Current LE             1280  Segments               2  Allocation             inherit  Read ahead sectors     auto  - currently set to     8192  Block device           253:0

接下来就可以挂载使用了。

 

 

扩展一个卷组:

 

其实,扩展卷组和扩展逻辑卷差不多。需要一个空闲分区或硬盘,在创建时选择8e类型。(我选择了刚创建的/dev/sdb8分区)

 

先查看一下

[root@localhost ~]# vgdisplay   --- Volume group ---  VG Name               testvg  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               0  Max PV                0  Cur PV                3  Act PV                3  VG Size               11.99 GiB  PE Size               4.00 MiB  Total PE              3069  Alloc PE / Size       1280 / 5.00 GiB  Free  PE / Size       1789 / 6.99 GiB  VG UUID               ofhCb0-42oG-3lEF-Tq7S-cLEv-dH91-mvcdOe

 

使用vgextend命令扩展

[root@localhost ~]# vgextend /dev/testvg /dev/sdb8  Physical volume "/dev/sdb8" successfully created  Volume group "testvg" successfully extended

使用vgdisplay来验证(可以看到卷组大小已经增大)。

[root@localhost ~]# vgdisplay   --- Volume group ---  VG Name               testvg  System ID               Format                lvm2  Metadata Areas        4  Metadata Sequence No  5  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               0  Max PV                0  Cur PV                4  Act PV                4  VG Size               13.98 GiB  PE Size               4.00 MiB  Total PE              3580  Alloc PE / Size       1280 / 5.00 GiB  Free  PE / Size       2300 / 8.98 GiB  VG UUID               ofhCb0-42oG-3lEF-Tq7S-cLEv-dH91-mvcdOe

 

 

 完~~~

 

 

 

 

 

 

本文出自 “我的学习笔记” 博客,请务必保留此出处http://zhaoyongtao.blog.51cto.com/10955972/1752246

0 0
原创粉丝点击