RHEL6入门系列之二十三,管理逻辑卷LVM

简介:

逻辑卷是Linux系统中比较重要的一种磁盘管理机制,它的功能用一句话就可以概括:动态调整磁盘分区的大小。
大家都知道,在对磁盘进行分区大小规划时,有时很难确定这个分区要使用的总空间大小。当磁盘分完区以后,每个分区的大小已经固定了,如果分区设置的过大,就白白浪费了磁盘空间,分区设置的过小,又会导致空间不够用。而一旦分好区之后再要改变分区大小就非常困难,虽然可以重新划分磁盘分区或是利用Partition Magic之类的磁盘管理工具来调整分区大小,但无论采用哪种方式,操作起来都比较麻烦,而且在操作的过程中必须要将服务器停机或重启,这对一些担任重要角色的服务器是绝不允许的。
逻辑卷管理(LVM,Logical Volume Manager)的设计目的就是为了实现对磁盘的动态管理。LVM是建立在磁盘分区和文件系统(文件系统可以理解为挂载点目录)之间的一个逻辑层,管理员利用LVM可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过LVM可以直接扩展文件系统跨越磁盘。

下面就让我们一起来学习一下这种高效灵活的磁盘管理方式。
 
一、 LVM 简介
 
LVM是建立在物理磁盘和分区之上的一个逻辑层,通过它可以将若干个磁盘分区连接为一个整块的卷组,形成一个存储池。在卷组中可以任意创建逻辑卷,并进一步在逻辑卷上创建文件系统,最终在系统中挂载使用的就是逻辑卷,逻辑卷的使用方法与普通的磁盘分区完全一样。
在LVM中主要涉及以下几个概念。
  • 物理卷PV(Physical Volume)
物理卷是构建LVM的基础,通常就是指磁盘分区,但和基本的磁盘分区不同的是,物理卷中包含有与LVM相关的管理参数。
  • 卷组VG(Volume Group)
LVM卷组类似于非LVM系统中的物理磁盘,可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
  • 逻辑卷LV(Logical Volume)
LVM的逻辑卷类似于非LVM系统中的磁盘分区,在逻辑卷之上可以创建文件系统。
  • 物理块PE(Physical Extent)
每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。在一个卷组中最多能包括65534个PE,所以它的大小会影响到整个卷组的最大容量。

LVM各组成部分之间的对应关系如下图所示。

从图中可以看出,物理卷PV由大小等同的基本单元物理块PE组成,一个卷组VG由一个或多个物理卷组成,逻辑卷LV建立在卷组之上,逻辑卷相当于非LVM系统中的磁盘分区,可以在其上创建文件系统。
LVM屏蔽了系统底层的磁盘布局,但需要注意的是,由于“/boot”分区用于存放系统引导文件,所以不能应用LVM机制。
在RHEL6系统中,LVM得到了高度重视。比如在安装系统的过程中,如果设置由系统自动进行分区,则系统除了创建一个“/boot”引导分区之外,会将剩余的磁盘空间全部采用LVM进行管理,并在其中创建两个逻辑卷,分别挂载到根分区和交换分区。

二、 利用图形化工具实现LVM

LVM涉及到的概念和名词比较多,初次接触的同学可能会有些晕,其实LVM操作起来还是很简单的,而且只要做过了一遍,也就基本可以掌握了。
在RHEL6系统中实现LVM的方法有两种:一种是利用LVM管理命令在字符界面下实现,另一种是利用system-config-lvm工具在图形界面下实现。
在讲课时为了便于同学理解,我只介绍了如何用图形工具来实现LVM,这是因为在字符界面下涉及到的LVM管理命令比较多,而图形工具相比命令行,操作起来要更加简单直观一些。RHEL6中的很多图形工具要么功能比较弱,要么容易出问题,这个system-config-lvm相对算是一个比较不错的图形工具,这也是在这门课程中我推荐使用的为数不多的几款图形工具之一。
下面我们就先来看看如何用system-config-lvm图形化工具实现LVM。
在此之前,建议大家重新克隆一台虚拟机,并在虚拟机中额外添加2块硬盘(整个虚拟机共有3块硬盘)。

虚拟机启动之后,再为虚拟机创建快照。

虚拟机准备好之后,继续下面的操作。

1、 安装system-config-lvm
 
在RHEL6系统中默认并没有安装system-config-lvm管理工具,不过在系统光盘中提供了相应的安装包,下面以yum安装的方式安装system-config-lvm(关于软件安装,将会在后面详细介绍)。
挂载系统光盘:
 [root@localhost ~]# mount /dev/cdrom /mnt/cdrom              
