zoukankan      html  css  js  c++  java
  • Linux LVM 分区管理

    LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

    一. LVM基本命令

    功能/命令 物理卷管理 卷组管理 逻辑卷管理
    扫描 pvscan vgscan lvscan
    建立 pvcreate vgcreate lvcreate
    显示 pvdisplay/pvs vgdisplay/vgs lvdisplay/lvs
    删除 pvremove vgremove lvremove
    扩展   vgextend lvextend
    缩小   vgreduce lvreduce

    二. LVM基本概念

    1. 物理磁盘被格式化为PV, 空间被分为一个个PE(PE默认大小是4M)

    2. 不同的PV被加入同一个VG,不同PV的PE全部进入VG的存储池

    3. LV是基于PE创建,大小是PE的整数倍,组成LV的PE可能来自不同的PV

    4. LV可以格式化后挂载使用

    5. LV的扩充和增减就是增减组成该LV的PE的数量.其过程不会丢失原始数据

    三. LVM的创建,查看和删除

    1. 查看物理磁盘fdisk -l 或lsblk

    [vic@localhost ~]$ lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0    8G  0 disk 
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0    7G  0 part 
      ├─centos-root 253:0    0  6.2G  0 lvm  /
      └─centos-swap 253:1    0  820M  0 lvm  [SWAP]
    sdb               8:16   0    8G  0 disk 
    sdc               8:32   0    8G  0 disk 
    sdd               8:48   0    8G  0 disk 
    sde               8:64   0    8G  0 disk 
    sr0              11:0    1 1024M  0 rom  

     2. 将物理磁盘设备转换为物理卷

    [vic@localhost ~]$ sudo pvcreate /dev/sdb /dev/sdc
      Physical volume "/dev/sdb" successfully created.
      Physical volume "/dev/sdc" successfully created.
    [vic@localhost ~]$ sudo pvs
      PV         VG     Fmt  Attr PSize  PFree
      /dev/sda2  centos lvm2 a--  <7.00g    0 
      /dev/sdb          lvm2 ---   8.00g 8.00g
      /dev/sdc          lvm2 ---   8.00g 8.00g

    3. 创建卷组,并将PV加入卷组中

    [vic@localhost ~]$ sudo vgcreate linux-vli /dev/sdb /dev/sdc
      Volume group "linux-vli" successfully created
    [vic@localhost ~]$ sudo vgs
      VG        #PV #LV #SN Attr   VSize  VFree 
      centos      1   2   0 wz--n- <7.00g     0 
      linux-vli   2   0   0 wz--n- 15.99g 15.99g

    4. 创建逻辑卷

    [vic@localhost ~]$ sudo lvcreate -n sharelv -L 4G linux-vli
      Logical volume "sharelv" created.
    [vic@localhost ~]$ sudo lvs
      LV      VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root    centos    -wi-ao----  <6.20g                                                    
      swap    centos    -wi-ao---- 820.00m                                                    
      sharelv linux-vli -wi-a-----   4.00g 

    5. 格式化逻辑卷创建文件系统

    [vic@localhost ~]$ sudo mkfs.ext4 /dev/linux-vli/sharelv

    6. 将格式化的逻辑卷挂载使用

    [vic@localhost ~]$ sudo mkdir /sharelv
    [vic@localhost ~]$ sudo mount /dev/linux-vli/sharelv /sharelv/
    [vic@localhost ~]$ df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root         6.2G  1.4G  4.9G  22% /
    devtmpfs                        484M     0  484M   0% /dev
    tmpfs                           496M     0  496M   0% /dev/shm
    tmpfs                           496M  6.9M  490M   2% /run
    tmpfs                           496M     0  496M   0% /sys/fs/cgroup
    /dev/sda1                      1014M  132M  883M  14% /boot
    tmpfs                           100M     0  100M   0% /run/user/0
    tmpfs                           100M     0  100M   0% /run/user/1000
    /dev/mapper/linux--vli-sharelv  3.9G   16M  3.6G   1% /sharelv

    7. 删除LV --> 删除VG --> 删除物理卷

    [vic@localhost ~]$ sudo umount /sharelv
    [vic@localhost ~]$ df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root  6.2G  1.4G  4.9G  22% /
    devtmpfs                 484M     0  484M   0% /dev
    tmpfs                    496M     0  496M   0% /dev/shm
    tmpfs                    496M  6.9M  490M   2% /run
    tmpfs                    496M     0  496M   0% /sys/fs/cgroup
    /dev/sda1               1014M  132M  883M  14% /boot
    tmpfs                    100M     0  100M   0% /run/user/0
    tmpfs                    100M     0  100M   0% /run/user/1000
    [vic@localhost ~]$ sudo lvremove /dev/linux-vli/sharelv
    Do you really want to remove active logical volume linux-vli/sharelv? [y/n]: y
      Logical volume "sharelv" successfully removed
    [vic@localhost ~]$ sudo lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----  <6.20g                                                    
      swap centos -wi-ao---- 820.00m                                                    
    [vic@localhost ~]$ sudo vgremove linux-vli
      Volume group "linux-vli" successfully removed
    [vic@localhost ~]$ sudo vgs
      VG     #PV #LV #SN Attr   VSize  VFree
      centos   1   2   0 wz--n- <7.00g    0 
    [vic@localhost ~]$ sudo pvremove /dev/sdb /dev/sdc
      Labels on physical volume "/dev/sdb" successfully wiped.
      Labels on physical volume "/dev/sdc" successfully wiped.
    [vic@localhost ~]$ sudo pvs
      PV         VG     Fmt  Attr PSize  PFree
      /dev/sda2  centos lvm2 a--  <7.00g    0 

     四. LVM卷扩展

    1. 查看VG的剩余空间

    [vic@localhost ~]$ sudo vgdisplay 
      --- Volume group ---
      VG Name               linux-vli
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               15.99 GiB
      PE Size               4.00 MiB
      Total PE              4094
      Alloc PE / Size       1024 / 4.00 GiB
      Free  PE / Size       3070 / 11.99 GiB
      VG UUID               0sJQDx-2Ijp-K0in-jdTs-1fvG-FW2n-n2dXND

    2. 扩充逻辑卷

    [vic@localhost ~]$ sudo lvextend -L +3G /dev/linux-vli/sharelv
      Size of logical volume linux-vli/sharelv changed from 4.00 GiB (1024 extents) to 7.00 GiB (1792 extents).
      Logical volume linux-vli/sharelv successfully resized.
    [vic@localhost ~]$ sudo lvdisplay 
      --- Logical volume ---
      LV Path                /dev/linux-vli/sharelv
      LV Name                sharelv
      VG Name                linux-vli
      LV UUID                bS4J9e-ggqT-RKXG-m4Gg-lUDW-dFkg-Y85ChG
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2019-05-07 12:42:09 +0800
      LV Status              available
      # open                 1
      LV Size                7.00 GiB
      Current LE             1792
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2

    3. 更新文件系统

    [vic@localhost ~]$ sudo resize2fs /dev/linux-vli/sharelv 
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/linux-vli/sharelv is mounted on /sharelv; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/linux-vli/sharelv is now 1835008 blocks long.
    
    [vic@localhost ~]$ df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root         6.2G  1.4G  4.9G  22% /
    devtmpfs                        484M     0  484M   0% /dev
    tmpfs                           496M     0  496M   0% /dev/shm
    tmpfs                           496M  6.9M  490M   2% /run
    tmpfs                           496M     0  496M   0% /sys/fs/cgroup
    /dev/sda1                      1014M  132M  883M  14% /boot
    tmpfs                           100M     0  100M   0% /run/user/0
    tmpfs                           100M     0  100M   0% /run/user/1000
    /dev/mapper/linux--vli-sharelv  6.8G   18M  6.5G   1% /sharelv

     五. LVM扩大卷组

    1. 添加新的硬盘并格式化为PV

    [vic@localhost ~]$ sudo pvcreate /dev/sdd
     Physical volume "/dev/sdd" successfully created.
    [vic@localhost ~]$ sudo pvs
      PV         VG        Fmt  Attr PSize  PFree   
      /dev/sda2  centos    lvm2 a--  <7.00g       0 
      /dev/sdb   linux-vli lvm2 a--  <8.00g 1020.00m
      /dev/sdc   linux-vli lvm2 a--  <8.00g   <8.00g
      /dev/sdd             lvm2 ---   8.00g    8.00g
    [vic@localhost ~]$ 

    2. 将新的PV添加到指定卷组中

    [vic@localhost ~]$ sudo vgextend linux-vli /dev/sdd
      Volume group "linux-vli" successfully extended
    [vic@localhost ~]$ sudo vgs
      VG        #PV #LV #SN Attr   VSize   VFree  
      centos      1   2   0 wz--n-  <7.00g      0 
      linux-vli   3   1   0 wz--n- <23.99g <16.99g

    六. LVM缩小逻辑卷

    1. 卸载已经挂载的逻辑卷

    [vic@localhost ~]$ sudo umount /sharelv/

    2. 缩小文件系统

    [vic@localhost ~]$ sudo e2fsck -f /dev/linux-vli/sharelv 
    e2fsck 1.42.9 (28-Dec-2013)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/linux-vli/sharelv: 12/458752 files (0.0% non-contiguous), 66176/1835008 blocks
    [vic@localhost ~]$ sudo resize2fs /dev/linux-vli/sharelv 3G
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/linux-vli/sharelv to 786432 (4k) blocks.
    The filesystem on /dev/linux-vli/sharelv is now 786432 blocks long.

    3. 缩小LV

    [vic@localhost ~]$ sudo lvreduce -L -3G /dev/linux-vli/sharelv
      WARNING: Reducing active logical volume to 4.00 GiB.
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce linux-vli/sharelv? [y/n]: y
      Size of logical volume linux-vli/sharelv changed from 7.00 GiB (1792 extents) to 4.00 GiB (1024 extents).
      Logical volume linux-vli/sharelv successfully resized.
    [vic@localhost ~]$ sudo lvs
      LV      VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root    centos    -wi-ao----  <6.20g                                                    
      swap    centos    -wi-ao---- 820.00m                                                    
      sharelv linux-vli -wi-a-----   4.00g                                                    
    [vic@localhost ~]$ sudo mount /dev/linux-vli/sharelv /sharelv/
    [vic@localhost ~]$ cat /sharelv/linuxlv 
    i am linuxlv
    [vic@localhost ~]$ df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root         6.2G  1.4G  4.9G  22% /
    devtmpfs                        484M     0  484M   0% /dev
    tmpfs                           496M     0  496M   0% /dev/shm
    tmpfs                           496M  6.9M  490M   2% /run
    tmpfs                           496M     0  496M   0% /sys/fs/cgroup
    /dev/sda1                      1014M  132M  883M  14% /boot
    tmpfs                           100M     0  100M   0% /run/user/0
    tmpfs                           100M     0  100M   0% /run/user/1000
    /dev/mapper/linux--vli-sharelv  2.9G   13M  2.7G   1% /sharelv

    七. 缩小卷组

    1. 将PV从卷组中移除

    [vic@localhost ~]$ sudo vgreduce linux-vli /dev/sdd
      Removed "/dev/sdd" from volume group "linux-vli"
    [vic@localhost ~]$ sudo vgdisplay 
      --- Volume group ---
      VG Name               linux-vli
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  6
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               15.99 GiB
      PE Size               4.00 MiB
      Total PE              4094
      Alloc PE / Size       1024 / 4.00 GiB
      Free  PE / Size       3070 / 11.99 GiB
      VG UUID               0sJQDx-2Ijp-K0in-jdTs-1fvG-FW2n-n2dXND
  • 相关阅读:
    JDK+MyEclipse+Tomcat配置
    常用数据类型占内存字节数
    连连看核心算法
    gnuplot画图
    socket服务器的搭建-Mac
    AlertController提示框
    block-循环引用
    OC基础(21)
    OC基础(20)
    OC基础(19)
  • 原文地址:https://www.cnblogs.com/lixinjjy/p/10824559.html
Copyright © 2011-2022 走看看