概念:VG是最大的,由一个个LV组成,LV由很多PE组成,PE有16M,4M等等;硬盘在LVM文件系统里叫做PV。
1.你可以拿一些分区来做,我喜欢增加一个硬盘。
2.分区增加了的硬盘,这里例子增加4个分区,fdisk /dev/sdb,查看命令为fdisk -l,别急着格式化,这个最后做。
3.分区之后输入partprobe,据闻是更新系统信息作用。
4.把硬盘变成PV,命令pvcreate /dev/sdb{1,2,3,4},命令pvscan和pvdisplay可以查看pv信息。
5.创建VG,vgcreate -s 16M vbirdvg /dev/sdb{1,2,3},创建一个pe为16M的,还可以选择例如4M的,用vgscan查看,一个VG最大256G。
6.创建出VG大硬盘之后就是创建分区,LV;命令lvcreate -l 365 -n vbirdlv vbirdvg;通过ll /dev/vbirdvg/vbirdlv查看;通过lvdisplay查看。
格式化,挂载
1.命令mkfs -t ext3 /dev/vbirdvg/vbirdlv
2.mkdir /mnt/lvm
3.mount /dev/vbirdvg/vbirdlv /mnt/lvm 挂载
4.df查看剩余空间
放大lv容量
例如又增加了一个硬盘
1.fdisk /dev/sdc
2.partprobe
3.fdisk -l 查看
4.若不用新增的硬盘而是用腾空出来的分区,则从此步开始。建立pv;pvcreate /dev/sdc1.
5.vgextend vbird /dev/sdc1,把sdc1加入到vg里面.
6.通过vgdisplay查看有多少PE,假如有179个.
7.lvresize -l +179 /dev/vbirdvg/vbirdlv 增加179个pe,虽然能看到增加了,但实际还不能用上,要等第10步之后才能用上。
8.通过lvdisplay看lv size,和df /mnt/lvm查看容量变化,此时df会看到还没变化。
9.先看一下原本档案系统内superblock的情况dumpe2fs /dev/vbirdvg/vbirdlv。
10.resize2fs /dev/vbirdvg/vbirdlv完整的将lv的容量扩展到整个档案系统,因为档案系统在格式化得时候已经定了block group,只有增加block group才行。
11.df /mnt/lvm即可看到容量变大了,用dumpe2fs /dev/vbirdvg/vbirdlv查看block group增加了。
缩小lv容量
假设想把sdb3离开vg。
1.先找出sdb3容量大小pvdisplay。
2.计算减去sdb3之后容量应为多少pvscan显示总容量,减去sdb3的容量。
3.用resize2fs缩小容量时要umount,增加时就不用,命令umount /mnt/lvm。
4.改变LV的容量,resize2fs /dev/vbirdvg/vbirdlv 6900M,6900M是之前的容量减去sdb3容量之后的值,因不能用小数点所以用M表示。
5.按下了resize2fs之后它会要求你用e2fsck -f /dev/vbirdvg/vbirdlv,照做。
6.e2fsck之后再来第4步。
7.mount /dev/vbirdvg/vbirdlv /mnt/lvm。
8.df /mnt/lvm就能看到改变后的容量。
9.将lv的容量降低,lvresize -l -89 /dev/vbirdvg/vbirdlv,sdb3里面有89个PE。
10.用lvdisplay查看能看到lv减少了。
11.用pvdisplay看看哪个盘的89个PE腾空了,假如sdb4被腾空了,所以要把sdb3的被用了的pe移动去sdb4,那sdb3就是空的了,命令pvmove /dev/sdb3 /dev/sdb4。
12.vgreduce vbirdvg /dev/sdb3,从vg中抽离。
建立快照区
1.看看vg还有多少容量命令vgdisplay,若没有FREE PE了要加入PE,参考放大LV容量,vgextend完之后不需要resize2fs命令。
2.创建快照区lvcreate -l 60 -s -n vbirdss /dev/vbirdvg/vbirdlv,-s是快照区的意思,-l后面接多少个PE,-n后面加你要的名字。
3.创建完毕,用lvdisplay看到其中以个LV叫做vbirdss,COW-table size/LE 就是说快照区得大小和PE数,空间大小跟vbirdlv一样。
4.创建挂载目录,mkdir /mnt/snapshot。
5.挂载上去,mount /dev/vbirdvg/vbirdss /mnt/snapshot.
6.用df查看容量,vbirdvg-vbirdlv和vbirdvg-vbirdss大小一模一样。
利用快照区还原硬盘
1.假如你还没mount,mount /dev/vbirdvg/vbirdss /mnt/snapshot
2.用df可以看出,snapshot与被备份的分区有大小有分别
3.mkdir -p /backups 要确定有这个目录。
4.cd /mnt/snapshot, tar -jcv -f /backups/lvm.tar.bz2 *;把准备个snapshot的目录内容全都备份到/backups。
5.umount /mnt/snapshot,lvremove /dev/vbirdvg/vbirdss,卸载vbirdss,因为里面的东西都被储存起来了。
6.umount /mnt/lvm把vbirdlv卸载。
7.mkfs -t ext3 /dev/vbirdvg/vbirdlv 格式化vbirdlv。
8.mount /dev/vbirdvg/vbirdlv /mnt/lvm
9.tar -jxv -f /backups/lvm.tar.bz2 -C /mnt/lvm
还可以利用快照区来做测试区,坏了很快就能还原。
1.mount /dev/vbirdvg/vbirdss /mnt/snapshot
2.用rm,cp等手段破坏。
3.mount /dev/vbirdvg/vbirdlv /mnt/lvm
4.umount /mnt/snapshot
5.lvremove /dev/vbirdvg/vbirdss 铲除坏掉的vbirdss
6.lvcreate -s -l 89 -n vbirdss /dev/vbirdvg/vbirdlv 在创建一个新的快照区
7.mount /dev/vbirdvg/vbirdss /mnt/snapshot 再挂载