磁盘管理-LVM(1)

大纲

1、LVM是什么?

2、LVM分层结构

3、LVM几个关键术语

4、实战演练

1、LVM是什么?

LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间管理理念。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

目前LVM已经发展到LVM2版本,须在Linux内核2.6及以上可用。

2、LVM分层结构

LVM使用分层次的结构,从概念上看如下图所示:

最顶上是实际的物理磁盘及其划分的分区,和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。逻辑卷就相当于普通分区一样,可以使用mke2fs创建文件系统,然后可以在操作系统挂载和访问。

3、LVM几个关键术语

  • PV(physical volume)

    物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。

  • VG(volume group)

    卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。

  • LV(logical volume)

    逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。

  • PE(physical extent)

    物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。

  • LE(logical extent)

    逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

  • 卷组描述区域

    卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。

4、实战演练

首先,我们得准备实验环境,在这里我首先创建4个1G的分区(注意,并不要求分区的大小一致),然后修改它们的分区类型为8E。

fdisk 分区:

[[email protected] ~]# fdisk -l /dev/sdb            # 查看/dev/sdb上的分区

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
[[email protected] ~]# fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

### 创建分区和修改分区类型的过程省略,调整为如下

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         123      987966   8e  Linux LVM    # 注意类型为 8e
/dev/sdb2             124         246      987997+  8e  Linux LVM
/dev/sdb3             247         369      987997+  8e  Linux LVM
/dev/sdb4             370         652     2273197+   5  Extended
/dev/sdb5             370         492      987966   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] ~]# partprobe /dev/sdb            # 内核重新载入分区表

pvcreate 将物理分区或硬盘创建为物理卷(PV)

### pvcreate - initialize a disk or partition for use by LVM
# pvcreate /dev/sdb1    # partition
# pvcreate /dev/sdc     # disk

[[email protected] ~]# pvcreate /dev/sdb{1,2,3}        # 把3个分区创建为PV
  Writing physical volume data to disk "/dev/sdb1"
  Physical volume "/dev/sdb1" successfully created
  Writing physical volume data to disk "/dev/sdb2"
  Physical volume "/dev/sdb2" successfully created
  Writing physical volume data to disk "/dev/sdb3"
  Physical volume "/dev/sdb3" successfully created
[[email protected] ~]# pvs                             # 查看创建的PV
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sdb1       lvm2 a--  964.81M 964.81M
  /dev/sdb2       lvm2 a--  964.84M 964.84M
  /dev/sdb3       lvm2 a--  964.84M 964.84M
  
### 当然,也可以使用pvdisplay 查看更详细的信息

vgcreate 将物理卷(PV)创建为卷组(VG)

下面,我们创建一个名为myvg的卷组

### vgcreate VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
# [-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]]     # 指定PE的大小

[[email protected] ~]# vgcreate myvg /dev/sdb{1,2,3}    # 创建卷组myvg
  Volume group "myvg" successfully created
[[email protected] ~]# vgs                              # 显示卷组
  VG   #PV #LV #SN Attr   VSize VFree
  myvg   3   0   0 wz--n- 2.82G 2.82G
[[email protected] ~]# vgdisplay                        # 更详细的方式查看
  --- Volume group ---
  VG Name               myvg        # 卷组名
  System ID             
  Format                lvm2        # lvm版本
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               2.82 GB      # VG的大小
  PE Size               4.00 MB      # 默认PE块的大小,可以使用-s选项指定
  Total PE              723          # 总计PE块
  Alloc PE / Size       0 / 0        # 已分配的PE
  Free  PE / Size       723 / 2.82 GB    # 剩余的PE
  VG UUID               99yTE0-Lc3f-b5rz-qa4F-d8YD-XBfM-U4DYoM

物理卷给卷组提供空间,那么卷组就为逻辑卷提供空间,只要在这个卷组中还有可用空间,我们就可以随意创建逻辑卷。

当创建完成VG之后,那么在底层的PV中,就形成叫做PE的存储单元。在创建PV的时候,并不会创建PE,而是在创建VG之后才会创建它。为什么呢?

因为在同一个VG中,PE的大小必须是一样的。当VG中的PE大小被确定,那么新加入VG的PV中的PE也会自动调整为相同的大小。

lvcreate 在卷组中创建逻辑卷(LV)

### lvcreate - create a logical volume in an existing volume group
# lvcreate {-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |
        -L|--size  LogicalVolumeSize[bBsSkKmMgGtTpPeE]}  VolumeGroupName  [PhysicalVolumePath[:PE[-PE]]...]
# [-n|--name  LogicalVolumeName]    # 指定逻辑卷的名字
# [-i|--stripes Stripes [-I|--stripesize StripeSize]]    # 条带模式,类似raid0
# [-m|--mirrors   Mirrors]        # 镜像模式,类似raid1

