LVM-逻辑卷管理命令总结

LVM-逻辑卷管理命令总结

1 相关概念

  • PV (physical volume 物理卷):物理卷就是基本的逻辑存储块,创建物理卷可以用硬盘分区或者硬盘本身

  • VG (volume group 卷组):卷组由一个或者多个物理卷组成

  • LV (logical volume 逻辑卷):逻辑卷是建立在卷组VG之上的,可以理解成已经划分好且可以格式化的的分区比如/dev/sda1

  • PE (physical extent):物理卷可以划分的最小存储单元,类似于block

  • LE (logical extent):逻辑卷可以划分的最小单元

1602238636897

2 相关命令

2.1 安装对应的安装包

yum install lvm2

2.2 创建逻辑卷PV

2.2.1 相关命令

  • pvcreate 创建pv

  • pvremove 移除PV

  • pvs 显示pv信息

  • pvdisplay 显示详细信息

  • pvmove Move extents from one physical volume to another

2.2.2 创建流程

1)创建对应的分区比如下

[root@gsh_n2 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0   12G  0 disk
|-sda1   8:1    0   1G  0 part /boot
|-sda2   8:2    0   1G  0 part [SWAP]
`-sda3   8:3   0   10G 0 part /
sdb      8:16   0   1G  0 disk
|-sdb1   8:17   0 600M  0 part
|-sdb2   8:18   0   1K  0 part
|-sdb5   8:21   0 100M  0 part
`-sdb6   8:22   0 321M 0 part
sr0     11:0    1  4.5G  0 rom  

2)创建物理卷流程

pvcreate /dev/sdb1

pvremove /dev/sdb1

2.2.3 示例

#################################创建pv#################################
[root@gsh_n2 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@gsh_n2 ~]# pvcreate /dev/sdb5
Physical volume "/dev/sdb5" successfully created.
[root@gsh_n2 ~]# pvcreate /dev/sdb6
Physical volume "/dev/sdb6" successfully created.
[root@gsh_n2 ~]# pvs
PV         VG Fmt Attr PSize   PFree  
/dev/sdb1     lvm2 ---  600.00m 600.00m
/dev/sdb5     lvm2 ---  100.00m 100.00m
/dev/sdb6     lvm2 ---  321.00m 321.00m
[root@gsh_n2 ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped.
[root@gsh_n2 ~]# pvs
PV         VG Fmt Attr PSize   PFree  
/dev/sdb5     lvm2 ---  100.00m 100.00m
/dev/sdb6     lvm2 ---  321.00m 321.00m
[root@gsh_n2 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
 #################################创建vg#################################

2.3 创建卷组VG

2.3.1 相关命令

  • vgcreate 创建卷组

  • vgs 显示卷组简易信息

  • vgdisplay 显示卷组信息

  • vgremove 移除卷组

  • vgreduce 将物理卷从卷组移除

  • vgextend 卷组扩容

2.3.2 创建流程

vgcreate myvg /dev/sdk1 /dev/sdl1

vgextend vg00 /dev/sda4 /dev/sdn1

vgreduce VG PV (做pv移除时先要做pvmove,因为里面可能有数据)

2.3.3 示例

[root@gsh_n2 ~]# vgcreate myvg /dev/sdb1
Volume group "myvg" successfully created
[root@gsh_n2 ~]# vgs
VG   #PV #LV #SN Attr   VSize   VFree  
myvg   1   0   0 wz--n- 596.00m 596.00m
[root@gsh_n2 ~]# vgextend myvg /dev/sdb5
Volume group "myvg" successfully extended
[root@gsh_n2 ~]# vgs
VG   #PV #LV #SN Attr   VSize   VFree  
myvg   2   0   0 wz--n- 692.00m 692.00m
[root@gsh_n2 ~]# vgextend myvg /dev/sdb6
Volume group "myvg" successfully extended
[root@gsh_n2 ~]# pvmove /dev/sdb1
No data to move for myvg.
[root@gsh_n2 ~]# vgreduce myvg /dev/sdb1
Removed "/dev/sdb1" from volume group "myvg"
[root@gsh_n2 ~]# vgs
VG   #PV #LV #SN Attr   VSize   VFree  
myvg   2   0   0 wz--n- 416.00m 416.00m
[root@gsh_n2 ~]# vgextend myvg /dev/sdb1
Volume group "myvg" successfully extended
[root@gsh_n2 ~]# vgs
VG   #PV #LV #SN Attr   VSize   VFree  
myvg   3   0   0 wz--n- 1012.00m 1012.00m
[root@gsh_n2 ~]# vgremove myvg
Volume group "myvg" successfully removed
[root@gsh_n2 ~]# vgs
[root@gsh_n2 ~]# vgcreate myvg /dev/sdb1 /dev/sdb5 /dev/sdb6
Volume group "myvg" successfully created
[root@gsh_n2 ~]# vgs
VG   #PV #LV #SN Attr   VSize   VFree  
myvg   3   0   0 wz--n- 1012.00m 1012.00m

2.4 创建逻辑卷LV

2.4.1 相关命令

  • lvextend 扩展逻辑卷

  • lvresize 改变逻辑卷容量

  • lvcreate 创造逻辑卷

  • lvreduce 减少逻辑卷容量

  • lvs 显示逻辑卷简易信息

  • lvdisplay 显示逻辑卷详细信息

  • lvremove 移除逻辑卷

2.4.2 创建流程

1)扩展逻辑卷

lvextend -L +54 vg01/lvol10 将逻辑卷扩展54

lvextend vg01/lvol01

lvextend -L+16m vg01/lvol01

2)缩减逻辑卷

