linux文件夹指向其他电脑,Linux两块磁盘挂载指向一个文件夹LVM磁盘管理(二)

文章目录

[隐藏]

0x00:前言

0x01:扩展VG卷组、缩小VG卷组

0x02:扩展LV、缩小LV逻辑卷

0x03:LV测试篇

0x04:LVM快照

0x05:删除LVM

注意:任何磁盘的操作有可能损坏里面数据,请提前备份数据,切记!切记!切记!

0x00:前言

VG卷组的总空间是受物理磁盘大小限制,本教程有3块物理磁盘分别是100M、200M、300M,那么VG卷组总空间就是600M;而VG下所有的LV累加的总空间又受限于VG。

使用过程中LV早晚会用完,那么上面的/LVM挂载点只能同时挂载一个,而有些程序不能支持有两个文件目录,比如WEB只有一个/,还有MySQL。

0x01:扩展VG卷组、缩小VG卷组

1)扩展VG卷组

上一章讲我看到添加了3块物理磁盘,第一块(/dev/sdb1)已经加入VG组,这次来把第二块(/dev/sdc1)加入到之前的那个vgdata的VG组里。

首先还是格式化磁盘,并创建磁盘分区/dev/sdc1。这里图略,和之前一样。

# fdisk /dev/sdc //显示创建磁盘并和格式化,略去一些命令

略。

# pvcreate /dev/sdc1 //普通磁盘转换成PV # pvs //查看VG组信息 # vgextend vgdata /dev/sdc1 //加入VG组,vgdata要加入VG组名,/dev/sdc1新PV

图里可以看到磁盘第一次pvs里只有一个PV,添加后,第二次pvs就又有多出一块PV。

61bdbccda3b14b4dae54e6186350b142.jpg

# vgdisplay //查看VG卷组详细信息,VG的总空间已经由之前100M变成300M

5f58ca8b5c72b60f8e083938841748d5.jpg

2).缩小卷组

实际使用中,因为磁盘损坏,或空间分配问题,我们需要从VG卷组删除一个PV物理卷。用过的PV物理卷肯定会被写入数据,那么在移走PV前,我们要先迁移数据。

先用pvdisplay命令看看上面PE块被写了多少数据,假如/dev/sdb1是要移走的物理硬盘。

注意,目的地空闲空间要大于/dev/sdb1。

我们准备了/dev/sdd1来存放迁移过来的数据。

304cf9ead7323f1db90715fd5a821dc0.jpg

从上图可以看出sdb1总空间是100M,然后空闲是0M,也就是使用了100M。

# pvmove -i 1 /dev/sdb1 /dev/sdd1 //将sdb1数据移动到sdd1里, -i 1是每1秒钟报告一次数据迁移的进度。 # vgreduce vgdata /dev/sdb1 //将/dev/sdb1从vgdata卷组中移除 # pvremove /dev/sdb1 //将/dev/sdb1移除出PV

ae73a69ee64d6e94137cca165cb4d735.jpg

结果:数据没有任何丢失。

c2b4ad38bec9e6bdabf44932adf63ee4.jpg

0x02:扩展LV、缩小LV逻辑卷

1)VG卷组又有新的空间,而刚才创建的lvData(/dev/sdb1)已经使用完了,我们来扩展LV。

# lvextend –L +50M /dev/vgdata/lvData 或者 # lvextend –l 150M /dev/vgdata/lvData

-L和-l区别,-L后是写你要增加多少,而-l是写你要增加到的总数。

执行命令后我们发现LV size变成150M了。

2857153b81a1023d7eb19edb450b5016.jpg

LV扩容完系统还没有识别,需要用resize2fs来更新,系统才能识别到。

# resize2fs /dev/vgdata/lvData

2d3fda8887730939a150a3d2cbabf18d.jpg

2)缩小LV(逻辑卷)空间。

使用过程中LV空间总会分配不合理或大或小,如果分配大了,不用又造成空间浪费,现在将LV(逻辑卷)缩小以分配给其他LV(逻辑卷)用。

我们之前创建了一个LV(逻辑卷),挂载到了/LVM下。

66b8368fb06d5ff4c1eb2b5b023be68e.jpg

调整钱我们先要卸载挂载点,因为挂载后是使用状态,不允许操作。如图,卸载成功。

# umount /LVM

15f39fbacd03000e51521bd32c5b11bf.jpg

检查文件系统是否有坏块,这部检查必须要做。

# e2fsck -f /dev/mapper/vgdata-lvData

5b4459b4f7e9d7ab6838326ddee0295d.jpg

从上面df -h 知道,总空间287M,使用128M,剩余146M空间。我们缩小总空间到250M,做演示。

注意:缩小LV前,先要缩小PV,resize2fs在前,lvreduce在后,顺序不能错。

# resize2fs /dev/mapper/vgdata-lvData 250M //缩小PV

6947b84cfd3aeaab5cfbbd0949b39858.jpg

# lvreduce -L 250M /dev/mapper/vgdata-lvData 或 # lvreduce -L -50M /dev/mapper/vgdata-lvData //-50M,在原基础上减去50M空间。

