• LVM卷管理


    LVM逻辑卷管理

    LVM 利用 Linux 内核的 device-mapper 来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过 LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间

    LVM术语:

    物理卷:pv

    卷组:vg

    逻辑卷:lv

    物理区域:pe

    1、查看内核

    LVM1版本需要2.4(包括)以后的内核支持;LVM2需要2.6(包括)以后的内核版本支持

    [root@vm11 ~]# cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core)
    

    一、LVM(逻辑卷管理)

    1.1 磁盘分区

    # 新建
    fdisk /dev/sdb
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    # 主分区
    p
    # 分区号
    Partition number (1-4): 1
    # 回车用默认的 1
    First cylinder (1-1044, default 1): 
    # 大小
    Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044):
    # 改变类型
    Command (m for help): t
    Selected partition 1
    #LVM 的分区代码
    Hex code (type L to list codes): 8e
    Changed system type of partition 1 to 8e (Linux LVM)
    # 保存
    w
    # 退出
    q
    
    # 查看创建完后的分区
    fdisk -l
    
    Disk /dev/sda: 96.6 GB, 96636764160 bytes
    255 heads, 63 sectors/track, 11748 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0008cbaf
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64       11749    93858816   8e  Linux LVM
    
    Disk /dev/sdb: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x16396101
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1       26108   209712478+  8e  Linux LVM
    
    
    

    1.2 物理卷管理

    # 创建物理卷(PV)
    pvcreate /dev/sdb1
    pvscan
    
      PV /dev/sdb1   VG vg_data   lvm2 [200.00 GiB / 30.00 GiB free]
      PV /dev/sda2   VG VolGroup   lvm2 [89.51 GiB / 1.51 GiB free]
      Total: 2 [289.50 GiB] / in use: 2 [289.50 GiB] / in no VG: 0 [0   ]
    
    pvdisplay
    
      --- Physical volume ---
      PV Name               /dev/sdb1
      VG Name               vg_data
      PV Size               200.00 GiB / not usable 1.34 MiB
      Allocatable           yes
      PE Size               4.00 MiB
      Total PE              51199
      Free PE               7679
      Allocated PE          43520
      PV UUID               c9js6G-WP93-ug9b-9aXe-unnZ-doWQ-AkzOKf
    
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               VolGroup
      PV Size               89.51 GiB / not usable 3.00 MiB
      Allocatable           yes
      PE Size               4.00 MiB
      Total PE              22914
      Free PE               386
      Allocated PE          22528
      PV UUID               bFne0f-RnL8-vut2-AcKr-fr9k-VfeG-C8OHSR
    
    # 删除物理卷
    pvremove /dev/sdb1
    
    

    1.3 卷组管理

    # 创建卷组(VG)
    vgcreate vg_data /dev/sdb1
    vgcreate vg_data /dev/hda{6,7,8}
    # 扩展 VG
    vgextend vg_data /dev/hda9
    
    # 查看 VG 信息
    vgscan
    
      Reading all physical volumes.  This may take a while...
      Found volume group "vg_data" using metadata type lvm2
      Found volume group "VolGroup" using metadata type lvm2
    
    vgdisplay
    
      --- Volume group ---
      VG Name               vg_data
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               200.00 GiB
      PE Size               4.00 MiB
      Total PE              51199
      Alloc PE / Size       43520 / 170.00 GiB
      Free  PE / Size       7679 / 30.00 GiB
      VG UUID               EQhiUt-Waj1-F3V2-cwej-2joz-oC3P-JMSFui
    
      --- Volume group ---
      VG Name               VolGroup
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  6
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                5
      Open LV               5
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               89.51 GiB
      PE Size               4.00 MiB
      Total PE              22914
      Alloc PE / Size       22528 / 88.00 GiB
      Free  PE / Size       386 / 1.51 GiB
      VG UUID               i0qDld-uOz4-P1BS-2gN8-2vhj-5gdc-DnHfa4
    
    # 删除 VG
    vgremove vg_data
    
    
    

    1.4 逻辑卷管理

    # 创建逻辑卷(LV)
    lvcreate -L 20g -n lv_oracle vg_data
    lvcreate -l 100%FREE -n lv_oracle vg_data
    
    # 查看 LV
    lvscan
    
      ACTIVE            '/dev/vg_data/lv_oracle' [20.00 GiB] inherit
      ACTIVE            '/dev/VolGroup/lv_root' [50.00 GiB] inherit
      ACTIVE            '/dev/VolGroup/lv_home' [10.00 GiB] inherit
    
    lvdisplay
    
      --- Logical volume ---
      LV Path                /dev/vg_data/lv_oracle
      LV Name                lv_oracle
      VG Name                vg_data
      LV UUID                P3jVXt-92Lp-QElD-ddl8-lW4r-okz7-n8fdXD
      LV Write Access        read/write
      LV Creation host, time capdb, 2016-03-17 17:12:43 +0800
      LV Status              available
      # open                 1
      LV Size                20.00 GiB
      Current LE             5120
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:5
    
    # 格式化逻辑卷
    mkfs -t ext4 /dev/vg_data/lv_oracle
    mkfs.ext4 /dev/vg_data/lv_oracle
    
    # 挂载逻辑卷
    mkdir /oracle
    # 修改 fstab
    vi /etc/fstab
    /dev/vg_data/lv_oracle /oracle ext4 dafualts 0 0
    # 测试 lv 是否可以挂载
    mount -a
    mount /dev/vg_data/lv_oracle /oracle
    df -h
    
    # 删除逻辑卷
    fuser -m /oracle
    umount /oracle
    lvremove /dev/vg_data/lv_oracle
    

    总结:

    新建20G逻辑卷

    pvcreate /dev/sdb1
    vgcreate vg_data /dev/sdb1
    vgcreate vg_data /dev/hda9  #扩展卷组
    lvcreate -L 20g -n lv_job vg_data
    mkfs -t ext4 /dev/vg_data/lv_job
    mkdir /oracle
    mount /dev/vg_data/lv_job /oracle
    

    二、LVM伸缩管理

    2.1 LVM扩展

    LVM 特点就是支持在线动态扩容,如果为了稳妥也可以先 umount

    # 查看 Free  PE / Size 可用空间
    vgdisplay
    
      --- Volume group ---
      VG Name               vg_data
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               200.00 GiB
      PE Size               4.00 MiB
      Total PE              51199
      Alloc PE / Size       43520 / 170.00 GiB
      Free  PE / Size       7679 / 30.00 GiB
      VG UUID               EQhiUt-Waj1-F3V2-cwej-2joz-oC3P-JMSFui
    
    # 设置逻辑卷的大小
    lvresize -L 40g /dev/vg_data/lv_oracle
    lvresize -L +20g /dev/vg_data/lv_oracle
    
    # 检查磁盘错误,等待时间较长可以考虑跳过
    e2fsck -f /dev/vg_data/lv_oracle
    
    # 更新文件系统信息
    resize2fs /dev/vg_data/lv_oracle
    
    # 检查逻辑卷状态
    lvdisplay vg_data
    

    2.2 LVM缩减

    # 卸载 LV
    umout /oracle
    
    # 检查磁盘错误
    e2fsck -f /dev/vg_data/lv_oracle
    
    # 缩小文件系统,更新文件系统信息
    resize2fs /dev/vg_data/lv_oracle 10g
    
    # 减少 LV 大小
    lvresize -L 10g /dev/vg_data/lv_oracle
    lvresize -L -30g /dev/vg_data/lv_oracle
    
    # 检查逻辑卷大小
    lvdisplay
    df -h
    

    2.3 扩展卷组

    # 创建一个 2GB 分区 sdc1,类型为 LVM(8e)
    fdisk /dev/sdc
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-1044, default 1):
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G
    
    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): 8e
    Changed system type of partition 1 to 8e (Linux LVM)
    
    Command (m for help): w
    The partition table has been altered!
    
    # 创建一个物理卷 /dev/sdc1
    pvcreate /dev/sdc1
    
    # 增加到已存在的卷组
    vgextend vg_data /dev/sdc1
    
    # 验证卷组大小
    vgdisplay
    

    2.4 删除卷组

    # 卸载逻辑卷
    umount /oracle
    # 删除逻辑卷
    lvremove /dev/vg_data/lv_oracle
    # 取消激活卷组
    vgchange -a n vg_data
    # 删除卷组
    vgremove vg_data
    # 删除物理卷
    pvremove /dev/sdb1
    pvremove /dev/hda{6,7,8}
    # 普通磁盘类型是 83
    fdisk /dev/sdb
    t 83
    

    lvm卷在重启后消失问题处理过程

    故障:

    系统重启后,发现LVM中/dev/sdb1丢失,如下

    /dev/vg01/lvm01 完全消失,只剩下/dev/sdb盘

    原因分析:

    一般LVM的VG丢失都是由于突然断电或者更换了操作系统等原因引起。尝试执行vgscan命令扫描卷组
    
    初步判断是因为系统重启后,/dev/sdb1消失导致VG无法找到物理卷
    

    解决方法:

    1、备份数据

    为了防止数据丢失或破坏,首先对/dev/emcpowera设备的数据进行备份

    dd if=/dev/sdb of=/data/sdb  #我的数据11T数据盘,太大,所以没有做数据备份这个动作
    

    2、修正UUID号

    pvcreate -u p6LgHa-UfMC-oAD1-1kSw-zSlM-dlya-CZf9iF /dev/sdb  --restorefile /etc/lvm/backup/vg01
    

    报错:原因是没有对/dev/sdb进行分区

    分区操作

    注意:需问清楚之前sdb1分区大小,这次采取默认分区操作即可即

    fdisk /dev/sdb
    

    分区成功后重新执行修正uuid号

    3、恢复卷组信息

    vgcfgrestore -f /etc/lvm/backup/vg01 vg01
    

    4、查看相关信息

    相关信息都已恢复

    pvs
    vgs
    lvs
    

    4、激活逻辑卷

    lvchange -ay /dev/vg01/lvm01
    

    5、重新挂载

    mount /dev/vg01/lvm01 /work
    

    6、查看文件是否都在

  • 相关阅读:
    while循环
    No.四
    No. three
    第二章吧
    第二次写博客
    我人生的第一个程序,相当于哥伦布发现新大路。
    orale命令6 rman备份
    oracle 命令4 热备份
    oracle命令3 冷备份
    oracle命令2 和一致性关闭、非一致性关闭
  • 原文地址:https://www.cnblogs.com/pansn/p/13452079.html
Copyright © 2020-2023  润新知