欢迎各位兄弟 发布技术文章
这里的技术是共享的
一,扩展逻辑卷: 先扩展物理边界,再扩展逻辑边界;;;先缩小逻辑边界,再缩小物理边界,
lvextend: 扩展逻辑卷的物理边界
-L [+] # /PATH/TO/LV
2G,+3G
5G
resize2fs:扩展(缩减)逻辑卷的逻辑边界 (ext2 ext3 ,其它的如xfs,reiserfs应该有其它命令)
resize2fs /PATH/TO/LV 5G (不能超过物理边界,因为上面物理边界指定最大5G,可能无意义,也可能崩溃)
在扩展逻辑边界时,最好检查下文件系统
resize2fs -p /PATH/TO/LV (扩展到跟物理边界(卷组)(物理卷,物理磁盘)一样大小)
二,缩减逻辑卷: (它是有风险的)
注意:
1,确保缩减后的空间大小,依然能存储原有的所有数据
2,风险大,可能导致原有数据丢失,不能在线缩减,得先卸载
3,在缩减之前,应该先强行检查文件,以确保文件系统处于一致性状态+
1)df -lh (看磁盘空间所占用的大小)
2)umount (卸载)
3)e2fsck -f (强行做文件系统检测)
resize2fs
resize2fs /PATH/TO/LV 3G (缩减到3G)
lvreduce -L [-] # /PATH/TO/LV
重新挂载
三,快照卷
(快照卷一旦创建立马生效)
(快照卷也是一种逻辑卷吧) (最好不能修改,所以创建为只读的方式)快照卷的目的就是为了备份的
1,生命周期为整个数据时长:在这段时间内,数据的增长量不能超过快照卷大小:(超过后放弃所有
操作,且自我损毁) (自己估计数据量大小)(最保险的做法是与原卷一样大,或者与 原卷中的数据一样大)
2,快照卷应该是只读的
3,跟原卷在同一卷组内
这种备份机制为完全备份,将来还要结合增量备份(差异备份)来完成
lvcreate
-s :表示快照卷
-p r|w : p表示perm根限,r 表示只读,w表示读写
快照卷与源卷必须在同一个卷组之内,不需要指定在哪个卷组中创建,但要指定为哪个逻辑卷创建
lvcreate -L # -n SLV_NAME -s -p r /PATH/TO/LV
(-L指定大小)(-n指定名称) (/PATH/TO/LV是对哪个逻辑卷创建)
# lvcreate -L 2G -n testlv myvg
# mke2fs -j /dev/myvg/testlv
# mount -a
# mount
# cd /users
# ls
# cp /etc/initab .
# ls
# cd
# df -lh
# vgs (扩展的时候 看这里是否有足够的空间够用)
# lvextend -L 5G /dev/myvg/testlv
# df -lh (显示的依然是文件系统大小,而不是逻辑卷的大小)
# lvs (由此可以 我们其实只扩展了物理边界,还未扩展逻辑边界)
# resize2fs -p /dev/myvg/testlv (扩展逻辑边界)
# df -lh
# cd /users
# ls
# cat inittab 扩展后 照样可以看到这个文件的内容
扩展,不影响原有文件,风险很小,并且处于挂载状态下,不用卸载,在线就能扩展
# df -lh
# umount /users
# mount
# e2fsck -f /dev/myvg/testlv (强行检查)
# man resize2fs
# resize2fs /dev/myvg/testlv 3G
# lvreduce -L 3G /dev/myvg/testlv
# mount -a
# mount
# df -lh
# cd /users
# ls
# cat inittab
创建快照卷,在线就能创建,不用卸载
# lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv
(快照卷一旦创建立马生效)
testlv-snap 使用中短横线是可以的 (系统能分别,但人可能会混淆)
# lvs
# mount /dev/myvg/testlv-snap /mnt 挂载一下 (应该使用 -r 选项,不使用-r也可以,它自己默认挂载只读)
# cd /mnt
# ls
# cat inittab
# wc -l inittab
下面几行的目的是 修改源卷
# vgs
# cd /users
# ls
# vim inittab 我们删除最后两行
到快照卷看看
# wc -l inittab (53行,一行都没有少)
# tar -jcf /tmp/users.tar.bz2 inittab (到当前目标下(/mnt)进行备份)
# ls /tmp
下面是 卸载 快照卷 删除这个卷
# cd
# umount /mnt
# lv remove /dev/myvg/testlv-snap
# ls (看不到 /mnt 了吧)
# rm /users/inittab
# ls
# tar xf /tmp/users.tar.bz2 -C ./