linux-磁盘管理篇

linux的磁盘篇

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

  • 应用场景:
    • 随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了
  • 弊端:
    • 数据不是直接存放在硬盘上,而是在硬盘的上面又虚拟出来一层逻辑卷存放数据,故而增加了磁盘数据恢复的难度

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

  • 物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷
  • 卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
  • 逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用

三. LVM管理

3.1 部署LVM

  • 创建lvm步骤:

    • a) 添加物理磁盘,创建物理卷
    • b) 创建卷组,将物理卷加入卷组
    • c) 在卷组中划分逻辑卷
    • d) 格式化逻辑卷
    • e) 挂载使用
  • 使用到的命令

    • Pvcreate 硬盘的位置;如/dev/sdb 创建物理卷-也就是将硬盘加入物理卷初始化
    • Vgcreate 物理卷的位置,如pv1 创建卷组,将物理卷加入到卷组中进行统一分配管理。
    • Lvcreate -n lv-name -L +5G空间大小 vg0对应的vg设备。

      配置逻辑卷,将卷组的空间分配给新的逻辑卷,类似硬盘上的分区,当逻辑卷创建好后就可以挂载设备进行使用。

    • Pvs查看物理卷
    • Vgs查看卷组
    • Lvs 查看逻辑卷
  • 都可以通过pvdisplay-vgdisplay-lvdisplay可以查看详细信息

  • //1.准备物理磁盘(查看物理磁盘)
    [[email protected] ~]# 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
    linux-磁盘管理篇

  • //1.将磁盘加入pv
    [[email protected] ~]# pvcreate /dev/sdb
    Physical volume “/dev/sdb” successfully created.
    linux-磁盘管理篇

  • //检查pv创建情况
    [[email protected] ~]# pvs
    PV VG Fmt Attr PSize PFree
    /dev/sdb lvm2 — 1.00g 1.00g
    linux-磁盘管理篇

  • //2.创建名为datavg的卷组
    [[email protected] ~]# vgcreate datavg /dev/sdb
    Volume group “datavg” successfully created
    linux-磁盘管理篇

  • //检查卷组
    [[email protected] ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    datavg 1 0 0 wz–n- 1020.00m 1020.00m
    linux-磁盘管理篇

//3.创建逻辑卷, 分配名称, 以及大小, 指定卷组
[[email protected] ~]# lvcreate -L 100M -n lv1 datavg
Logical volume “datalv1” created.
linux-磁盘管理篇

3.2 卷组管理

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

  • 新建物理卷pvcreate 硬盘的名称

  • 通过vgextend扩展卷组的名 物理卷的位置

  • Lvextend -L +或-大小空间 逻辑卷的位置。

  • 操作步骤

    • //1.新硬盘加入pv
      [[email protected] ~]# pvcreate /dev/sdc

    • 2.使用vgextend扩展
      [[email protected] ~]# vgextend datavg /dev/sdc
      Volume group “datavg” successfully extended

    • 缩减卷组,将指定磁盘从卷组中删除
      [[email protected] ~]# vgreduce datavg /dev/sdb
      Removed “/dev/sdb” from volume group “datavg”

    • 数据迁移卷组,同一卷组的磁盘才可以进行在线迁移

    • //1.检查当前逻辑卷VG中PV使用情况
      [[email protected] ~]# 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
      [[email protected] ~]# pvmove /dev/sdb
      /dev/sdb: Moved: 41.33%
      /dev/sdb: Moved: 100.00%

    • //3.检查是否将sdb数据迁移至sdc
      [[email protected] ~]# 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 逻辑卷管理

  • 逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量
    [[email protected] ~]# vgs(查看容量)
    VG #PV #LV #SN Attr VSize VFree
    vg1 2 2 0 wz --n- 1.88g 1.00g

  • 操作步骤

    • 1.扩展lv逻辑卷
      //增加800M分配给逻辑卷 {注意: 800M +800M 不一样}
      [[email protected] ~]# lvextend -L +800M /dev/datavg/lv1
      //分配磁盘池中多少百分比给逻辑卷
      [[email protected] ~]# lvextend -l +50%FREE /dev/datavg/lv1

      • 2.扩展fs文件系统 ,不同的文件系统需要使用不同的文件系统来扩展并刷新分区大小。

      • Pvmove /dev/sdb 迁移硬盘。

    • 对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/目录大小

linux-磁盘管理篇

2.如何查看磁盘使用分区情况

linux-磁盘管理篇

3.如何查看inode使用情况
linux-磁盘管理篇

4.如何查看磁盘block使用情况
linux-磁盘管理篇
5.如何查看分区使用格式

6.如何查看一个设备的UUID
linux-磁盘管理篇

7.请解释/etc/fstab中每段含义
UUID或者路径都是磁盘的设备分区。
然后是/下的路径文件的挂载点
然后是文件系统格式类型
然后是挂载参数
然后是不检查 ,0- 最早进行检验,1 -1级检验后完进行检验,2
然后是不备份,0 -每天进行备份,1-不定日期进行备份,2
linux-磁盘管理篇

8.一个ext4的文件分区,当使用touch test.file命令创建一个新文件是报错,报错的信息提示磁盘已满,但是采用df –h 命令查看磁盘大小时,只是用了60%的磁盘空间,为什么会出现这个情况,说说你的理由.

因为在磁盘的Inode节点中已经使用完毕,没有可以新增的节点来满足新文件的节点空间。

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

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