lvm:logical volume monitor 逻辑卷管理器

作用: 采用lvm划分磁盘:磁盘空间不够时,方便扩展磁盘。物理卷加到卷组时被划分等大的pe,即pv是由众多pe构成.pe是卷组的最小单位.默认情况下一个pe对应一个le。一个le可以对应多个pe(相当于raid1,一般不做),但一个pe只能对应一个le。

   1.pv: physical volume  物理卷  命令有:pvs/ pvdisplay/pvcreate/pvmove/pvremove

2.vg: volume group  卷组.   命令有:vgs/vgdisplay/vgcreate/vgextend/vgreduce/vgremove

3.lv: logical volume 逻辑卷.  命令有:lvs/lvdisplay/lvcreate/lvextend/lvreduce/lvremove

4.pe: physical extent 物理分区

5.le:logical extent 逻辑分区

查看物理卷(pv).

 查看物理卷: pvs
 或者  pvdisplay
 无输出则表示没有物理卷.

[root@lbg
test]# pvs

[root@lbg
test]# pvdisplay

添加物理卷:

 添加2个pv. 命令为:
pvcreate +磁盘映射点(分区表不能为gpt)

[root@lbg
test]# pvcreate /dev/sdb 
 /dev/sdc   
     
 ---创建物理卷

Physical
volume "/dev/sdb" successfully created.

Physical
volume "/dev/sdc" successfully created.

再次查看物理卷:

 [root@lbg test]# pvs

PV     
   VG Fmt  Attr
PSize PFree

/dev/sdb     
lvm2 ---  2.00g 2.00g

/dev/sdc     
lvm2 ---  2.00g 2.00g

新建卷组并添加物理卷:

 将/deb/sdb添加到名为lbgvg的新建卷组里: vgcreate
 vg_name  pv_path

[root@lbg
test]# vgcreate lbgvg /dev/sdb   
 ---新建卷组名为lbgvg

Volume group
"lbgvg" successfully created

查看卷组:可知其有1个pv和0个lv.
 命令为:
Vgs 或者 vgdisplay
 .

 [root@lbg test]# vgs

VG    #PV #LV #SN
Attr   VSize 
VFree

lbgvg 
 1 
 0   0 wz--n-
<2.00g <2.00g

在卷组里创建逻辑卷(lv):

 从组lbgvg里创建1G,名为lbglv的逻辑卷(+1G表示添加2G,而单独的1G表示总空间为1G)

[root@lbg
test]# lvcreate -L 1G -n lbglv lbgvg 
 --从卷组lbgvg里新建逻辑卷lbglv

逻辑卷创建完后相当于分区完成.

查看逻辑卷:lvs 或者 lvdisplay

 [root@lbg test]# lvs

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

lbglv
lbgvg -wi-a----- 1.00g

[root@lbg
test]# lvdisplay

---
Logical volume ---

LV
Path 
 /dev/lbgvg/lbglv  ---可知逻辑卷映射在操作系统为:
/dev/lbgvg/lbglv.可在此路径查看。

LV
Name     
     
    lbglv

VG
Name     
     
    lbgvg

LV
UUID     
     
   
Pkjmem-LUH6-1EXM-m0rP-Vjfa-ac03-dVycbc

LV Write
Access     
  read/write

LV
Creation host, time lbg, 2018-10-04 23:16:37 +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   
 8192

Block
device     
   
 253:0

[root@lbg
test]# cd /dev/lbgvg

[root@lbg
lbgvg]# ll

lrwxrwxrwx 1
root root 7 Oct  4 23:16 lbglv ->
../dm-0

然后可以创建文件系统再挂载即可使用.

 [root@lbg lbgvg]# mkfs.xfs
/dev/lbgvg/lbglv

[root@lbg
lbgvg]# mount /dev/lbgvg/lbglv /mnt/hh

[root@lbg /]#
df -Th

/dev/mapper/lbgvg-lbglv
xfs     
1014M   33M 
982M   4%
/mnt/hh



卷组扩容
:扩容卷组即是新建物理卷并将其加入到卷组中即可

 查看卷组:发现只有1个pv,大小为2g.

[root@lbg /]#
vgs

VG    #PV #LV #SN
Attr   VSize 
VFree

