Linux磁盘管理之LVM

我想每个人在初次安装Linux系统都遇到过的情况,在当初规划磁盘空间的时候给/home 或者 / 分配很小的磁盘空间,等使用一段时间就发现,df 查看的时候磁盘的使用率已经超过80%以上了。现在你该怎么办呢? 可能再加一块磁盘,然后重新分割、格式化、挂载 ,复制文件到新分区,挂载在卸载! 整个过程太过繁琐。而且,若是第二次分割又不尽如意难道又要重新讲上述流程在来一遍吗?尤其是复制文件,非常的耗费文件哦。有别的办法吗? 有,就是LVM(Logical Volume Manager)

LVM(Logical Volume Manager,逻辑卷管理)的实现是利用Linux的device-mapper模块来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过lvm,你可以将现实的存储空间抽象化并在上面建立虚拟分区来以简化的方式进行磁盘的扩大和收缩分区操作,弹性的管理磁盘容量。

LVM由物理卷(Physical Volume (PV))、卷组(Volume Group(VG))、逻辑卷(Logic Volume(LV))和物理区域(Physical extent(PE)等四个主要部分组成。

物理卷:是指硬盘分区或逻辑卷上与磁盘分区具有同样功能的设备,也是lvm基本存储逻辑块。物理卷包括一个特殊的header,其余部分被切割成一块一块物理区域。

卷组:由一组的物理卷组成的一个大的管理单元,可以在卷组上创建一个或多个逻辑卷。

逻辑卷:虚拟分区,类似于磁盘分区,可以创建文件系统,并挂载使用。

物理区域:硬盘可供指派给逻辑卷的最小单位 类似于文件系统的block,默认大小为4M。

它们的关系如图所示:

将物理磁盘格式化成物理卷PV(Physical Volume),格式物理卷的过程中就将底层的硬盘划分为一个一个的物理扩展PE(Physical Extend),默认大小为4M,就可以创建卷组VG(Volume Group),卷组就是抽象化的空间池,它由一个或多个的PV组成。通常在创建的时候还要给它取一个名字。最后就是基于VG上创建逻辑卷LV(Logical Volume)。创建完成后就可以在LV上进行文件系统格式并挂载使用。

实现lvm的流程。

1. 先准备一快磁盘,用fdisk进行分区,做成lvm的分区格式。并partprobe重读分区表!!

2. 创建PV

与PV相关的命令有:pvscan、pvdisplay、pvs、pvremove、pvmove、pvcreate

pvcreate:将实体partition创建为PV

pvscan:扫描系统内的PV磁盘

pvdisplay:显示PV磁盘的详细信息

3、创建VG

与VG相关的命令,vgcreate、vgscan、vgdisplay、vgreduce、vgextend、vgremove

vgcreate:创建VG卷组

语法为:vgcreate option VolumeGroupName device..device

常用的选项为 -s :指定PE大小,默认为4M

ex:vgcreate -s 8M myvg /dev/sdb1 /dev/sdb2

vgreduce:移除VG中的PV,当VG中有多个PE

语法: vgreduce option VolumenGroupName device..

ex: vgreduce myvgdisk /dev/sdb3 :删除vg卷中的/dev/sdb3物理卷

vgextend:扩展VG大小

语法:vgextend:扩展VG大小,用法同vgreduce

ex: vgextend myvgdisk /dev/sdb3  #把/dev/sdb3物理卷添加到myvgdisk卷组中

vgdispaly、vgscan:扫描显示

vgchange:配置VG是否启动(active)

vgremove:删除VG

语法:vgremove option VolumeGroupName...

4、创建LV

与LV相关的命令:lvscan、lvdisplay、lvremove、lvextend、lvcreate、lvresize、lvreduce

lvcreate:创建逻辑卷

语法:lvcreate option VolumeLogicalName VolumenGroupName

常用选项: -l:指定卷大小,PE数  -L指定卷大小,{k|M|G}  -n 逻辑卷名

ex: lvcreate -L 10G mylvname myvgdisk

lvresieze:LV卷的容量大小调整,调整完成后要使用resize2fs命令重读磁盘

语法:lvresize option volumeLogicalNamePath

常用选项:-l/-L  [-|+] 调整大小时候注意,不加+/-时为指定为卷大小,-/+为在原有的size中更改多少。

ex: lvresize -L -1G /dev/vgtest/lvtest

ex: resize2fs /dev/vgtest/lvtest

ex: xfs-grows /dev/vgtest/lvtest 可以重读正在使用的磁盘大小!!

5、完成之后使用会生成一个/dev/VGname/LVname的设备文件路径,挂载使用杰克

实验环境:VMware下的CentOS 7.2

有一个小技巧,当你在虚拟机中添加一块硬盘时,可以使用echo " - - -" > /sys/class/scsi_host/host{0,1,2}/scan 命令来扫描你的磁盘。

[[email protected] Packages]# lsblk  #已添加新磁盘查看磁盘列表
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk 
├─sda1   8:1    0   500M  0 part /boot
├─sda2   8:2    0     2G  0 part [SWAP]
├─sda3   8:3    0    50G  0 part /
├─sda4   8:4    0     1K  0 part 
└─sda5   8:5    0 147.5G  0 part /home
sr0     11:0    1   7.1G  0 rom  /media
[[email protected] Packages]# echo " - - -" > /sys/class/scsi_host/host0/scan  #扫描新加的磁盘
[[email protected] Packages]# lsblk  
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk 
├─sda1   8:1    0   500M  0 part /boot
├─sda2   8:2    0     2G  0 part [SWAP]
├─sda3   8:3    0    50G  0 part /
├─sda4   8:4    0     1K  0 part 
└─sda5   8:5    0 147.5G  0 part /home
sdb      8:16   0    20G  0 disk 
sr0     11:0    1   7.1G  0 rom  /media
[[email protected] Packages]# fdisk /dev/sdb  #磁盘分去命令
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x26c1804c.
Command (m for help): h  #帮助信息
h: unknown command
Command action   #常用的有注释
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition   #删除分区
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition  #新增新区
   o   create a new empty DOS partition table
   p   print the partition table #列出分区表
   q   quit without saving changes #退出
   s   create a new empty Sun disklabel
   t   change a partition‘s system id #2个16进制,8e为lvm
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit #保存并退出
   x   extra functionality (experts only)
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free) #主分区
   e   extended  #扩展分区
