目录
一、什么是LVM
物理卷(physical volume,PV) :
卷组(volume group,VG):
逻辑卷(logical volume,LV):
PE:
LE:
二、LVM常用命令
lvm相关查看命令
三、创建LVM实验流程:(Centos7.X )
1.创建PV(物理卷):
2.创建VG(卷组):
3.创建LV逻辑卷:
四、LVM逻辑卷扩容:(动态)
1、查看VG(卷组可用空间)
2.给lv扩展并查看空间大小变化
3.xfs-growfs 重新识别磁盘物理边界(重新识别大小)
五、lvm减缩(非动态)
1.卸载
2.缩减
3.格式化
4.重新挂载
六、LVM逻辑卷删除
1.依次删除
2.删除单个逻辑卷
七、LVM快照
LVM快照原理:
新建快照区为什么有文件:
创建lvm
建立快照(默认lvm分区)
安装SSM工具
LVM是Linux下对磁盘分区进行管理的一种工具,适合管理大存储设备,并允许用户动态调整文件系统的大小。在使用LVM逻辑卷之前我们要先了解逻辑卷管理中的一些概念:
如图,五块硬盘组成LVM的底层结构。这五块硬盘的大小和型号可以不同。
是LVM最底层的概念,是LVM的逻辑的存储块,物理卷于磁盘分区是逻辑对应的关系。
多个物理卷可以合并或拆分,从而实现容量的扩容或者缩减。
LVM提供了 命令工具可以把分区转化为物理卷,通过组合物理卷得方式生成卷组
卷组是LVM逻辑上得设备,由物理卷组合而成。卷组的大小取决于物理卷的容量及个数。
逻辑卷可以理解成LVM中的分区
LV建立在VG上,可以指定从VG中提取多少容量来创建逻辑卷,然后对LV进行格式化并挂载。
PV中可以分配的最小存储单元称为PE,大小可以指定,默认为4MB.
LV中可以分配的最小存储单元称为LE。在同一个卷组中,LE和PE大小相同且一一对应
功能 |
pv(物理卷)管理命令 |
vg(卷组)管理命令 |
lv(逻辑卷)管理命令 |
scan扫描 |
pvscan |
vgscan |
lvscan |
用法 |
[root@localhost 桌面]# pvscan # vgscan |
||
create创建 |
pvcrerate |
vgcreate |
lvcreate |
用法 |
【】# pvcreate /dev/sdb1 #创建物理卷/dev/sdb1。 【】# vgcreate myvg /dev/sdb1 #创建卷组,名为myvg。 【】# lvcreate -L 8G -n rs myvg #在卷组中创建8g的逻辑卷叫rs -s 快照 |
||
display显示 |
pvdisplay |
vgdisplay |
lvdisplay |
用法 |
[【】# pvdisplay #列出详细信息。 |
||
remove移除(卸载后用) |
pvremove |
vgremove |
lvremove |
用法 |
【】# pvremove /dev/sdb1 #移除PV。 【】# vgremove myvg #删除卷组。 【】# lvremove /dev/myvg/rs #删除逻辑卷。 |
||
extend扩展 |
vgextend |
lvresize |
|
用法 |
【】# vgextend myvg /dev/sdb2 #把sdb2加入myvg卷组。 【】# lvresize -L +4G /dev/myvg/rs #给lv添加4G #-L指定逻辑卷大小。 -n指定逻辑卷名称、所属卷组名称。 -l指定所占用的PE数量 |
||
reduce减少(未卸载) |
vgreduce |
lvreduce |
|
用法 |
1.减小分区大小(需卸载umount) 缩减:lvreduce -L -指定大小 /dev/卷组名/逻辑卷名称 格式化 挂载 2.减小vg(将物理卷从vg移除):vgreduce 卷组名 物理卷(分区设备名) |
查看卷名 |
简单对应卷信息查看 |
扫描相关的所有对应卷 |
详细对应卷信息的查看 |
pv物理卷 |
pvs |
pvscan |
pvdisolay |
vg卷组 |
vgs |
vgscan |
vgdisplay |
lv逻辑卷 |
lvs |
lvscan |
lvdisplay |
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Changed type of partition to 'Linux LVM' #创建分区,文件系统类型修改为8e00。
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 466D20A9-B1B8-4577-A429-0563EB7B1255
Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 10487807 5.0 GiB 8E00 Linux LVM
2 10487808 20973567 5.0 GiB 8E00 Linux LVM
3 20973568 31459327 5.0 GiB 8E00 Linux LVM
4 31459328 41943006 5.0 GiB 8E00 Linux LVM #保存退出。
pvcreate:可以把要添加到卷组(VG)的所有磁盘分区或整个磁盘创建为物理卷。
格式:pvcreate 磁盘分区或整个磁盘
pvscan:查看物理卷
pvdisplay:列出pv的详细信息
[root@localhost 桌面]# pvcreate /dev/sdb1 #创建物理卷/dev/sdb1。
Physical volume "/dev/sdb1" successfully created
[root@localhost 桌面]# pvscan #查看物理卷。
PV /dev/sda2 VG centos lvm2 [19.51 GiB / 0 free]
PV /dev/sdb1 lvm2 [5.00 GiB]
Total: 2 [24.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 1 [5.00 GiB]
[root@localhost 桌面]# pvdisplay #列出详细信息。
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 19.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4994
Free PE 0
Allocated PE 4994PV UUID xWz4eX-2Bfg-QMWR-cSPc-X2jw-GlnF-VjeCqQ
"/dev/sdb1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID k0tGdH-LfVZ-Z8oC-fd7F-UXZf-U8Qw-gMIzQu
vgcreate:创建卷组
格式:vgcreate 卷组名 物理卷
vgscan:查看卷组。
列出vg的详细信息:vgdisplay 卷组名
扩展vg:vgextend 卷组名 物理卷(分区设备名)
减小vg:vgreduce 卷组名 物理卷(分区设备名)
[root@localhost ~]# vgcreate myvg /dev/sdb1 #创建卷组,名为myvg。
Volume group "myvg" successfully created
[root@localhost ~]# vgdisplay myvg #查看卷组myvg的详细信
息。
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/writeVG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 0 / 0
Free PE / Size 1279 / 5.00 GiB
VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y
[root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
[root@localhost ~]# pvcreate /dev/sdb4
Physical volume "/dev/sdb4" successfully created
#将sdb2-sdb4添加到物理卷。
【】# vgextend myvg /dev/sdb2 #把sdb2加入myvg卷组。
Volume group "myvg" successfully extended #查看信息是否有变化。
【】# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0Cur PV 2
Act PV 2
VG Size 9.99 GiB
PE Size 4.00 MiB
Total PE 2558
Alloc PE / Size 0 / 0
Free PE / Size 2558 / 9.99 GiB
VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y #依次添加sdb3、sdb4。
【】# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
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 19.98 GiB
PE Size 4.00 MiB
Total PE 5116
Alloc PE / Size 0 / 0
Free PE / Size 5116 / 19.98 GiB
VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y
【】# lvcreate -L 8G -n rs myvg
#在卷组中创建8g的逻辑卷叫rs
Logical volume "rs" created
#-L指定逻辑卷大小。-n指定逻辑卷名称、所属卷组名称。-l指定所占用的PE数量
【】# mkfs.xfs /dev/myvg/rs
meta-data=/dev/myvg/rs isize=256 agcount=4, agsize=524288 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=2097152, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
【】# mkdir /lvmtst
【】# mount /dev/myvg/rs /lvmtst/
【】# df -h 文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 4.4G 14G 25% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 140K 490M 1% /dev/shm
tmpfs 490M 7.0M 483M 2% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/myvg-rs 8.0G 33M 8.0G 1% /lvmtst
#创建成功,成功格式化并挂载。
【】# vgdisplay myvg #首先查看卷组内还有多少可用空间。
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0Cur LV 1
Open LV 1
Max PV 0
Cur PV 4
Act PV 4
VG Size 19.98 GiB
PE Size 4.00 MiB
Total PE 5116
Alloc PE / Size 2048 / 8.00 GiB
#已用。
Free PE / Size 3068 / 11.98 GiB
#可用。
VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y
#首先查看卷组内还有多少可用空间。
【】# lvresize -L +4G /dev/myvg/rs #给lv添加4G
Extending logical volume rs to 12.00 GiB
Logical volume rs successfully resized
#扩展到12G,调整成功。
【】# lvscan
ACTIVE '/dev/myvg/rs' [12.00 GiB] inherit
ACTIVE '/dev/centos/root' [17.51 GiB] inherit
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
【】# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 4.4G 14G 25% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 140K 490M 1% /dev/shm
tmpfs 490M 7.0M 483M 2% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/myvg-rs 8.0G 33M 8.0G 1% /lvmtst
【】# xfs_growfs /lvmtst/
meta-data=/dev/mapper/myvg-rs isize=256 agcount=4, agsize=524288 blks = sectsz=512 attr=2, projid32bit=1 = crc=0
data = bsize=4096 blocks=2097152, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2097152 to 3145728
【】# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 4.4G 14G 25% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 140K 490M 1% /dev/shm
tmpfs 490M 7.0M 483M 2% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/myvg-rs 12G 33M 12G 1% /lvmtst
#在XFS文件系统下,分区只能够进行扩展,并不支持分区缩减的功能。如果想缩减基于XFS的逻辑卷需要:
【】umount /挂载点
【】lvreduce -L -指定大小 /dev/卷组名/逻辑卷名称
【】mkfs.xfs -f /dev/卷组名/逻辑卷名称
【】mount 重新挂载
【】# umount /dev/myvg/rs #卸载。
【】# lvremove /dev/myvg/rs #删除逻辑卷。
【】# vgremove myvg #删除卷组。
【】# pvremove /dev/sdb1 #移除PV。
1)先数据转移 pvmove
LVS:pvmove
pvmove用来实现数据转移,根据数据量的多少,它可能要使用大量的时间,并可降低逻辑卷的性能,因此要在系统不太忙时操作。(转移到vg的可用空间)
2)缩减vg(类似移除)
减小vg:vgreduce 卷组名 物理卷(分区设备名)
3)再移除物理卷
【】pvremove /dev/sdb
在LVM中快照就是记录某一时刻的数据,当想要回到那一时刻的时候再通过恢复数据来达到将时间恢复的做法。实际上lvm快照算是一种备份
当被快照区发生改变时,快照区保存改变前的原文件,
恢复快照时用快照区文件覆盖被快照区
也可在快照区写入数据(进行测试),恢复数据只需要删除快照区新建快照
新建快照区与被快照区存在一种类似硬连接的关系,所以会显示。但只有当被快照区文件改变时才会真实的存储在快照区
注意:快照区与被快照区的LV必须在统一VG下。
例:
【】# lvcreate -L +3G -n rs myvg
#创建lv名为rs,vg为myvg,大小3G。
【】# mkfs.xfs /dev/myvg/rs
#XFS格式化。
【】# mount /dev/myvg/rs /test1/
【】# df -h
文件系统 容量 已用 可用 已用% 挂载点
。。。。。。。。。。。。。。。。。。。。。。 #格式化并查看。
/dev/mapper/myvg-rs 3.0G 33M 3.0G 2% /test1
【】# dd if=/dev/zero of=/test1/t1.txt bs=1M count=500
记录了500+0 的读入
记录了500+0 的写出
524288000字节(524 MB)已复制,1.33933 秒,391 MB/秒
【】# df -h
文件系统 容量 已用 可用 已用% 挂载点
。。。。。。。。。。。。。。。。。。。。。。。 #模拟写入数据,并查看分区信息。
/dev/mapper/myvg-rs 3.0G 533M 2.5G 18% /test1
【】# lvcreate -s -L +1G -n rskz /dev/myvg/rs
Logical volume "rskz" created
#创建快照完成。-s选项指定了使用快照功能。-L 指定了快照的可用空间。-n指定了快照的名称,在/dev/myvg/“快照名称”。
【】# lvdisplay /dev/myvg/rskz
--- Logical volume ---
LV Path /dev/myvg/rskz
LV Name rskz
VG Name myvg
LV UUID Zj7S40-EYmJ-xVlK-ZMth-kd8a-w3uG-90oqzU
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-12-22 15:51:54 +0800
LV snapshot status active destination for rs
LV Status available
# open 0
LV Size 3.00 GiB
#“被快照”分区大小。
Current LE 768
COW-table size 1.00 GiB
#快照分区大小(可使用空间)。
COW-table LE 256
Allocated to snapshot 0.00%
#目前使用百分比。
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
【】# mount -o nouuid /dev/myvg/rskz /test2/
【】# df -h
文件系统 容量 已用 可用 已用% 挂载点
。。。。。。。。。。。。。。。。。。。。。。 #相同的使用空间
/dev/mapper/myvg-rs 3.0G 533M 2.5G 18% /test1
/dev/mapper/myvg-rskz 3.0G 533M 2.5G 18% /test2
【】# lvdisplay /dev/myvg/rskz
--- Logical volume ---
LV Path /dev/myvg/rskz
LV Name rskz
VG Name myvg
LV UUID Zj7S40-EYmJ-xVlK-ZMth-kd8a-w3uG-90oqzU
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-12-22 15:51:54 +0800
LV snapshot status active destination for rs
LV Status available
# open 1
LV Size 3.00 GiB
Current LE 768
COW-table size 1.00 GiB
COW-table LE 256
Allocated to snapshot 0.20%
#已使用百分。
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
【】# ll -h /test2/
总用量 500M
#在快照中保存的数据和“被快照”分区一致。
-rw-r--r--. 1 root root 500M 12月 22 15:43 t1.txt
#到目前为止,快照分区已经成功实现。那么继续进行恢复快照前的准备工作。
【】# touch /test1/t2.txt
【】# touch /test1/t3.txt
【】# ll /test1/
总用量 512000
-rw-r--r--. 1 root root 524288000 12月 22 15:43 t1.txt
-rw-r--r--. 1 root root 0 12月 22 16:21 t2.txt
-rw-r--r--. 1 root root 0 12月 22 16:21 t3.txt
【】# yum -y install system-storage-manager
SSM:检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
查看磁盘信息
列出设备信息
【】# ssm list dev
存储池信息
【】# ssm list pool
----------------------------------------------------
Pool Type Devices Free Used
Total
vg02 lvm 1 1008.00 MB 0.00 KB 1008.00 MB
----------------------------------------------------
将sdb上所有卷组信息删除:
【】# vgremove vg02
【】# pvremove /dev/sdb{1,2,3,4}
创建目录
【】# mkdir /mail-lv
用的命令如下:
ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点
自动把设备变成pv,创建vg , lv ,格式化文件系统, 自动挂载
【】 ssm create -s 1G -n mail-lv --fstype xfs -p mail
/dev/sdb[1-4] /mail-lv
【】# df -h /mail-lv/