本章顺着上一次的博客接着来学习Linux的新知识,介绍了Linux存储的基高级管理。主要介绍了lvm(拉伸收缩)和vdo(数据存储优化)两个功能。
下面就开始吧
文章目录
- Linux修炼之旅第六章!
- 一、LVM
- 1 lvm设备建立与拉伸
- 2 vg不足时如何给vg扩容
- 3 lvm缩减
- 4 lvm快照
- 5 删除lvm
- 二、vdo
- 1 vdo的建立与测试
- 2 vdo卸载
实验之前先来配置实验环境
虚拟机nodea加一块硬盘10g
mkdir /data
监视
watch -n1 "pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /data"
pv 物理卷 被处理过的物理分区
pe 物理扩展 设定存储最小单元
vg 物理卷组 捆绑pv到一个组中
lv 逻辑卷 分配最终的使用设备
LVM虚拟设备
可以对物理分区容量进行管理
用橙汁的例子来理解这个概念
lv必须是pe的整数倍
pv是橙子扎好的橙汁
vg是倒橙汁的大杯子
lv是用户,用户要多少就从vg取多少
pe是最小存储单元,lv必须是pe的整数倍
首先建立一个lvm设备
用fdik新建分区,
然后按t,将Type设置为lvm(8e)
保存完输入udevadm settle
之后的执行程序及注释如下
pvcreate /dev/vdb1 #创建pv vgcreate vg0 /dev/vdb1 vgs vgdisplay vgremove vg0 vgcreate -s 2M vg0 /dev/vdb1 #创建vg -s设定pe大小位2M vigdisplay vgdisplay lvcreate -L 200M -n lv0 vg0 #创建lvm -L指定大小 -n指定名称 lv必须是pe的整数倍 mkfs.xfs /dev/vg0/lv0 #格式化 mount /dev/vg0/lv0 /data/ #挂载 lvextend -L 500M /dev/vg0/lv0 #给创建好的lv扩展容量 xfs_growfs /dev/vg0/lv0
创建pv
设置pe大小
设定lv大小为200M
给创建好的lv扩展容量,扩展到500M
umount /data mkfs.ext4 /dev/vg0/lv0 #改格式 mount /dev/vg0/lv0 /data/ #挂载 lvextend -L 800M /dev/vg0/lv0 #逻辑卷扩展 resize2fs /dev/vg0/lv0 #重定义 给pv加完容量,才有足够空间给vg加了 fdisk /dev/vdb udevadm settle pvcreate /dev/vdb2 vgextend vg0 /dev/vdb2 lvextend -L 1500M /dev/vg0/lv0 设备(硬件) resize2fs /dev/vg0/lv0 文件系统(软件)
由于之后的容量缩减实验中,当前格式不支持,所以先换成支持缩减的ext4格式
扩展为800M
但是如果想要扩展到1.5G,明显vg就没有1.5G,下面就开始给vg加容量
但是物理硬盘空间不足,所以就得先区分区,多分出来一块拿来用
这样就可以达到目的了
umount /data #减容量必须先卸载 e2fsck -f /dev/vg0/lv0 #查看 resize2fs /dev/vg0/lv0 100M #文件系统缩减为100M lvreduce -L 100M /dev/vg0/lv0 #设备缩减 mount /dev/vg0/lv0 /data/ #挂载
先卸载
缩减为100M
再挂载一下,可以看到缩减成功
与虚拟机快照类似,快照的 *** 作不会影响本体,只会保留在“镜子”上。
lv也可以创建快照,母盘不动快照可以无限复制,快照的 *** 作记录不影响母盘
touch /data/westosfile{1..10} ls /data/ umount /data #卸载 lvcreate -L 30M -n lv0-backup -s /dev/vg0/lv0 #创建一个30M的快照 mount /dev/vg0/lv0-backup /data/ #挂载快照 rm -rf /data/westos* #删除之前创建的文件 ls /data/ umount /data #卸载快照 lvremove /dev/vg0/lv0-backup #删除快照 lvcreate -L 30M -n lv0-backup -s /dev/vg0/lv0 #再新建一个快照 mount /dev/vg0/lv0-backup /data/ #挂载 ls /data/ #可以看到之前母盘中的东西还在,没有被快照的删除 *** 作影响
删除的思路很简单
正着建立,倒着删除
umount /data #先卸载 lvremove /dev/vg0/lv0-backup #顺着上个实验把挂载文件删除 lvremove /dev/vg0/lv0 #卸掉lv vgremove vg0 #卸掉vg pvremove /dev/vdb2 #卸掉pv pvremove /dev/vdb1
可以在左边的监控中看到删除过程的顺序与建立时相反。
vdo的建立,检测重复,重复的文件不会再占用空间
测试前必须保证测试的硬盘是全新的没有分过区的
vdo create --name westos_vdo1 --device /dev/vdb vdo status --name /dev/mapper/westos_vdo1 mkfs vdo status mkfs.xfs /dev/mapper/westos_vdo1 mount /dev/mapper/westos_vdo1 /data/ ls /data/
然后在主机中尝试传输install.img测试
scp install.img root@172.25.254.126:/data scp install.img root@172.25.254.126:/data/test.img
在nodea另一个terminal中监测
watch -n1 vdostats --human-readable
可以看到传输两次相同的文件,内存并没有变化
umount /dev/mapper/westos_vdo1 vim /etc/fstab #该文件输入可以永久保存更改,删除时必须在该文件中删除相应的代码行。 vdo status vdo stop --name westos_vdo1 #暂时删除,可以用start恢复 vdo remove --name westos_vdo1 #永久删除,不可恢复 vdo status ls cd /data/ ls
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)