配置本地yum源:
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo      
[dvd]
name=dvd
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
安装system-config-lvm:
[root@localhost ~]# yum install system-config-lvm       
安装好system-config-lvm之后,在“系统/管理”中会看到LVM管理工具——“逻辑卷管理器”。
 
2.  创建磁盘分区
 
磁盘分区是实现LVM的前提和基础,在使用LVM之前,首先需要划分磁盘分区。
下面是分区操作结束后查看到的分区信息。

3. 创建物理卷PV

创建物理卷是实现LVM的第一步。
打开“逻辑卷管理器”,在“未初始化的实例”中可以看到已有的磁盘分区信息,选中磁盘分区“/dev/sdb1”,点击下方的“初始化实例”按钮,将之转化为物理卷。

用同样的方式将磁盘分区“/dev/sdb5”也转化为物理卷。

3.  创建卷组VG
 
卷组是LVM的主体,类似于非LVM系统中的硬盘。
在“未分配的卷”中选中刚才初始化好的物理卷“/dev/sdb1”,点击下方的“创建新的卷组”按钮。

然后在下图所示的界面中输入卷组的相关参数。

  •  “卷组名称”可根据情况自由设定,这里设置为“wgroup”。
  •  “最大物理卷数”指卷组中最多可以包含的物理卷的数目,默认值为256。
  •  “最大逻辑卷数”指卷组中最多可以创建的逻辑卷的数目,默认值为256。
  •  “物理扩展区”即物理块PE,是LVM中的基本存储单元,大小默认为4MB。
卷组创建完成后,在“未分配的卷”中选中“/dev/sdb5”,点击下方的“添加到已存在的卷组中”,将该物理卷也添加到“wgroup”卷组中。

这样便创建好了一个总容量为20GB的卷组。

5.  创建逻辑卷LV
 
逻辑卷类似于非LVM系统中的磁盘分区,是我们最终使用的对象。在已创建好的“wgroup”卷组中选择“逻辑视图”,点击下方的“创建新的逻辑卷”按钮。

 在下图的界面中输入逻辑卷的相关参数。

  •  “逻辑卷名”可根据情况自由设定,这里设置为“ftp”。
  •  “LV属性”用于设置数据在逻辑卷中的写入方式。假如逻辑卷中包括了两个物理卷:“/dev/sdb1”、“/dev/sdb5”,“线性的”写入方式就是当“/dev/sdb1”中的空间被用完之后才会使用“/dev/sdb5”,数据是被顺序存储的;“分块的”就是将要写入的数据分作两部分,同时写入到“/dev/sdb1”和“/dev/sdb5”中。“分块的”写入方式类似于RAID 0,理论上效率要更高,但是安全性较差,任何一个磁盘分区出现问题都会导致数据丢失。由于在系统中实施LVM的主要目的是为了更加灵活地调整分区容量,所以这里推荐采用“线性的”写入方式,这也是系统的默认设置。
  •  “大小”用于设置LV的容量,这里将整个卷组的空间全部划给逻辑卷。
  •  “文件系统”,LV也需要经过格式化创建文件系统之后才能使用,这里只能格式化成Linux标准的ext类文件系统。
  •  勾选“挂载”可以将LV自动挂载到指定位置,这里设置将其挂载到“/var/ftp”目录,作为FTP服务器的主目录。
  •  勾选“重新启动时挂载”可以自动修改“/etc/fstab”配置文件,实现系统开机或重启时自动挂载LV。
点击“确定”按钮之后就创建好了设备名为“/dev/wgroup/ftp”的逻辑卷,并自动挂载到了指定的挂载点。
这样,我们就可以像使用正常的磁盘分区一样地使用逻辑卷了。
 
6.  调整卷组和逻辑卷的大小
 
当逻辑卷的空间全部用尽时,只要按照上面的步骤,先创建出一个磁盘分区,将其初始化成物理卷之后,再加入到卷组中,然后就可以任意地调整逻辑卷的容量。
由于逻辑卷是位于物理磁盘和分区之上的一个逻辑层,所以逻辑卷可以跨越物理磁盘,将任何一个磁盘上的分区加入到同一个逻辑卷中。下面就将第三块磁盘“/dev/sdc”加入到逻辑卷。
首先也是需要用fdisk工具将硬盘“/dev/sdc”分区并将分区标记修改为8e,这里我将整个硬盘只划分了一个分区“/dev/sdc1”。
然后按照上面的操作将“/dev/sdc1”初始化成物理卷,再将其添加到“wgroup”卷组中,最后打开逻辑卷“ftp”的属性设置界面,就可以对逻辑卷的大小进行任意调整。

