LVM浅析

第一部分:LVM的创建

LVM创建的大致步骤为

1、将多个分区转化为多个物理卷PV(Physical Vomule)

2、将多个物理卷创建为卷组VG(Vomule Group)

3、将一个卷组VG划分为多个逻辑卷LV(Logical Vomule)

LVM创建的具体步骤:

第一步:创建LVM分区以及物理卷

1、检测有几块可用磁盘以及检查驱动器上空闲硬盘空间的总量

# fdisk -l | grep "Disk /dev"

#检测有几块磁盘,以及磁盘信息

Disk /dev/sda: 8589 MB, 8589934592 bytes
Disk /dev/sdb: 2147 MB, 2147483648 bytes
Disk /dev/mapper/vg_svr1-lv00: 7432 MB, 7432306688 bytes
Disk /dev/mapper/vg_svr1-lv01: 1048 MB, 1048576000 bytes

# df -h

#查看磁盘使用情况

文件系统        容量  已用  可用 已用%% 挂载点
/dev/mapper/vg_svr1-lv00 6.9G  6.4G  168M  98%   /
tmpfs                   120M     0  120M   0%   /dev/shm
/dev/sda1                 97M   27M   66M  29%   /boot

磁盘/dev/sdb没有使用


2、创建LVM分区

使用fdisk /dev/sdb创建两个分区:/dev/sdb1 /dev/sdb2

n 建立相应的主分区或扩展分区sdb1 512M、sdb2 1.5G ,最后w写入分区表


3、创建物理卷

将新创建的两个分区/dev/sdb1 /dev/sdb2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元

# pvcreate /dev/sdb1 /dev/sdb2

Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created

# pvs

   PV         VG      Fmt  Attr PSize   PFree 
  /dev/sda2  vg_svr1 lvm2 a-     7.90g      0
  /dev/sdb1          lvm2 a-   517.69m 517.69m
  /dev/sdb2          lvm2 a-     1.49g   1.49g

第二步:用两块物理卷创建卷组vg10

# vgcreate vg10 /dev/sdb1
  Volume group "vg10" successfully created

# vgs

  VG      #PV #LV #SN Attr   VSize   VFree
  vg10      1   0   0 wz--n- 516.00m 516.00m
  vg_svr1   1   2   0 wz--n- 7.90g    0

第三步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷lv10,大小-L指定521M,名称-n指定lv10

# lvcreate -L 512M -n lv10 vg10
  Logical volume "lv10" created

# lvs

  LV   VG      Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  lv10 vg10    -wi-a-  512.00m                                     
  lv00 vg_svr1 -wi-ao    6.92g                                     
  lv01 vg_svr1 -wi-ao 1000.00m                                           

格式化文件系统
# mkfs.ext4 /dev/vg10/lv10

第四部:挂载

# mkdir /lv10

# mount /dev/vg10/lv10 /lv10/

# df -h

文件系统        容量  已用  可用 已用%% 挂载点
/dev/mapper/vg_svr1-lv00 6.9G  6.4G  168M  98%    /
tmpfs                  120M     0  120M   0%    /dev/shm
/dev/sda1               97M    27M   66M  29%    /boot
/dev/mapper/vg10-lv10   504M   17M  462M   4%   /lv10

便于以后服务器重启自动挂载,需要将创建好的文件系统挂载信息添加到/etc/fstab里面

# vi /etc/fstab

/dev/mapper/vg_svr1-lv00 /                       ext4    defaults        1 1
UUID=7a3dabe6-886c-4639-8245-3474335f0ea8 /boot  ext4    defaults        1 2
/dev/mapper/vg_svr1-lv01 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/vg10/lv10          /lv10                   ext4    defaults        0 0

至此,LVM的创建结束


第二部分:LVM的扩展与缩减

卷组的扩张

# vgextend vg10 /dev/sdb2  #将物理卷/dev/sdb2加入卷组vg10

  Volume group "vg10" successfully extended


逻辑卷的扩张:先扩张物理边界lv―――再扩张逻辑边界fs

扩张物理边界

# lvextend -L 2G /dev/vg10/lv10 要扩张到2G
# vgs
  VG      #PV #LV #SN Attr   VSize VFree
  vg10      2   1   0 wz--n- 2.00g    0
  vg_svr1   1   2   0 wz--n- 7.90g    0

若提示空间不足,则通过vgdisplay查看剩余多少free PE

通过 lvextend -l +"free PE数" /dev/vg10/lv10

如:Free  PE / Size       383 / 1.50 GiB

