linux LVM逻辑卷管理
什么是LVM
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。
LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样可以减少操作成本.

如上图所示:
- 最底层是物理硬盘:/dev/sda1、/dev/sdb1、/dev/sdc1...
- 中间层:存储虚拟化,所有物理硬盘视为一个逻辑集合(卷组)
- 最顶层:将卷组划分为多个逻辑卷,逻辑卷大小可以动态调整等。
基本概念
物理存储介质(The Physical Media)
这里指系统的存储设备,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。物理卷(PV, Physical Volume)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.卷组(VG, Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。逻辑卷(LV, Logical Volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
物理卷的意义:一块物理硬盘不能直接使用,需要经过分区、格式化等操作之后变成物理卷之后才能使用。
1个卷组底层有多个物理卷。
1个卷组可以创建多个逻辑卷,逻辑卷的大小可以动态调整。
比起正常的硬盘分区管理,LVM更富于弹性:
- 使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。
- 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
- 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
- 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
- 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
- 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
从零开始,给/home分配最大磁盘空间
linux系统安装过程省略,现在的场景是系统按最小模式安装,物理硬盘有大量空间未被格式化,目前拟将硬盘剩余空间分配给/home目录。
前期准备:
0.1 磁盘分区情况:
fdisk -l
0.1 磁盘空间使用情况:
df -h
如果2种情况的磁盘容量不相等,则说明有磁盘未使用。可以继续后续操作
1. 新增分区
fdisk /dev/sda
c
p
n
p
3
w
2.partprobe(or reboot)
3. 查看逻辑卷
vgdisplay
fdisk -l
4. 创建逻辑卷组
vgcreate vg_zy /dev/sda4
vgcreate -s 32M VolGroup01 /dev/sdb1
vgcreate创建卷组:
格式:vgcreate [-s <8M|16M|...>] vg0 /dev/sdb{1,2,3...}
-s:指定扩展块(PE)的大小,默认为4MB;(相当与磁盘上的簇,扩展逻辑卷的基本单位。后面的值可以是8M 16M 32M 64M .....最多65532个扩展块。
vg0:新创建的卷组的名字。
/dev/sdb{1,2,3...}:需要的物理卷可以写多个;
5. 创建逻辑卷
vgs
lvcreate -L800g -n home vg_zy
6. 建立文件系统
mkfs -t ext4 /dev/vg_zy/home
7. 查看/home目录挂载点 df -h /home
8. 挂载存储
mount /dev/vg_zy/home /home
9. 修改fstab配置文件实现自动挂载
df -h /home 查看
vim /etc/fstab
/dev/mapper/vg_zy-home /home ext4 defaults 1 2
第五列是dump备份设置。
当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;
第六列是fsck磁盘检查设置。
其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。
将新增硬盘空间扩容给/ddhome
在此示例中,/ddhome目录也是新建的目录。
1.==不重启显示新增的磁盘信息==
ls /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
查看卷组:vgs
显示逻辑卷:lvs
查看物理卷信息: pvdisplay
df -T #查看分区格式
2.将新增的磁盘(硬件)添加到卷组
#vgextend centos /dev/sdb
vgextend vgname /dev/sdc
3.新建逻辑卷:在卷组centos创建名为"/dev/mapper/centos-ddhome"的逻辑卷
lvcreate -L 1300G -n ddhome centos
4.格式化逻辑卷
mke2fs -t ext4 /dev/mapper/centos-ddhome
5.挂载目录
rm -rf /ddhome && mkdir /ddhome
mount /dev/mapper/centos-ddhome /ddhome
df -h
逻辑卷扩容
1.不重启显示新增的磁盘信息
ls /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
fdisk -l 查看新增磁盘是否已经显示
2.将新增的磁盘添加到卷组
vgextend vg_ddz /dev/sdc
3.新增500G
lvextend -L +500G /dev/mapper/vg_ddz-lv_ddhome
lvextend -l +100%FREE /dev/mapper/vg_ddz-lv_ddhome
4.同步文件系统
resize2fs /dev/mapper/vg_ddz-lv_ddhome
or
xfs_growfs /dev/mapper/centos-root
释放逻辑卷A磁盘空间,分配给逻辑卷B
1.查看正在使用/home的进程
fuser -l /home
ps -ef|grep xxx
kill -9 pid
2.卸载挂载目录
umount /home
3.检查vg_ddz-lv_home文件的错误性
e2fsck -f /dev/mapper/vg_ddz-lv_home
4.调整/home为100G
resize2fs -p /dev/mapper/vg_ddz-lv_home 80G
5.缩减物理边界
lvreduce -L 80G /dev/mapper/vg_ddz-lv_home
输入y
6.重新挂载/home
mount /home
7.查看卷组vg可用空间
vgs
8.新增逻辑卷
lvcreate -L 150G -n lv_ddhome vg_ddz
9.格式化逻辑卷
mke2fs -t ext4 /dev/mapper/vg_ddz-lv_ddhome
10.挂载目录
rm -rf /ddhome && mkdir /ddhome
mount /dev/mapper/vg_ddz-lv_ddhome /ddhome
11.查看结果
df -h
ext3升级到ext4
umount /ddhome
e2fsck -f /dev/mapper/vg_ddz-lv_ddhome #可能要执行2遍
tune2fs -O extents,uninit_bg,dir_index /dev/mapper/vg_ddz-lv_ddhome
fsck -pf /dev/mapper/vg_ddz-lv_ddhome
mount -t ext4 /dev/mapper/vg_ddz-lv_ddhome /ddhome
总结

通过上面的实践,可以再根据上图,加深对LVM的理解。
参考文献
tips:本文属于自己学习和实践过程的记录,很多图和文字都粘贴自网上文章,没有注明引用请包涵!如有任何问题请留言或邮件通知,我会及时回复。
linux LVM逻辑卷管理的更多相关文章
- Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器
一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...
- Linux LVM 逻辑卷管理
使用Linux好久了,一定会意识到一个问题,某个分区容量不够用了,想要扩容怎么办?这里就涉及到LVM逻辑卷的管理了,可以动态调整Linux分区容量. LVM 概述 全称Logical Volume M ...
- LINUX——LVM逻辑卷管理
LVM: logical volumes manager LVM逻辑卷部署 物理卷—>卷组—>逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...
- linux lvm逻辑卷管理之lvdisplay命令
linux 磁盘管理分fdisk parted 和LVM三种方式,我们这里重点是说lvm 我们来看看LVM基本术语(lvm和传统fdisk分区方式有区别)由于传统的磁盘管理不能对磁盘进行磁盘管理,因此 ...
- linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列
磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...
- Linux系统磁盘管理(lvm逻辑卷管理)
linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...
- 【Linux】LVM 逻辑卷管理
LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...
- 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍
目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...
- Linux之LVM逻辑卷管理
LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...
随机推荐
- shell基础篇
1. Shell概述 为什么要学习Shell呢? 1)需要看懂运维人员编写的Shell程序. 2)偶尔会编写一些简单Shell程序来管理集群.提高开发效率. 2 .Shell解析器 (1)Linux提 ...
- linux常用终端命令(三)用户和权限
三.用户权限相关命令 用户 和 权限的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 1.用户和权限的基本概念 1.1.基本概念 用户管理包括 用户 与 组 管理 linux系统中 ...
- 切换PHP版本导致Phalcon拓展失效
公司使用PHP的Phalcon框架做后端.Phalcon最大的特点就是底层由C语言实现,使用Phalcon框架必须要安装php_phalcon.dll扩展.之前的是使用PHP7.2的版本,后面考虑性能 ...
- MySQL各大存储引擎
MySQL各大存储引擎: 最好先看下你下的MySQL支持什么数据库引擎 存储引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, ...
- spark教程(八)-SparkSession
spark 有三大引擎,spark core.sparkSQL.sparkStreaming, spark core 的关键抽象是 SparkContext.RDD: SparkSQL 的关键抽象是 ...
- 【动态规划】Mathematical Curse
[来源]:2018年焦作网络赛B [题意]: 有n个数字,有m个符号运算.通过不回头(即选取m个数有顺序可言),消除巫术的,并达到最大的价值. 其实意思就是在数组里选取一段子序列,然后进行m次加减乘除 ...
- X86逆向3:通过修改关键CALL破解
软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...
- 代理、反射、注解、hook
代理 通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象拦截真实对象的方法调用,在真实对象调用前/后实现自己的逻辑调用 这里使用到编程中的一个思想:不 ...
- jenkins转换显示语言为中文简体(jenkins汉化)
jenkins版本2.117 单位使用的jenkins一直是英文版本,有同事建议切换为中文版. 以下过程完成转换. 一.安装插件 主界面-->系统管理-->插件管理-->可选插件 图 ...
- 树莓派安装Firefox+Selenium+geckodriver
相关参考博客[Selenium]Raspbian+Selenium+Firefoxfirefox.geckodriver.exe.selenium-server-standlone版本对应及下载地址树 ...