searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

linux LVM逻辑盘卷管理

2023-08-18 07:04:14
43
0

LVM使用分层结构,如下图所示。

主要包括:

  • 物理卷-----PV(Physical Volume)
    物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
  • 卷组-----VG(Volumne Group)
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
  • 逻辑卷-----LV(Logical Volume)
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
  • 物理区域-----PE(Physical Extent)
    物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
  • 逻辑区域-----LE(Logical Extent)
    逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
  • 卷组描述区域-----(Volume Group Descriptor Area)
    卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

    工作原理

    (1)物理磁盘被格式化为PV,空间被划分为一个个的PE。
    (2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内。
    (3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘。
    (4)LV现在就直接可以格式化后挂载使用了。
    (5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据 。


    linux磁盘扩容

    接下来我们首先要在一个硬盘上创建多个逻辑卷,然后将它们挂载在/data2目录下

    1. 关闭虚拟机,右键--设置--扩展,选择想要扩展的容量,等待扩展完成后会显示还需要在系统内部进行设置

  1. 利用df -h可以看到磁盘使用情况,可以看到目前可用空间已经不多了
    [peng@localhost ~]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        1.9G     0  1.9G   0% /dev
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    tmpfs           1.9G   13M  1.9G   1% /run
    tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/sda3        18G   18G  511M  98% /
    /dev/sda1       297M  164M  134M  55% /boot
    tmpfs           378M   24K  378M   1% /run/user/1000
  1. 首先先通过命令查看到新磁盘的分区
    [root@localhost peng]# fdisk -l
    
    Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x000c42c7
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      616447      307200   83  Linux
    /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
    /dev/sda3         4810752    41943039    18566144   83  Linux
    1. 对新加的磁盘进行分区操作
      [root@localhost peng]# fdisk /dev/sda  //选择新增硬盘
      Welcome to fdisk (util-linux 2.23.2).
      
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      
      Command (m for help): p   //查看已分区数量
      
      Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x000c42c7
      
         Device Boot      Start         End      Blocks   Id  System
      /dev/sda1   *        2048      616447      307200   83  Linux
      /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
      /dev/sda3         4810752    41943039    18566144   83  Linux
      
      Command (m for help): n   //新增一个分区
      Partition type:
         p   primary (3 primary, 0 extended, 1 free)
         e   extended
      Select (default e): p   //分区类型选择主分区
      Selected partition 4    //选择分区号,这里系统默认选择了4
      First sector (41943040-209715199, default 41943040): 
      Using default value 41943040
      Last sector, +sectors or +size{K,M,G} (41943040-209715199, default 209715199): 
      Using default value 209715199
      Partition 4 of type Linux and of size 80 GiB is set
      
      Command (m for help): p   //查看当前分区
      
      Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x000c42c7
      
         Device Boot      Start         End      Blocks   Id  System
      /dev/sda1   *        2048      616447      307200   83  Linux
      /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
      /dev/sda3         4810752    41943039    18566144   83  Linux
      /dev/sda4        41943040   209715199    83886080   83  Linux   //可以看到已经多了一个分区
      
      Command (m for help): w   //写入磁盘保存设置
      The partition table has been altered!
      1. 重启虚拟机格式化新建分区
      [root@localhost peng]# reboot
    1. 初始化刚刚的分区
    [root@localhost peng]# pvcreate /dev/sda4
      Physical volume "/dev/sda4" successfully created.

    pvdisplay查看创建的物理卷

    [root@localhost peng]# pvdisplay
      "/dev/sda4" is a new physical volume of "80.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sda4
      VG Name               
      PV Size               80.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               OUnWDf-BbGk-NpRg-NGoP-D2pN-8pL4-YGWWdy
    1. 使用/dev/sda4创建名为centos的卷组
    [root@localhost peng]# vgcreate centos /dev/sda4
      Volume group "centos" successfully created

    vgdisplay查看创建的卷组

    [root@localhost peng]# vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <80.00 GiB
      PE Size               4.00 MiB
      Total PE              20479
      Alloc PE / Size       0 / 0   
      Free  PE / Size       20479 / <80.00 GiB   //这里可以看到,有80G的空间是空闲的
      VG UUID               DDlU1I-Z0qs-HN7T-cpND-iQxG-o609-AdPSXv

    如果已经有卷组可以直接加入

    vgextend centos /dev/sda4
    1. 在刚刚创建的卷组下创建一个名为lv1,大小为79G(小于空闲空间)的逻辑卷
    [root@localhost peng]# lvcreate -L 79G -n lv1 centos
      Logical volume "lv1" created.

    lvdisplay查看创建的逻辑卷

    [root@localhost peng]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/centos/lv1
      LV Name                lv1
      VG Name                centos
      LV UUID                VdIqFs-qyrd-r18P-83Uq-wiIr-2Wbh-ZXwMen
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2021-08-27 01:03:12 -0700
      LV Status              available
      # open                 0
      LV Size                79.00 GiB
      Current LE             20224
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:0

    也能利用lvresize -L xxx /dev/ead4/lv1重新设置卷大小

    1. 最后格式化,就可以挂载使用啦
    [root@localhost peng]# mkfs.ext4 /dev/centos/lv1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    5177344 inodes, 20709376 blocks
    1035468 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2168455168
    632 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    	4096000, 7962624, 11239424, 20480000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    [root@localhost peng]# mkdir /data2
    [root@localhost peng]# mount /dev/centos/lv1 /data2

    df -h查看容量

    [root@localhost peng]# df -h
    Filesystem              Size  Used Avail Use% Mounted on
    devtmpfs                1.9G     0  1.9G   0% /dev
    tmpfs                   1.9G     0  1.9G   0% /dev/shm
    tmpfs                   1.9G   13M  1.9G   1% /run
    tmpfs                   1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/sda3                18G   18G  510M  98% /
    /dev/sda1               297M  164M  134M  55% /boot
    tmpfs                   378M   40K  378M   1% /run/user/1000
    /dev/mapper/centos-lv1   78G   57M   74G   1% /data2   //完成扩容
    1. 除此之外,也能使用centos7自带的磁盘管理工具进行编辑

0条评论
0 / 1000
Peng
4文章数
0粉丝数
Peng
4 文章 | 0 粉丝
Peng
4文章数
0粉丝数
Peng
4 文章 | 0 粉丝
原创

linux LVM逻辑盘卷管理

2023-08-18 07:04:14
43
0

LVM使用分层结构,如下图所示。

主要包括:

  • 物理卷-----PV(Physical Volume)
    物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
  • 卷组-----VG(Volumne Group)
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
  • 逻辑卷-----LV(Logical Volume)
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
  • 物理区域-----PE(Physical Extent)
    物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
  • 逻辑区域-----LE(Logical Extent)
    逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
  • 卷组描述区域-----(Volume Group Descriptor Area)
    卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

    工作原理

    (1)物理磁盘被格式化为PV,空间被划分为一个个的PE。
    (2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内。
    (3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘。
    (4)LV现在就直接可以格式化后挂载使用了。
    (5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据 。


    linux磁盘扩容

    接下来我们首先要在一个硬盘上创建多个逻辑卷,然后将它们挂载在/data2目录下

    1. 关闭虚拟机,右键--设置--扩展,选择想要扩展的容量,等待扩展完成后会显示还需要在系统内部进行设置

  1. 利用df -h可以看到磁盘使用情况,可以看到目前可用空间已经不多了
    [peng@localhost ~]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        1.9G     0  1.9G   0% /dev
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    tmpfs           1.9G   13M  1.9G   1% /run
    tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/sda3        18G   18G  511M  98% /
    /dev/sda1       297M  164M  134M  55% /boot
    tmpfs           378M   24K  378M   1% /run/user/1000
  1. 首先先通过命令查看到新磁盘的分区
    [root@localhost peng]# fdisk -l
    
    Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x000c42c7
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      616447      307200   83  Linux
    /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
    /dev/sda3         4810752    41943039    18566144   83  Linux
    1. 对新加的磁盘进行分区操作
      [root@localhost peng]# fdisk /dev/sda  //选择新增硬盘
      Welcome to fdisk (util-linux 2.23.2).
      
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      
      Command (m for help): p   //查看已分区数量
      
      Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x000c42c7
      
         Device Boot      Start         End      Blocks   Id  System
      /dev/sda1   *        2048      616447      307200   83  Linux
      /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
      /dev/sda3         4810752    41943039    18566144   83  Linux
      
      Command (m for help): n   //新增一个分区
      Partition type:
         p   primary (3 primary, 0 extended, 1 free)
         e   extended
      Select (default e): p   //分区类型选择主分区
      Selected partition 4    //选择分区号,这里系统默认选择了4
      First sector (41943040-209715199, default 41943040): 
      Using default value 41943040
      Last sector, +sectors or +size{K,M,G} (41943040-209715199, default 209715199): 
      Using default value 209715199
      Partition 4 of type Linux and of size 80 GiB is set
      
      Command (m for help): p   //查看当前分区
      
      Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x000c42c7
      
         Device Boot      Start         End      Blocks   Id  System
      /dev/sda1   *        2048      616447      307200   83  Linux
      /dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
      /dev/sda3         4810752    41943039    18566144   83  Linux
      /dev/sda4        41943040   209715199    83886080   83  Linux   //可以看到已经多了一个分区
      
      Command (m for help): w   //写入磁盘保存设置
      The partition table has been altered!
      1. 重启虚拟机格式化新建分区
      [root@localhost peng]# reboot
    1. 初始化刚刚的分区
    [root@localhost peng]# pvcreate /dev/sda4
      Physical volume "/dev/sda4" successfully created.

    pvdisplay查看创建的物理卷

    [root@localhost peng]# pvdisplay
      "/dev/sda4" is a new physical volume of "80.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sda4
      VG Name               
      PV Size               80.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               OUnWDf-BbGk-NpRg-NGoP-D2pN-8pL4-YGWWdy
    1. 使用/dev/sda4创建名为centos的卷组
    [root@localhost peng]# vgcreate centos /dev/sda4
      Volume group "centos" successfully created

    vgdisplay查看创建的卷组

    [root@localhost peng]# vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <80.00 GiB
      PE Size               4.00 MiB
      Total PE              20479
      Alloc PE / Size       0 / 0   
      Free  PE / Size       20479 / <80.00 GiB   //这里可以看到,有80G的空间是空闲的
      VG UUID               DDlU1I-Z0qs-HN7T-cpND-iQxG-o609-AdPSXv

    如果已经有卷组可以直接加入

    vgextend centos /dev/sda4
    1. 在刚刚创建的卷组下创建一个名为lv1,大小为79G(小于空闲空间)的逻辑卷
    [root@localhost peng]# lvcreate -L 79G -n lv1 centos
      Logical volume "lv1" created.

    lvdisplay查看创建的逻辑卷

    [root@localhost peng]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/centos/lv1
      LV Name                lv1
      VG Name                centos
      LV UUID                VdIqFs-qyrd-r18P-83Uq-wiIr-2Wbh-ZXwMen
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2021-08-27 01:03:12 -0700
      LV Status              available
      # open                 0
      LV Size                79.00 GiB
      Current LE             20224
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:0

    也能利用lvresize -L xxx /dev/ead4/lv1重新设置卷大小

    1. 最后格式化,就可以挂载使用啦
    [root@localhost peng]# mkfs.ext4 /dev/centos/lv1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    5177344 inodes, 20709376 blocks
    1035468 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2168455168
    632 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    	4096000, 7962624, 11239424, 20480000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    [root@localhost peng]# mkdir /data2
    [root@localhost peng]# mount /dev/centos/lv1 /data2

    df -h查看容量

    [root@localhost peng]# df -h
    Filesystem              Size  Used Avail Use% Mounted on
    devtmpfs                1.9G     0  1.9G   0% /dev
    tmpfs                   1.9G     0  1.9G   0% /dev/shm
    tmpfs                   1.9G   13M  1.9G   1% /run
    tmpfs                   1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/sda3                18G   18G  510M  98% /
    /dev/sda1               297M  164M  134M  55% /boot
    tmpfs                   378M   40K  378M   1% /run/user/1000
    /dev/mapper/centos-lv1   78G   57M   74G   1% /data2   //完成扩容
    1. 除此之外,也能使用centos7自带的磁盘管理工具进行编辑

文章来自个人专栏
linux LVM
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0