centos下LVM配置与管理

发布时间:2018-06-20 01:00:33发布者:Mr.Zhang阅读(86)

centos下LVM配置与管理

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

LVM的主要功能:容量组合,动态调整容量大小。

LVM是将多块硬盘从逻辑上组合成一个大容量的存储空间(即VG),最终要划分成小的LV逻辑卷来使用这些空间。

LVM的管理流程:先给硬盘分区(也可以不分区),再创建PV,再创建VG,再创建LV,再格式化LV,再手动或自动挂载LV,再写入数据。

 

基本的逻辑卷管理概念:

PV(Physical Volume)- 物理卷 

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。

VG(Volumne Group)- 卷组 

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷 

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

 

关系图如下:

PE(Physical Extent)- 物理块    

LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE 会影响到LVM 的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

功能/命令

物理卷管理(PV)

卷组管理(VG)

逻辑卷管理(LV)

扫描查询系统中的LVM设备

pvscan 

vgscan 

lvscan 

建立

pvcreate 

vgcreate 

lvcreate

显示

pvdisplay 

vgdisplay 

lvdisplay 

状态

pvs 

vgs 

lvs 

删除

pvremove 

vgremove 

lvremove 

扩展(增加容量)

 

vgextend 

lvextend/lvresize 

缩容(缩小容量)

 

vgreduce 

lvreduce/lvresize 

调整系统中看到的容量

resize2fs/xfs_growfs 

 

LVM逻辑卷管理的思路:先给硬盘分区(也可以不分区),再创建pv,再创建vg,再创建lv,再格式化,再手动或自动挂载,再测试数据的写入。

创建PV物理卷:

 1 [root@serve1 ~]# lsblk
 2 NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 3 sda           8:0    0   20G  0 disk
 4 ├─sda1        8:1    0    1G  0 part /boot
 5 └─sda2        8:2    0   19G  0 part
 6  ├─cl-root 253:0    0   17G  0 lvm  /
 7  └─cl-swap 253:1    0    2G  0 lvm  [SWAP]
 8 sdb           8:16   0   20G  0 disk
 9 sdc           8:32   0   20G  0 disk
10 sr0          11:0    1  7.7G  0 rom
View Code

创建PV

1 [root@serve1 ~]# pvcreate /dev/sd[b-c]
2  Physical volume "/dev/sdb" successfully created.
3  Physical volume "/dev/sdc" successfully created.
View Code

查看PV的状态  

1 [root@serve1 ~]# pvs
2  PV         VG Fmt  Attr PSize   PFree
3  /dev/sda2  cl lvm2 a--  <19.00g     0
4  /dev/sdb      lvm2 ---   20.00g 20.00g
5  /dev/sdc      lvm2 ---   20.00g 20.00g
View Code

查看PV的详细信息

 1 [root@serve1 ~]# pvdisplay
 2  --- Physical volume ---
 3  PV Name               /dev/sda2
 4  VG Name               cl
 5  PV Size               <19.00 GiB / not usable 3.00 MiB
 6  Allocatable           yes (but full)
 7  PE Size               4.00 MiB
 8  Total PE              4863
 9  Free PE               0
10  Allocated PE          4863
11  PV UUID               fnufKb-qQ1k-jEH3-tS3R-7dvF-Ldrd-6PMuoG
12 
13  "/dev/sdb" is a new physical volume of "20.00 GiB"
14  --- NEW Physical volume ---
15  PV Name               /dev/sdb
16  VG Name
17  PV Size               20.00 GiB
18  Allocatable           NO
19  PE Size               0
20  Total PE              0
21  Free PE               0
22  Allocated PE          0
23  PV UUID               koMQS3-Omw9-bg8r-Lluq-vM7C-nm0B-KqKIaH
24 
25  "/dev/sdc" is a new physical volume of "20.00 GiB"
26  --- NEW Physical volume ---
27  PV Name               /dev/sdc
28  VG Name
29  PV Size               20.00 GiB
30  Allocatable           NO
31  PE Size               0
32  Total PE              0
33  Free PE               0
34  Allocated PE          0
35  PV UUID               mzTDJw-Ak2N-CzDD-eEcO-bczl-wA0r-44LHqd
View Code

创建VG卷组:

 1 [root@serve1 ~]# vgcreate vg1 /dev/sd[b-c]
 2  Volume group "vg1" successfully created
 3  
 4 [root@serve1 ~]# vgs
 5  VG  #PV #LV #SN Attr   VSize   VFree
 6  cl    1   2   0 wz--n- <19.00g     0
 7  vg1   2   0   0 wz--n-  39.99g 39.99g
 8 [root@serve1 ~]# vgdisplay
 9  --- Volume group ---
10  VG Name               vg1
11  System ID
12  Format                lvm2
13  Metadata Areas        2
14  Metadata Sequence No  1
15  VG Access             read/write
16  VG Status             resizable
17  MAX LV                0
18  Cur LV                0
19  Open LV               0
20  Max PV                0
21  Cur PV                2
22  Act PV                2
23  VG Size               39.99 GiB
24  PE Size               4.00 MiB
25  Total PE              10238
26  Alloc PE / Size       0 / 0
27  Free  PE / Size       10238 / 39.99 GiB
28  VG UUID               xfNGUD-pYdS-eUI9-5Y0u-Ulqx-rwWW-EI5gso
29 
30  --- Volume group ---
31  VG Name               cl
32  System ID
33  Format                lvm2
34  Metadata Areas        1
35  Metadata Sequence No  3
36  VG Access             read/write
37  VG Status             resizable
38  MAX LV                0
39  Cur LV                2
40  Open LV               2
41  Max PV                0
42  Cur PV                1
43  Act PV                1
44  VG Size               <19.00 GiB
45  PE Size               4.00 MiB
46  Total PE              4863
47  Alloc PE / Size       4863 / <19.00 GiB
48  Free  PE / Size       0 / 0
49  VG UUID               cxM7kS-b357-Y4MX-439j-EkVT-3X4l-5tTZp1
View Code

说明:vg1指的是卷组名称,/dev/[b-c]是卷组中的设备

创建LV逻辑卷(这里我创建了2个LV逻辑卷):

 1 [root@serve1 ~]# lvcreate -L 25G -n lv1 vg1    #创建LV逻辑卷 
 2   Logical volume "lv1" created.
 3   
 4 [root@serve1 ~]# lvs
 5   LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 6   root cl  -wi-ao---- <17.00g
 7   swap cl  -wi-ao----   2.00g
 8   lv1  vg1 -wi-a-----  25.00g
 9   
10 [root@serve1 ~]# lvdisplay
11   --- Logical volume ---
12   LV Path                /dev/vg1/lv1
13   LV Name                lv1
14   VG Name                vg1
15   LV UUID                PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
16   LV Write Access        read/write
17   LV Creation host, time serve1, 2017-11-18 23:32:49 +0800
18   LV Status              available
19   # open                 0
20   LV Size                25.00 GiB
21   Current LE             6400
22   Segments               2
23   Allocation             inherit
24   Read ahead sectors     auto
25   - currently set to     8192
26   Block device           253:2
27  
28   --- Logical volume ---
29   LV Path                /dev/cl/swap
30   LV Name                swap
31   VG Name                cl
32   LV UUID                fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
33   LV Write Access        read/write
34   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
35   LV Status              available
36   # open                 2
37   LV Size                2.00 GiB
38   Current LE             512
39   Segments               1
40   Allocation             inherit
41   Read ahead sectors     auto
42   - currently set to     8192
43   Block device           253:1
44  
45   --- Logical volume ---
46   LV Path                /dev/cl/root
47   LV Name                root
48   VG Name                cl
49   LV UUID                OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
50   LV Write Access        read/write
51   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
52   LV Status              available
53   # open                 1
54   LV Size                <17.00 GiB
55   Current LE             4351
56   Segments               1
57   Allocation             inherit
58   Read ahead sectors     auto
59   - currently set to     8192
60   Block device           253:0
View Code

 

 

