编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

LVM卷管理工具(lvm卷配置)

wxchong 2024-09-04 21:32:56 开源技术 11 ℃ 0 评论

LVM卷管理工具

  • 机制概述
  • 架构
  • 卷管理
  • 物理卷管理
  • 卷组管理
  • 逻辑卷管理
  • 挂载文件系统
  • 扩展逻辑卷
  • 机制概述

    Linux 磁盘分区大小分配一般难以准确评估,而且分区大小确定之后无法更改,当数据占满分区时,就需要使用磁盘分区工具进行数据的备份以便重新规划分区大小,同时也需要重洗引导操作系统,因此这不能满足服务器服务的可持续性特性,会造成业务数据的中断。LVM的出现解决了这个难题,LVM 是Linux 下对磁盘分区进行管理的一种机制。通过在物理设备层和文件系统之间增加抽象层,屏蔽下层物理设备(可以是磁盘、磁盘分区、raid)的布局,提供一个抽象的存储卷,在存储卷上建立操作系统。

    架构

  • 物理存储介质:可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。物理存储介质需初始化为LVM物理卷,才能和LVM结合使用。
  • 物理卷PV:LVM 的基本存储逻辑块,包含了与LVM相关的管理参数。
  • 卷组VG:一个VG 由一个或者多个PV组成,在VG 上建立LV。
  • 逻辑卷LV:LV 建立在VG 上,在LV 之上再建立文件系统。
  • 物理块PE:PV 上可分配的最小的存储单元。默认大小是4MB,但是大小可以调整。
  • 卷管理

    卷管理命令一览表:

    物理卷管理

    1. 查看系统装载的磁盘,并使用sdb做测试。
    [root@linuxde dev]# fdisk -l
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 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: 0x0000783f
    
       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        2611    20458496   8e  Linux LVM
    
    Disk /dev/sdb: 10.7 GB, 10737418240 bytes
    255 heads, 63 sectors/track, 1305 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: 0x00000000
    
    
    Disk /dev/mapper/VolGroup-lv_root: 18.9 GB, 18865979392 bytes
    255 heads, 63 sectors/track, 2293 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: 0x00000000
    
    
    Disk /dev/mapper/VolGroup-lv_swap: 2080 MB, 2080374784 bytes
    255 heads, 63 sectors/track, 252 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: 0x00000000
    123456789101112131415161718192021222324252627282930313233343536
    1. 初始化sdb磁盘为PV。
    [root@linuxde dev]# pvcreate /dev/sdb 
      Physical volume "/dev/sdb" successfully created
    [root@linuxde dev]# pvs
      PV         VG       Fmt  Attr PSize  PFree 
      /dev/sda2  VolGroup lvm2 a--  19.51g     0 
      /dev/sdb            lvm2 ---  10.00g 10.00g
    123456

    卷组管理

    添加PV 到卷组

    [root@linuxde dev]# vgcreate datavg /dev/sdb 
      Volume group "datavg" successfully created
    [root@linuxde dev]# vgs
      VG       #PV #LV #SN Attr   VSize  VFree 
      VolGroup   1   2   0 wz--n- 19.51g     0 
      datavg     1   0   0 wz--n- 10.00g 10.00g
    123456

    逻辑卷管理

    在卷组上建立LV

    [root@linuxde dev]# lvcreate -n lv1 -L 200M datavg
      Logical volume "lv1" created
    [root@linuxde dev]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root VolGroup -wi-ao----  17.57g                                                    
      lv_swap VolGroup -wi-ao----   1.94g                                                    
      lv1     datavg   -wi-a----- 200.00m
    1234567

    挂载文件系统

    格式化文件系统并挂载文件系统

    [root@linuxde dev]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           18G  4.1G   13G  25% /
    tmpfs                 491M     0  491M   0% /dev/shm
    /dev/sda1             477M   28M  424M   7% /boot
    [root@linuxde dev]# mount /dev/datavg/lv1 /mnt
    mount: you must specify the filesystem type
    [root@linuxde dev]# mkf
    mkfifo        mkfontscale   mkfs.cramfs   mkfs.ext3     mkfs.ext4dev  mkfs.vfat     
    mkfontdir     mkfs          mkfs.ext2     mkfs.ext4     mkfs.msdos    
    [root@linuxde dev]# mkfs.ext4 /dev/datavg/lv1 
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    51200 inodes, 204800 blocks
    10240 blocks (5.00%) reserved for the super user
    First data block=1
    Maximum filesystem blocks=67371008
    25 block groups
    8192 blocks per group, 8192 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
            8193, 24577, 40961, 57345, 73729
    
    Writing inode tables: done                            
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 31 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@linuxde dev]# mount /dev/datavg/lv1 /mnt
    [root@linuxde dev]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           18G  4.1G   13G  25% /
    tmpfs                 491M     0  491M   0% /dev/shm
    /dev/sda1             477M   28M  424M   7% /boot
    /dev/mapper/datavg-lv1
                          190M  1.6M  179M   1% /mnt
    12345678910111213141516171819202122232425262728293031323334353637383940414243

    到此为止,我们就可以操作该文件系统了。

    扩展逻辑卷

    扩展完LV 后还需要使用resize2fs扩容ext4文件系统。xfs文件系统需要使用xfs_growfs命令,使用方式“xfs_growfs {monit_ponit}”

    [root@linuxde dev]# lvextend -L +100M /dev/datavg/lv1 
      Size of logical volume datavg/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
      Logical volume lv1 successfully resized
    [root@linuxde dev]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root VolGroup -wi-ao----  17.57g                                                    
      lv_swap VolGroup -wi-ao----   1.94g                                                    
      lv1     datavg   -wi-ao---- 300.00m                                                    
    [root@linuxde dev]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           18G  4.1G   13G  25% /
    tmpfs                 491M     0  491M   0% /dev/shm
    /dev/sda1             477M   28M  424M   7% /boot
    /dev/mapper/datavg-lv1
                          190M  1.6M  179M   1% /mnt
    [root@linuxde dev]# resize2fs /dev/datavg/lv1 
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/datavg/lv1 is mounted on /mnt; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 2
    Performing an on-line resize of /dev/datavg/lv1 to 307200 (1k) blocks.
    The filesystem on /dev/datavg/lv1 is now 307200 blocks long.
    
    [root@linuxde dev]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           18G  4.1G   13G  25% /
    tmpfs                 491M     0  491M   0% /dev/shm
    /dev/sda1             477M   28M  424M   7% /boot
    /dev/mapper/datavg-lv1
                          287M  2.1M  270M   1% /mnt

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表