lvm 动态调整磁盘分区

作者:csuper 发表于:2010-11-02
lvm 动态调整磁盘分区

lvm 动态调整磁盘分区

    由于数据一天天飞速上涨,原因的磁盘分区容量已经不能现在的业务发展。所在需要在机0停机动态扩展原有磁盘分区。采取lvm逻辑卷管理来实现。
    先来了解一下lvm相关术语:
  * LVM 的用途:能整虚拟分区出来,分区大小可调,这样不用担心分区时给 / 的是不是少了。
  * LVM 的全称:Logical Volumn Manager
  * LVM 的术语
  PV:Physical Volumn,物理卷,可以理解为磁盘分区
  PE:Physical Extent, 物理块,可以理解为磁盘块(多个连续扇区)
  LV:Logical Volumn, 逻辑卷,在其上的文件系统看到的“磁盘分区”
  LE:Logical Extent, 逻辑块,在其上的文件系统看到的“磁盘块”,LVM 中 PE 和 LE 的大小一致。
    VG: Volumn Group,卷组,可以理解为存储池,它和上面几个东西的关系如下:
  一个 PV 分成多个 PE,一个 LV 分成多个 LE;
  一个 VG 由一个或多个 PV 组成;
  一个 LE 从 VG 中分配出来,这个 LE 就是 mkfs 看到的分区,类似于通常情况下的物理分区 /dev/hda1 这样的东西。
    pv查看命令 pvdisplay
    vg查看命令 vgdisplay
    lv查看命令 lvdisplay
 
  *  创建 PV
  将整个磁盘创建为一个 PV: pvcreate /dev/hda
  将单个分区创建为一个 PV: fdisk 修改这个分区类型为 0x8E(Linux LVM)
  *  创建 VG
  vgcreate vg1 /dev/hda /dev/hdb   #将hda,hdb二个磁盘创建一个vg1
  *  向已有 VG 中添加 PV
  vgextend vg1 /dev/hdc
  *  创建 LV
  查看 PE 大小: vgdisplay vg1
  假设 PE 大小是 20G,创建一个 20000 MB 的 LV:
  lvcreate -L 20G -n lv1 vg1
    *  创建ext3文件系统
    mkfs -t ext3 /dev/vg1/lv1或者mkfs.ext3 /dev/vg1/lv1
    *  增大一个文件系统容量 将/data1分区扩大20G的容量.
    lvextend -L +20G /dev/vg1/lv1  扩大lv(逻辑卷)容量
    resize2fs /dev/vg1/lv1         扩大文件系统容量
    *  减小一个文件系统容量  将/data1分区减小到20G
    umount /data2    减小文件系统不支持在线回缩,所以先要卸载文件系统
    resize2fs /dev/vg1/lv003 20G
    Please run 'e2fsck -f /dev/vg1/lv1' first.请运行e2fsck 检测文件系统
    e2fsck -f /dev/vg1/lv1 
    resize2fs /dev/vg1/lv003 20G
    lvreduce -L20G /dev/vg1/lv1  回缩文件系统到20G
    mount -t ext3 /dev/vg1/lv1 /data1 挂载文件系统到/data1分区
    扩展lv使用vg剩余的所有空间 将/data1使用vg1剩余的所有空间
         lvextend -l +100%FREE /dev/vg1/lv1   注意这里是小写的l
    *  将vg1剩余的所有空间创建为一个lv
        lvcreate -l 100%FREE -n lv2 vg1      注意这里是小写的l
版权声明

本文仅代表作者观点,不代表Csuper立场。
本文系作者授权百度百家发表,未经许可,不得转载。