阅读更多
一.建立5个分区
/**
I * 由于本机没有留下空闲的磁盘空间,只好把swap删掉用来腾出空间
*/
1.先把swap删除 swapoff /dev/sdax
2.修改开机挂载文件/etc/fstab
删掉swap那一行后保存
3.新建分区
fdisk /dev/sda
使用n参数新建5个300M分区/dev/sda5-9
使用t参数修改分区id为8e
使用w保存退出
输入partprobe命令更新分区表
二.PV(物理卷)阶段
查看本机是否存在pv
pvscan
新建/dev/sda5-8四个分区为pv
pvcreate /dev/sda{5,6,7,8}
查看刚刚新建的pv
pvscan
更详细的列出系统上面pv信息
pvdisplay
三.VG(卷用户组)阶段
将/dev/sda{5,6,7,8}新建为一个分区
vgcreate -s 16M jisonvg /dev/sda{5,6,7,8}
-s 后面接PE(物理扩展块)的大小
查看本机的vg
vgscan
再次查看本机的pv
pvscan
更详细的列出系统上面vg信息
vgdisplay
四.LV(逻辑卷)阶段
将整个的jisonvg全部分配给jisonlv
lvcreate -l 72 -n jisonlv jisonvg
-L 后面接容量,可以是M,G,T
-l 后面接PE的个数
-n 后面接的是LV的名称
更详细的列出系统上面lv信息
lvdisplay
五.文件系统阶段
格式化jisonlv的文件系统为ext3
mkfs -t ext3 /dev/jisonvg/jisonlv
挂载jisonlv到/mnt/lvm上
mkdir /mnt/lvm
mount /dev/jisonvg/jisonlv /mnt/lvm
查看挂载的jisonlv
df -h
测试使用jisonlv
cp -r /etc /mnt/lvm
ll /mnt/lvm/etc
六.放大LV的容量
使用之前新建的没有加入到jisonlv的pv(/dev/sda9),将它加到jisonvg上面
vgextend jisonvg /dev/sda9
详细的列出系统上面vg信息
vgdisplay
调整jisonlv的大小
lvresize -l +18 /dev/jisonvg/jisonlv
详细的列出系统上面lv信息
lvdisplay
查看原先文件系统里面的superblock的记录情况
dumpe2fs /dev/jisonvg/jisonlv
完整的将LV的容量扩充到整个文件系统
resize2fs /dev/jisonvg/jisonlv
查看扩充后文件系统里面的superblock的记录情况
dumpe2fs /dev/jisonvg/jisonlv
查看扩充后的文件系统
df -h /dev/jisonvg/jisonlv
七.缩小LV的容量
先卸载/dev/jisonvg/jisonlv
umount /mnt/lvm
进行磁盘检查
e2fsck -f /dev/jisonvg/jisonlv
降低文件系统的容量
resize2fs /dev/jisonvg/jisonlv 300M
查看降低容量后的文件系统
mount /dev/jisonvg/jisonlv /mnt/lvm
df -h /mnt/lvm
降低LV的容量
lvresize -l -18 /dev/jisonvg/jisonlv
将没有使用的PE转移到/dev/sda6上
pvdisplay
pvmove /dev/sda6 /dev/sda9
将/dev/sda6移出jisonvg
vgreduce jisonvg /dev/sda6
将pv(/dev/sda6)删除
pvremove /dev/sda6
八.LVM快照
建立一个/dev/jisonvg/jisonlv的快照/dev/jisonvg/jisonss
pvcreate /dev/sda6
vgextend jisonvg /dev/sda6
vgdisplay
lvcreate -l 18 -s -n jisonss /dev/jisonvg/jisonlv
lvdisplay
挂载/dev/jisonvg/jisonss
mkdir /mnt/snapshot
mount /dev/jisonvg/jisonss /mnt/snapshot
df -h
会发现快照/dev/jisonvg/jisonss和/dev/jisonvg/jisonlv的使用量和大小居然是一模一样的,但实际上快照区是没有这么大的,快照区只是记录创建快照那一瞬间/dev/jisonvg/jisonlv的内容
当修改/dev/jisonvg/jisonlv后快照区的内容还是没有变化的
利用快照区复原文件系统
umount /mnt/snapshot
df /mnt/lvm
rm -rf /mnt/lvm/etc
cp -r /boot /mnt/lvm
mount /dev/jisonvg/jisonss /mnt/snapshot
df -h
这时会发现/dev/jisonvg/jisonlv和/dev/jisonvg/jisonlv的使用量和大小不一样了,快照里面的内容还是原来的,而/dev/jisonvg/jisonlv的内容则是修改过后的
这时要还原/dev/jisonvg/jisonlv的内容为原来的内容的话,格式化/dev/jisonvg/jisonlv后,将/dev/jisonvg/jisonss的内容复制到/dev/jisonvg/jisonlv里面就可以了
umount /dev/lvm
mkfs -t ext3 /dev/jisonvg/jisonlv
mount /dev/jisonvg/jisonlv /mnt/lvm
cp -r /mnt/snapshot/* /mnt/lvm
cd /mnt/lvm
ls
这时应该/dev/jisonvg/jisonlv和快照/dev/jisonvg/jisonss的内容又一致了
九.关闭LVM并还原磁盘为swap
卸载
umount /mnt/lvm
umount /mnt/snapshot
处理快照和原系统
lvremove /dev/jisonvg/jisonss
lvremove /dev/jisonvg/jisonlv
使jisonvg变成不活跃状态
vgchange -a n jisonvg
删除jisonvg
vgremove jisonvg
删除所有的pv
pvremove /dev/sda{5,6,7,8,9}
将/dev/sda{5,6,7,8,9}分区的8e标志改回83,重新建立分区并格式化为swap
fdisk /dev/sda
使用t参数修改分区/dev/sda{5,6,7,8,9}的id为83
使用d参数删除/dev/sda{5,6,7,8,9}分区
使用d参数删除逻辑分区/dev/sda4
使用n参数将所有剩余空间新建一个分区为/dev/sda2
使用w参数保存分区操作
使用partprobe命令刷新分区表
将/dev/sda2格式化为swap分区
mkswap /dev/sda2
然后重启
reboot