Linux之高级存储管理
一、逻辑卷
pv
物理卷 被处理过的物理分区
pe
物理扩展 设定存储的最小单元
vg
物理卷组 捆绑pv到一个组中
lv
逻辑卷 分配最终的使用设备
监控的建立过程
pvs;echo ====; vgs; echo ====; lvs; echo ====;df -h /weixindata
lvm 设备的建立
建立物理分区并设定分区type为lvm
pvcreate /dev/vdc1
创建pv
vgcreate westosvg -s 2M /dev/vdc1
创建vg -s 设定pe大小为2M
lvcreate -L 100M -n westoslv westosvg
创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/mapper/westosvg-westoslv/
格式化
mount /dev/westosvg/westoslv /weixindata/
挂载
lv拉伸
1.当vg中的容量充足
lvextend -L 200M /dev/mapper/westosvg-wesgtoslv
拉伸逻辑卷设备
[root@node126 ~]# lvextend -L 600M /dev/westosvg/westoslv
Size of logical volume westosvg/westoslv changed from 400.00 MiB (200 extents) to 600.00 MiB (300 extents).
Logical volume westosvg/westoslv successfully resized.
[root@node126 ~]#
xfs_grows /weixindata/ 拉伸文件系统,在rhel7 中可以用设备或挂载点
[root@node126 ~]# xfs_growfs /dev/mapper/westosvg-westoslv
在rhel8.0中只能用挂载点
resize2fs /dev/mapper/westosvg-westoslv
当文件系统为ex时使用此命令
2.当vg中的容量不足
新加一块硬盘
划分分区
更改分区格式
pvcreate /dev/vdd1
vgextend westosvg /dev/sdd1
lvextend -L 250M /dev/westosvg/westoslv
[root@node126 ~]# lvextend -L 5.2G /dev/westosvg/westoslv
Rounding size to boundary between physical extents: 5.20 GiB.
Size of logical volume westosvg/westoslv changed from 4.50 GiB (2304 extents) to 5.20 GiB (2663 extents).
Logical volume westosvg/westoslv successfully resized.
[root@node126 ~]#
xfs_grows /weixindata/
[root@node126 ~]# xfs_growfs /weixindata/
meta-data=/dev/mapper/westosvg-westoslv isize=512 agcount=4, agsize=38400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=153600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 153600 to 1363456
[root@node126 ~]#
blkid
ext4文件系统
支持容量缩减
[root@node126 ~]# umount /weixindata
mkfs.ext4 /dev/westosvg/westoslv
[root@node126 ~]# lvextend -L 5.22G /dev/westosvg/westoslv
Rounding size to boundary between physical extents: 5.22 GiB.
Size of logical volume westosvg/westoslv changed from 5.20 GiB (2663 extents) to 5.22 GiB (2673 extents).
Logical volume westosvg/westoslv successfully resized.
[root@node126 ~]#
umount /dev/westosvg/westoslv
卸载
e2fsck -f /dev/westosvg/westoslv
扫描
resize2fs /dev/westosvg/westoslv 200M
缩减容量
lvreduce -L 200M /dev/westosvg/westoslv
缩减逻辑卷
[root@node126 ~]# lvreduce -L 200M /dev/westosvg/westoslv
WARNING: Reducing active and open logical volume to 200.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce westosvg/westoslv? [y/n]: y
Size of logical volume westosvg/westoslv changed from 5.22 GiB (2673 extents) to 200.00 MiB (100 extents).
Logical volume westosvg/westoslv successfully resized.
[root@node126 ~]#
vmove /dev/vdc1 /dev/vdd1
从vdc1移动全部数据到vdd1
[root@node126 ~]# pvmove /dev/vdc1 /dev/vdd1
/dev/vdc1: Moved: 3.00%
/dev/vdc1: Moved: 100.00%
[root@node126 ~]#
vgreduce westosvg /dev/vdc1
物理卷组组件缩减
[root@node126 ~]# vgreduce westosvg /dev/vdc1
Removed "/dev/vdc1" from volume group "westosvg"
[root@node126 ~]#
pvremove /dev/vdc1
物理卷移除
[root@node126 ~]# pvremove /dev/vdc1
Labels on physical volume "/dev/vdc1" successfully wiped.
[root@node126 ~]#
lvcreate -L 30M -n westoslv_backup -s /dev/westosvg/westoslv
/dev/westosvg/westoslv的镜像制作
[root@node126 ~]# lvcreate -L 30M -n westoslv_backup -s /dev/westosvg/westoslv
Logical volume "westoslv_backup" created.
[root@node126 ~]#
mount /dev/westosvg/westoslv_backup /weixindata/
/dev/westosvg/westoslv的镜像挂载
[root@node126 ~]# mount /dev/westosvg/westoslv_backup /weixindata/
[root@node126 ~]# cat /weixindata/westosfile
hello westos
[root@node126 ~]#
lvm删除:
unmout /dev/mapper/westosvg-westoslv
lvremove /dev/westosvg/westoslv
vgremove westosvg
pvremove /dev/sda2
pvs
[root@node126 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdc1 lvm2 --- <5.00g <5.00g
[root@node126 ~]#
pvs --units G
[root@node126 ~]# pvs --units G
PV VG Fmt Attr PSize PFree
/dev/vdc1 lvm2 --- 5.37G 5.37G
[root@node126 ~]#
lsblk
分区结构
[root@node126 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
├─vda1 253:1 0 1G 0 part /boot
├─vda2 253:2 0 1G 0 part [SWAP]
└─vda3 253:3 0 18G 0 part /
vdb 253:16 0 2G 0 disk
└─vdb1 253:17 0 2G 0 part
vdc 253:32 0 5G 0 disk
└─vdc1 253:33 0 5G 0 part
vdd 253:48 0 2G 0 disk
├─vdd1 253:49 0 300M 0 part
└─vdd2 253:50 0 500M 0 part
[root@node126 ~]#
删除分区
# dd if=/dev/zero of=/dev/vdd bs=1M count=1
二、vdo(Virtual Data Optimize)
虚拟数据优化器
kvdo 压缩数据
uds 优化重复数据
vdo建立
dnf install vdo -y
[root@node126 ~]# dd if=/dev/zero of=/dev/vdc bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00254326 s, 412 MB/s
vdo create --name=westos_vdo1 --device=/dev/sdc
[root@node126 ~]# vdo create --name=westos_vdo1 --device=/dev/vdc
Creating VDO westos_vdo1
Logical blocks defaulted to 523108 blocks.
The VDO volume can address 2 GB in 1 data slab.
It can grow to address at most 16 TB of physical storage in 8192 slabs.
If a larger maximum size might be needed, use bigger slabs.
Starting VDO westos_vdo1
Starting compression on VDO westos_vdo1
VDO instance 0 volume is ready at /dev/mapper/westos_vdo1 ####这里
vdo status --name=westos_vdo1 | less
Deduplication: enabled
vdo 检测并删除重复数据的功能开启
Compression: enabled
vdo数据压缩功能开启
vdo stop --name=westos_vdo1
[root@node126 ~]# vdo stop --name=westos_vdo1
Stopping VDO westos_vdo1
vdo remove --name=westos_vdo1
[root@node126 ~]# vdo remove --name=westos_vdo1
Removing VDO westos_vdo1
Stopping VDO westos_vdo1
vdo: WARNING - VDO service westos_vdo1 already stopped
[root@node126 ~]#
dd if=/dev/zero of=/dev/vdc bs=1M count=1
硬盘类型清零
使用vdo设备
mkfs.xfs -K /dev/mapper/westos_vdo1
[root@node126 ~]# mkfs.xfs -K /dev/mapper/westos_vdo1
meta-data=/dev/mapper/westos_vdo1 isize=512 agcount=4, agsize=130777 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=523108, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node126 ~]#
df -BM
数据以M表示
mkdir /westos_vdo
mount /dev/mapper/westos_vdo1 /westos_vdo
测试vdo性能
vdostats --human-readable
[root@node226 ~]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/westos_vdo1 5.0G 3.1G 1.9G 62% 88%
[root@node226 ~]#
cp /westos/images/install.img /westos_vdo/
vdostats --human-readable
cp /westos/images/install.img /westos_vdo/install.img.1
vdostats --human-readable
vdo device mount onboot
vim /etc/fstab
/dev/mapper/vdodevice /westos xfs defaults,x-systemd.requires=vdo.service 0 0
do设备的删除
vdo remove --name=westos_vdo1