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,每学到一点东西就写一点,如有不对的地方,恳请包涵!
原文地址:https://www.cnblogs.com/forlive/p/8523969.html