LVM管理

1. lvm的应用场景及其弊端

应用场景:
随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了

弊端:
数据不是直接存放在硬盘上,而是在硬盘的上面又虚拟出来一层逻辑卷存放数据,故而增加了磁盘数据恢复的难度

2. 物理卷、卷组、逻辑卷

物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷

卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量

逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用

3. lvm管理

3.1 部署lvm

创建lvm步骤:
a) 添加物理磁盘,创建物理卷
b) 创建卷组,将物理卷加入卷组
c) 在卷组中划分逻辑卷
d) 格式化逻辑卷
e) 挂载使用

//1.准备物理磁盘
[root@localhost ~]# lsblk |grep "sd[bcd]"
sdb             8:16   0    1G  0 disk
sdc             8:32   0    1G  0 disk
sdd             8:48   0    1G  0 disk

//1.将磁盘加入pv
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
//检查pv创建情况
[root@localhost ~]# pvs
PV         VG     Fmt  Attr PSize   PFree
/dev/sdb          lvm2 ---    1.00g 1.00g

//2.创建名为datavg的卷组
[root@localhost ~]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
//检查卷组
[root@localhost ~]# vgs
VG      #PV #LV #SN Attr   VSize    VFree
datavg   1   0   0 wz--n- 1020.00m 1020.00m

//3.创建逻辑卷, 分配名称, 以及大小, 指定卷组
[root@localhost ~]# lvcreate -L 100M -n lv1 datavg
Logical volume "datalv1" created.
//检查逻辑卷
[root@localhost ~]# lvscan
ACTIVE            '/dev/datavg/lv1' [100.00 MiB] inherit

//4.格式化文件系统
[root@localhost ~]# mkfs.xfs /dev/datavg/lv1

//挂载并使用
[root@localhost ~]# mkdir /lv1
[root@localhost ~]# mount /dev/datavg/lv1 /lv1/
[root@localhost ~]# df -h
Filesystem                  Size  Used Avail Use% Mounted on
...
/dev/mapper/datavg-lv1   97M  5.2M   92M   6% /lv1

3.2 卷组管理

  • 扩展卷组,将新磁盘加入卷组

    //1.新硬盘加入pv
    [root@localhost ~]# pvcreate /dev/sdc
    
    2.使用vgextend扩展
    [root@localhost ~]# vgextend datavg /dev/sdc
    Volume group "datavg" successfully extended
    
  • 缩减卷组,将指定磁盘从卷组中删除

    [root@localhost ~]# vgreduce datavg /dev/sdb
    Removed "/dev/sdb" from volume group "datavg"
    
  • 数据迁移卷组,同一卷组的磁盘才可以进行在线迁移

    //1.检查当前逻辑卷VG中PV使用情况
    [root@localhost ~]# pvs
    PV      VG   Fmt  Attr PSize PFree
    /dev/sdb vg1 lvm2 a -- 2.00g 1.76g 
    /dev/sdc vg1 lvm2 a -- 2.00g 2.00g
    
    //2.pvmove在线数据迁移至其他pv 
    [root@localhost ~]# pvmove /dev/sdb
    /dev/sdb: Moved: 41.33%
    /dev/sdb: Moved: 100.00%
    
    //3.检查是否将sdb数据迁移至sdc 
    [root@localhost ~]# pvs
    PV      VG   Fmt  Attr PSize PFree 
    /dev/sdb vg1 lvm2 a -- 2.00g 2.00g 
    /dev/sdc vg1 lvm2 a -- 2.00g 1.76g
    

3.3 逻辑卷管理

  • 逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量

    [root@localhost ~]# vgs
    VG #PV #LV #SN Attr VSize VFree 
    vg1 2 2 0 wz --n-   1.88g 1.00g
    
    1.扩展lv逻辑卷
    //增加800M分配给逻辑卷 {注意: 800M +800M 不一样}
    [root@localhost ~]# lvextend -L +800M /dev/datavg/lv1
    //分配磁盘池中多少百分比给逻辑卷
    [root@localhost ~]# lvextend -l +50%FREE /dev/datavg/lv1
    
    2.扩展fs文件系统
    //xfs扩容
    [root@localhost ~]# xfs_growfs /dev/datavg/lv1
    //ext扩容
    [root@localhost ~]# resize2fs /dev/datavg/lv1
    
  • 对ext4文件系统的逻辑卷裁剪容量
    首先自己创建一个1G的逻辑卷作为裁剪的对象

    # lvcreate  -n uplooking -L 1G finance
    # mkfs.ext4 /dev/finance/uplooking 
    
    # mkdir -p /finance/uplooking
    # mount /dev/finance/uplooking  /finance/uplooking/
    # cp /etc/host* /finance/uplooking/
    
    1、如果已经挂载,必须先卸载
    # umount /dev/finance/uplooking
    
    2、裁剪容量,必须是先检测文件系统
    # e2fsck -f /dev/finance/uplooking
    # resize2fs /dev/finance/uplooking 512M
    
    3、调整完毕后采取裁剪逻辑卷容量
    # lvreduce  -L 512M /dev/finance/uplooking 
    WARNING: Reducing active logical volume to 512.00 MiB
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce uplooking? [y/n]: y
    
    4、强烈建议裁剪后,再次检测文件系统
    # e2fsck -f /dev/finance/uplooking
    
    5、挂载测试
    如果能够挂载,一般说明裁剪成功,文件系统没有损坏
    
    # mount /dev/finance/uplooking /mnt
    ...
    /dev/mapper/finance-uplooking  472M  1.6M  435M    1% /mnt 而且文件系统容量被刷新了
    

缩减逻辑卷注意事项:

  1. 不能在线缩减,得先卸载;
  2. 确保缩减后的空间大小依然能存储原有的所有数据;
  3. 在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。使用命令e2fsck -f /PATH/TO/LV

作业:

1.如何查看/etc/目录大小
2.如何查看磁盘使用分区情况
3.如何查看innode使用情况
4.如何查看磁盘block使用情况
5.如何查看分区使用格式
6.如何查看一个设备的UUID
7.请解释/etc/fstab中每段含义
8.一个ext4的文件分区,当使用touch test.file命令创建一个新文件是报错,报错的信息提示磁盘已满,但是采用df –h 命令查看磁盘大小时,只是用了60%的磁盘空间,为什么会出现这个情况,说说你的理由.

磁盘分区方案

  在虚拟机中添加一块20GB的SCISI磁盘
  在新硬盘中建立一个5GB的分区,一个10G的分区
 一个格式化为ext4的文件系统, 一个格式化为xfs的文件系统
 新建两个目录站点进行挂载, 要求开机自动挂载该分区

LVM磁盘管理方案

在虚拟机环境中,新添加两块SCISI硬盘设备,完成硬盘检测及分区
建立逻辑卷mbvg, 格式化为ext4文件系统, 分配1G逻辑分区供/box目录使用
第二块逻辑分区, 格式化为xfs文件系统, 分配1G逻辑分区供/xfs目录使用
最后使用扩容方案将/box站点扩展到2.8G磁盘使用空间, 将/xfs目录扩展到2G