LVM管理详解手册(LVM创建、LVM扩容、LV减容)
LVM逻辑卷管理是所有运维工程师绕不开的门槛,本文将以为实例方式向大家展示讲解LVM逻辑卷创建、扩容、减容以及常见错误的处理方法。
LVM是 Logical Volume Manager(逻辑卷管理)的简写。LVM可以将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
一、创建LVM
首先使用fdisk命令创建磁盘分区,并将磁盘分区类型转换成8e(Linux LVM类型)
[root@node1 ~]# fdisk /dev/sda //创建8e LVM的分区
欢迎使用 fdisk (util-linux 2.23.2)。
命令(输入 m 获取帮助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-419430399,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-419430399,默认为 419430399):
将使用默认值 419430399
分区 1 已设置为 Linux 类型,大小设为 200 GiB命令(输入 m 获取帮助):p磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf26e2be7设备 Boot Start End Blocks Id System
/dev/sda1 2048 419430399 209714176 83 Linux命令(输入 m 获取帮助):t //修改分区类型
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e //类型修改为LVM
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):p磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf26e2be7设备 Boot Start End Blocks Id System
/dev/sda1 2048 419430399 209714176 8e Linux LVM命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
创建PV盘,VG卷组和LV卷
[root@node1 ~]# pvcreate /dev/sda1 //将lvm分区转换为PV卷Physical volume "/dev/sda1" successfully created.[root@node1 ~]# vgcreate data_vg /dev/sda1 //创建VG卷组Volume group "data_vg" successfully created[root@node1 ~]# lvcreate -l 100%FREE -n data_lv data_vg //创建LV逻辑卷,使用所有data_vg卷组空间Logical volume "data_lv" created.
常用实例:
(1)创建一个指定大小的lv,并指定名字为lv_2
lvcreate -L 2G -n lv_2 vg_1
(2)创建一个占全部卷组大小的lv,并指定名字为lv_3(注意前提是vg并没有创建有lv)
lvcreate -l 100%VG -n lv_3 vg_1
(3)创建一个空闲空间80%大小的lv,并指定名字为lv_4(常用)
lvcreate -l 80%Free -n lv_4 vg_1
二、检查LVM卷
[root@node1 ~]# fdisk -l //查询分区是否转换LVM格式
磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf26e2be7设备 Boot Start End Blocks Id System
/dev/sda1 2048 419430399 209714176 8e Linux LVM磁盘 /dev/mapper/data_vg-data_lv:214.7 GB, 214744170496 字节,419422208 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@node1 ~]# pvs //查询系统当前所有PV卷(pvdisplay可查详情)PV VG Fmt Attr PSize PFree/dev/sda1 data_vg lvm2 a-- <200.00g 0 /dev/vda2 centos lvm2 a-- <49.00g 0
[root@node1 ~]# vgs //查询系统当前所有VG卷组(vgdisplay可查详情)VG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- <49.00g 0 data_vg 1 1 0 wz--n- <200.00g 0
[root@node1 ~]# lvs //查询系统当前所有LV逻辑卷(lvdisplay可查详情)LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <44.00g swap centos -wi-ao---- 5.00g data_lv data_vg -wi-a----- <200.00g
三、格式化挂载逻辑卷
格式化LVM卷
[root@node1 ~]# mkfs.ext4 /dev/mapper/data_vg-data_lv //格式化分区
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
13107200 inodes, 52427776 blocks
2621388 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2199912448
1600 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
设置新创建LVM卷开机默认挂载到/mnt目录(挂载目录自行指定)
[root@node1 ~]# vi /etc/fstab //设置开机自动挂载
/dev/data_vg/data_lv /mnt ext4 defaults 0 0[root@node1 ~]# mount -a //挂载fstab文件内所有记录
[root@node1 ~]# df -h //查询是否挂载成功
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 1.1G 43G 3% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.5M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda1 1014M 143M 872M 15% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/data_vg-data_lv 197G 61M 187G 1% /mnt
四、LVM逻辑卷扩容
[root@test ~]# df -h //扩容前
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/data_vg-data_lv 9.8G 122M 9.1G 2% /mnt[root@test ~]# fdisk -l //新添加/dev/vdc1磁盘,并转换为LVM格式
磁盘 /dev/vdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe23a284f设备 Boot Start End Blocks Id System
/dev/vdc1 2048 20971519 10484736 8e Linux LVM[root@test ~]# pvcreate /dev/vdc1 //创建物理卷[root@test ~]# vgextend data_vg /dev/vdc1 //新物理卷添加到data_vg卷组[root@test ~]# lvextend -l +100%FREE /dev/data_vg/data_lv //逻辑卷扩容Size of logical volume data_vg/data_lv changed from <10.00 GiB (2559 extents) to 19.99 GiB (5118 extents).Logical volume data_vg/data_lv successfully resized#使用df -Th 命令查询lv逻辑卷文件格式。下方命令根据文件系统格式选择一种即可(ext4和xfs二选一)
[root@test ~]# resize2fs /dev/data_vg/data_lv //ext4逻辑卷更新方式
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/data_vg/data_lv is mounted on /data; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/data_vg/data_lv is now 5240832 blocks long.[root@hostname ~]# xfs_growfs /dev/data_vg/data_lv //xfs逻辑卷更新方式
meta-data=/dev/mapper/vg-lv isize=512 agcount=4, agsize=32702464 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=130809856, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=63872, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 130809856 to 262141952
You have mail in /var/spool/mail/root[root@test ~]# df -h //扩容成功
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/data_vg-data_lv 20G 130M 19G 1% /mnt
五、LVM逻辑卷减容
LVM逻辑卷减容存在数据丢失风险,非必要尽量不要执行减容操作。逻辑卷减容时一定要严格按照步骤完成,未完成必要操作前,不要重复执行或修改磁盘容量。
[root@localhost ~]# lvs //查询LVM容量LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Converthome centos -wi-ao---- <39.00g root centos -wi-ao---- 50.00g swap centos -wi-ao---- 10.00g data_lv data_vg -wi-ao---- 4.99t
[root@localhost ~]# umount /data //卸载LVM
[root@localhost ~]# e2fsck -f /dev/data_vg/data_lv //强制检查文件系统正确性
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/data_vg/data_lv: 21/167444480 files (0.0% non-contiguous), 289491332/1339552768 blocks
[root@localhost ~]# resize2fs /dev/data_vg/data_lv 4t //重整文件系统大小至4t,此大小必须小于原LVM容量,大于现有数据容量
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/data_vg/data_lv to 1073741824 (4k) blocks.
The filesystem on /dev/data_vg/data_lv is now 1073741824 blocks long.[root@localhost ~]# lvreduce -L 4t /dev/data_vg/data_lv //lvm减容至4tWARNING: Reducing active logical volume to 4.00 TiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data_vg/data_lv? [y/n]: ySize of logical volume data_vg/data_lv changed from 4.99 TiB (1308157 extents) to 4.00 TiB (1048576 extents).Logical volume data_vg/data_lv successfully resized.
[root@localhost ~]# lvs //查询LVM容量LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Converthome centos -wi-ao---- <39.00g root centos -wi-ao---- 50.00g swap centos -wi-ao---- 10.00g data_lv data_vg -wi-a----- 4.00t
[root@localhost ~]# e2fsck -f /dev/data_vg/data_lv //强制检查文件系统正确性
e2fsck 1.42.9 (28-Dec-2013)
/dev/data_vg/data_lv is mounted.
e2fsck: Cannot continue, aborting.
[root@localhost ~]# vgreduce data_vg /dev/vdd1 //VG减容PV盘(可选)Removed "/dev/vdd1" from volume group "data_vg"
[root@localhost ~]# pvremove /dev/vdd1 //删除PV盘(可选)Labels on physical volume "/dev/vdd1" successfully wiped.
[root@localhost ~]# mount /dev/data_vg/data_lv /data/ //重新挂载LVM卷
六、常用命令
功能 |
物理卷管理 |
卷组管理 |
逻辑卷管理 |
Scan 扫描 |
pvscan |
vgscan |
lvscan |
Create 创建 |
pvcreate |
vgcreate |
lvcreate |
Display 显示 |
pvdisplay |
vgdisplay |
lvdisplay |
Remove 删除 |
pvremove |
vgremove |
lvremove |
Extend 扩展 |
不能扩展 |
vgextend |
lvextend |
Reduce 减容 |
不能减容 |
vgreduce |
lvreduce |
主要命令的语法:
pvcreate 设备名
vgcreate 卷组名 物理卷1 物理卷2
vgreduce 卷组名 物理卷
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
lvreduce -L 减容后容量 /dev/卷组名/逻辑卷名
七、常见问题
7.1 e2fsck: Cannot continue, aborting
报错信息:e2fsck: Cannot continue, aborting
[root@localhost ~]# e2fsck -f /dev/data_vg/data_lv
e2fsck 1.42.9 (28-Dec-2013)
/dev/data_vg/data_lv is mounted.
e2fsck: Cannot continue, aborting.
解决方法:
磁盘减容前需umount卸载LVM卷挂载
7.2 Either the superblock or the partition table is likely to be corrupt!
报错信息:Either the superblock or the partition table is likely to be corrupt!
[root@localhost ~]# e2fsck -f /dev/data_vg/data_lv
e2fsck 1.42.9 (28-Dec-2013)
The filesystem size (according to the superblock) is 1073741824 blocks
The physical size of the device is 1068374016 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? yes
解决方法:
磁盘减容或扩容失败,一般要重新格式化分区才能重新挂载LVM卷,格式化分区数据会丢失
LVM管理详解手册(LVM创建、LVM扩容、LV减容)相关推荐
- [原创] OneThink模型管理详解-10分钟创建一个团队管理后台
本文为原创,根据自己在使用onethink创建web应用时的真实经历撰写而成.请支持本人版权,转载时注明出处.仅为经验分享,不代表权威,不完善不准确之处欢迎纠正,有任何问题可对本文留言. 1.1.1 ...
- 8.Linux的LVM使用详解
8.Linux的LVM使用详解 命令概览:所使用的命令(#代表是数字) pvcreate /dev/sd[xx] vgcreate -s # vgname /dev/sd[] -s 指定PE的大小 ...
- 《Linux命令详解手册》——Linux畅销书作家又一力作
关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...
- 基于Kubernetes构建Docker集群管理详解
from: 基于Kubernetes构建Docker集群管理详解 Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动 ...
- php事件和行为,Yii框架组件和事件行为管理详解
Yii框架组件和事件行为管理详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Yii框架组件和事件行为管理详解.txt ] (友情提示:右键点上行txt文档名- ...
- Linux账号和权限管理详解(超详细示例操作)!
Linux账号和权限管理详解 一.用户账号和组账号概述 1.1 Linux基于用户身份对资源访问进行控制 1.2 用户账号 1.3 组账号 二.用户账号文件 2.1 用户账号文件 /etc/passw ...
- Spring事务管理详解_基本原理_事务管理方式
Spring事务管理详解_基本原理_事务管理方式 1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象 ...
- linux服务器操作系统日志都有哪些,Linux操作系统服务器日志管理详解
Linux操作系统服务器日志管理详解 Linux操作系统服务器日志管理详解 日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下 ...
- Linux用户管理详解大结局(下)
Linux用户管理详解(下) 我们已经可以通过创建不同的用户来防止其他人使用自己的账号,之后每个账户对应一个单独的用户密码,构成了一个基本的用户管理思路.为了方便管理还可以使用组来设置相同属性的用户. ...
最新文章
- 浏览器缓存网站静态文件
- 转载,大佬关于虚拟内存与物理内存关系讲解。
- 多语言互通:谷歌发布实体检索模型,涵盖超百种语言和千万个实体
- CentOS 6.0 VNC远程桌面配置
- EasyUI中Combox组合框的简单使用
- 几个常见的Python面试题,帮助大家更加从容面试!
- CF-477C(Dreamoon and Strings) DP
- How to be a hacker
- 网页文字无法复制解决方法
- 汇编语言-子程序调用
- css属性选择器,[],=, ~=, ^=, ~=, $=, |=等符号含义
- mysql 为什么性能不稳定_浅谈MySQL 数据库性能优化
- Removing Nesting By Returning Early
- 计算机硬盘 安装,电脑新硬盘如何安装系统
- 计算机接口论文摘要,计算机接口技术论文_计算机接口技术
- 算法-经典趣题-爱因斯坦阶梯问题
- SCAU------8615 快乐
- RC522读取NFC Forum Type2 Tag流程及代码解析——Mifare Ultralight卡片读取(采用PHY6212平台,可移植)
- 阅读《精通Python爬虫框架Scrapy》
- 启xin宝app的token算法破解