LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。最大的优点是在不损伤数据的前提下调整存储空间的大小。

本篇主要讲述LVM的创建、LVM的扩展与缩减和快照卷的使用三部分

第一部分:LVM的创建

LVM创建的大致步骤为

1、将多个分区转化为多个物理卷PV(Physical Vomule)

一个分区可以创建一个物理卷,可以在多块磁盘上创建物理卷。也可以做raid10磁盘阵列以后在做物理卷, 以    便有更快的读写及磁盘冗余。

2、将多个物理卷创建为卷组VG(Vomule Group)

3、将一个卷组VG划分为多个逻辑卷LV(Logical Vomule)

LVM创建的具体步骤:

第一步:创建LVM分区以及物理卷

1、检测有几块可用磁盘以及检查驱动器上空闲硬盘空间的总量

[root@wlm ~]# fdisk -l | grep "Disk /dev/[sh]d[a-z]"

#检测有几块磁盘,以及磁盘信息

Disk /dev/sda: 21.5 GB, 21474836480 bytes

Disk /dev/sdb: 32.2 GB, 32212254720 bytes

[root@wlm tmp]# df -h

#查看磁盘使用情况

Filesystem            Size  Used Avail Use% Mounted on

/dev/sdb3              28G  4.0G   23G  16% /

tmpfs                 504M     0  504M   0% /dev/shm

/dev/sdb1             194M  190M     0 100% /boot

磁盘/dev/sda没有使用

2、创建LVM分区

这里对fdisk以及分区就不详解了

使用fdisk /dev/sda创建两个分区

wKiom1TPduzCEqmUAAHgvEwW7dM394.jpg

将两块分区格式改为8e,w退出

wKiom1TPd7yzt7M-AACTMzJaqqw225.jpg

3、创建物理卷

将新创建的两个分区/dev/sda1 /dev/sda2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元

[root@wlm tmp]# pvcreate /dev/sda1 /dev/sda2

Physical volume "/dev/sda1" successfully created

Physical volume "/dev/sda2" successfully created

[root@wlm tmp]# pvs

PV         VG   Fmt  Attr PSize PFree

/dev/sda1       lvm2 a--  2.01g 2.01g

/dev/sda2       lvm2 a--  3.01g 3.01g

[root@wlm tmp]# pvdisplay

"/dev/sda1" is a new physical volume of "2.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sda1

VG Name

PV Size               2.01 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID               nhJsM3-RlXF-xTuH-vBKA-QZQA-1Hq3-fXUXS5

"/dev/sda2" is a new physical volume of "3.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sda2

VG Name

PV Size               3.01 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID               ppfWNr-39xt-XeN7-xrTt-b2G3-SlIO-tTcMYH

第二步:用两块物理卷创建卷组vg01

[root@wlm tmp]# vgcreate vg01 /dev/sda{1,2}

Volume group "vg01" successfully created

[root@wlm tmp]# vgs

VG   #PV #LV #SN Attr   VSize VFree

vg01   2   0   0 wz--n- 5.01g 5.01g

[root@wlm tmp]# vgdisplay

--- Volume group ---

VG Name               vg01

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               5.01 GiB

PE Size               4.00 MiB

Total PE              1283

Alloc PE / Size       0 / 0

Free  PE / Size       1283 / 5.01 GiB

VG UUID               vaM594-DxAh-UCh0-RGU3-eEuX-ktQ5-NeRV31

第三步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷lv01,大小-L指定1G,名称-n指定lv01

[root@wlm tmp]# lvcreate -L 1G -n lv01 vg01

Logical volume "lv01" created

[root@wlm tmp]# lvs

LV   VG   Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert

lv01 vg01 -wi-a---- 1.00g

[root@wlm tmp]# lvdisplay

--- Logical volume ---

LV Path                /dev/vg01/lv01

LV Name                lv01

VG Name                vg01

LV UUID                tnkXZJ-gRQK-nAke-XW6C-oycy-Voep-9hKnYA

LV Write Access        read/write

LV Creation host, time wlm, 2015-02-02 21:36:40 +0800

LV Status              available

# open                 0

LV Size                1.00 GiB

Current LE             256

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

[root@wlm tmp]# mkfs.ext4 /dev/vg01/lv01

第四部:挂载

[root@wlm tmp]# mkdir /lv01

[root@wlm tmp]# mount /dev/vg01/lv01 /lv01/

[root@wlm tmp]# mount -s

/dev/sdb3 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/sdb1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)

便于以后服务器重启自动挂载,需要将创建好的文件系统挂载信息添加到/etc/fstab里面

为了查看/etc/fstab是否设置正确,可以先卸载逻辑卷data1,然后使用mount –a 使内核重新读取/etc/fstab,看是否能够自动挂载.