umount /dev/myvg/mylv

fsck.ext4 /dev/myvg/mylv -f (强制检测文件系统)

resize2fs /dev/myvg/mylv 400M (修剪文件系统大小,不能超过vg大小)

lvreduce -L 400M /dev/myvg/mylv

2.4.3 示例

#########################lv创建及扩容#########################
[root@gsh_n2 ~]# lvcreate -L 100M -n mylv myvg
Logical volume "mylv" created.
[root@gsh_n2 ~]# lvs
LV   VG   Attr       LSize   Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 100.00m                                                    
[root@gsh_n2 ~]# lvextend -L +100M /dev/myvg/mylv        
Size of logical volume myvg/mylv changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
Logical volume myvg/mylv successfully resized.
[root@gsh_n2 ~]# lvs
LV   VG   Attr       LSize   Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 200.00m      
[root@gsh_n2 ~]# mkfs.ext4 /dev/myvg/mylv
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

[root@gsh_n2 ~]# mount /dev/myvg/mylv /data1
[root@gsh_n2 ~]# df -h
Filesystem             Size Used Avail Use% Mounted on
devtmpfs               900M     0 900M   0% /dev
tmpfs                 910M     0 910M   0% /dev/shm
tmpfs                 910M  9.6M 901M   2% /run
tmpfs                 910M     0 910M   0% /sys/fs/cgroup
/dev/sda3               10G  2.1G  8.0G  21% /
/dev/sda1             1014M 142M 873M  15% /boot
tmpfs                 182M     0 182M   0% /run/user/0
/dev/mapper/myvg-mylv 190M  1.6M 175M   1% /data1
[root@gsh_n2 ~]# lvextend -L 500M /dev/myvg/mylv
Size of logical volume myvg/mylv changed from 200.00 MiB (50 extents) to 500.00 MiB (125 extents).
Logical volume myvg/mylv successfully resized.
[root@gsh_n2 ~]# lvs
LV   VG   Attr       LSize   Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 500.00m              
#########################lv缩减容量#########################
[root@gsh_n2 ~]# fsck.ext4 /dev/myvg/mylv -f
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/myvg/mylv: 11/129024 files (0.0% non-contiguous), 22696/512000 blocks
[root@gsh_n2 ~]# resize2fs /dev/myvg/mylv -f
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 512000 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 512000 blocks long.
[root@gsh_n2 ~]# resize2fs /dev/myvg/mylv 400M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 409600 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 409600 blocks long.