lbgvg   1 
 1   0 wz--n-
<2.00g 1020.00m

先创建物理卷并查看:

 [root@lbg /]# pvcreate /dev/sdc

Physical
volume "/dev/sdc" successfully created.

[root@lbg /]#
pvs

PV     
   VG 
  Fmt  Attr
PSize  PFree

/dev/sdb   lbgvg lvm2
a--  <2.00g 1020.00m

/dev/sdc     
   lvm2 --- 
 2.00g   
2.00g

再将物理卷添加到卷组里然后查看可知卷组为3.99G(命令:vgextend lbgvg
 /dev/sdc)

 [root@lbg /]# vgextend lbgvg /dev/sdc

Volume
group "lbgvg" successfully extended

[root@lbg /]#
vgs

VG    #PV #LV #SN
Attr   VSize VFree

lbgvg   2 
 1   0 wz--n-
3.99g 2.99g



逻辑卷扩容:

逻辑卷的大小不能超过卷组的大小,故一般扩容是先扩容卷组,再扩容逻辑卷.扩容卷组即是新建物理卷并将其加入到卷组中即可.逻辑卷扩容可以直接在挂载情况下使用 。且逻辑卷扩容,需先扩展物理边界再扩展逻辑边界.

 扩展物理边界命令: lvextend
-L +2G /dev/lbgvg/lbglv

[root@lbg /]#
lvextend -L +2G /dev/lbgvg/lbglv

Size of
logical volume lbgvg/lbglv changed from 1.00 GiB (256 extents) to
3.00 GiB (768 extents).

Logical
volume lbgvg/lbglv successfully resized.

[root@lbg /]#
lvs

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

lbglv
lbgvg -wi-ao---- 3.00g

此时lvs查看是3G,但df -h查看却是1G,因为还需扩展逻辑边界.



扩展逻辑边界:

 [root@lbg /]# resize2fs
/dev/lbgvg/lbglv   
    ---扩展逻辑边界

[root@lbg /]#
lvdisplay

---
Logical volume ---

LV
Path     
     
    /dev/lbgvg/lbglv

LV
Name     
     
    lbglv

VG
Name     
     
    lbgvg

LV
UUID     
     
   
Pkjmem-LUH6-1EXM-m0rP-Vjfa-ac03-dVycbc

LV Write
Access     
  read/write

LV
Creation host, time lbg, 2018-10-04 23:16:37 +0800

LV
Status     
     
  available

#
open     
     
   
 0

LV
Size     
     
    3.00 GiB

Current
LE     
     
 768

Segments     
     
   2

Allocation     
     
 inherit

Read ahead
sectors   
 auto

-
currently set to   
 8192

Block
device     
   
 253:0

注意其中open的状态:为1说明在用,可知mount里查看.当open为0,说明没有挂载.

扩展逻辑边界后的结果是:文件系统的大小(挂载情况下df
-h)=设备大小(lvs)



逻辑卷缩容

必须先umount,再强制文件系统检查,然后缩容逻辑边界,最后缩容物理边界.

强制文件系统检查命令: e2fsck -f
 /dev/lbgvg/lbglv

 [root@lbg /]# e2fsck -f
/dev/lbgvg/lbglv

缩容逻辑边界,改为1G

[root@lbg /]#
resize2fs /dev/lbgvg/lbglv 1G

最后缩容物理边界,改为1G(会销毁数据.)

[root@lbg /]#
lvreduce -L 1G /dev/lbgvg/lbglv

再查看:lvs

[root@lbg /]#
lvs

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

lbglv
lbgvg -wi-a----- 1.00g



卷组缩容:先移走数据再卷组缩容最后删除物理卷.

移走数据时要求空闲的空间大于要移走的物理卷大小.具体步骤如下:

 [root@lbg /]# pvmove /dev/sdc

[root@lbg /]#
vgreduce lbgvg /dev/sdc

[root@lbg /]#
pvremove /dev/sdc

