zoukankan      html  css  js  c++  java
  • LVM逻辑卷

    1. 简介

      LVM是Logical Volume Manager的简称,中文就是逻辑卷管理。

      

      物理卷(PV,Physical Volume):真正的物理硬盘和分区

      卷组(VG,Volume Group):将多个物理卷合起来就组成了卷组,组成同一个卷组的物理卷可以是同一个硬盘的不同分区,也可以是不同硬盘的不同分区。可以把卷组想象成一个逻辑硬盘

      逻辑卷(LV,Logical Volume):卷组是一个逻辑硬盘,硬盘必须分区之后才能使用,这个分区我们称作逻辑卷。逻辑卷可以格式化和写入数据。可以把逻辑卷想象成分区

      物理扩展(PE,Physical Extend):PE是用来保存数据的最小单元,我们的数据实际上都是写入PE当中,PE的大小是可以配置的,默认4MB。

    2. 建立LVM的步骤

      首先需要把物理硬盘分成分区,当然也可以是整块物理硬盘。

      然后把物理分区建立成为物理卷(PV),也可以直接把整块硬盘都建立为物理卷。 

      接下来把物理卷整合成为卷组(VG)。卷组就已经可以动态的调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中删除。

      最后就是把卷组再划分成为逻辑卷(LV),当然逻辑卷也可以直接调整大小。逻辑卷可以想象成为分区,所以也需要格式化和挂载。

    3. 物理卷管理

    3.1 硬盘分区

    使用fdisk命令,分区的系统ID需要改成LVM的ID号8e。

    3.2 建立物理卷

    pvcreate [设备文件名]

    建立物理卷时,我们说即可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,命令如下

    [root@centos2 ~]# pvcreate /dev/sdb

    把分区建立成物理卷,

    [root@centos2 ~]# pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created.
    [root@centos2 ~]# pvcreate /dev/sdb2
      Physical volume "/dev/sdb2" successfully created.
    [root@centos2 ~]# pvcreate /dev/sdb3
      Physical volume "/dev/sdb3" successfully created.

    3.3 查看物理卷

    [root@centos2 ~]# pvscan
      PV /dev/sda2   VG centos          lvm2 [<29.00 GiB / 0    free]
      PV /dev/sdb2                      lvm2 [2.00 GiB]
      PV /dev/sdb3                      lvm2 [<7.00 GiB]
      PV /dev/sdb1                      lvm2 [1.00 GiB]
      Total: 4 [<39.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 3 [<10.00 GiB]

    最后一行的意思是:总共4个物理卷[大小] / 使用了1个卷[大小] / 空闲3个卷[大小]

    第二个查询命令是pvdisplay,可以查看更详细的物理卷状态

    [root@centos2 ~]# pvdisplay 
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               centos
      PV Size               <29.00 GiB / not usable 3.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              7423
      Free PE               0
      Allocated PE          7423
      PV UUID               reJvlf-QkVq-JydZ-FXZZ-XAjC-F4BP-7hbzbF
       
      "/dev/sdb2" is a new physical volume of "2.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb2
      VG Name               
      PV Size               2.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               5QdzlY-Uz1y-8FyZ-uHKF-0Knj-ek2h-xVzmhG
       
      "/dev/sdb3" is a new physical volume of "<7.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb3
      VG Name               
      PV Size               <7.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               9F8UHD-mzJ1-Y13n-vSPd-LpEu-ZcBb-0eQ30X
       
      "/dev/sdb1" is a new physical volume of "1.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1         PV名
      VG Name                                 所属VG名,尚未分配,故空白
      PV Size               1.00 GiB          PV大小
      Allocatable           NO                是否已经分配
      PE Size               0                 PE大小,尚未分配,故PE大小也未指定
      Total PE              0                 PE总数
      Free PE               0                 空闲PE数
      Allocated PE          0                 可分配PE数
      PV UUID               BHPoOR-lplw-lGLx-8Zu1-nJMj-pzD5-UiH3PH
       
    [root@centos2 ~]# pvdisplay /dev/sdb1
      "/dev/sdb1" is a new physical volume of "1.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1
      VG Name               
      PV Size               1.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               BHPoOR-lplw-lGLx-8Zu1-nJMj-pzD5-UiH3PH
       

    3.4 删除物理卷

    [root@centos2 ~]# pvremove /dev/sdb3

    4. 卷组管理

    4.1 建立卷组

    vgcreate [选项] 卷组名 物理卷名
    -s PE大小:指定PE的大小,单位可以是MB,GB,TB等。不写默认PE大小为4MB
    [root@centos2 ~]# vgcreate -s 8MB scvg /dev/sdb1 /dev/sdb2
      Volume group "scvg" successfully created

    4.2 查看卷组

    查看卷组的命令也是两个,vgscan主要查看系统中是否有卷组,而vgdisplay则是查看卷组的详细状态。

    [root@centos2 ~]# vgscan
      Reading volume groups from cache.
      Found volume group "scvg" using metadata type lvm2
      Found volume group "centos" using metadata type lvm2
    
    [root@centos2 ~]# vgdisplay
      --- Volume group ---
      VG Name               scvg            卷组名
      System ID             
      Format                lvm2
      Metadata Areas        2
      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                2               当前物理卷数
      Act PV                2
      VG Size               2.98 GiB        卷组大小
      PE Size               8.00 MiB        PE大小
      Total PE              382             PE总数
      Alloc PE / Size       0 / 0           已用PE数量/大小
      Free  PE / Size       382 / 2.98 GiB  空闲PE数量/大小
      VG UUID               uoIBy1-0XDn-Is94-6nDS-aX8o-oO7f-2zzEDR
       

    4.3 增加卷组容量

    [root@centos2 ~]# vgextend scvg /dev/sdb3
      Volume group "scvg" successfully extended
    [root@centos2 ~]# vgdisplay
      --- Volume group ---
      VG Name               scvg
      System ID             
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               <9.98 GiB
      PE Size               8.00 MiB
      Total PE              1277
      Alloc PE / Size       0 / 0   
      Free  PE / Size       1277 / <9.98 GiB
      VG UUID               uoIBy1-0XDn-Is94-6nDS-aX8o-oO7f-2zzEDR
       

    4.4 减小卷组容量

       
    [root@centos2 ~]# vgreduce scvg /dev/sdb3
      Removed "/dev/sdb3" from volume group "scvg"
    [root@centos2 ~]# vgdisplay
      --- Volume group ---
      VG Name               scvg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  3
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               2.98 GiB
      PE Size               8.00 MiB
      Total PE              382
      Alloc PE / Size       0 / 0   
      Free  PE / Size       382 / 2.98 GiB
      VG UUID               uoIBy1-0XDn-Is94-6nDS-aX8o-oO7f-2zzEDR

    4.5 删除卷组

    [root@centos2 ~]# vgremove scvg
      Volume group "scvg" successfully removed
    [root@centos2 ~]# vgscan
      Reading volume groups from cache.
      Found volume group "centos" using metadata type lvm2

    5. 逻辑卷管理

    5.1 建立逻辑卷

    lvcreate [选项] [-n 逻辑卷名] 卷组名
    
        -L 容量:指定逻辑卷大小,单位MB,GB,TB等
        -l 个数:按照PE个数指定逻辑卷大小,这个参数需要换算容量,麻烦
        -n 逻辑卷名:指定逻辑卷名
    [root@centos2 ~]# lvcreate -L 2G -n lv1 scvg2
      Logical volume "lv1" created.

    建立完逻辑卷之后,还要格式化和挂载逻辑卷之后才能正常使用。格式化和挂载命令和操作普通分区时是一样的,不过需要注意的是逻辑卷的设备文件名是/dev/卷组名/逻辑卷名,如我们的lv1的设备文件名就是“/dev/scvg2/lv1”

    [root@centos2 ~]# mkfs -t ext4 /dev/scvg2/lv1
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=
    OS type: Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    131072 inodes, 524288 blocks
    26214 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=536870912
    16 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (16384 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成 
    
    [root@centos2 ~]# mkdir /disklvm
    [root@centos2 ~]# mount /dev/scvg2/lv1 /disklvm/
    
    [root@centos2 ~]# mount
    ...
    /dev/mapper/scvg2-lv1 on /disklvm type ext4 (rw,relatime,data=ordered)

    如果需要开机自动挂载,也需要修改/etc/fstab文件。

    5.2 查看逻辑卷

    同样查看命令两个。lvscan查看系统中是否拥有逻辑卷,lvdisplay查看逻辑卷详细信息。

    [root@centos2 ~]# lvscan
    ...
      ACTIVE            '/dev/scvg2/lv1' [2.00 GiB] inherit
    [root@centos2 ~]# lvdisplay
    ...
      --- Logical volume ---
      LV Path                /dev/scvg2/lv1    逻辑卷设备文件名
      LV Name                lv1               逻辑卷名
      VG Name                scvg2             所属卷组名
      LV UUID                gdU1fb-ROJw-FL9S-c6AV-kB1P-PZQU-fybsaY
      LV Write Access        read/write
      LV Creation host, time centos2, 2019-11-08 17:34:35 +0800
      LV Status              available
      # open                 1
      LV Size                2.00 GiB          逻辑卷大小
      Current LE             256
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2
       

    5.3 调整逻辑卷大小

    lvresize [选项] 逻辑卷设备文件名
     
        -L 容量:按照容量调整大小,单位MB,GB,TB等。使用+代表增加空间,-代表减少空间。如果直接写容量,代表设定逻辑卷大小为指定大小。
        -l 个数:按照PE个数调整大小
    [root@centos2 ~]# lvresize -L +2G /dev/scvg2/lv1 
      Size of logical volume scvg2/lv1 changed from 2.00 GiB (256 extents) to 4.00 GiB (512 extents).
      Logical volume scvg2/lv1 successfully resized.
    [root@centos2 ~]# lvdisplay
    
    ...
    
      --- Logical volume ---
      LV Path                /dev/scvg2/lv1
      LV Name                lv1
      VG Name                scvg2
      LV UUID                gdU1fb-ROJw-FL9S-c6AV-kB1P-PZQU-fybsaY
      LV Write Access        read/write
      LV Creation host, time centos2, 2019-11-08 17:34:35 +0800
      LV Status              available
      # open                 1
      LV Size                4.00 GiB
      Current LE             512
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2
       

    逻辑卷大小已经改变,但还有写问题

    [root@centos2 ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 894M     0  894M    0% /dev
    tmpfs                    910M     0  910M    0% /dev/shm
    tmpfs                    910M   11M  900M    2% /run
    tmpfs                    910M     0  910M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   27G  4.3G   23G   16% /
    /dev/sda1               1014M  237M  778M   24% /boot
    tmpfs                    182M   12K  182M    1% /run/user/42
    tmpfs                    182M     0  182M    0% /run/user/0
    /dev/mapper/scvg2-lv1    2.0G  6.0M  1.8G    1% /disklvm

    刚刚只是逻辑卷的大小改变了,如果想要让分区使用这个新逻辑卷,还需使用resize2fs命令来调整分区的大小。不过这里就体现了LVM的优势,我们不需要卸载分区,直接就能调整分区的大小。

    resize2fs [选项] [设备文件名] [调整的大小]
    
        -f:强制调整
        设备文件名:指定调整哪个分区的大小
        调整的大小:指定把分区调整到多大,要加M,G等单位,如果不加,会使用整个分区
    [root@centos2 ~]# resize2fs /dev/scvg2/lv1
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/scvg2/lv1 is mounted on /disklvm; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/scvg2/lv1 is now 1048576 blocks long.
    
    [root@centos2 ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 894M     0  894M    0% /dev
    tmpfs                    910M     0  910M    0% /dev/shm
    tmpfs                    910M   11M  900M    2% /run
    tmpfs                    910M     0  910M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   27G  4.3G   23G   16% /
    /dev/sda1               1014M  237M  778M   24% /boot
    tmpfs                    182M   12K  182M    1% /run/user/42
    tmpfs                    182M     0  182M    0% /run/user/0
    /dev/mapper/scvg2-lv1    3.9G  8.0M  3.7G    1% /disklvm

    5.4 删除逻辑卷

    lvremove 逻辑卷设备文件名

    删除时,需要先卸载

    [root@centos2 ~]# umount /dev/scvg2/lv1 
    [root@centos2 ~]# lvremove /dev/scvg2/lv1 
    Do you really want to remove active logical volume scvg2/lv1? [y/n]: y
      Logical volume "lv1" successfully removed
    [root@centos2 ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 894M     0  894M    0% /dev
    tmpfs                    910M     0  910M    0% /dev/shm
    tmpfs                    910M   11M  900M    2% /run
    tmpfs                    910M     0  910M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   27G  4.3G   23G   16% /
    /dev/sda1               1014M  237M  778M   24% /boot
    tmpfs                    182M   12K  182M    1% /run/user/42
    tmpfs                    182M     0  182M    0% /run/user/0
  • 相关阅读:
    java导出excel 浏览器直接下载或者或以文件形式导出
    linux查看用户登录时间以及命令历史
    MySQL复制表-INSERT INTO SELECT
    通过java代码往mysql数据库中写入日期相关数据少13个小时
    java8新的时间日期库及使用示例
    使用JSR-303进行校验
    centos:解决docker容器内挂载目录无权限 ls: cannot open directory .: Permission denied
    Docker命令之 cp
    Docker命令之 search
    Docker命令之 save
  • 原文地址:https://www.cnblogs.com/sswind/p/11818342.html
Copyright © 2011-2022 走看看