[[email protected] ~]# lvcreate -L 2G -n mylv1 myvg        # 从myvg卷组中创建一个2G的lv
  Logical volume "mylv1" created
[[email protected] ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/myvg/mylv1            # 注意逻辑卷的路径
  VG Name                myvg
  LV UUID                D1NF1V-zPl7-cvXs-hk0c-2Fbx-WKZ1-tF49Fi
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                2.00 GB
  Current LE             512
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

[[email protected] ~]# ls -l /dev/myvg/*
lrwxrwxrwx 1 root root 22 Jun 24 03:26 /dev/myvg/mylv1 -> /dev/mapper/myvg-mylv1
### 可以看出,我们创建的逻辑卷是一个符号链接

mke2fs,mount 格式化并挂载逻辑卷

当LV创建完成后,就可以像普通分区那样对其进行格式化和挂载操作了。

[[email protected] ~]# mke2fs -j /dev/myvg/mylv1    # 格式化操作
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
262144 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# mount /dev/myvg/mylv1 /mnt        # 挂载到/mnt目录
[[email protected] ~]# mount -l                          # 查看挂载情况
/dev/sda3 on / type ext3 (rw) [/]
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw) [/boot]
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/myvg-mylv1 on /mnt type ext3 (rw)
[[email protected] ~]# df -h                             # 查看磁盘容量情况
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             8.6G  2.4G  5.8G  30% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                  62M     0   62M   0% /dev/shm
/dev/mapper/myvg-mylv1
                      2.0G   68M  1.9G   4% /mnt

OK,我们创建的逻辑卷就可以正常使用了。下一篇将介绍LVM扩展,缩减以及快照。

磁盘管理-LVM(1),布布扣,bubuko.com

时间: 2024-10-06 00:43:15

磁盘管理-LVM(1)的相关文章

磁盘管理-LVM(2)

续<磁盘管理-LVM(1)> 1.扩展逻辑卷 调整逻辑卷大小的功能是LVM最有用的功能.这个部分会讨论我们怎么样扩展一个存在的逻辑卷.下面,我们将会扩展先前创建的逻辑卷'mylv1'扩大到3G. 注意,调整逻辑卷大小之后,也需要对文件系统调整大小进行匹配.这个额外的步骤各不相同,取决于创建文件系统的类型.命令的执行顺序是很重要的. ### lvextend - extend the size of a logical volume # lvextend {-l|--extents [+]Log

linux 磁盘管理+lvm逻辑卷管理

注:linux系统中主分区和扩展分区总共可以有4个,逻辑分区是从5开始. Linux系统中:83(ext3) 82(交换分区) 5(扩展分区) 8E(逻辑卷) b(fat32) 1.查看系统的磁盘以及分区状况 2.查看系统中磁盘的挂载情况以及容量使用情况 3.进入磁盘管理工具 4.P查看磁盘分区 5.N新建,P主分区 6.E新建扩展分区 7.L新建逻辑分区 8.删除一个分区 9.保存分区配置 10.逻辑更改分区格式 11.永久挂载一个磁盘分区 12.格式化分区 Mkfs命令可以格式化ext的,f

Linux磁盘管理--LVM原理及基本操作

LVM(Logical Volume Manager)逻辑卷管理是Linux磁盘管理中的常用操作, 本文主要描述LVM的基本原理以及对LVM的扩展和缩减的基本操作. LVM实质是过软件方式将多个物理分区或磁盘组合成为一个容量可变大小的磁盘卷组VG, 再通过对VG中的基本单位PE构成可变大小的逻辑卷LV. LVM的优点: 通过调整VG中PV的数量来动态调整VG的容量大小, 通过调整LV中PE的数量来动态调整LV的容量大小. LVM中组成部分: 1. 分区: 磁盘中的可用分区, 分区类型ID应在创建

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

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

centos7 磁盘管理—— lvm的使用

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

磁盘管理-lvm介绍

4.10:lvm介绍:  1.lvm是linux系统对磁盘分区管理的机制,方便磁盘的扩容和缩容,提高磁盘分区管理的灵活性, 对磁盘分区来创建物理卷---->划分为卷组--->划分为逻辑卷---->格式化,挂载,扩容. 基本逻辑图如下: 2.lvm实验: 2.1:新建分区,在虚拟机上添加一块硬盘sdb,并分出三个分区各1G,需要更改其分区格式为8e(lvm) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

第十二章 linux磁盘管理-lvm(2)

yum install lvm2-2.02.72-8.el6_0.4.x86_64 1.将新创建的两个分区/dev/sdb1 /dev/sdb2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元. pvcreate /dev/sdb1 /dev/sdb2 pvs pvdisplay 2.创建卷组 vgdata ,并将刚才创建好的两个物理卷加入该卷组.可以看出默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小 vgcreate vgdata /dev/sdb1 /de

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

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

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

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