LVM划分磁盘及扩容缩容的更多相关文章

  1. LVM常规操作记录梳理(扩容/缩容/快照等)

    基本介绍Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解, l ...

  2. k8s Pod 扩容和缩容

    在生产环境下,在面临服务需要扩容的场景时,可以使用Deployment/RC的Scale机制来实现.Kubernetes支持对Pod的手动扩容和自动扩容. 手动扩容缩容 通过执行扩容命令,对某个dep ...

  3. map的自动扩容与手动缩容

    map的自动扩容与手动缩容 首先还是提出问题:扩容和缩容有什么用?为什么需要扩容和缩容? 在想解答这个问题之前,首先还是需要了解一下go语言中的map go语言中的map与Java中的map实现还是有 ...

  4. 通过Dapr实现一个简单的基于.net的微服务电商系统(十一)——一步一步教你如何撸Dapr之自动扩/缩容

    上一篇我们讲到了dapr提供的bindings,通过绑定可以让我们的程序轻装上阵,在极端情况下几乎不需要集成任何sdk,仅需要通过httpclient+text.json即可完成对外部组件的调用,这样 ...

  5. 怎么做 HDFS 的原地平滑缩容?

    背景 当数据规模越来越大,存储成本也水涨船高.随着时间推移,数据热度分布往往呈 2⁄8 原则,即 80% 的访问集中在 20% 的数据上.对于那不经常访问的 80% 数据来说,使用多个 SSD 来存储 ...

  6. Mycat节点扩缩容及高可用集群方案

    数据迁移与扩容实践: 工具目前从 mycat1.6,准备工作:1.mycat 所在环境安装 mysql 客户端程序. 2.mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包. 3.对 ...

  7. Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制

    本系列Netty源码解析文章基于 4.1.56.Final版本,公众号:bin的技术小屋 前文回顾 在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网 ...

  8. LVM逻辑卷扩容、缩容

    LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理. 后期出现问题恢复数据也比较麻烦. 概念: ①PE(P ...

  9. Linux LVM扩容和缩容

    将原硬盘上的LVM分区/dev/mapper/RHEL-Data由原来的60G扩展到80G Step1:将LVData扩容+20G,如下图: [root@esc data]# lvextend -L ...

随机推荐

  1. c++11 R+字符串

    R+字符串 prefix(optional) R"delimiter(raw_characters)delimiter" (6) (since C++11) C++11引入了原始字 ...

  2. python BeautifulSoup的使用方法

    BeautifulSoup的使用 我们学习了正则表达式的相关用法,但是一旦正则写的有问题,可能得到的就不是我们想要的结果了,而且对于一个网页来说,都有一定的特殊的结构和层级关系,而且很多标签都有id或 ...

  3. RESP协议

    RESP 是 Redis 序列化协议的简写.它是⼀种直观的⽂本协议,优势在于实现异常简单,解析性能极好. Redis 协议将传输的结构数据分为 5 种最⼩单元类型,单元结束时统⼀加上回⻋换⾏符号\r\ ...

  4. postgresql使用规范解读

    表设计规范1.建议能使用小字节数类型,就不要用大字节数类型2.建议能用varchar(N).text就不用char(N):3.建议使用default NULL,而不用default '':4.建议使用 ...

  5. django—ORM相关

    常用的QuerySet方法 1.all() 查询表中所有数据,返回一个QuerySet对象列表 2.filter() 查询满足条件的数据,返回一个QuerySet对象列表 3.get() 查询指定的数 ...

  6. Sysbench测试神器:一条命令生成百万级测试数据

    1. 基准测试 基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的.可复现.可对比的测试. 进一步来理解,基准测试是在某个时候通过基准测试建立一个 ...

  7. Linux常用操作命令大全

    0.新建操作:1.查看操作    2.删除操作 3.复制操作    4.移动操作:5.重命名操作: 6.解压压缩操作    7.上传文件工具    8.ln.file和touch命令 9.查找操作命令 ...

  8. 浅析软件测试人员如何对JVM进行内存溢出检测

    一.什么是JVM,检测JVM的意义 JVM是java virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各 ...

  9. undefined reference to 'mq_open'

    验证 UNPv2里的一个例子时,连接时出现 undefined reference to 'mq_open' 错误. man mq_open ,发现里面有这么一句话 :link with -lrt . ...

  10. 华为云FusionInsight湖仓一体解决方案的前世今生

    摘要:华为云发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念,那我们就来看看湖仓一体的来世今生. 伴随5G.大数据.AI.IoT的飞速发展,数据呈现大规模.多样性的极速增长 ...