Linux磁盘分区管理-LVM回顾
LVM(逻辑分区管理)的几个概念:PV(物理卷),VG(卷组),LV(逻辑卷),PE(物理区域),LE(逻辑区域),其中PV, VG, LV 三者之间的关系如下图 :

物理存储介质:这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(PV):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(VG):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(LV):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
物理区域(PE):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
逻辑区域(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
简单来说就是:
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为是由多个PV组合成的大磁盘。
LV:也就是从VG中划分的逻辑分区
创建LVM逻辑分区:系统中有两块硬盘/dev/sdb , /dev/sdc
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
创建LVM分区步骤:创建 PV >> 创建 VG >> 创建 LV
一: 创建PV阶段:有关PV的几个指令
pvcreate : 将物理分区新建成为pv
pvscan : 查看当前系统里所有的pv
pvdisplay : 列出当前系统的pv状态
pvremove : 删除一个pv
pvs :查看物理卷PV信息
将/dev/sdb , /dev/sdc 创建成PV
[root@file-server ~]# pvcreate /dev/sd{b,c}
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
查看创建的PV
[root@file-server ~]# pvscan
PV /dev/sda2 VG VolGroup lvm2 [14.51 GiB / 0 free] #/dev/sda2是安装系统时创建的
PV /dev/sdb lvm2 [2.00 GiB]
PV /dev/sdc lvm2 [2.00 GiB]
Total: 3 [18.51 GiB] / in use: 1 [14.51 GiB] / in no VG: 2 [4.00 GiB]
二:创建VG阶段:有关VG的几个指令
vgcreate : 创建vg卷组
vgscan : 查看系统是否有VG存在
vgdisplay :查看当前VG状态
vgextend : 拓展vg卷组的容量,新增加额外的 pv
vgreduce : 在vg内删除一个PV
vgchange : 设置VG是否启用
vgremove : 删除一个VG卷组
将上面创建好的/dev/sdb , /dev/sdc 物理卷合并成一个卷组。取名为myvg,指定PE物理单元块为16M
[root@file-server ~]# vgcreate -s 16M myvg /dev/sd{b,c}
Volume group "myvg" successfully created
查看myvg卷组信息
[root@file-server ~]# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 3.97 GiB
PE Size 16.00 MiB
Total PE 254
Alloc PE / Size 0 / 0
Free PE / Size 254 / 3.97 GiB
VG UUID xHz5Gp-VWQP-3qyH-VCCK-NBrG-vYWU-io5dOA
创建好VG卷组后就可以创建LV逻辑卷了,创建LV逻辑卷大小是根据PE为单元块来决定大小的,myvg中一共有254个PE块。
三:创建LV逻辑卷:有关LV的几个指令
lvcreate : 创建lv
lvscan : 查看系统中的LV
lvdisplay :查看当前LV状态
lvextend : 在LV里增加容量
lvreduce : 在LV内减少容量
lvresize : 对LV容量大小进行调整
lvremove : 删除一个LV
lvcreate创建逻辑卷时指定卷大小的方式有4种方式
lvcreate 指令:
后面接 -L 指定分区大小如 M, G,T 等
后面接小写L : -l 指定PE数量
后面接 -n : 指定lv的名称
最后要指定是在哪个VG卷组上,也就是要指VG名称
[root@file-server ~]# lvcreate -l +20 -n lv0 myvg
Logical volume "lv0" created
查看LV,此时fdisk已经可以看到 lv0 的分区信息
[root@file-server ~]# lvscan
ACTIVE '/dev/myvg/lv0' [320.00 MiB] inherit
[root@file-server ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg/lv0
LV Name lv0
VG Name myvg
LV UUID NITm8c-wGYW-4Mmp-oCFC-8VjX-qULm-v395WT
LV Write Access read/write
LV Creation host, time file-server, 2018-04-26 19:47:35 +0800
LV Status available
# open 0
LV Size 320.00 MiB
Current LE 20
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
给lv0创建文件系统
[root@file-server ~]# mkfs -t ext4 /dev/myvg/lv0
挂载测试
查看分区的UID号
[root@file-server ~]# blkid
... ...
/dev/mapper/myvg-lv0: UUID="38620ff3-6617-4ba5-9fa8-b34845b4f1a1" TYPE="ext4"
添加开机自动挂载
vim /etc/fstab
#加入下行
UUID=38620ff3-6617-4ba5-9fa8-b34845b4f1a1 /mnt/LVM ext4 defaults 0 0
#重新挂载
[root@file-server ~]# mount -a
[root@file-server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 13G 11G 1.9G 85% /
tmpfs 496M 0 496M 0% /dev/shm
/dev/sda1 477M 37M 411M 9% /boot
/dev/mapper/myvg-lv0 302M 2.1M 280M 1% /mnt/LVM
扩容lv0空间
将/dev/myvg/lv0 容量再加一倍,方法一:使用lvextend
[root@file-server ~]# lvextend -l +20 -n /dev/myvg/lv0
Extending logical volume lv0 to 640.00 MiB
Logical volume lv0 successfully resized
扩容后分区大小没有改变,要执行resize2fs指令重读分区
[root@file-server ~]# resize2fs /dev/myvg/lv0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/lv0 is mounted on /mnt/LVM; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 3
Performing an on-line resize of /dev/myvg/lv0 to 655360 (1k) blocks.
The filesystem on /dev/myvg/lv0 is now 655360 blocks long.
#再查看分区大小
[root@file-server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 13G 11G 1.9G 85% /
tmpfs 496M 0 496M 0% /dev/shm
/dev/sda1 477M 37M 411M 9% /boot
/dev/mapper/myvg-lv0 612M 2.3M 577M 1% /mnt/LVM
方法二:使用 lvresize 再加一次空间
[root@file-server ~]# lvresize -l +20 /dev/myvg/lv0
Extending logical volume lv0 to 960.00 MiB
Logical volume lv0 successfully resized
You have new mail in /var/spool/mail/root
#重读磁盘
[root@file-server ~]# resize2fs /dev/myvg/lv0
缩减lv0空间
缩小空间前要取消挂载分区:
[root@file-server ~]# umount /dev/myvg/lv0
使用 resize2fs 缩小文件系统空间,( 现有2.4G大小,减到2G)
[root@file-server ~]# resize2fs /dev/myvg/lv0 2G
resize2fs 1.41.12 (17-May-2010)
请先运行 'e2fsck -f /dev/myvg/lv0'.
[root@file-server ~]# e2fsck -f /dev/myvg/lv0
[root@file-server ~]# resize2fs /dev/myvg/lv0 2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/lv0 to 524288 (4k) blocks.
The filesystem on /dev/myvg/lv0 is now 524288 blocks long.
[root@file-server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 13G 11G 1.9G 85% /
tmpfs 496M 0 496M 0% /dev/shm
/dev/sda1 477M 37M 411M 9% /boot
/dev/mapper/myvg-lv0 2.0G 3.7M 1.8G 1% /mnt/LVM
缩小后的逻辑卷并没有真正释放空间:如果不释放则一直在lv0中,缩减下的空间别会一直闲置,应该释放
[root@file-server ~]# lvdisplay
--- Logical volume ---
... ...
LV Size 2.41 GiB
Current LE 154
... ...
#LE的大小为154,空间没有释放出去
要想在彻底释放掉缩小的空间,需要释放 lv0 的PE,使用lvreduce来缩减逻辑卷空间
[root@file-server ~]# lvreduce -L 2G /dev/myvg/lv0
WARNING: Reducing active logical volume to 2.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 2.00 GiB
Logical volume lv0 successfully resized
再查看lv0 PE 大小
[root@file-server ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg/lv0
... ...
LV Size 2.00 GiB
Current LE 128
【缩小逻辑卷空间会丢失原有数据,操作比较危险】
VG 卷组的伸缩;扩容
扩容VG卷组的过程为 :创建PV >> 将创建好的PV添加到卷组中
再使用两块新硬盘 /dev/sdd , /dev/sde ,将两块硬盘容量加到myvg卷组中
创建PV
[root@file-server ~]# pvcreate /dev/sd{d,e}
Physical volume "/dev/sdd" successfully created
Physical volume "/dev/sde" successfully created
新建的PV添加到myvg卷组
[root@file-server ~]# vgextend myvg /dev/sdd /dev/sde
Volume group "myvg" successfully extended
You have new mail in /var/spool/mail/root
#可以看到myvg卷组大小已经改变了
[root@file-server ~]# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 23
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 7.94 GiB
PE Size 16.00 MiB
Total PE 508
Alloc PE / Size 128 / 2.00 GiB
Free PE / Size 380 / 5.94 GiB
VG UUID xHz5Gp-VWQP-3qyH-VCCK-NBrG-vYWU-io5dOA
VG卷组的缩小
缩小VG卷组只要将VG卷组中的PV删掉即可
查看当前pv信息执行pvs
[root@file-server ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 14.51g 0
/dev/sdb myvg lvm2 a-- 1.98g 0
/dev/sdc myvg lvm2 a-- 1.98g 1.97g
/dev/sdd myvg lvm2 a-- 1.98g 1.98g
/dev/sde myvg lvm2 a-- 1.98g 1.98g
注意:卷组缩小空间,一定要要卷组的空闲空间大小大于删除的物理卷的空间大小
把/dev/sdb 磁盘腾出来,由于sdb磁盘可能存有数据,需要把数据移到其他PV中
[root@file-server ~]# pvmove /dev/sdb
/dev/sdb: Moved: 3.1%
/dev/sdb: Moved: 100.0%
删除myvg卷组中的/dev/sdb物理卷,执行指令如下
[root@file-server ~]# vgremove myvg /dev/sdb
Do you really want to remove volume group "myvg" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
Volume group "myvg" successfully removed
Volume group "sdb" not found
Skipping volume group sdb
Linux磁盘分区管理-LVM回顾的更多相关文章
- Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk
fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...
- Linux磁盘分区与lvm逻辑卷
硬盘接口的种类分四类:(价格由低到高) IDE SATA硬盘:别名串口硬盘,具有较强的纠错能力. SCSI硬盘:即采用SCSI接口的硬盘,SCSI接口具有应用范围广,多任务,带宽大,CPU占用率低. ...
- Linux 磁盘分区管理
Linux 磁盘管理进阶 磁盘分区介绍 基本分区(primary partion) 基本分区也称主分区,引导分区.每块磁盘分区主分区与扩展分区加起来不能大于四个. 基本分区创建后可以立即使用,但是有分 ...
- Linux磁盘分区管理
1.分区步骤 fdisk -l 查看系统中的磁盘 fdisk /dev/vdb ...
- Lvm linux磁盘分区管理(多个分区合并成一个)
备份# rsync -avP -e ssh /data qqmap@10.173.139.100:/data1/qqmap/backup/10.234.22.143卸载# umount /data / ...
- Linux 磁盘分区修改与管理
--Linux 磁盘分区修改与管理 -----------------------------2014/03/05 1. 目的,将磁盘卷/dev/cciss/c0d0p8修改成新的用途. 原: /de ...
- linux逻辑卷管理 (LVM)(转)
1.什么是 LVM LVM 是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux 环境下对磁盘分区进行管理的一种机制,LVM 是建立在硬盘和分区之上的一个逻辑层,来为 ...
- Linux磁盘管理和lvm
磁盘管理 硬盘接口和硬盘种类 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而SAS ...
- Linux磁盘系统——管理磁盘的命令
Linux磁盘系统——管理磁盘的命令 摘要:本文主要学习了Linux系统中管理磁盘的命令,包括查看磁盘使用情况.磁盘挂载相关.磁盘分区相关.磁盘格式化等操作. df命令 df命令用于显示Linux系统 ...
随机推荐
- 只有PC端的报表工具使用太不方便了!有没有好用的手机报表app?
马上到年底了,签订的销售合同需尽快回款,销售经理此时正在下午出差的出租车上,通过手中的手机他查看了一下今天的回款报表 项目已经进行到了关键期,项目经理正在奔赴项目城市的高铁列车上,项目今天的进度报表已 ...
- 第一次接触数据库(SQLite)
第一次接触,学了创建列表 + 行的删除 + 内容的更改 + 删除列表 第一次接触要知道一些基本知识 NULL(SQL) = Nnoe(python) #空值 INTEGER = int #整数 R ...
- 常用windows快捷键及cmd、dos命令
Windows常用快捷键 #Alt+F4:关闭窗口.网页 #ctrl+C:复制 #ctrl+V:粘贴 #ctrl+X:剪切 #ctrl+Z:撤销 #ctrl+A:全选 #ctrl+S:保存 #shif ...
- 【C#操作符】typeof 和 is 运算符执行的类型检查之间的差异
typeof 运算符也能用于公开的泛型类型.具有不止一个类型参数的类型的规范中必须有适当数量的逗号.不能重载 typeof 运算符. is 可以检测和父类是否兼容,typeof责不能 public c ...
- ElasticSearch学习笔记(详细)
目录 ElasticSearch概述 ElasticSearch入门 安装 基本操作 查看es相关信息 索引操作 文档操作 bulk批量API 进阶检索 Search API Query DSL 分词 ...
- 小记:音频格式转化ByPython(下)
上文中我们已经大致明白了pydub库的使用方法,今天的目标是写个爬虫爬取歌曲信息. 关于网络爬虫,Python的标准库里是有相应的包的,可以直接打开:https://docs.python.org/z ...
- 浏览器无插件播放rtsp流解决方案
1. 安装 FFmpeg 参考 CentOS下安装FFmpeg,特别详细. 我遇到的错误和解决办法: 缺少lame ffmpeg+libmp3lame库源码安装教程(CentOS) make ffmp ...
- Qt:Qt资源系统
学习自 Qt 资源系统(Qt Resource System) - 知乎 1.什么是Qt 资源系统 Qt资源系统是一种将图片.数据存储于二进制文件中的一套系统.这些图片.数据会被我们的程序使用,它们称 ...
- One-Hot编码(转)
机器学习:数据预处理之独热编码(One-Hot) 前言 ---------------------------------------- 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女 ...
- JZ-047-求 1+2+3+...+n
标题 求 1+2+3+...+n 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 题目链接: 求 1+2 ...