Linux学习笔记之LVM基本应用,扩展及缩减实现
0x00 LVM概述
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
0x01 LVM架构
0x02 LVM创建
# 磁盘分区,模拟创建物理磁盘过程
[root@cdcjtx-centos-001 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+3G
分区 1 已设置为 Linux 类型,大小设为 3 GiB 命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+4G
分区 2 已设置为 Linux 类型,大小设为 4 GiB 命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (14682112-41943039,默认为 14682112):
将使用默认值 14682112
Last 扇区, +扇区 or +size{K,M,G} (14682112-41943039,默认为 41943039):+2G
分区 3 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):w
The partition table has been altered! Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@cdcjtx-centos-001 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc950dffb 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 8e Linux LVM
/dev/sdb2 6293504 14682111 4194304 8e Linux LVM
/dev/sdb3 14682112 18876415 2097152 8e Linux LVM 命令(输入 m 获取帮助):q
# 创建PV
[root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@cdcjtx-centos-001 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 3.00g 3.00g
/dev/sdb2 lvm2 --- 4.00g 4.00g
/dev/sdb3 lvm2 --- 2.00g 2.00g
# 创建PE大小为12M,名称为TESTvg的逻辑卷组
[root@cdcjtx-centos-001 ~]# vgcreate -s 12M TESTvg /dev/sdb1 /dev/sdb2 /dev/sdb3
Volume group "TESTvg" successfully created
[root@cdcjtx-centos-001 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
TESTvg 3 0 0 wz--n- <8.98g <8.98g
centos 1 2 0 wz--n- <19.00g 0
# 创建大小为4G,名为TESTlv的逻辑分区
[root@cdcjtx-centos-001 ~]# lvcreate -L 4G -n TESTlv TESTvg
Rounding up size to full physical extent <4.01 GiB
Logical volume "TESTlv" created.
[root@cdcjtx-centos-001 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
TESTlv TESTvg -wi-a----- <4.01g
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
格式化分区和数据准备,准备数据便于后面的数据完整性测试
# 格式化分区为ext4类型,并挂载到/users目录下,将目录/etc/pam.d 复制到/users目录下
[root@cdcjtx-centos-001 ~]# mkfs.ext4 /dev/TESTvg/TESTlv
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
263472 inodes, 1053696 blocks
52684 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1080033280
33 block groups
32768 blocks per group, 32768 fragments per group
7984 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 [root@cdcjtx-centos-001 ~]# partprobe // 在不重新启动机器的情况下系统能够识别这些分区
[root@cdcjtx-centos-001 ~]# mount /dev/TESTvg/TESTlv /users/
[root@cdcjtx-centos-001 ~]# cp -R /etc/pam.d/ /users/
[root@cdcjtx-centos-001 ~]# ls -l /users/
总用量 20
drwx------ 2 root root 16384 5月 13 16:27 lost+found
drwxr-xr-x 2 root root 4096 5月 13 16:29 pam.d
LVM扩展
# 为TESTlv新增加2G容量,并验证数据完整度 [root@cdcjtx-centos-001 ~]# lvextend -L +2G /dev/TESTvg/TESTlv # 扩展物理边界
Rounding size to boundary between physical extents: 2.00 GiB.
Size of logical volume TESTvg/TESTlv changed from <4.02 GiB (343 extents) to 6.02 GiB (514 extents).
Logical volume TESTvg/TESTlv successfully resized. [root@cdcjtx-centos-001 ~]# resize2fs /dev/TESTvg/TESTlv # 扩展逻辑边界
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/TESTvg/TESTlv is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/TESTvg/TESTlv is now 1579008 blocks long. [root@cdcjtx-centos-001 ~]# ls -l /users/ #数据校验
总用量 20
drwx------ 2 root root 16384 5月 13 16:27 lost+found
drwxr-xr-x 2 root root 4096 5月 13 16:29 pam.d
LVM缩减
# 将TESTlv缩减到2G大小,并校验数据完整性!
# 这里采用ext4作为文件系统类型
# 先卸载物理文件系统->文件系统的强制检测和修复->缩减逻辑边界->缩减物理边界->重新挂载 [root@cdcjtx-centos-001 ~]# umount /dev/TESTvg/TESTlv # 卸载物理文件系统 [root@cdcjtx-centos-001 ~]# e2fsck -f /dev/TESTvg/TESTlv # 文件系统的强制检测和修复
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/TESTvg/TESTlv: 67/391216 files (0.0% non-contiguous), 61501/1579008 blocks [root@cdcjtx-centos-001 ~]# resize2fs /dev/TESTvg/TESTlv 2G # 缩减逻辑边界为2G大小
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/TESTvg/TESTlv to 524288 (4k) blocks.
The filesystem on /dev/TESTvg/TESTlv is now 524288 blocks long. [root@cdcjtx-centos-001 ~]# lvreduce -L 2G /dev/TESTvg/TESTlv # 缩减物理边界为2G大小
Rounding size to boundary between physical extents: 2.00 GiB.
WARNING: Reducing active logical volume to 2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce TESTvg/TESTlv? [y/n]: y # 确认执行,注意风险性
Size of logical volume TESTvg/TESTlv changed from 6.02 GiB (514 extents) to 2.00 GiB (171 extents).
Logical volume TESTvg/TESTlv successfully resized. [root@cdcjtx-centos-001 ~]# mount /dev/TESTvg/TESTlv /users/ #重新挂载 [root@cdcjtx-centos-001 ~]# ls -l /users/ #数据查看
总用量 20
drwx------ 2 root root 16384 5月 13 16:27 lost+found
drwxr-xr-x 2 root root 4096 5月 13 16:29 pam.d
删除LVM卷案例
[root@cdcjtx-centos-001 ~]# umount /users/ [root@cdcjtx-centos-001 ~]# lvremove /dev/TESTvg/TESTlv
Do you really want to remove active logical volume TESTvg/TESTlv? [y/n]: y
Logical volume "TESTlv" successfully removed [root@cdcjtx-centos-001 ~]# vgremove TESTvg
Volume group "TESTvg" successfully removed [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped. [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped. [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb3
Labels on physical volume "/dev/sdb3" successfully wiped. [root@cdcjtx-centos-001 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0 [root@cdcjtx-centos-001 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0 [root@cdcjtx-centos-001 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
Linux学习笔记之LVM基本应用,扩展及缩减实现的更多相关文章
- Linux学习笔记(4)磁盘分区(fdisk)、挂载与文件系统命令
Linux学习笔记(4)磁盘分区(fdisk).挂载与文件系统命令 1.磁盘分区是怎么表示的? 1.1 对于IDE接口,第一主盘为hda,第1从盘为hdb,第1从盘的第1个分区为hdb1 1.2 对于 ...
- deepin linux学习笔记
目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...
- Linux 学习笔记之超详细基础linux命令 Part 11
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 7
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6----------------- ...
- Intel® Media SDK Media Samples Linux 学习笔记(转)
最近折腾intel media sdk,主要硬件平台是在HD4600的核显上进行测试,intel media sdk是intel提供的一种基于核显的硬件编解码的解决方案,之前已经有使用ffmpeg进行 ...
- Linux学习笔记之 Btrfs文件系统简介及使用
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...
- Linux学习笔记——管道PIPE
管道:当从一个进程连接数据流到另一个进程时,使用术语管道(pipe).# include <unistd.h> int pipe(int filedes[2]); //创建管道 pipe( ...
- Linux 学习笔记 1 使用最小的系统,从分区安装系统开始
我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习 ...
- linux 学习笔记一
Linux 学习笔记一 计算机 主要分为五个部分:控制器,运算器,存储器,输入设备,输出设备. 操作系统 操作系统就是针对硬件编写的程序,同时提供硬件接口调用的接口.操作系统需要处理如管理与配置内存. ...
随机推荐
- open_basedir restriction in effect
vim /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_ro ...
- List转换数组 数组转换List
数组转List package listtoArray; import java.util.ArrayList;import java.util.Arrays;import java.util.Col ...
- 阿里云查看本服务器 公网ip地址 命令
阿里云的服务器用命令ifconfig查看的是本机内网地址 那如何访问公网地址呢? curl httpbin.org/ip
- 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列
原文:https://mp.weixin.qq.com/s/lpsQ3dEZHma9H0V_mcxuTw 一.资料文档 二.开发语言 三.支持的协议 四.消息存储 五.消息事务 六.负载均衡 七.集群 ...
- matplotlib---画等高线
contour - 绘制等高线 mp.contour(x, y, z, 等高线条数,colors=颜色, linewidth=线宽)#等高线绘制 contourf - 填充等高线 mp.contour ...
- python脚本测试websocket接口协议
import websocket url = 'wss://host:port/rt/tr' #websocket连接地址 ws = websocket.create_connection(url) ...
- opencart按重量配送如何设置
OpenCart中基于重量的配送模块让你使用自己的价格折算表来决定配送价格.可以基于不同的重量允许设置价格范围,重量和价格的格式如下:weight(重量1):cost(价格1), weight(重量2 ...
- js冒泡排序,快速排序,插入排序
//冒泡排序 function sortBubble(array){ var len=array.length,i,j,tmp; for(i=len-1;i>=1;i--){ ...
- 【oracle】处理锁表
查询锁表 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session swhe ...
- Mongo DB 下载安装
目录 1.下载MongoDB 2.启动MongoDB 3.添加环境变量,添加启动服务 4.MongoDB操作 1.创建用户以及权限控制: 1.下载MongoDB MongoDB的官网 简单下载方法 w ...