Select (default p): p 
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux‘ to ‘Linux LVM‘
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x26c1804c
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   8e  Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] Packages]# fdisk -l /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x26c1804c
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   8e  Linux LVM
[[email protected] Packages]# pvcreate /dev/sdb1 #创建物理卷
  Physical volume "/dev/sdb1" successfully created 
[[email protected] Packages]# pvscan #显示物理卷
  PV /dev/sdb1         lvm2 [10.00 GiB]
  Total: 1 [10.00 GiB] / in use: 0 [0   ] / in no VG: 1 [10.00 GiB]
[[email protected] Packages]# pvdisplay  #详细显示
  "/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               ojzo7g-BC7O-H3Xj-eDlo-ur83-QHbw-nLZ5K8
[[email protected] Packages]# vgcreate  testvg /dev/sdb1
  Volume group "testvg" successfully created
[[email protected] Packages]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "testvg" using metadata type lvm2
[[email protected] Packages]# vgdisplay 
  --- Volume group ---
  VG Name               testvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / 10.00 GiB
  VG UUID               xqSpwz-1fPo-7FAh-0pyD-e2dK-RO4O-zxma0c
[[email protected] Packages]# lvcreate -l 2559 -n lvtest testvg 
  Logical volume "lvtest" created.
[[email protected] Packages]# 
[[email protected] Packages]# lvscan
  ACTIVE            ‘/dev/testvg/lvtest‘ [10.00 GiB] inherit