# lvextend -l +383 /dev/vg10/lv10
  Extending logical volume lv10 to 2.00 GiB
  Logical volume lv10 successfully resized


扩张逻辑边界

# resize2fs /dev/vg10/lv10
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg10/lv10 is mounted on /lv10; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg10/lv10 to 523264 (4k) blocks.
The filesystem on /dev/vg10/lv10 is now 523264 blocks long.

# df -h
文件系统         容量  已用  可用 已用%% 挂载点
/dev/mapper/vg_svr1-lv00 6.9G  6.4G  168M   98%   /
tmpfs                    120M     0  120M   0%    /dev/shm
/dev/sda1                 97M   27M   66M   29%   /boot
/dev/mapper/vg10-lv10    2.0G   17M  1.9G   1%    /lv10


逻辑卷的缩减,有风险,先缩减逻辑边界fs――再缩减物理边界lv

注意:1、不能在线缩减,得先卸载;

      2、确保缩减后的空间大小依然能存储原有的所有数据;

      3、在缩减之前应该强行检查文件,确保文件系统处于一致性状态

# df -h

文件系统            容量  已用  可用 已用%% 挂载点
/dev/mapper/vg_svr1-lv00    6.9G  6.4G  168M  98%   /
tmpfs                       120M     0  120M   0%   /dev/shm
/dev/sda1                    97M   27M   66M  29%   /boot
/dev/mapper/vg10-lv10       2.0G   17M  1.9G   1%   /lv10

umount  卸载
# umount /lv10

e2fsck -f /dev/vg10/lv10强行文件系统检查,看是否有问题
# e2fsck -f /dev/vg10/lv10
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg10/lv10: 11/131072 files (0.0% non-contiguous), 12524/523264 blocks
 

开始缩减,缩减(逻辑边界)为1G

# resize2fs /dev/vg10/lv10 1G

rresize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg10/lv10 to 262144 (4k) blocks.
The filesystem on /dev/vg10/lv10 is now 262144 blocks long.

缩减(物理边界)为1G

# lvreduce -L 1G /dev/vg10/lv10

WARNING: Reducing active logical volume to 1.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv10? [y/n]: y
  Reducing logical volume lv10 to 1.00 GiB
  Logical volume lv10 successfully resized

重新挂载

# mount /dev/vg10/lv10 /lv10
 df -h
文件系统          容量  已用  可用 已用%% 挂载点
/dev/mapper/vg_svr1-lv00  6.9G  6.4G  168M  98%   /
tmpfs                     120M     0  120M   0%   /dev/shm
/dev/sda1                  97M   27M   66M  29%   /boot
/dev/mapper/vg10-lv10    1008M   17M  941M   2%   /lv10


管理LVM管理配置要用到的命令有:
    vgextend vg11 /dev/sdc 将第三个物理卷添加进vg11物理卷组
    fdisk -l :查看系统中都认到了那些物理硬盘
    pvdisplay:查看系统中已经创建好的物理卷
    pvcreate:创建一个新的物理卷
    pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)

    vgdisplay:查看系统中的卷组
    vgcreate:创建一个新的卷组
    vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)
    vgremove:删除一个卷组

    lvdisplay:查看系统中已经创建好的逻辑卷
    lvcreate:创建一个新的逻辑卷
    lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)
    lvremove:从系统中删除一个逻辑卷

    mkfs:基于逻辑卷创建一个相应类型的文件系统
    mkdir -p $mount_piont:创建一个挂载目录
    创建好的文件系统位于: /dev/$create_vg_name/$lv_name
    mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统
    lvextend -L 2G /dev/vg10/lv10 要扩张到2G(扩张后的物理边界lv)
    lvextend -l +FreePE /dev/g10/lv10 扩张大小为FreePE(vgdisplay获得)
    resize2fs /dev/vg10/lv01 扩张后的逻辑边界fs


第三部分 如果某一块磁盘或者分区故障了如何将数据快速转移到相同的卷组其他的空间去。

1、通过pvmove命令转移空间数据

# pvmove 故障pv 正常pv

2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vg10里面移除除去。

#vgreduce vg10 故障pv

3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。

4、手工拆除硬盘或者通过一些工具修复分区。


总结:LVM逻辑卷是Linux里面一个很棒的空间使用机制,因为分区在没有格式化的情况下是没有办法加大或者放小的。通过LVM可以将你的磁盘空间做到灵活自如。


你可能感兴趣的:(LVM扩大与缩减)