Linux

LVM

所有Linux发行版LVM功及命令通用。

概念

  • 磁盘
    • 磁盘分区
      • 主分区(最多4个,操作系统分区为主分区,可引导)
      • 扩展分区(最多只能有 1 个,可再次分配多个逻辑分区)
        • 逻辑分区1 (可以格式化,被写入数据)
        • 逻辑分区N
  • 格式化
    • 低级格式化
    • 高级格式化(常见格式:FAT16/FAT32/NTFS/EXT2/EXT3/EXT4)
    • 磁盘分区表
  • LVM
    • fdisk -> 8e -> pv -> vg -> lv -> mkfs.ext4 -> mount

更多资料可查看参考资料或官方文档

创建LVM

  1. 新增磁盘
  2. 查看当前已挂载磁盘及分区
     df -h
    
  3. 查当前所有磁盘,查找是否有未分区的磁盘
     fdisk -l
    
  4. 对未分区磁盘进行分区

     fdisk /dev/xvdb
         m   # 查看帮助
         p   # 打印当前磁盘分区
         n   # 创建新的磁盘分区
             ->p     # 创建一个主分区
             ->1     # 分区编号
             ->Enter # 新分区块起始位置,新磁盘使用默认
             ->Enter # 新分区块结束位置,新磁盘使用默认,即全部
         p   # 查看分区是否创建成功
         l   # 查看当前支持的磁盘分区格式,找到LVM支持的格式:8e  Linux LVM    
         t   # 修改磁盘分区格式
             -> 8e   # 输入要lvm磁盘格式
         w   # 保存对磁盘分区的修改,并退出 
     partprobe   # 重新加载分区
    
  5. 重新加载磁盘分区

     partprobe   # 
     fdisk -l    # 查看
    
  6. 创建物理卷(PhysicalVolume)
     pvdisplay   
     pvcreate /dev/xvdb1
         -> Physical volume "/dev/xvdb1" successfully created
     pvdisplay
    
  7. 创建卷组(VolumeGroup)
     vgdisplay
     vgcreate VolGroupData /dev/xvdb1     
         -> Volume group "VolGroupData" successfully created
     vgdisplay
    
  8. 创建逻辑卷(LogicVolume)

     lvdisplay
     # 指定extents   (二选一,推荐)     
     lvcreate -n LvData VolGroupData -l 127999
    
     # 指定空间大小
     lvcreate -n LvData VolGroupData -L 500G 
     lvdisplay
    
  9. 格式化
     # (二选一)
     mkfs -t ext4 /dev/VolGroupData/LvData
     mkfs.ext4 /dev/VolGroupData/LvData
    
  10. 加入开机挂载
    mkidr /data     # 创建挂载目录
    vi /etc/fstab
        -> /dev/VolGroupData/LvData      /data    ext4     defaults     1 2
    # 挂载(二选一)
    mount -a
    mount  /dev/VolGroupData/LvData   /data
    

扩展LVM

  1. 新增磁盘
  2. 从新磁盘创建新分区
    fdisk /dev/xvdb
         -> n
         -> .. .. ..Enter 
         -> p
         -> t
         -> 8e
         -> w
    partprobe # 重新加载分区
    
  3. 格式化分区
    mkfs.ext4 /dev/xvdb
    partx /dev/xvdb     # 查看使用情况
    
  4. 创建PV,扩容VG,LV

    • 将新增磁盘创建为物理卷(PhysicalVolume

      pvcreate /dev/xvdb
      
    • 查看物理卷(PhysicalVolume)

      pvdisplay
      
    • 查看卷组(VolumeGroup)

      vgdisplay
      
    • 使用新的(或有空闲的)物理卷扩展卷组

      vgextend VolGroup /dev/xvdb
      
    • 查看逻辑卷(LogicalVolume)记录需要扩展的卷名

      lvdisplay
      
    • 查看卷组,记录空闲空间(PE / Size),下一步会用到

      vgdisplay
      
    • 扩展逻辑卷(LogicalVolume)

      lvextend –l 5118 /dev/VolGroup/lv_root
      
    • 重新加载逻辑卷大小

      resize2fs /dev/VolGroup/lv_root
      
    • 查看磁盘空间

      df -h
      

常见错误:

  1. lvextend

    New size given (5118 extents) not larger than existing size (9397 extents)

  2. resize2fs

    resize2fs command not found

    yum -y install e2fsprogs
    

参考资料: