• lvm


    LVM创建过程:创建分区格式为8e->PV(物理卷)->VG(卷组)->LV(逻辑卷)

     在做逻辑卷之前先做出分区来

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          39      307200   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              39        2101    16567296   83  Linux
    /dev/sda3            2101        2611     4096000   82  Linux swap / Solaris
    /dev/sda4            2611        3916    10483750    5  Extended
    /dev/sda5            2611        2742     1053563+  8e  Linux LVM
    /dev/sda6            2743        2874     1060258+  8e  Linux LVM
    /dev/sda7            2875        3006     1060258+  8e  Linux LVM
    

    1.PV 物理卷

    · pvcreate  /dev/sda{5,6,7}:创建pv,之前需要将分区类型调整为8e。

    [root@localhost ~]# pvcreate /dev/sda{5,6,7}
      Physical volume "/dev/sda5" successfully created
      Physical volume "/dev/sda6" successfully created
      Physical volume "/dev/sda7" successfully created
    

    · pvremove  /dev/sda5:删除pv,删除之前需要将pv上的数据移动到别的地方

    [root@localhost ~]# pvremove /dev/sda{5,6,7}
      Labels on physical volume "/dev/sda5" successfully wiped
      Labels on physical volume "/dev/sda6" successfully wiped
      Labels on physical volume "/dev/sda7" successfully wiped
    

    · pvmove   /dev/sda5:移动/dev/sda5中的数据至别的地方

    [root@localhost ~]# pvmove /dev/sda{5,6,7}
      Physical volume /dev/sda5 not in a volume group
      Run `pvmove --help' for more information.
    由于我的卷本来就是新建的,所以提示空
    

    · pvs;pvscan;pvdisplay:显示当前系统上物理卷的信息

    [root@localhost ~]# pvs
      PV         VG   Fmt  Attr PSize PFree  
      /dev/sda5  myvg lvm2 a-   1.00g 924.00m
      /dev/sda6  myvg lvm2 a-   1.01g   1.01g
      /dev/sda7  myvg lvm2 a-   1.01g   1.01g
    ------------------------------------------------
    [root@localhost ~]# pvscan 
      PV /dev/sda5   VG myvg   lvm2 [1.00 GiB / 924.00 MiB free]
      PV /dev/sda6   VG myvg   lvm2 [1.01 GiB / 1.01 GiB free]
      PV /dev/sda7   VG myvg   lvm2 [1.01 GiB / 1.01 GiB free]
      Total: 3 [3.02 GiB] / in use: 3 [3.02 GiB] / in no VG: 0 [0   ]
    --------------------------------------------------
    [root@localhost ~]# pvdisplay 
      --- Physical volume ---
      PV Name               /dev/sda5
      VG Name               myvg
      PV Size               1.00 GiB / not usable 4.87 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              256
      Free PE               231
      Allocated PE          25
      PV UUID               VIpxlf-eka9-D0d1-PvgQ-wCdo-jpbo-7G56a2
    。。。。。。。。。。。。。。。。。。。。。。。。。。。。
      --- Physical volume ---
      PV Name               /dev/sda7
      VG Name               myvg
      PV Size               1.01 GiB / not usable 3.41 MiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              258
      Free PE               258
      Allocated PE          0
      PV UUID               OFHqZa-SdoL-rEhJ-EN2f-Xa0O-heTB-CLod08
       
    

    2.VG 卷组

    · vgcreate   myvg  /dev/sda{5,6,7}:将已经创建好的pv加入到vg组中,并给vg组命名

    [root@localhost ~]# vgcreate myvg /dev/sda{5,6,7}
      Volume group "myvg" successfully created
    

    · vgreduce  myvg  /dev/sda5:将myvg组中的sda5pv移除,需要先迁移sda5中的数据

    [root@localhost ~]# pvmove /dev/sda5
      No data to move for myvg
    [root@localhost ~]# vgreduce myvg /dev/sda5
      Removed "/dev/sda5" from volume group "myvg"
    

    · vgextend  myvg  /dev/sda5:向myvg组中添加sda5pv。

    [root@localhost ~]# vgextend myvg /dev/sda5
      Volume group "myvg" successfully extended
    

    · vgremove  myvg:整个移除myvg组

    [root@localhost ~]# vgremove myvg
      Volume group "myvg" successfully removed
    [root@localhost ~]# vgs
      No volume groups found
    [root@localhost ~]# pvs
      PV         VG   Fmt  Attr PSize PFree
      /dev/sda5       lvm2 a-   1.00g 1.00g
      /dev/sda6       lvm2 a-   1.01g 1.01g
      /dev/sda7       lvm2 a-   1.01g 1.01g
    

    · vgrename   myvg  yourvg  :vg重命名

    [root@localhost ~]# vgrename myvg yourvg
      Volume group "myvg" successfully renamed to "yourvg"
    [root@localhost ~]# vgs
      VG     #PV #LV #SN Attr   VSize VFree
      yourvg   3   0   0 wz--n- 3.02g 3.02g
    

    · vgs;vgscan;vgdisplay:显示当前系统上卷组信息

    [root@localhost ~]# vgscan
      Reading all physical volumes.  This may take a while...
      Found volume group "myvg" using metadata type lvm2
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize VFree
      myvg   3   0   0 wz--n- 3.02g 3.02g
    [root@localhost ~]# vgdisplay 
      --- Volume group ---
      VG Name               myvg
      System ID             
      Format                lvm2
      Metadata Areas        3
      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                3
      Act PV                3
      VG Size               3.02 GiB
      PE Size               4.00 MiB
      Total PE              772
      Alloc PE / Size       0 / 0   
      Free  PE / Size       772 / 3.02 GiB
      VG UUID               tOavVo-rP7K-F86r-n3a3-qRjL-ahP8-LAA7Hk
       
    

     3.LV 逻辑卷

    · lvcreate  -n mylv  -L 100M  myvg:在myvg组中创建一个大小为100M,名字为mylv的逻辑卷

    [root@localhost ~]# lvcreate -n mylv -L 100M myvg
      Logical volume "mylv" created
    [root@localhost ~]# lvs
      LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
      mylv myvg -wi-a- 100.00m                                      
    

     创建完逻辑卷后,存在位置为/dev/vg组/lv

    [root@localhost ~]# ls /dev/myvg/mylv -l
    lrwxrwxrwx. 1 root root 7 Mar  7 04:35 /dev/myvg/mylv -> ../dm-0
    [root@localhost ~]# ls -l /dev/dm-0 
    brw-rw----. 1 root disk 253, 0 Mar  7 04:35 /dev/dm-0
    

    · lvresize   -l  [+|-] 100M  /dev/myvg/mylv:调整lv大小,可以增加多少(同等于lvextend),减少多少(同等于lvreduce),或者等于多少;

    [root@localhost ~]# lvresize -L -10M /dev/myvg/mylv 
      Rounding up size to full physical extent 8.00 MiB
      WARNING: Reducing active logical volume to 92.00 MiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce mylv? [y/n]: y
      Reducing logical volume mylv to 92.00 MiB
      Logical volume mylv successfully resized
    减小大小可能会导致数据被损坏
    -----------------------------------------------------
    [root@localhost ~]# lvresize -L 100M /dev/myvg/mylv 
      Extending logical volume mylv to 100.00 MiB
      Logical volume mylv successfully resized
    ------------------------------------------------------
    [root@localhost ~]# lvresize -L +100M /dev/myvg/mylv 
      Extending logical volume mylv to 200.00 MiB
      Logical volume mylv successfully resized
    

    · lvremove   /dev/myvg/mylv:直接删除逻辑卷

    [root@localhost ~]# lvremove /dev/myvg/mylv 
    Do you really want to remove active logical volume mylv? [y/n]: y
      Logical volume "mylv" successfully removed
    

    · lvs;lvscan;lvdisplay:显示当前系统上逻辑卷信息

    [root@localhost ~]# lvs
      LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
      mylv myvg -wi-a- 100.00m            
    -------------------------------------------------------                          
    [root@localhost ~]# lvscan
      ACTIVE            '/dev/myvg/mylv' [100.00 MiB] inherit
    -------------------------------------------------------
    [root@localhost ~]# lvdisplay 
      --- Logical volume ---
      LV Name                /dev/myvg/mylv
      VG Name                myvg
      LV UUID                UbxtI0-pSLs-luwF-Av4K-JKcw-iVCV-gf4aI3
      LV Write Access        read/write
      LV Status              available
      # open                 0
      LV Size                100.00 MiB
      Current LE             25
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
       
    

     4.挂载lvm

    在挂载lvm前,需要先给逻辑卷进行分区格式化。

    [root@localhost ~]# mke2fs -j /dev/myvg/mylv 
    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
    25688 inodes, 102400 blocks
    5120 blocks (5.00%) reserved for the super user
    First data block=1
    Maximum filesystem blocks=67371008
    13 block groups
    8192 blocks per group, 8192 fragments per group
    1976 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 29 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    

     在格式化完成之后,将逻辑卷挂载至/test下

    [root@localhost ~]# mount /dev/myvg/mylv /test
    [root@localhost ~]# df -lh
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              16G  2.2G   13G  15% /
    tmpfs                 996M   88K  996M   1% /dev/shm
    /dev/sda1             291M   30M  246M  11% /boot
    /dev/mapper/myvg-mylv
                           97M  5.6M   87M   7% /test
    

     5.扩容(先调整逻辑卷在调整分区)

    resize2fs   /dev/myvg/mylv   [100M]:重新设定分区大小,不加参数代表重读逻辑卷。

    ext3格式支持resize2fs在线扩容,即挂载状态下扩容。需要先将逻辑卷增加容量后再去调整分区

    [root@localhost ~]# lvresize -L +100M /dev/myvg/mylv 
      Extending logical volume mylv to 200.00 MiB
      Logical volume mylv successfully resized
    先扩容逻辑卷
    ---------------------------------------------------------
    [root@localhost ~]# resize2fs /dev/myvg/mylv 
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/myvg/mylv is mounted on /test; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 1
    Performing an on-line resize of /dev/myvg/mylv to 204800 (1k) blocks.
    The filesystem on /dev/myvg/mylv is now 204800 blocks long.
    再去重读分区
    ----------------------------------------------------------
    [root@localhost ~]# df -lh
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              16G  2.2G   13G  15% /
    tmpfs                 996M   88K  996M   1% /dev/shm
    /dev/sda1             291M   30M  246M  11% /boot
    /dev/mapper/myvg-mylv
                          194M  5.6M  179M   4% /test
    查看到已经增加值200M容量
    

     6.缩小(先调整分区在调整逻辑卷)

    resize2fs   /dev/myvg/mylv   [100M]:重新设定分区大小,不加参数代表重读逻辑卷。
    xfs_growfs 针对逻辑卷的动态调整
    注意事项:
        a.不能在线缩减,得先卸载;
        b.确保缩减后的空间大小可以容下原有的数据;

     第一步,卸载分区

    [root@localhost ~]# umount /test
    

     第二部,检查文件系统完整性

    [root@localhost ~]#e2fsck -f /dev/myvg/mylv
    

     第三部,调整分区大小和逻辑卷大小

    [root@localhost ~]#resize2fs /dev/myvg/mylv 100M
    [root@localhost ~]# lvresize -L 100M /dev/myvg/mylv 
      WARNING: Reducing active and open logical volume to 100.00 MiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce mylv? [y/n]: y
      Reducing logical volume mylv to 100.00 MiB
      Logical volume mylv successfully resized
    

     第四部,格式化,仅针对xfs文件系统,ext234不用

    [root@localhost ~]# mkfs.ext4 /dev/myvg/mylv 
    

     第五部,挂载分区

    [root@localhost ~]# mount /dev/myvg/mylv /test
    [root@localhost ~]# df -lh
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              16G  2.2G   13G  15% /
    tmpfs                 996M   88K  996M   1% /dev/shm
    /dev/sda1             291M   30M  246M  11% /boot
    /dev/mapper/myvg-mylv
                           97M  5.6M   87M   7% /test
    这时看到分区大小已经为100M
    
    初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
  • 相关阅读:
    linux动态库加载路径修改
    RAII手法封装互斥锁
    比特数组
    c++行事准则
    构造函数初始化列表
    this与const
    不完全类型
    Django初学习(四):模板-上下文管理器的使用
    Django初学习(三):模板的使用
    Django初学习(二):路由&子路由
  • 原文地址:https://www.cnblogs.com/forlive/p/8523969.html
Copyright © 2020-2023  润新知