[root@wlm tmp]# vim /etc/fstab

wKioL1TPgk_Sv4-ZAAHbEJQU6XA746.jpg

[root@wlm tmp]# umount /lv01/

[root@wlm tmp]# mount -s | grep "/lv01"

[root@wlm tmp]# mount -a

[root@wlm tmp]# mount -s | grep "/lv01"

/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)

至此,LVM的创建结束

第二部分:LVM的扩展与缩减

卷组的扩张

[root@wlm ~]# vgextend vg01 /dev/sda3  #将物理卷/dev/sda3加入卷组vg01

Volume group "vg01" successfully extended

逻辑卷的扩张:先扩张物理边界———在扩张逻辑边界

扩张物边界

命令:lvextend

-L  [+]# /PATH/TO/LV

[root@wlm tmp]# lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的)

wKioL1TPhYnT-wxeAABeva34i9E701.jpg

扩展逻辑边界

resize2fs

resize2fs  -p /PATH/TO/LV

[root@wlm tmp]# resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的)

wKioL1TPhZjQgUS3AADog55hmts773.jpg

逻辑卷的缩减,有风险,先缩减逻辑边界——在缩减物理边界

注意:1、不能在线缩减,得先卸载;

2、确保缩减后的空间大小依然能存储原有的所有数据;

3、在缩减之前应该强行检查文件,确保文件系统处于一致性状态

df –lh

umount  卸载

e2fsck -f /dev/vg01/lv01强行文件系统检查,看是否有问题

开始缩减

resize2fs  /PATH/TO/PV 1G

[root@wlm ~]# resize2fs /dev/vg01/lv01 1G

resize2fs 1.41.12 (17-May-2010)

resize2fs: New size smaller than minimum (275802)

缩减(逻辑边界)为1G (缩减后的总共大小为1G)

lvreduce  -L [-]#  /PATH/TO/LV

[root@wlm ~]# lvreduce -L 1G /dev/vg01/lv01

WARNING: Reducing active and open logical volume to 1.00 GiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce lv01? [y/n]: y

Reducing logical volume lv01 to 1.00 GiB

Logical volume lv01 successfully resized

缩减(物理边界)为1G

mount   -a

重新挂在

第三部分:使用快照卷()

1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超出快照卷大小;

2、快照卷应该是只读的;

3、跟原卷在同一卷组内;

lvcreate  -L #  -n  SLV_NAME -s  -p  r /PATH/TO/LV

-L指定大小 –n名称    -s表示为快照卷    -p  只读  要做快照的源卷

[root@wlm ~]# lvcreate -L 100M -n lv01_snap -s -p r /dev/vg01/lv01

Logical volume "lv01_snap" created

[root@wlm ~]# mount /dev/vg01/lv01_snap /mnt/

mount: block device /dev/mapper/vg01-lv01_snap is write-protected, mounting read-only

进行备份是可以从快照卷进行备份,备份完毕后可以卸载删除

[root@wlm ~]# lvremove /dev/vg01/lv01_snap

Do you really want to remove active logical volume lv01_snap? [y/n]: y

Logical volume "lv01_snap" successfully removed

管理LVM管理配置要用到的命令有:

vgextend vg0 /dev/sdaz *将第三个物理卷添加进vg0物理卷组*

fdisk -l :查看系统中都认到了那些物理硬盘

pvdisplay:查看系统中已经创建好的物理卷

pvcreate:创建一个新的物理卷

pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)

vgdisplay:查看系统中的卷组

vgcreate:创建一个新的卷组

vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)

vgremove:删除一个卷组

lvdisplay:查看系统中已经创建好的逻辑卷

lvcreate:创建一个新的逻辑卷

lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)

lvremove:从系统中删除一个逻辑卷

mkfs:基于逻辑卷创建一个相应类型的文件系统

mkdir -p $mount_piont:创建一个挂载目录

创建好的文件系统位于:

/dev/$create_vg_name/$lv_name

mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统

lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的物理边界)

resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的逻辑边界)

以下是别人写的博客作为补充,出处http://dreamfire.blog.51cto.com/418026/1084729

如果某一块磁盘或者分区故障了如何将数据快速转移到相同的卷组其他的空间去。

1、通过pvmove命令转移空间数据

2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去。

3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。

4、手工拆除硬盘或者通过一些工具修复分区。

clip_image042

clip_image044

删除整个逻辑卷

1、先通过umount命令卸载掉逻辑卷lvdata1

2、修改/etc/fstab里面逻辑卷的挂载信息,否则系统有可能启动不起来。

3、通过lvremove 删除逻辑卷lvdata1

4、通过vgremove 删除卷组vgdata

5、通过pvremove 将物理卷转化成普通分区。