明:-L:指定逻辑卷的大小,单位为"kKmMgGtT"字节; -n:指定逻辑卷的名称; vg1是卷组的名称,卷组的名称要和上面创建的卷组名称一致。

 1 [root@serve1 ~]# lvcreate -l +100%FREE -n lv2 vg1
 2   Logical volume "lv2" created.
 3   
 4 [root@serve1 ~]# lvs
 5   LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 6   root cl  -wi-ao---- <17.00g
 7   swap cl  -wi-ao----   2.00g
 8   lv1  vg1 -wi-a-----  25.00g
 9   lv2  vg1 -wi-a-----  14.99g
10   
11 [root@serve1 ~]# lvdisplay
12   --- Logical volume ---
13   LV Path                /dev/vg1/lv1
14   LV Name                lv1
15   VG Name                vg1
16   LV UUID                PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
17   LV Write Access        read/write
18   LV Creation host, time serve1, 2017-11-18 23:32:49 +0800
19   LV Status              available
20   # open                 0
21   LV Size                25.00 GiB
22   Current LE             6400
23   Segments               2
24   Allocation             inherit
25   Read ahead sectors     auto
26   - currently set to     8192
27   Block device           253:2
28 
29   --- Logical volume ---
30   LV Path                /dev/vg1/lv2
31   LV Name                lv2
32   VG Name                vg1
33   LV UUID                DSymjV-ExDB-wTSR-6lns-Swjz-ZzP5-Ywf0xA
34   LV Write Access        read/write
35   LV Creation host, time serve1, 2017-11-18 23:42:30 +0800
36   LV Status              available
37   # open                 0
38   LV Size                14.99 GiB
39   Current LE             3838
40   Segments               1
41   Allocation             inherit
42   Read ahead sectors     auto
43   - currently set to     8192
44   Block device           253:3
45 
46   --- Logical volume ---
47   LV Path                /dev/cl/swap
48   LV Name                swap
49   VG Name                cl
50   LV UUID                fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
51   LV Write Access        read/write
52   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
53   LV Status              available
54   # open                 2
55   LV Size                2.00 GiB
56   Current LE             512
57   Segments               1
58   Allocation             inherit
59   Read ahead sectors     auto
60   - currently set to     8192
61   Block device           253:1
62 
63   --- Logical volume ---
64   LV Path                /dev/cl/root
65   LV Name                root
66   VG Name                cl
67   LV UUID                OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
68   LV Write Access        read/write
69   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
70   LV Status              available
71   # open                 1
72   LV Size                <17.00 GiB
73   Current LE             4351
74   Segments               1
75   Allocation             inherit
76   Read ahead sectors     auto
77   - currently set to     8192
78   Block device           253:0
View Code

说明:-l:指定逻辑卷的大小(LE数)

创建挂载目录、格式化挂载并写入文件测试:

 1 #格式化LV逻辑卷
 2 [root@serve1 ~]# mkfs.xfs /dev/vg1/lv1
 3 meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=1638400 blks
 4          =                       sectsz=512   attr=2, projid32bit=1
 5          =                       crc=1        finobt=0, sparse=0
 6 data     =                       bsize=4096   blocks=6553600, imaxpct=25
 7          =                       sunit=0      swidth=0 blks
 8 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 9 log      =internal log           bsize=4096   blocks=3200, version=2
