lvm

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

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

1
2
3
4
5
6
7
8
9
   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。

1
2
3
4
[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上的数据移动到别的地方

1
2
3
4
[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中的数据至别的地方

1
2
3
4
[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:显示当前系统上物理卷的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[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组命名

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

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

1
2
3
4
[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。

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

· vgremove  myvg:整个移除myvg组

1
2
3
4
5
6
7
8
9
[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重命名

1
2
3
4
5
[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:显示当前系统上卷组信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[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的逻辑卷

1
2
3
4
5
[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

1
2
3
4
[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),或者等于多少;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[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:直接删除逻辑卷

1
2
3
[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:显示当前系统上逻辑卷信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[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前,需要先给逻辑卷进行分区格式化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[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下

1
2
3
4
5
6
7
8
[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在线扩容,即挂载状态下扩容。需要先将逻辑卷增加容量后再去调整分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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.确保缩减后的空间大小可以容下原有的数据;

 第一步,卸载分区

1
[root@localhost ~]# umount /test

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

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

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

1
2
3
4
5
6
7
[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不用

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

 第五部,挂载分区

1
2
3
4
5
6
7
8
9
[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

 

posted @   ForLivetoLearn  阅读(225)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示