e0570a1549f7793b5322eb570382942a.jpg

好了,缩减成功,挂载看看。

# mount -a

# mount /dev/vgdata/lvData /lvm

因为PE默认4M,我们给的250M的PE不一定对其,所以系统会从新计算PE倍数来对其,显示的数就会小于我们写的数。

7811b657a0b59daf4c2416eadbeceaa1.jpg

注意:/dev/mapper/vgdata-lvData和/dev/vgdata/lvData是一样的,指向同一路径。

查看PV有多少空闲空间。显示多出48M的空闲空间。

# pvs

c635d47b89868102c6c4cd9ddc3c560a.jpg

0x03:LV测试篇

写此文章的时候,我就在想如果物理磁盘空间不够,但是LV分配很大,会发生什么现象。

看下图,我在虚拟机里创建了一个5G的虚拟磁盘文件放到D盘。我的电脑D盘,用一些其他东西故意填满,只留下了很少的空闲空间。

下面还有个3G的磁盘,我放到了C盘,C盘空闲空间充足。

189468f92852e6d7266755292b201ce8.jpg

接着将上面创建两个盘在系统里转换成PV物理卷->加入VG卷组->加入LV卷。

35df57aea87728700c3d4115c74a5a89.jpg

LVM的存放数据的规律是由那个PV先被添加就先存放到哪个PV上,直到PV存满才到下一个PV上存。

sde1就是我们放到上图显示D盘的那个文件,一会写文件先往sde1里写,然后在往sdf1里写。

我们找来一个ISO镜像(大于4G的文件),来往里面拷贝数据,看看发生什么?

d2608177f211f3bee0f010824a6607ee.jpg

上传数据的过程中,D盘空间用完了,LVM而并没有尝试切换到sdf1的3G这空间去复制,而是直接报了系统错误,而且系统因为没有空间,直接退出了,重新启动都没成功,只好将D盘里删除一些文件,才将系统重新启动。

8a314c7e441bc2e6bb4f2e473bf311f1.jpg

总结,PV的设置最大值不能超过物理磁盘的空间,否则会出现丢失数据的问题。

0x04:LVM快照

(转:http://www.linuxidc.com/Linux/2017-05/143774.htm)。

LVM快照是一种以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。实验如下:目标逻辑卷信息如下:

$ pvs

PV VG Fmt Attr PSize PFree /dev/sdb vg0 lvm2 a-- 7.00g 0 /dev/sdd1 vg0 lvm2 a-- 7.00g 1.99g

$ vgs

VG #PV #LV #SN Attr VSize VFree vg0 2 1 0 wz--n- 13.99g 1.99g

$ lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv0 vg0 -wi-ao---- 12.00g

现在对逻辑卷lv0创建快照,命名为snaplv0

$ lvcreate -s -n snaplv0 -p r -L 1G /dev/vg0/lv0

Logical volume "snaplv0" created.

$ vgs

VG #PV #LV #SN Attr VSize VFree vg0 2 2 1 wz--n- 13.99g 1016.00m

$ lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv0 vg0 owi-aos--- 12.00g snaplv0 vg0 sri-a-s--- 1.00g lv0 0.00

这里/dev/vg0/lv0的挂载点为/mnt。往/mnt里面写入300MB的随机文件,再观察快照情况,可以看 到,快照对应的Data一项有所增长:

$ dd if=/dev/urandom of=/mnt/2.txt bs=1M count=300

300+0 records in 300+0 records out 314572800 bytes (315 MB) copied, 27.5877 s, 11.4 MB/s

$ ls

1.txt 2.txt data

$ lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv0 vg0 owi-aos--- 12.00g snaplv0 vg0 sri-a-s--- 1.00g lv0 29.42

用snaplv0对逻辑卷进行恢复,注意恢复之前需要先将对应的逻辑卷卸载。恢复之后可以看到,原有的snaplv0消失,因此可以得出结论,LVM的快照是一次性的:

$ umount /mnt $ lvconvert --merge /dev/vg0/snaplv0

Merging of volume snaplv0 started. lv0: Merged: 71.0% lv0: Merged: 91.9% lv0: Merged: 100.0%

$ ls /dev/vg0 lv0

$ mount /dev/vg0/lv0 /mnt $ ls /mnt

1.txt data

如果想要删除LVM快照,用lvremove命令,后面跟上快照设备文件的绝对路径即可,例如:

$ lvremove /dev/vg0/snaplv0

0x05:删除LVM

删除LVM,先取消开机自动挂载,在取消挂载、取消LV、取消VG、取消PV,还原磁盘83类型。

# umount /lvm //取消挂载 # lvremove /dev/vgdata/lvData //删除LV # vgremove vgdata //删除vgdata组 # pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 //磁盘还原成普通磁盘 # fdisk /dev/sdb1 //执行t ID输入83,让磁盘恢复普通磁盘。

原文出处:51cto -> http://wutou.blog.51cto.com/615096/1980891

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值