lvm的基本创建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvm的基本创建相关的知识,希望对你有一定的参考价值。
这篇文章主要讲述lvm的基本术语,以及如何创建lvm。
由于传统分区的乏方式带来的诸多问题:如我们碰到当分区大小不足的时候,只能通过增加新的硬盘,然后对新的硬盘进行分区、格式化后,将之前分区的所有数据都拷贝到新的分区里面,在生产环境,这是不能接受的,对于服务器我们要求7*24小时不间断运行,如果卸载分区,然后拷贝数据,服务势必受到影响,这种损失无法承担;另外,如果分区数据非常多,又会耗费相当长的时间;诸多限制,从而诞生了lvm
LVM: (Logical Volume Manager),逻辑卷管理,可以实现在线调整分区大小。
基本术语
pv(physical volume)-物理卷
可以是一个分区或者一块硬盘,设备名不变,相当于贴标签
vg(Volume Group)- 卷组
由一个或者多个pv组成的一个逻辑空间,设备名自定义,后期可动态添加pv来调整容量大小
lv (Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,即在卷组上划分的一段空间,设备名自定义,可根据卷组的大小实现在线扩展或者缩减
PE (Physical Extend) 物理拓展
PE就是我们逻辑卷管理的最基本单位,默认大小是4M大小,可以在创建卷组的时候自定义大小
LE (logical extent) 逻辑拓展
等同于PE,不过是在逻辑卷中成为LE
工作原理
- 物理磁盘被格式化为PV,空间被划分为一个个的PE
- 将不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
- 在VG上创建LV,本质LV是基于PE创建的,大小为PE的整数倍
- 对LV进行创建文件系统并挂载使用
- LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
管理工具
pv:
查看pv信息:
pvs pvdisplay
创建pv:
pvcreate /dev/DEVICE
vg:
查看vg:
vgs vgdisplay
创建vg:
vgcreate [-s PE size] vgName pvName [pvName...]
管理vg:
vgextend vgName pvName
vgreduce vgName pvName
删除vg:
pvmove————> vgremove
lv:
真设备名:/dev/dm-#
软链接:/dev/mapper/vgName-lvName
/dev/vgName/lvName
查看lv:
lvs lvdisplay
创建lv:
lvcreate -L #[mMgGtT] -n lvName vgName ###直接指定lv大小
lvcreate -l 60%VG -n lvName vgName ###占vg百分比的方式指定lv大小
lvcreate -l 100%FREE -n lvName vgName ###使用vg全部剩余空间指定
删除lv:
lvremove /dev/vgName/lvName
重设文件系统大小:
ext系列:resize2fs [能扩展能缩减]
xfs系列: [只能扩展]
使用lvm
准备工作:
新增两块硬盘或者分区,重启识别;我这里已经提前准备了几块20G的硬盘。
[[email protected] ~ ]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 30G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 8.8G 0 rom
创建pv:
注意:不建议对整个磁盘做PV初始化,建议使用分区(分区id调整为8e)
步骤1:分区并和设置分区类型
对/dev/sdb和/dev/sdc分别划分两个分区,大小为1G和2G
[[email protected] ~ ]#fdisk -l /dev/sd{b,c}
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5250ed1c
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 6293503 2097152 8e Linux LVM
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf15ae421
Device Boot Start End Blocks Id System
/dev/sdc1 2048 2099199 1048576 8e Linux LVM
/dev/sdc2 2099200 6293503 2097152 8e Linux LVM
步骤2:创建pv
[[email protected] ~ ]#pvcreate /dev/sd{b,c}{1,2}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc2" successfully created.
步骤3:查看pv信息
[[email protected] ~ ]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 2.00g 2.00g
/dev/sdc1 lvm2 --- 1.00g 1.00g
/dev/sdc2 lvm2 --- 2.00g 2.00g
[[email protected] ~ ]#pvdisplay
"/dev/sdb2" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name ##显示为空,表示是孤立的设备,不属于任何卷组
PV Size 2.00 GiB
Allocatable NO
PE Size 0 ## PE大小未指定,在创建vg时才能指定
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Gc3f6r-gTjL-aG1w-Rn2P-zYGS-Iw0E-D7D8La ##注意:这里的UUID和文件系统的UUID不同,对比下面的blkid命令发现,已经显示为lvm成员,但是并没有显示文件系统;
[[email protected] ~ ]#blkid
/dev/sda1: UUID="85313710-7117-4f9a-8b4b-a76fb36b7658" TYPE="xfs"
/dev/sda2: UUID="04d49ea8-1c42-4f88-9a0f-cfd5a7dae610" TYPE="xfs"
/dev/sda3: UUID="4e25d8dd-0f3d-40b3-8dc9-99fad70cfbf0" TYPE="xfs"
/dev/sda5: UUID="68f083ae-dcb4-4536-89b8-f5fda10ea7fc" TYPE="swap"
/dev/sdb1: UUID="e1wvwN-y6Sz-tDye-2hPt-3iIq-CShq-mAyxjc" TYPE="LVM2_member"
/dev/sdb2: UUID="Gc3f6r-gTjL-aG1w-Rn2P-zYGS-Iw0E-D7D8La" TYPE="LVM2_member"
/dev/sdc1: UUID="kwKous-XzVG-h9xY-b217-pwWd-yYS7-tycYae" TYPE="LVM2_member"
/dev/sdc2: UUID="kkVrLQ-pQSK-eTzs-aktd-tMWa-ChHk-4qkWES" TYPE="LVM2_member"
/dev/sr0: UUID="2018-05-07-12-53-47-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PT
......
vg创建:
步骤1:
[[email protected] ~ ]#vgcreate vg0 -s 16M /dev/sd{b,c}{1,2} ##-s指定PE大小
Volume group "vg0" successfully created
步骤2:查看vg信息
[[email protected] ~ ]#vgs
VG #PV #LV #SN Attr VSize VFree
vg0 4 0 0 wz--n- <5.94g <5.94g
[[email protected] ~ ]#vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 4
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 4
Act PV 4
VG Size <5.94 GiB
PE Size 16.00 MiB ##PE大小
Total PE 380
Alloc PE / Size 0 / 0 ##已使用的PE
Free PE / Size 380 / <5.94 GiB ##空闲的PE
VG UUID 0PV32k-u0PM-0wh5-VyWR-A5qD-ERXa-2VPEiJ
[[email protected] ~ ]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg0 lvm2 a-- 1008.00m 1008.00m
/dev/sdb2 vg0 lvm2 a-- 1.98g 1.98g
/dev/sdc1 vg0 lvm2 a-- 1008.00m 1008.00m
/dev/sdc2 vg0 lvm2 a-- 1.98g 1.98g
[[email protected] ~ ]#pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg0 ##不再孤立,归属于vg0卷组
PV Size 1.00 GiB / not usable 16.00 MiB
Allocatable yes
PE Size 16.00 MiB ##PE的大小被定义
Total PE 63
Free PE 63
Allocated PE 0
PV UUID e1wvwN-y6Sz-tDye-2hPt-3iIq-CShq-mAyxjc
.......
lv创建:
步骤1:
[[email protected] ~ ]#lvcreate -n lv0 -L 1500M vg0 ## -n指定逻辑卷名称,-L指定大小(K,M,G,T,P,E)
Rounding up size to full physical extent <1.47 GiB
Logical volume "lv0" created.
步骤2:查看lv信息
[[email protected] ~ ]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv0 vg0 -wi-a----- <1.47g
[[email protected] ~ ]#lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0 ## 设备名
LV Name lv0
VG Name vg0
LV UUID HFNlrP-1da7-rdiJ-Jqew-0ym5-Lx0H-twQup5
LV Write Access read/write
LV Creation host, time centos7.localdomain, 2018-08-15 16:31:01 +0800
LV Status available
# open 0
LV Size <1.47 GiB
Current LE 94 ##当前已使用的LE数量(PE在lv中成为LE)
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[[email protected] ~ ]#pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 vg0 lvm2 a-- 1008.00m 1008.00m
/dev/sdb2 vg0 lvm2 a-- 1.98g 528.00m ##即/dev/sdb2参与到lv的创建中
/dev/sdc1 vg0 lvm2 a-- 1008.00m 1008.00m
/dev/sdc2 vg0 lvm2 a-- 1.98g 1.98g
--- Physical volume ---
PV Name /dev/sdb2
VG Name vg0
PV Size 2.00 GiB / not usable 16.00 MiB
Allocatable yes
PE Size 16.00 MiB
Total PE 127
Free PE 33
Allocated PE 94 ##已使用的PE数量为94
PV UUID Gc3f6r-gTjL-aG1w-Rn2P-zYGS-Iw0E-D7D8La
步骤3:格式化
[[email protected] ~ ]#mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96384 inodes, 385024 blocks
19251 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8032 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
步骤4:挂载使用
[[email protected] ~ ]#mkdir test1
[[email protected] ~ ]#mount /dev/vg0/lv0 test1
[[email protected] ~ ]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 52403200 3918996 48484204 8% /
devtmpfs 613144 0 613144 0% /dev
tmpfs 629036 0 629036 0% /dev/shm
tmpfs 629036 18032 611004 3% /run
tmpfs 629036 0 629036 0% /sys/fs/cgroup
/dev/sda3 31441920 1036092 30405828 4% /data
/dev/sda1 1038336 157932 880404 16% /boot
tmpfs 125808 12 125796 1% /run/user/42
tmpfs 125808 0 125808 0% /run/user/0
/dev/mapper/vg0-lv0 1483088 4512 1385188 1% /root/test1
以上是关于lvm的基本创建的主要内容,如果未能解决你的问题,请参考以下文章