LVM

作者: AmenSun | 来源:发表于2018-10-04 21:47 被阅读0次
    • LVM:Logical Volume Manager # 逻辑卷管理
    • DM:Device Mapper # 设备映射器,可以将一个或多个物理块设备组成一个逻辑块设备
    • VG:Volume Group # 卷组,一个或多个物理块设备的组合
    • PV:Physical Volume # 实体卷,物理卷,物理分区
    • LV:Logical Volume # 在 VG 上创建的可供系统和应用调用的虚拟块设备,Each block of data in an LV is stored on one or more PV in the VG, according to algorithms implemented by Device Mapper (DM) in the kernel.
    • PE:Physical Extents # 物理区段,硬盘可供指派给逻辑卷的最小单位(通常为4MB)
    • LE:Logic Extends # 逻辑区域,跟PE一样,只不过站在LV的视角上是叫LE

    逻辑卷块设备文件在系统的存储位置,以下同为 符号链接文件,指向 /dev/dm<#>

    • /dev/mapper/VG_NAME-LV_NAME
      如:/dev/mapper/vg0-root
    • /dev/VG_NAME/LV_NAME
      如:/dev/vg0/root

    1. PV 管理

    • pvcreate # 初始化LVM使用的物理卷
      # pvcreate /dev/sda3
      注:在创建 PV 前,应先把分区类型调整为 Linux LVM (8e)

    • pvs # 显示简要的 PV 信息

    • pvdisplay # 显示详细的 PV 信息

    • pvmove # 移动 PV 上的 PE 信息到另一个 PV

    • pvremove # 删除该 PV,如此以至于 LVM 不会再把该设备识别为 PV

    2. VG 管理

    • vgcreate # 创建 VG
    vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] 
      -s   指定 PE 大小
    

    # vgcreate myvg /dev/sda{3,5,6}

    • vgs # 显示简要的 VG 信息

    • vgdisplay # 显示详细的卷组信息
      # vgdisplay -v

    • vgrename # 重命名卷组名称
      # vgrename VG VG_new

    • vgextend # 添加 PV 至 VG

    vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    

    # vgextend myvg /dev/sda{7,8}

    • vgreduce # 将 PV 从 VG 中移除
    vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    

    注:要先做 pvmove
    # pvmove /dev/sda7 # 移动 7 到其他任一 PV
    或 # pvmove /dev/sda7 /dev/sda8 # 从 7 移到 8
    # vgreduce myvg /dev/sda7 # 从卷组 myvg 中移除 PV /dev/sda7
    # vgreduce -a myvg # 从卷组 myvg 中移除所有无用的 PVs
    # vgreduce --removemissing myvg # 从卷组 myvg 中移除所有遗失的 PVs

    • vgremove # 删除卷组

    3. LV 管理

    • lvcreate # 创建 LV
    lvcreate -L size [mMgGtT] -n NAME VolumeGroup 
    

    # lvcreate -L 2G -n mylv1 myvg

    • lvs

    • lvdisplay
      # lvdisplay -v

    • lvextend # 扩展逻辑卷

    lvextend -L [+] size [mMgGtT] /dev/VG_NAME/LV_NAME
    

    # lvextend -L 3G /dev/myvg/mylv1
    # lvextend -L +1G /dev/myvg/mylv1
    then
    # resize2fs /dev/VG_NAME/LV_NAME # 针对该 LV 已经格式化后,或用 -r 参数
    # lvextend -L +1G -r /dev/myvg/mylv1

    • lvreduce # 缩减逻辑卷
    lvreduce -L [-] size [mMgGtT] /dev/VG_NAME/LV_NAME
    

    # lvreduce -L -1G /dev/myvg/mylv1
    # lvreduce -L 2G /dev/myvg/mylv1

    • 合理步骤:
      # umount /dev/VG_NAME/LV_NAME
      # e2fsck -f /dev/VG_NAME/LV_NAME
      # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
      # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
      # mount

    • 快照 snapshot

    lvcreate -L size [mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
    

    4. 光盘设备和挂载

    • 光盘设备文件:
      IDE: /dev/hdc
      SATA: /dev/sr0

    • 符号链接文件:
      /dev/cdrom
      /dev/cdrw
      /dev/dvd
      /dev/dvdrw

    # mount -r /dev/cdrom /media/cdrom # 只读挂载
    # umount /dev/cdrom

    5. dd 命令

    • dd命令:convert and copy a file
      用法:
      # dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
      bs=#:block size, 复制单元大小
      count=#:复制多少个bs

    • 磁盘拷贝:
      # dd if=/dev/sda of=/dev/sdb

    • 备份MBR
      # dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

    • 破坏MBR中的bootloader:
      # dd if=/dev/zero of=/dev/sda bs=256 count=1

    • 两个特殊设备:
      /dev/null: 数据黑洞;
      /dev/zero:吐零机;

    相关文章

      网友评论

          本文标题:LVM

          本文链接:https://www.haomeiwen.com/subject/cemxaftx.html