10          =                       sectsz=512   sunit=0 blks, lazy-count=1
11 realtime =none                   extsz=4096   blocks=0, rtextents=0
12 
13 [root@serve1 ~]# mkfs.xfs /dev/vg1/lv2
14 meta-data=/dev/vg1/lv2           isize=512    agcount=4, agsize=982528 blks
15          =                       sectsz=512   attr=2, projid32bit=1
16          =                       crc=1        finobt=0, sparse=0
17 data     =                       bsize=4096   blocks=3930112, imaxpct=25
18          =                       sunit=0      swidth=0 blks
19 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
20 log      =internal log           bsize=4096   blocks=2560, version=2
21          =                       sectsz=512   sunit=0 blks, lazy-count=1
22 realtime =none                   extsz=4096   blocks=0, rtextents=0
23 
24 #挂载逻辑卷
25 [root@serve1 ~]# mount /dev/vg1/lv1 /web
26 [root@serve1 ~]# mount /dev/vg1/lv2 /data
27 
28 [root@serve1 ~]# df -hT
29 文件系统            类型      容量  已用  可用 已用% 挂载点
30 /dev/mapper/cl-root xfs        17G  4.3G   13G   26% /
31 devtmpfs            devtmpfs  1.9G     0  1.9G    0% /dev
32 tmpfs               tmpfs     1.9G     0  1.9G    0% /dev/shm
33 tmpfs               tmpfs     1.9G  9.1M  1.9G    1% /run
34 tmpfs               tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
35 /dev/sda1           xfs      1014M  238M  777M   24% /boot
36 tmpfs               tmpfs     378M   12K  378M    1% /run/user/42
37 tmpfs               tmpfs     378M     0  378M    0% /run/user/0
38 /dev/mapper/vg1-lv1 xfs        25G   33M   25G    1% /web
39 /dev/mapper/vg1-lv2 xfs        15G   33M   15G    1% /data
40 
41 [root@serve1 ~]# echo /dev/mapper/vg1-lv1 /web  xfs  defaults 0  0 >>/etc/fstab
42 [root@serve1 ~]# echo /dev/mapper/vg1-lv2 /date  xfs  defaults 0  0 >>/etc/fstab
43 
44 [root@serve1 ~]# cat /etc/fstab
45 
46 #
47 # /etc/fstab
48 # Created by anaconda on Wed Sep 27 23:42:53 2017
49 #
50 # Accessible filesystems, by reference, are maintained under '/dev/disk'
51 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
52 #
53 /dev/mapper/cl-root     /                       xfs     defaults        0 0
54 UUID=4318c13a-c39b-484d-aaa0-ce6331eddc30 /boot                   xfs     defaults        0 0
55 /dev/mapper/cl-swap     swap                    swap    defaults        0 0
56 /dev/mapper/vg1-lv1 /web xfs defaults 0 0
57 /dev/mapper/vg1-lv2 /date xfs defaults 0 0
View Code

说明:centos7支持xfs和etx4类型的文件系统,centos6不支持xfs类型的文件系统。

卸载删除LVM

思路:删除LVM的步骤和创建LVM的步骤是相反的。先删除LV逻辑卷,再删除VG卷组,最后删除PV物理卷

 1 [root@serve1 ~]# lvremove /dev/vg1/lv1
 2 Do you really want to remove active logical volume vg1/lv1? [y/n]: y
 3   Logical volume "lv1" successfully removed
 4 [root@serve1 ~]# lvs
 5   LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 6   root cl -wi-ao---- <17.00g
 7   swap cl -wi-ao----   2.00g
 8   
 9 #删除VG1卷组
10 [root@serve1 ~]# vgremove vg1
11   Volume group "vg1" successfully removed
12   
13 #查看VG卷组状态
14 [root@serve1 ~]# vgs
15   VG #PV #LV #SN Attr   VSize   VFree
16   cl   1   2   0 wz--n- <19.00g    0
17 
18 #删除sd[b-c]物理卷
19 [root@serve1 ~]# pvremove /dev/sd[b-c]
20   Labels on physical volume "/dev/sdb" successfully wiped.
21   Labels on physical volume "/dev/sdc" successfully wiped.
22 
23 #查看PV物理卷状态
24 [root@serve1 ~]# pvs
25   PV         VG Fmt  Attr PSize   PFree
26   /dev/sda2  cl lvm2 a--  <19.00g    0
27   
28 #最后注释或删掉/etc/fstab里面逻辑卷的挂载信息。
View Code

 

 




本文转自博客园