[[email protected] Packages]# lvdisplay  
  --- Logical volume ---
  LV Path                /dev/testvg/lvtest
  LV Name                lvtest
  VG Name                testvg
  LV UUID                bkh09J-hzzV-MQnT-sN41-Tub2-ImM3-6RPrhn
  LV Write Access        read/write
  LV Creation host, time localhost, 2017-04-03 16:08:30 +0800
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2559
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
时间: 2024-10-21 10:19:41

Linux磁盘管理之LVM的相关文章

Linux磁盘管理:LVM逻辑卷创建及使用

Linux磁盘管理:LVM逻辑卷创建及使用    一.创建LVM逻辑卷    通过图文并茂的方式来看看如何创建我们的LVM ,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV.所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷) ①将物理硬盘格式化成PV(物理卷) 使用的是 pvcreate 命令 这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看 [[email protected] ~]# f

【转载】Linux磁盘管理:LVM逻辑卷管理

Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底

LInux磁盘管理:LVM逻辑卷

Linux磁盘管理:LVM逻辑卷 LVM简介   LVM(Logical Volume Manager 逻辑卷管理),是Linux操作系统的逻辑卷管理器.   LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性.   与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储.它使系统管理员可以更方便的为应用与用户分配存储空间. 逻辑卷基本术语 物

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解 前言 本文接着上篇文章作如下延伸:链接:Linux磁盘管理之磁盘管理与文件系统 什么是LVM?为什么需要LVM? 如何具体进行LVM逻辑卷管理? 什么是磁盘配额?为什么需要磁盘配额? 在Linux中进行磁盘配额的条件是什么呢? 如何具体进行磁盘配额? 下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理. 一.LVM概述 1.什么是LVM?为什么需要LVM? ? 许多 Linux 使用者安装操作系统时都会遇到这

每天进步一点点——Linux磁盘管理之LVM与RAID

转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,只能通过添加硬盘.创建新的分区来扩充空间,但是新添加进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充,上层应用很多时候只能访问一个文件系统.只能让现有磁盘下线,换上新的磁盘之后,再将原来磁盘中的数据导入. 2. LVM LVM(Logical Volume Manager)逻辑卷管理通过将底层物理硬盘抽象

linux磁盘管理:LVM的基本概念与创建、扩展、缩减、删除

编辑于2015--08--29 二.LVM的磁盘管理 LVM(Logical volume Manager)是逻辑卷管理的简称.它是Linux环境下对磁盘分区进行管理的一种机制. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的

Linux磁盘管理:LVM逻辑卷的拉伸及缩减

转载:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3097785.html 在上一篇详细讲解了LVM逻辑卷的创建及使用,我们知道创建逻辑卷的步骤是先格式化物理硬盘位PV,然后创建一个VG,再将多个PV加入到VG中,最后基于VG创建我们的LV.在这篇随笔里,我们将继续学习LVM逻辑卷的知识,包括逻辑卷的拉伸及缩减... 一.拉伸一个逻辑卷 我们知道相比于传统磁盘管理方式的各种问题,使用LVM逻辑卷来管理我们的磁盘,我们可以对

Linux磁盘管理之LVM详解

LVM逻辑卷管理 一.LVM简介 二.LVM基本术语 三.LVM相关PV,VG,LV相关命令的使用 四.安装LVM 五.创建和管理LVM 1.创建PV 2.创建VG 3.创建LV 4 .LV的格式化及挂载 六.快照卷snapshot的使用介绍 ================================================================================== 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写

linux磁盘管理系列-LVM的使用

LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. LVM2几乎完全向后兼容使用LVM1创建的卷.此例外是快照(在升级到LVM 2之前,必须删除快照卷). LVM简介 逻辑卷管理提供了比传统的磁盘和分区视图更高级别的计算机系统上磁盘存储的视图. 这使得系统管理员可以更灵活地将存储分配给应用程序和用户. 在逻辑卷管理器的控制下创建的存储卷可以随意调整