clip_image046

删除完了,别忘了修改分区的id标识。修改成普通Linux分区即可。

clip_image048

总结:LVM逻辑卷是Linux里面一个很棒的空间使用机制,因为分区在没有格式化的情况下是没有办法加大或者放小的。通过LVM可以将你的磁盘空间做到灵活自如。

GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除的更多相关文章

  1. GNU/Linux下Freeplane的界面渲染问题

    如下图所示,思维导图软件Freeplane在GNU/Linux下默认的界面渲染效果是很差的,即便将Preferences → Appearance → Antialias设置为Antialias al ...

  2. 我在GNU/Linux下使用的桌面环境工具组合

    为了使GNU/Linux桌面环境下加载的程序较少以节省内存资源和提高启动时间,我目前并不使用重量级的桌面环境KDE和Gnome,甚至连登录窗界面gdm或xdm都不用,而是直接启动到控制台,登录后调用s ...

  3. 在GNU/Linux下将CD音乐转为mp3

    以前我欣赏古典音乐都是听的CD,因而珍藏了不少光盘以及下载到电脑上的ape与flac格式的音乐文件.随着手机硬件性能(如电池续航能力.处理器速度.音质.存储容量等)和软件功能(音乐播放器对于曲目的管理 ...

  4. linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例

    转自:truemylife.linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例 基本概念: 磁盘.分区.物理卷[物理部分] 卷组[中间部分] 逻辑卷.文件系统[虚拟化后可控制部分] 磁 ...

  5. linux下 lvm 磁盘扩容

    打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...

  6. Linux下lvm在线扩容步骤

    转 :https://jingyan.baidu.com/article/25648fc18f22b29191fd0011.html 图片看不清可以看原文 LVM是逻辑盘卷管理(Logical Vol ...

  7. Gnu Linux下文件的字符编码及转换工具

    /*********************************************************************  * Author  : Samson  * Date   ...

  8. 在GNU/Linux下使用Lilypond排版简谱

    尽管GNU/Linux并非无所不能,但确实能在很多时候提供免费.开放的解决方案.这两天我想做一个简谱,在网上搜索乐谱排版软件,发现了基于GPL协议的Lilypond软件.只不过Lilypond是用来做 ...

  9. 在GNU/Linux下制作Windows 10安装U盘

    今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来.回家前,小仙女已在微 ...

随机推荐

  1. CSS基本知识6-CSS字体

    首先要考虑的是文本的排版,实际上有这玩意,Word还需要吗?不需要了.我们列下文本所涉及的操作: CSS 文本属性 属性 描述 color 设置文本颜色 direction 设置文本方向. line- ...

  2. 深入浅出RxJava

    深入浅出RxJava(一:基础篇) 深入浅出RxJava(二:操作符) 深入浅出RxJava三--响应式的好处 深入浅出RxJava四-在Android中使用响应式编程 RxJava 到底是什么? 一 ...

  3. JAVA_jdk下载和环境变量的配置

    Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发. 基本组成: Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟 ...

  4. mui消息框alert,confirm,prompt,toast

    <script type="text/javascript" charset="utf-8"> //mui初始化 mui.init({ swipeB ...

  5. 没有为 COM 互操作注册程序集 请使用 regasm.exe /tlb 注册该程序集——解决办法

    错误现象: 错误 6 没有为 COM 互操作注册程序集“DevExpress.Utils.v13.1, Version=13.1.7.0, Culture=neutral, PublicKeyToke ...

  6. 硬盘下安装Ghost系统简易教程

    硬盘安装器下载:https://eyun.baidu.com/s/3c2NvcvI 密码:Cv7F 使用本方法可在没有光驱.光盘.启动U盘等任何系统安装设备的情况下安装Ghost版XP.Win7/8/ ...

  7. Gravatar注册

    今天在学习falsk时需要用到头像扩展,需要使用gravatar到网上查了查好像没有被墙,就试着用qq邮箱注册了一个账号,结果等了好长时间也没有等到激活邮箱,就百度了一下发现了一个技巧,原来这封邮件被 ...

  8. Zabbix3 agent端安装(二)

    1.基础环境准备 安装zabbix的yum源,这里有必要提一点,阿里的yum源已经提供了zabbix3.0 1.1.yum源配置 rpm -ihv http://mirrors.aliyun.com/ ...

  9. centos7安装图片界面

    yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

  10. 7 款顶级开源 BI(商务智能)软件和报表工具

    在这个信息化时代,每分每秒都产生海量数据.在海量数据中,挖掘出有用的数据,并且能以较人性化.直观的方式展示这些数据,变得尤为重要.本文将介绍 7款顶级开源 BI(商务智能)软件和报表工具,用于商业数据 ...