热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lvm基本应用(自我整理)

LVM简介LVM(LogicalVolumeManager):逻辑卷管理员,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的

LVM简介

  LVM (Logical Volume Manager):逻辑卷管理员,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

LVM应用

LVM基本组成

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷(PV)就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(volume group):LVM的卷组(VG)类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷(LV)类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 技术分享图片

技术分享图片

技术分享图片

LVM常用命令

创建PV(物理卷)

pvcreate :将实体partition创建成为PV;
pvscan :搜索目前系统里面任何具有PV的磁盘或分区;
pvdisplay :显示出目前系统上面的PV状态;
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

创建VG(卷组)

vgcreate :创建vg命令;
vgscan :搜索系统上面是否有 VG 存在;
vgdisplay :显示目前系统上面的 VG 状态;
vgextend :在 VG 内添加额外的 PV ;
vgreduce :在 VG 内移除 PV;
vgchange :配置 VG 是否启动 (active);
vgremove :删除一个 VG;

创建LV(逻辑卷)

lvcreate :创建 LV
lvscan :查询系统上面的 LV ;
lvdisplay :显示系统上面的 LV 状态;
lvextend :在 LV 里面添加容量;
lvreduce :在 LV 里面减少容量;
lvremove :删除一个 LV ;
lvresize :对 LV 进行容量大小的调整;

LVM具体应用

   LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间, LVM是用来方便管理的,不会提供额外的安全保证。 

创建PV

  首先创建4个分区,并且将systemid改为8e。然后创建PV

  # pvcreate /dev/sda{4,5,6,7}

创建VG

  使用vgcreate命令,-s用来指定PE的大小

  #vgcreate -s -4M vgname  /dev/sda{4,5,6,7}

  如果需要增减VG的容量,使用vgextend命令 格式为

  # vgextend vgname /dev/sda#

划分LV

  使用lvcreate命令,格式为

       # lvcreate  [options]  lvname  vgname

      -l  通过PE的数量指定LV的大小

      -L  通过容量来指定LV的大小 单位可以G,M,T

      -n  指定LV的名字

  格式化LV并且挂载

  # mke2fs -j /dev/vgname/lvname

  # mkdir /mnt/mntname

  # mount  /dev/vgname/lvname /mnt/mntname

增加LV的容量

 使用fdisk创建分区---创建PV---使用vgextend加入新的PV扩展VG---利用lvresize将新的PV内的PE加入到LV中----使用e2fsck检查文件系统----使用resize2fs扩大文件系统的容量

    # pvcreate /dev/sda8  #新建PV

    # vgextend myvg /dev/sda8  #扩展VG

    # lvresize -L +100M /dev/vgname/lvname #扩展LV

    # e2fsck -f /dev/vgname/lvname #注意,应该是强行校验,没有-f是不行的  

    # resize2fs /dev/vgname/lvname #将LV的容量扩展到整个文件系统

  最重要的使用lvresize命令

   lvresize -l 或者-L选项 通过+来扩展LV的容量

    # lvresize -L +... /dev/vgname/lvname

减少LV的容量

   # umount /dev/vgname/lvname #LVM不支持在线缩小,但是放大可以,所以应该先卸载

   # e2fsck -f /dev/vgname/lvname #强行进行磁盘检查

     # resize2fs /dev/vgname/lvname 400M   #降低文件系统的容量,原来是500M,现在减小到400M

     # lvresize -L -100M /dev/vgname/lvname #降低LV的容量

     # pvdisplay   #将某个PV抽离VG的时候,必须要确定里面的PE不被使用才可以,所以使用pvdisplay查看哪个PV的PE是没有使用的,将要抽离的PV中的含有数据的PE移动到该PV里

       # pvmove /dev/sda4 /dev/sda8  #转移PE

       # vgreduce vgname /dev/sda4  #将/dev/sda#抽离出VG

       # pvremove /dev/sda4

LVM的重要应用(快照 snapshot)

  快照的原理:将系统信息记录下来,如果有数据改动了,就将原来的数据移到快照区,没有改动的区域由文件系统和快照区共享。

  创建快照区

    # pvcreate /dev/sda9

       # vgextend myvg /dev/sda9

    # lvcreate -L 100M -s -n snapshotname /dev/vgname/lvname   #最重要的是-s选项,意思是创建快照区,最后的/dev/vgname/lvname 是"被快照"的文件系统

 接下来挂载快照区

      # mkdir  /mnt/snapshot

      # mount  /dev/vgname/snapshotname  /mnt/snapshot

      # df #查看是否挂载成功  

 快照的重要的作用就是可以用来复原文件系统,挂载/dev/vgname/lvname 与/dev/vgname/snapshotname 后里面看到的数据是一样的。

      # cd /mnt/mntname

   # rm -rf *  #搞破坏

   # lvdisplay /dev/vgname/snapshotname  #发现确实被占用了一部分空间

   # mkdir -p /backups

   # cd /mnt/snapshot

   # tar -jcf /backups/lvname.tar.bz2  * #备份

   # umount /mnt/snapshot

     # lvremove /dev/vgname/snapshotname

   # mke2fs -j /dev/vgname/lvname

   # mount /dev/vgname/mylv /mydata

   # cd /mnt/mntname

   # tar -xf /backups/lvname.tar.bz2 #还原

LVM的关闭

必须按下面的流程操作进行,否则会让文件系统出现问题

   # umount /mnt/mntname  #先卸载LV

   # lvremove /dev/vgname/lvname  #删除LV

   # vgchange -an vgname  #让vg不具备active 的标志

     # pvremove /dev/sda{5,6,7,8} #删除PV

   # fdisk /dev/sda #将分区的systemid由8e改为83 

lvm基本应用(自我整理)


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • 本文旨在探讨信息安全专业的职业规划路径,结合个人经历和专家建议,为即将毕业的学生提供实用的指导。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 目录结构如下:Nginx基础知识NginxHTTP服务器的特色及优点Nginx的主要企业功能Nginx作为web服务器的主要应用场景包括:Nginx的安装安装环境 ... [详细]
  • 蒜头君的倒水问题(矩阵快速幂优化)
    蒜头君将两杯热水分别倒入两个杯子中,每杯水的初始量分别为a毫升和b毫升。为了使水冷却,蒜头君采用了一种特殊的方式,即每次将第一杯中的x%的水倒入第二杯,同时将第二杯中的y%的水倒入第一杯。这种操作会重复进行k次,最终求出两杯水中各自的水量。 ... [详细]
author-avatar
萍聚20121018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有