LVM简介:
LVM(Logical Volume
Manager)中文名:逻辑卷管理器,本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。
LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。
LVM的优点与缺点:
我们平时使用电脑,当磁盘空间不足时,一般没办法对磁盘空间进行扩充,我们只能添加新的硬盘,在对新的硬盘进行分区创建,再格式化才能使用。当然这对于我们个人电脑当然足够,除了有点麻烦。但在工作环境下的服务器,我们很难将其关机再添加新的硬盘,要知道运行着重要服务的服务器一般是24小时不间断运行的,此时通过LVM我们就能对系统的磁盘进行动态管理。
LVM机制的基本概念:
卷组(VG)示意图:
术语解释:
- 物理存储介质(The physical media):
这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。- 物理卷(physical volume)PV:
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。- 卷组(Volume Group)VG:
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。- 逻辑卷(logical volume)LV:
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。物理块(physical extent)PE: 每一个物理卷被划分为称为PE(Physical
Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。逻辑块(logical extent)LE: 逻辑卷也被划分为被称为LE(Logical Extents)
的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
LVM的管理命令:
主要命令:
pvcreate命令: 创建新的物理卷(格式:pvcreate…设备名1…[设备名2])
vgcreate命令: 创建新的卷组(格式:vgcreate…卷组名…物理卷名1…物理卷名2)
lvcreate命令: 创建新的逻辑卷(格式:lvcreate…-L…容量大小…-n…逻辑卷名…卷组名)
lvextend命令: 添加逻辑卷的存储空间(格式:lvextend…-L…+容量大小…/dev/卷组名/逻辑卷名)
LVM创建逻辑卷的流程(实际操作):
第一步:建立物理卷(PV)。
1.给虚拟机添加三块20G的硬盘,然后重启Linux系统(重启系统才能识别到硬盘,用“reboot”或“init6”命令重启)。
2.用fdisk命令,检查硬盘是否添加成功。
输入:fdisk -l
3.对磁盘sdb进行配置,将所有空间全部分配到一个主分区,然后转换分区格式为LVM格式。(磁盘管理的内容我在前面的博客写过了,有不会的朋友可以去看一下)
输入:fdisk /dev/sdb----------管理磁盘sdb
输入:n---------------------------新建分区
输入:p--------------------------选择分区类型为主分区
回车-------------------------------默认设置分区号为1
回车-------------------------------默认设置起始扇区
回车------------------------------默认分配全部空间给分区1
输入:t--------------------------转换分区格式
输入:8e-----------------------LVM格式的代码(不知道的可以输入L查询)
输入:w------------------------保存退出
4.用上面的方法,对磁盘sdc、sdd进行于磁盘sdb相同的配置,并保存退出磁盘配置面板。(因为过程相同我就不多赘述了)
5.再次用fdisk命令,检查磁盘分区是否配置成功。
输入:fdisk -l
6.用pvcreate命令将三个磁盘分区创建为三个物理卷。
(我用的是正则表达式输入,更简便,跟输入“pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1”命令行结果是相同的)
输入:pvcreate /dev/sd{b..d}1
第二步:新建卷组(VG)。
1.将物理卷sdb1、sdc1、sdd1加入到卷组mailbox内。
输入:vgcreate mailbox /dev/sd{b..d}1---------新建卷组mailbox并将物理卷sdb1、sdc1、sdd1添加进去
输入:pvscan-------------------------------------------查看物理卷信息
2.查看一下卷组mailbox的详细信息。
输入:vgdisplay----------显示卷组详细信息
第三步:新建逻辑卷(LV)
1.给mailbox卷组新建一个逻辑卷mbox01。(我一块磁盘的大小是20G,25G的逻辑卷很明显可以跨磁盘建立)
输入:lvcreate -L 25G -n mbox01 mailbox----------给mailbox卷组新建一个名为mbox01的逻辑卷,容量为25G
输入:lvdisplay-----------------------------------------------显示逻辑卷详细信息
2.再给mailbox卷组创建一个逻辑卷mbox02,容量设置为15G。
输入:lvcreate -L 15G -n mbox02 mailbox
输入:lvdisplay
3.如果感觉逻辑卷mbox01的空间给少了,我们可以给它扩展一个10G的空间。
输入:lvextend -L +10G /dev/mailbox/mbox01--------给mbox01扩展10G空间,“+”表示增加多少容量,如果不带“+”表示扩容到多少容量。
输入:lvdisplay
第四步:格式化逻辑卷并挂载
1.格式化逻辑卷mbox01和mbox02。
输入:mkfs.xfs /dev/mailbox/mbox01----------将逻辑卷mbox01格式化为xfs文件格式
输入:mkfs.xfs /dev/mailbox/mbox02----------将逻辑卷mbox02格式化为xfs文件格式
2.在/mnt/目录下新建两个目录作为两个逻辑卷的挂载点。
输入:mkdir /mnt/mbox0{1..2}----------在/mnt/目录下新建两个名为mbox01、mbox02的目录
输入:ls /mnt/--------------------------------查看/mnt/目录下的文件或目录
3.在/etc/fstab文件里添加逻辑卷mbox01、mbox02的自动挂载命令。(自动挂载我之前的博客写过了,不会的朋友可以看一下)
输入:vim /etc/fstab------------------------------------------------------------------------------用vim编辑器对fstab文件进行编辑
输入:/dev/mailbox/mbox01 /mnt/mbox01 xfs defaults 0 0----------添加自动挂载命令
输入:/dev/mailbox/mbox02 /mnt/mbox02 xfs defaults 0 0----------添加自动挂载命令
输入:mount -a------------------------------------------------------------------------------------挂载所有设备
输入:df -hT----------------------------------------------------------------------------------------查看挂载信息
LVM的扩容:
逻辑卷(LV)的扩容:
ext2/ext3/ext4文件系统,调整命令是resize2fs,或者直接用“-r”自动扩展文件系统大小:
1.将mbox01逻辑卷解挂载,然后将文件格式,格式化为ext4格式。
输入:umount /dev/mailbox/mbox01-------------解挂载mbox01
输入:mkfs.ext4 /dev/mailbox/mbox01----------格式化文件格式为ext4
2.将mbox01重新挂载,然后查看挂载详细信息。
输入:mount /dev/mailbox/mbox01 /mnt/mbox01----------挂载mbox01
输入:df -hT-------------------------------------------------------------查看挂载详情
3.我们给mbox01添加1G容量,然后查看挂载详情,发现容量并没有增加。
输入:lvextend -L +1G /dev/mailbox/mbox01---------------增加容量
输入:df -hT-------------------------------------------------------------查看挂载详情
4.用resize2fs命令执行容量调整,然后查看发现增加容量成功。
输入:resize2fs /dev/mailbox/mbox01-------------------------执行调整
输入:df -hT-------------------------------------------------------------查看挂载详情
5.使用“-r”选项直接自动扩展文件系统大小。
输入:lvextend -L +1G /dev/mailbox/mbox01 -r————-增加mbox01容量1G并自动扩展
输入:df -hT————————————————————-查看挂载详情
xfs文件系统的调整命令是xfs_growfs,或者直接用“-r”自动扩展文件系统大小:
1.如果在使用mbox02的过程中,容量不够了,我们可以直接进行扩容,但前提是卷组中有足够的容量支持。
输入:lvextend -L +5G /dev/mailbox/mbox02———-给mbox02逻辑卷增加5G容量
输入:lvdisplay /dev/mailbox/mbox02——————-显示mbox02逻辑卷详细信息
2.我们再用df -hT命令查看一下挂载信息,发现mbox02的容量并没有增加。这是因为文件系统还没有同步,我们只需用xfs_growfs命令同步一下即可。
输入:df -hT-------------------------------------------------查看挂载详情
输入:xfs_growfs /dev/mailbox/mbox02-----------执行调整
输入:df -hT-------------------------------------------------查看挂载详情
3.用“-r”直接自动扩展文件系统大小。
输入:lvextend -L +1G /dev/mailbox/mbox02 -r-------------增加mbox02容量1G并自动扩展
输入:df -hT-------------------------------------------------------------查看挂载详情
卷组(VG)的扩容:
1.如果我们发现卷组的剩余空间不足,首先我们添加一块硬盘。
2.添加完硬盘后一般是重启系统,但企业中服务器是不能随意重启的,这里我们用echo “- – -” >
/sys/class/scsi_host/host0/scan命令重新扫描scsi总线来添加磁盘。
输入:echo "- - -" > /sys/class/scsi_host/host0/scan----------扫描scsi总线添加硬盘
输入:fdisk -l /dev/sde--------------------------------------------------查看新增的磁盘sde
3.将新增磁盘格式化,然后添加到卷组mailbox中去,查看空间添加成功。
输入:pvcreate /dev/sde-----------------------创建一个新的物理卷/dev/sde
输入:vgextend mailbox /dev/sde----------将磁盘/dev/sde添加到卷组mailbox中去
输入:vgs-------------------------------------------查看卷组信息