返回顶部

Linux 实现LVM逻辑卷及快照

LVM逻辑卷详解及创建

 

PV: 底层的一个硬盘设备,可以是一个分区,也可能是一个RAID。我们可以把这个块设备创建成一个物理卷格式,即一个PV。

VG: 将一个或多个PV提供的存储空间在一个更低的单位上划分成一个个独立的存储单元,并且把这些存储单元合成一个较为高层的组件叫做卷组vg;

       其中vg可以包含多个物理卷。我们这里可以看到vg有点类似于扩展分区,这种格式的分区是没有办法创建文件系统的,必须要它划分成逻辑分区。

LV: 在vg的基础上再次创建LV的组件,LV才是真正意义上的逻辑卷。每一个LV逻辑卷都是一个独立的文件系统,可以被格式化挂载使用,LV的大小可以是vg内的任意大小空间;

 

       lv可以支持动态扩展的,当存储空间不够时,可以再添加pe,当空间足够时,可以删除的多余的pe,并且这个过程是不损害lv当中原有的数据的,lv的大小可以动态扩展跟收缩。

PE: vg会在一个逻辑层次上将每一个pv所提供的物理空间划分成固定大小的PE.(物理盘区),然后在vg上面创建lv,所为创建lv的过程就是指定一定数量的pe来组成逻辑存储单元的过程。

pv管理工具:

        pvs:简要显示pv的信息

        pvdisplay:显示pv的详细信息

        pvcreate  /dev/DEVICE:创建PV

vg管理工具:

        vgs:简要显示vg的信息

        vgdisplay:显示vg的详细信息

        vgcreate  卷组名  /dev/DEVICE:创建vg

        vgextend  VolumeGroupNam  PhysicalDevicePath:  扩展vg

        vgreduce  VolumeGroupNam  PhysicalDevicePath:  缩减vg

        备注:这里我们要注意在缩减前先做pvmove进行物理层次的缩减即PV的缩减

 lv管理工具:

       lvs:简要显示lv的信息

       lvdisplay:显示lv的详细信息,路径为/dev/卷组名称/卷组

       lvcreate -L  [大小MGT]  -n NAME VolumeGroup(vg名称)

       lvcreate -L 128M  -n mylv myvg

       lvremove  /dev/VG_NAME/LV_NAME:删除逻辑卷

      扩展逻辑卷:

       lvextend -L  [+]MGT  /dev/VG_NAME/VL_NAME

       resize2fs   /dev/VG_NAME/LV_NAME 只适用于ext文件系统

      缩减逻辑卷:(缩减后的空间一定要能容纳现有所有的数据)

       umount  /dev/VG_NAME/LV_NAME

       e2fsck -f /dev/VG_NAME/LV_NAME

       resize2fs /dev/VG_NAME/LV_NAME   [MGT] 缩减文件系统

       lvreduce -L [-]MGT /dev/VG_NAME/LV_NAME 缩减逻辑卷

       mount  /dev/VG_NAME/LV_NAME 挂载

 

创建三个5G的分区,磁盘格式设置为LVM格式,并为其创建ext4文件系统 (通过 t 修改 8e)

 

 接下来我们创建PV

pvcreate /dev/sda5
pvcreate /dev/sda6

 这里我们可以使用pvdisplay查看一下

 

 接下我们创建一个vg

vgcreate  myvg  /dev/sda5

如果不制定大小的话,默认创建出来的vg卷中的PE大小为4M,想要为PE指定大小可以使用-s选项

vgcreate -s 10 myvg  /dev/sda5

这样创建出来的PE大小为10M 

注意:如果我们想要删除次卷组可以使用命令vgremove

例如删除刚刚创建的myvg卷组

vgremove  myvg

我们现在可以将第一个逻辑分区添加到刚刚创建好的myvg中  

pvcreate /dev/sda6
vgextend myvg /dev/sda6

 

 

 

如果我们想要缩减vg卷组,首先我们要将卷组中想要移除pv中的数据移到卷组中其它的pv上面,然后在缩减

pvmove /dev/sda5
vgreduce  myvg  /dev/sda5

vgdisplay

 现在我们来创建一个名称为mylv的逻辑卷

 lvcreate -L 2M -n mylv myv

 对逻辑卷进行格式化并挂载到/mnt/test目录上

mkdir /mnt/test
mke2fs  -t  ext4  /dev/myvg/mylv
mount /dev/myvg/mylv   /mnt/test

 

 

 这时候这个逻辑卷分区就可以正常使用了,我们复制一个文件做一下测试

cp /etc/fstab   /mnt/test

扩展逻辑卷 

umount /dev/myvg/mylv 
lvextend  -L 3M  /dev/myvg/mylv
e2fsck -f /dev/myvg/mylv
resize2fs   /dev/myvg/mylv 
mount /dev/myvg/mylv   /mnt/test 

并重新出创建文件系统  

resize2fs   /dev/myvg/mylv

备注:resize2fs命令只适用于ext文件系统类型,如果是xfs,btrfs文件系统则需要使用别的命令  

设置开机自动挂载

在/etc/fstab文件中添加

/dev/myvg/mylv   /mnt/test    ext4  defaults   0  0  

缩减逻辑卷

先缩减文件系统到指定大小

第一步:先卸载文件系统

umount  /dev/myvg/mylv

第二步:e2fsck -f /dev/myvg/mylv做文件系统的强制检测文件系统修复  

e2fsck -f /dev/myvg/mylv

 

 

第三步:resize2fs   /dev/myvg/mylv  #[mg] 

resize2fs   /dev/myvg/mylv 3G 
lvreduce -L 2M  /dev/myvg/mylv

 

dd 命令  

dd命令:convert and copy a file

用法:

  • dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
  • bs=#:block size, 复制单元大小;
  • count=#:复制多少个bs;

磁盘拷贝:

  • dd if=/dev/sda of=/dev/sdb

备份MBR

  • dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破坏MBR中的bootloader:

  • dd if=/dev/zero of=/dev/sda bs=256 count=1

两个特殊设备:

  • /dev/null: 数据黑洞;
  • /dev/zero:吐零机;

 

posted @ 2019-10-13 15:53  Crazymagic  阅读(911)  评论(0编辑  收藏  举报