LVM概述

  【百度百科】 LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

LVM架构

 LVM创建

 // 磁盘分区,模拟创建物理磁盘过程
[root@cdcjtx-centos- ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):n
Partition type:
p primary ( primary, extended, free)
e extended
Select (default p):
Using default response p
分区号 (-,默认 ):
起始 扇区 (-,默认为 ):
将使用默认值
Last 扇区, +扇区 or +size{K,M,G} (-,默认为 ):+3G
分区 已设置为 Linux 类型,大小设为 GiB 命令(输入 m 获取帮助):n
Partition type:
p primary ( primary, extended, free)
e extended
Select (default p):
Using default response p
分区号 (-,默认 ):
起始 扇区 (-,默认为 ):
将使用默认值
Last 扇区, +扇区 or +size{K,M,G} (-,默认为 ):+4G
分区 已设置为 Linux 类型,大小设为 GiB 命令(输入 m 获取帮助):n
Partition type:
p primary ( primary, extended, free)
e extended
Select (default p):
Using default response p
分区号 (,,默认 ):
起始 扇区 (-,默认为 ):
将使用默认值
Last 扇区, +扇区 or +size{K,M,G} (-,默认为 ):+2G
分区 已设置为 Linux 类型,大小设为 GiB 命令(输入 m 获取帮助):t
分区号 (-,默认 ):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t
分区号 (-,默认 ):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t
分区号 (-,默认 ):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):w
The partition table has been altered! Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@cdcjtx-centos- ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:21.5 GB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节
磁盘标签类型:dos
磁盘标识符:0xc950dffb 设备 Boot Start End Blocks Id System
/dev/sdb1 8e Linux LVM
/dev/sdb2 8e Linux LVM
/dev/sdb3 8e Linux LVM 命令(输入 m 获取帮助):q
 // 创建PV