[root@gsh_n2 ~]# lvre
lvreduce lvremove lvrename lvresize  
[root@gsh_n2 ~]# lvreduce -L 400M /dev/myvg/mylv
WARNING: Reducing active logical volume to 400.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv? [y/n]: y
Size of logical volume myvg/mylv changed from 500.00 MiB (125 extents) to 400.00 MiB (100 extents).
Logical volume myvg/mylv successfully resized.
[root@gsh_n2 ~]# lvs
LV   VG   Attr       LSize   Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 400.00m                                                    
[root@gsh_n2 ~]# mount /dev/myvg/mylv /data1
[root@gsh_n2 ~]# df -h
Filesystem             Size Used Avail Use% Mounted on
devtmpfs               900M     0 900M   0% /dev
tmpfs                 910M     0 910M   0% /dev/shm
tmpfs                 910M  9.6M 901M   2% /run
tmpfs                 910M     0 910M   0% /sys/fs/cgroup
/dev/sda3               10G  2.1G  8.0G  21% /
/dev/sda1             1014M 142M 873M  15% /boot
tmpfs                 182M     0 182M   0% /run/user/0
/dev/mapper/myvg-mylv 384M  2.3M 358M   1% /data1

3 快照功能(snapshot)

3.1 基本原理

快照的基本原理是创建一个快照卷,快照卷根相当于硬连接,快照卷与原卷处于同一个vg(卷组),他跟源卷上的文件都指向相同磁盘上相同的位置,当磁盘上的文件发生变化时,快照卷会将变化的文件没在改变之前的状态备份存储到快照卷中,故而快照能够恢复某一时间点的状态。快照卷的大小取决于单位时间,数据变化快,变化越快则快照卷需要的容量越大。快照卷可以用于备份。

3.2 相关命令lvcreate参数

  • -p rw|r Set access permission to read only r or read and write rw.

  • -s snapshot

3.3 示例

[root@gsh_n2 ~]# lvcreate -s -p r -L 100M -n mylv_snap /dev/myvg/mylv 
Logical volume "mylv_snap" created.
[root@gsh_n2 ~]# lsblk  
NAME                   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda                      8:0    0   12G  0 disk
|-sda1                   8:1    0   1G  0 part /boot
|-sda2                   8:2    0   1G  0 part [SWAP]
`-sda3                   8:3   0   10G 0 part /
sdb                      8:16   0   1G  0 disk
|-sdb1                   8:17   0 600M  0 part
| |-myvg-mylv-real     253:1    0 400M  0 lvm  
| | |-myvg-mylv        253:0    0 400M  0 lvm /data1
| | `-myvg-mylv_snap   253:3   0 400M 1 lvm  
| `-myvg-mylv_snap-cow 253:2   0 100M 0 lvm  
|   `-myvg-mylv_snap   253:3   0 400M 1 lvm  
|-sdb2                   8:18   0   1K  0 part
|-sdb5                   8:21   0 100M  0 part
`-sdb6                   8:22   0 321M 0 part
sr0                     11:0    1  4.5G  0 rom  
[root@gsh_n2 /dev/myvg]# mount /dev/myvg/mylv_snap /data2 -f
[root@gsh_n2 /data2]# ls -lhi /data1 /data2
/data1:
total 12K
11 drwx------. 2 root root 12K Oct  9 20:38 lost+found

/data2:
total 12K
11 drwx------. 2 root root 12K Oct  9 20:38 lost+found

 

posted @ 2020-10-10 09:41  Gsh-123  阅读(335)  评论(0)    收藏  举报