每天一个新知识之Linux的LVM逻辑卷管理
一、什么是LVM逻辑卷
1、什么是逻辑卷
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。注意/boot分区不能基于LVM创建,必须独立出来。
2、关于逻辑卷的几个概念
- PE (Physical Extend)物理拓展
PE是用来保存数据的最小单元,数据实际上都是写入PE,PE的大小是可以配置的,默认是4MB。
- PV (Physical Volume)物理卷
PV是物理硬盘或物理分区。
- VG (Volume Group)卷组
VG是卷组,有多个物理卷组成,这些物理卷可以是同一个硬盘的不同分区也可以是不同硬盘上的不同分区,可以理解为一个逻辑分区。
- LV (Logical Volume)逻辑卷
卷组是一个逻辑硬盘,硬盘必须分区之后才能使用,这个分区我们称为逻辑卷。逻辑卷是可以格式化和读写的。
3、如何建立LVM
对物理硬盘进行分区(也可以是整块物理硬盘)
建立物理卷(PV)
把物理卷整合为卷组(VG)
把卷组划分为逻辑卷(LV)
4、相关命令
pvcreate
pvcreate用于建立物理卷,命令格式为:
pvcreate [设备文件名称]
pvscan
pvscan用于查看系统中是否有物理卷。
pvdisplay
pvdisplay用于查看物理卷详细状态。
pvremove
pvremove用于删除物理卷,命令格式为:
pvremove [物理卷名称]
vgcreate
vgcreate用于创建物理卷组,命令格式为:
vgcreate [选项] [卷组名] [物理卷名]
常用选项 说明 -s 用于指定PE大小 vgscan
vgscan用于查看系统中是否有卷组。
vgdisplay
vgdisplay用于查看卷组的详细状态
vgextend
vgextend用于扩展卷组容量,命令格式为:
vgextend [卷组名] [物理卷名]
vgreduce
vgreduce用于缩减卷组容量,命令格式为:
vgreduce [卷组名] [物理卷名]
vgremove
vgremove 用于删除卷组,命令格式为:
vgremove [卷组名]
lvcreate
lvcreate用于创建逻辑卷,命令格式为:
lvcreate [选项] [-n 逻辑卷名] [卷组名]
常用选项 说明 -n <逻辑卷名> 指定逻辑卷名 -l <个数> 按照PE个数指定逻辑卷大小,但是需要进行容量换算 -L <容量> 指定逻辑卷大小,单位MB、GB、TB等 lvscan
lvscan用于查看系统中是否有逻辑卷。
lvdisplay
lvdisplay用于查看逻辑卷的详细状态。
lvresize
lvresize用于调整逻辑卷大小,命令格式为:
lvresize [选项] [逻辑卷设备文件名] #选项与lvcreate类似,使用+代表增加空间,使用-代表减少空间,直接指定数值代表设定逻辑卷大小为指定的数值
resize2fs
resize2fs用于调整分区大小,命令格式为:
resize2fs [选项] [设备文件名] [新大小] #常用选项为-f,强制调整
lvremove
lvremove用于删除逻辑卷,执行删除操作前请现将逻辑卷卸载。
二、创建逻辑卷ulv
1、对物理硬盘进行分区
操作之前已经增加了一块20G的硬盘,并使用fdisk对硬盘分了四个分区,分别为sdb1,sdb2,sdb3,sdb4。
[root@localhost ~]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x000ef1e2Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 281 2048000 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3 281 412 1048576 82 Linux swap / Solaris
Partition 3 does not end on cylinder boundary.
/dev/sda4 412 2611 17669120 5 Extended
/dev/sda5 412 2611 17668096 83 LinuxDisk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x5049f506Device Boot Start End Blocks Id System
/dev/sdb1 1 600 4819468+ 83 Linux
/dev/sdb2 601 1200 4819500 83 Linux
/dev/sdb3 1201 1800 4819500 83 Linux
/dev/sdb4 1801 2610 6506325 83 Linux
2、建立物理卷
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4 Physical volume "/dev/sdb1" successfully createdPhysical volume "/dev/sdb2" successfully createdPhysical volume "/dev/sdb3" successfully createdPhysical volume "/dev/sdb4" successfully created[root@localhost ~]# pvscan #查看系统中的物理卷PV /dev/sdb1 lvm2 [4.60 GiB]PV /dev/sdb2 lvm2 [4.60 GiB]PV /dev/sdb3 lvm2 [4.60 GiB]PV /dev/sdb4 lvm2 [6.20 GiB]Total: 4 [19.99 GiB] / in use: 0 [0 ] / in no VG: 4 [19.99 GiB]
[root@localhost ~]# pvdisplay #查看物理卷详细状态"/dev/sdb1" is a new physical volume of "4.60 GiB"--- NEW Physical volume ---PV Name /dev/sdb1VG Name PV Size 4.60 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID B4cReu-dIAR-miFw-n3Rl-FNFg-Zlfa-MAVaXO"/dev/sdb2" is a new physical volume of "4.60 GiB"--- NEW Physical volume ---PV Name /dev/sdb2VG Name PV Size 4.60 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID 2N237g-z8B3-oN3T-9W11-5Y4E-Q3XB-KHXSso"/dev/sdb3" is a new physical volume of "4.60 GiB"--- NEW Physical volume ---PV Name /dev/sdb3VG Name PV Size 4.60 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID cyS3GB-FhsD-ca5z-pz9q-hFV7-KT8V-iMMB3I"/dev/sdb4" is a new physical volume of "6.20 GiB"--- NEW Physical volume ---PV Name /dev/sdb4VG Name PV Size 6.20 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID YBsq9M-HMP4-V170-7RHs-0yfH-YwE0-JFBg4k#如需删除物理卷需要使用pvremove命令
#例如,删除/dev/sdb4
#pvremove /dev/sdb4
3、建立卷组
[root@localhost ~]# vgcreate -s 8MB uvg /dev/sdb1 /dev/sdb2 /dev/sdb3 Volume group "uvg" successfully created
[root@localhost ~]# vgscan #查看系统中的卷组Reading all physical volumes. This may take a while...Found volume group "uvg" using metadata type lvm2
[root@localhost ~]# vgdisplay #查看卷组详细状态--- Volume group ---VG Name uvgSystem ID Format lvm2Metadata Areas 3Metadata Sequence No 1VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 3Act PV 3VG Size 13.78 GiBPE Size 8.00 MiBTotal PE 1764Alloc PE / Size 0 / 0 Free PE / Size 1764 / 13.78 GiBVG UUID 9WTfdw-7KIu-cABA-iQsq-QPc1-s1e0-sn91Iv
[root@localhost ~]# vgextend uvg /dev/sdb4 #扩展卷组容量Volume group "uvg" successfully extended
[root@localhost ~]# vgdisplay --- Volume group ---VG Name uvgSystem ID Format lvm2Metadata Areas 4Metadata Sequence No 2VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 4Act PV 4VG Size 19.98 GiBPE Size 8.00 MiBTotal PE 2558Alloc PE / Size 0 / 0 Free PE / Size 2558 / 19.98 GiBVG UUID 9WTfdw-7KIu-cABA-iQsq-QPc1-s1e0-sn91Iv#缩减卷组容量#vgreduce uvg /dev/sdb4#删除卷组#vgremove uvg
4、建立逻辑卷
[root@localhost ~]# lvcreate -L 5G -n ulv uvg #再卷组uvg中新建逻辑卷ulv大小5GLogical volume "ulv" created.
[root@localhost ~]# mkfs
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat
[root@localhost ~]# mkfs -t ext4 /dev/uvg/ulv #格式化逻辑卷ulv
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /disk_lv #创建逻辑卷挂载点/disk_lv
[root@localhost ~]# mount /dev/uvg/ulv /disk_lv/ #挂在逻辑卷ulv到/disk_lv
[root@localhost ~]# mount
/dev/sda5 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda2 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/uvg-ulv on /disk_lv type ext4 (rw) #挂在成功[root@localhost ~]# lvscan #查看系统中的逻辑卷ACTIVE '/dev/uvg/ulv' [5.00 GiB] inherit
[root@localhost ~]# lvdisplay #查看逻辑卷详细状态--- Logical volume ---LV Path /dev/uvg/ulvLV Name ulvVG Name uvgLV UUID F18DlR-zdID-X2Oj-DWs0-KT4c-kfvO-OuTcoXLV Write Access read/writeLV Creation host, time localhost.localdomain, 2020-06-17 17:53:30 +0800LV Status available# open 1LV Size 5.00 GiBCurrent LE 640Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0#在/disk_lv中建立测试文件testfile在对逻辑卷ulv进行扩容验证文件是否会丢失
[root@localhost ~]# dd if=/dev/zero of=/disk_lv/testfile bs=1M count=10
记录了10+0 的读入
记录了10+0 的写出
10485760字节(10 MB)已复制,0.0181527 秒,578 MB/秒
[root@localhost ~]# ls /disk_lv/
lost+found testfile
[root@localhost ~]# ls /disk_lv/
lost+found testfile
[root@localhost ~]#
[root@localhost ~]# lvre
lvreduce lvremove lvrename lvresize
[root@localhost ~]# lvre
lvreduce lvremove lvrename lvresize
[root@localhost ~]# lvresize -L 10G /dev/uvg/ulv #改变逻辑卷大小为10GSize of logical volume uvg/ulv changed from 5.00 GiB (640 extents) to 10.00 GiB (1280 extents).Logical volume ulv successfully resized
[root@localhost ~]# lvdisplay --- Logical volume ---LV Path /dev/uvg/ulvLV Name ulvVG Name uvgLV UUID F18DlR-zdID-X2Oj-DWs0-KT4c-kfvO-OuTcoXLV Write Access read/writeLV Creation host, time localhost.localdomain, 2020-06-17 17:53:30 +0800LV Status available# open 1LV Size 10.00 GiBCurrent LE 1280Segments 2Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0
[root@localhost ~]# df -h /disk_lv/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/uvg-ulv 4.8G 20M 4.6G 1% /disk_lv#虽然逻辑卷大小已经改变了,但是分区大小未改变,需要在调整下分区大小
[root@localhost ~]# resize2fs /dev/uvg/ulv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/uvg/ulv is mounted on /disk_lv; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/uvg/ulv to 2621440 (4k) blocks.
The filesystem on /dev/uvg/ulv is now 2621440 blocks long.[root@localhost ~]# df -h /disk_lv/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/uvg-ulv 9.8G 22M 9.2G 1% /disk_lv#验证下之前创建的文件
[root@localhost ~]# ls /disk_lv/
lost+found testfile#删除逻辑卷
#umount /dev/uvg/ulv #删除前需要先卸载
#lvremo /dev/uvg/ulv #删除逻辑卷
每天一个新知识之Linux的LVM逻辑卷管理相关推荐
- Linux中LVM(逻辑卷管理)的使用
Linux 中我们使用fdisk命令划分好的分区就不能随意的改变,如果不够用的话不可能说把硬盘上的所有数据拷贝后再重新分区,这样可能会导致数据损坏.而在linux中LVM(逻辑卷管理)就可以实现动态的 ...
- linux之LVM逻辑卷管理-模拟环境的实战练习
前言:学习之余,做点笔记,以便后期参阅. 环境介绍: 1.基于虚拟机搭建的centos7.9 2.新增两块磁盘, /dev/sdb 20GB /dev/sdc 10GB 3.新增两个目录 /data1 ...
- linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结
物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...
- Linux常用命令(八)LVM逻辑卷管理
Linux常用命令(八)LVM逻辑卷管理 一.LVM概述 LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下 ...
- Android逻辑卷管理LVM,LINUX——LVM逻辑卷管理
LVM: logical volumes manager LVM逻辑卷部署 物理卷->卷组->逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...
- Linux如何查看LV的容量情况,LVM 逻辑卷管理器-增大LV容量
LVM 逻辑卷管理器-增大LV的容量 步骤: (1)新增一个8e systemID的分区: (2)用pvcreate命令构建PV: (3)用vgextend命令将PV加入vg_1: (4)用lvres ...
- linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作
LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...
- Linux LVM逻辑卷管理及扩容(二)
四.LVM扩展逻辑卷 我们当如何对lvm扩容呢,在vg组有空余的空间时,可以lvextend增加空间:在vg组无空间时,可以通过先增加pv,再lvextend实现扩容 点击(此处)折叠或打开 [roo ...
- RHEL磁盘阵列与LVM逻辑卷管理器
磁盘阵列和逻辑管理器 本篇博客和各位聊聊关于linux系统中的相关磁盘阵列和逻辑管理器,都是涉及到硬件方面的操作.那我们为什么需要使用LVM以及配置RAID呢? 一般在公司中服务器需要保证数据的安全性 ...
最新文章
- 火狐浏览器 firebug调试不能载入javascript
- mysql视图的简介_mysql视图简介
- 编程中函数的返回值的定义问题的解决
- 【BZOJ 4170】 4170: 极光 (CDQ分治)
- 曾以为只能拿8K,22届学弟字节校招心路历程
- Linux 命令之 pwconv -- 开启用户的投影密码
- 【APICloud系列|11】使用APPuploader申请ios开发证书及ios发布证书教程
- java布类型的常量,java数据类型;常量与变量;
- 自己工资自己算,策略设计模式(Strategy)
- 最大后验估计与共轭分布
- Gerrit修改前一次提交的方法
- linux 互斥锁优先级反转,互斥锁陷阱:优先级反转、死锁
- 计算机专业刊头,如何自己动手做电子报纸?
- Android补间动画原理介绍
- linux下openvpn服务搭建
- Cocos2d-x 2.0 百例精讲:如何让一个精灵跟随触点移动
- ubuntu下的opencv下载编译安装
- 字节跳动-数据分析-实习面经
- PCI DSS合规性审核认证服务
- 微信公众号开发整理(一)所有微信资料整理参考慕课网学习而得