[root@cdcjtx-centos- ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@cdcjtx-centos- ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@cdcjtx-centos- ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@cdcjtx-centos- ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <.00g
/dev/sdb1 lvm2 --- .00g .00g
/dev/sdb2 lvm2 --- .00g .00g
/dev/sdb3 lvm2 --- .00g .00g
 // 创建PE大小为12M,名称为TESTvg的逻辑卷组
[root@cdcjtx-centos- ~]# vgcreate -s 12M TESTvg /dev/sdb1 /dev/sdb2 /dev/sdb3
Volume group "TESTvg" successfully created
[root@cdcjtx-centos- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
TESTvg wz--n- <.98g <.98g
centos wz--n- <.00g
 // 创建大小为4G,名为TESTlv的逻辑分区
[root@cdcjtx-centos- ~]# lvcreate -L 4G -n TESTlv TESTvg
Rounding up size to full physical extent <4.01 GiB
Logical volume "TESTlv" created.
[root@cdcjtx-centos- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
TESTlv TESTvg -wi-a----- <.01g
root centos -wi-ao---- <.00g
swap centos -wi-ao---- .00g

  格式化分区和数据准备,准备数据便于后面的数据完整性测试

 // 格式化分区为ext4类型,并挂载到/users目录下,将目录/etc/pam.d 复制到/users目录下
[root@cdcjtx-centos- ~]# mkfs.ext4 /dev/TESTvg/TESTlv
mke2fs 1.42. (-Dec-)
文件系统标签=
OS type: Linux
块大小= (log=)
分块大小= (log=)
Stride= blocks, Stripe width= blocks
inodes, blocks
blocks (5.00%) reserved for the super user
第一个数据块=
Maximum filesystem blocks=
block groups
blocks per group, fragments per group
inodes per group
Superblock backups stored on blocks:
, , , , , , Allocating group tables: 完成
正在写入inode表: 完成
Creating journal ( blocks): 完成
Writing superblocks and filesystem accounting information: 完成 [root@cdcjtx-centos- ~]# partprobe // 在不重新启动机器的情况下系统能够识别这些分区
[root@cdcjtx-centos- ~]# mount /dev/TESTvg/TESTlv /users/
[root@cdcjtx-centos- ~]# cp -R /etc/pam.d/ /users/
[root@cdcjtx-centos- ~]# ls -l /users/
总用量
drwx------ root root 5月 : lost+found
drwxr-xr-x root root 5月 : pam.d

LVM扩展

 // 为TESTlv新增加2G容量,并验证数据完整度

 [root@cdcjtx-centos- ~]# lvextend -L +2G /dev/TESTvg/TESTlv // 扩展物理边界
Rounding size to boundary between physical extents: 2.00 GiB.
Size of logical volume TESTvg/TESTlv changed from <4.02 GiB ( extents) to 6.02 GiB ( extents).
Logical volume TESTvg/TESTlv successfully resized. [root@cdcjtx-centos- ~]# resize2fs /dev/TESTvg/TESTlv // 扩展逻辑边界
resize2fs 1.42. (-Dec-)
Filesystem at /dev/TESTvg/TESTlv is mounted on /users; on-line resizing required
old_desc_blocks = , new_desc_blocks =
The filesystem on /dev/TESTvg/TESTlv is now blocks long. [root@cdcjtx-centos- ~]# ls -l /users/ //数据校验
总用量
drwx------ root root 5月 : lost+found
drwxr-xr-x root root 5月 : pam.d

LVM缩减

 // 将TESTlv缩减到2G大小,并校验数据完整性!
// 这里采用ext4作为文件系统类型
// 先卸载物理文件系统->文件系统的强制检测和修复->缩减逻辑边界->缩减物理边界->重新挂载 [root@cdcjtx-centos- ~]# umount /dev/TESTvg/TESTlv // 卸载物理文件系统 [root@cdcjtx-centos- ~]# e2fsck -f /dev/TESTvg/TESTlv // 文件系统的强制检测和修复
e2fsck 1.42. (-Dec-)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass : Checking reference counts
第5步: 检查簇概要信息
/dev/TESTvg/TESTlv: / files (0.0% non-contiguous), / blocks [root@cdcjtx-centos- ~]# resize2fs /dev/TESTvg/TESTlv 2G // 缩减逻辑边界为2G大小
resize2fs 1.42. (-Dec-)
Resizing the filesystem on /dev/TESTvg/TESTlv to (4k) blocks.
The filesystem on /dev/TESTvg/TESTlv is now blocks long. [root@cdcjtx-centos- ~]# lvreduce -L 2G /dev/TESTvg/TESTlv // 缩减物理边界为2G大小
Rounding size to boundary between physical extents: 2.00 GiB.
WARNING: Reducing active logical volume to 2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce TESTvg/TESTlv? [y/n]: y // 确认执行,注意风险性
Size of logical volume TESTvg/TESTlv changed from 6.02 GiB ( extents) to 2.00 GiB ( extents).
Logical volume TESTvg/TESTlv successfully resized. [root@cdcjtx-centos- ~]# mount /dev/TESTvg/TESTlv /users/ //重新挂载 [root@cdcjtx-centos- ~]# ls -l /users/ //数据查看
总用量
drwx------ root root 5月 : lost+found
drwxr-xr-x root root 5月 : pam.d

删除LVM卷案例

 [root@cdcjtx-centos- ~]# umount /users/

 [root@cdcjtx-centos- ~]# lvremove /dev/TESTvg/TESTlv
Do you really want to remove active logical volume TESTvg/TESTlv? [y/n]: y
Logical volume "TESTlv" successfully removed [root@cdcjtx-centos- ~]# vgremove TESTvg
Volume group "TESTvg" successfully removed [root@cdcjtx-centos- ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped. [root@cdcjtx-centos- ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped. [root@cdcjtx-centos- ~]# pvremove /dev/sdb3
Labels on physical volume "/dev/sdb3" successfully wiped. [root@cdcjtx-centos- ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <.00g [root@cdcjtx-centos- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos wz--n- <.00g [root@cdcjtx-centos- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <.00g
swap centos -wi-ao---- .00g

  

LVM基本应用,扩展及缩减实现!的更多相关文章

  1. Linux学习笔记之LVM基本应用,扩展及缩减实现

    0x00 LVM概述 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘 ...

  2. LVM基本应用,扩展及缩减实现

    一.基本概念 如上图所示:底层PV(物理卷可能是硬盘设备,分区或RAID等),一个或多个PV组织成一个VG(卷组),卷组是不能直接格式化使用的,所以在VG之上,还需要创建LV进行格式化使用.VG在逻辑 ...

  3. (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)

    一.预备知识 LVM全称为Logical Volume Manager 逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘 ...

  4. LVM(2)逻辑卷的扩展、缩减、快照卷

    一.扩展逻辑卷:lvextend   扩展逻辑卷物理边界    -L [+]# /PATH/TO/LV2G, +3G5G

  5. Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)(未完)

    转:http://blog.csdn.net/xuanfeng407/article/details/51465472

  6. LVM 创建分区扩展分区记录

    LVM 原理   图片来自百度百科   测试环境centOS 7                 LVM version:     2.02.115(2)-RHEL7 (2015-01-28)     ...

  7. 逻辑卷lvm创建、扩展、缩小

    系统环境:CentOS Linux release 7.3.1611 (Core) 3.10.0-514.el7.x86_64 CentOS6与7配置方法大同小异.通常是在系统安装的时候创建lvm,然 ...

  8. lvm管理:扩展lv、删除pv、lv等

    从卷组VG里扩展lv.删除pv,并删除物理卷PV 一.扩展LV.缩小LV 1.卸载LV 命令:umount  "挂载目录" 2.扩展LV 命令:lvextend -L +500m  ...

  9. Linux使用lvresize扩展或缩减lv大小

    环境:CentOS 6.7 一.新建并挂载目录 /u01 和 /data 1.创建目录挂节点/u01,/data mkdir -p /{u01,data} 2.创建lv,名称是lv_u01,大小10g ...

随机推荐

  1. JQuery实战总结一 可编辑的表格

    JQuery视频看完了,总结学习,记得在牛腩视频中的修改新闻类别的时候也使用了这样的可编辑的表格,使用到 了ajax控制界面不再刷新,轻松解决了类别的名称的修改的问题,直接提交到数据库,这样的方式比起 ...

  2. 反对抄袭 正解spring的@Autowired 不要相信网上的错误版本

    首先,最重要的, @Autowired的就是用来来消除 set ,get方法. 有些介绍,如著名的马士兵,说要在set方法上进行注入.我当时就看不明白了,既然只取消了一个GET,这个@Autowire ...

  3. [前端]Emmet 基本语法快查

    Emmet 是一种快速写html的语法,通过几个简单的缩写,就可以拓展成html标签,工作中写html多多少少会有一些,使用的语法都是基础语法,这里总结下最常用的几个,备查. 这个插件支持非常多的ID ...

  4. gcc学习(一)[第二版]

    gcc简介 1. gcc是GNU Compiler Collection的缩写.最初是作为C语言的编译器(GNU C  Compiler),作者为Richard Stallman,是GNU项目的奠基者 ...

  5. Linux - mail

    使用者邮件信箱: mail 使用 wall, write 毕竟要等到使用者在在线才能够进行,有没有其他方式来联络啊? 不是说每个 Linux 主机上面的用户都具有一个 mailbox 吗? 我们可否寄 ...

  6. 【52】java多线程剖析

    线程的状态: 线程共有下面4种状态: 新建状态(New): 新创建了一个线程对象,当你用new创建一个线程时,该线程尚未运行. 就绪状态(Runnable): 线程对象创建后,其他线程调用了该对象的s ...

  7. 利用可变参实现fprintf函数

    #include <stdio.h> #include <stdarg.h> /* 可变参相关接口 typedef char * va_list ; void va_start ...

  8. MaterialDesign学习项目

    概述 该项目主要用来学习Material Design Support Library和一些android其他技术,也借鉴了网上一些其他优秀的学习资源.该项目目前主要分为俩大部分(后期可能会有一些增加 ...

  9. LeetCode(39)-Intersection of Two Linked Lists

    听歌曲初爱有感: 开头啰嗦两句,刚在做算法题目的时候,听到了杨宗纬的<初爱>,突然有了一种本科时候的感觉,想想自己现在研二了,青春喂了狗,我果断喝了一罐啤酒,循环这首歌到吐-.. 题目: ...

  10. 在java中读取配置文件信息

    public class PropertyUtil { public static final Properties PROP = new Properties(); /** * 读取配置文件的内容( ...