三、利用字符命令实现LVM

图形工具只是为了便于理解,在生产环境中管理LVM主要还是通过命令。LVM的管理命令比较多,下面用这些管理命令将上面的操作再实现一遍。
在这之前还是需要将虚拟机准备一下,利用前面创建的快照将虚拟机还原到初始状态。
 
1、创建物理分区
首先第一步还是对第二块硬盘进行分区,分成“/dev/sdb1”和“/dev/sdb5”,并修改分区标记为8e。
 
2、创建物理卷
然后创建物理卷pv,用到的命令是pvcreate。
例:将分区/dev/sdb1和/dev/sdb5转化为物理卷。
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb5    
 Writing physical volume data to disk "/dev/sdb1"
 Physical volume "/dev/sdb1" successfully created
 Writing physical volume data to disk "/dev/sdb5"
 Physical volume "/dev/sdb5" successfully created
 
3、创建卷组
接下来创建卷组vg,用到的命令是vgcreate。
例:使用物理卷/dev/sdb1和/dev/sdb5创建名为wgroup的卷组。
[root@localhost ~]# vgcreate wgroup /dev/sdb1 /dev/sdb5
 Volume group "wgroup" successfully created
用vgdisplay命令可以查看卷组的信息。

4、创建逻辑卷
从卷组中创建逻辑卷,用到的命令是lvcreate,命令的基本格式:
lvcreate –L 容量大小 –n 逻辑卷名 卷组名
例:从wgroup卷组中创建名为ftp的容量为19G的逻辑卷。
[root@localhost ~]# lvcreate -L 19G -n ftp wgroup
 Logical volume "ftp" created
用lvdisplay命令可以查看逻辑卷的详细信息。

5、创建并挂载文件系统

逻辑卷就相当于是一个磁盘分区,要使用它首先要将其格式化。
[root@localhost ~]# mkfs -t ext4 /dev/wgroup/ftp
然后创建挂载点目录,将逻辑卷挂载。
[root@localhost ~]# mkdir /var/ftp
[root@localhost ~]# mount /dev/wgroup/ftp /var/ftp
修改/etc/fstab文件,实现永久挂载。
[root@localhost ~]# vim /etc/fstab
/dev/wgroup/ftp          /var/ftp                ext4    defaults        0  0
查看已挂载的分区信息。

6、扩展逻辑卷空间

最后,仍是将第三块硬盘/dev/sdc加入到逻辑卷中。
先将硬盘分成一个分区/dev/sdc1,并将分区标记修改为8e。
然后将分区转换成物理卷。
[root@localhost ~]# pvcreate /dev/sdc1
 Writing physical volume data to disk "/dev/sdc1"
 Physical volume "/dev/sdc1" successfully created
将物理卷/dev/sdc1添加到卷组wgroup中。
[root@localhost ~]# vgextend wgroup /dev/sdc1
 Volume group "wgroup" successfully extended
扩展逻辑卷的空间。
[root@localhost ~]# lvextend -L +10G /dev/wgroup/ftp
 Extending logical volume ftp to 29.00 GiB
 Logical volume ftp successfully resized
执行resize2fs命令重设文件系统的大小。
[root@localhost ~]# resize2fs /dev/wgroup/ftp
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/wgroup/ftp is mounted on /var/ftp; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/wgroup/ftp to 7602176 (4k) blocks.
The filesystem on /dev/wgroup/ftp is now 7602176 blocks long.
再次查看文件系统/var/ftp的空间大小,可以看到已经变成了29G。


本文转自 yttitan 51CTO博客,原文链接:

http://blog.51cto.com/yttitan/1126737
相关文章
|
10月前
|
5G Linux
Linux逻辑卷管理LVM
目前我们用的物理磁盘有内存限制,当我们把磁盘占满了,如果将文件放在其他磁盘对于以后的维护很是麻烦,单靠物理磁盘是无法解决空间增长的问题的这个时候逻辑卷就起到了很重要的作用,这篇文章的学习目标是,了解逻辑卷的优势特点,学会如何创建逻辑卷并且扩展逻辑卷。
149 0
|
存储 Linux 文件存储
逻辑卷管理器(LVM) 之 创扩缩秘籍
逻辑卷管理器(LVM) 之 创扩缩秘籍
289 0
|
Linux
11.14 Linux LVM(逻辑卷管理)的删除
创建好 LVM 之后,如果经过一段时间的运行,我们发现 LVM 技术并未像有些人吹嘘的那样为系统的管理和维护工作带来很大的方便,可以手动删除它。
723 0
11.14 Linux LVM(逻辑卷管理)的删除