Linux基础-逻辑卷管理

HaiYang 11 阅读 Linux

一、LVM概述

1.逻辑卷管理(Logical Volume Manager)

作用:能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注:/boot分区用于存放引导文件,不能基于LVM创建

2.LVM机制的基本概念

PV (物理卷):设定那些硬盘和分区(做逻辑卷时分区必须是8e类型)可以做逻辑卷
VG (卷组):将物理卷告诉的硬盘,卷组将硬盘的大小打碎成PE,一个PE大概4M
LV (逻辑卷):从VG中取需要的PE来决定逻辑卷的大小

二、LVM的管理命令

主要命令:

功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 建立 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 —— vgextend lvextend
Reduce 减少 —— vgreduce lvreduce

基本格式:
pvcreate 设备名1 [设备名2…]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名

三、创建逻辑卷

1.准备两块未使用的硬盘

[root@yang ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   91G  0 lvm  /
  └─centos-swap 253:1    0    8G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom

2.先使用 fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的 id 记号改为 “8e”

[root@yang ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part 
  ├─centos-root 253:0    0   91G  0 lvm  /
  └─centos-swap 253:1    0    8G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
sdc               8:32   0   20G  0 disk 
└─sdc1            8:33   0   20G  0 part 
sr0              11:0    1  4.4G  0 rom

3.创建物理卷

[root@yang ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

4.创建卷组,卷组名为haiyang

[root@yang ~]# vgcreate haiyang /dev/sdb1 /dev/sdc1
  Volume group "haiyang" successfully created

5.创建逻辑卷,逻辑卷名为xiaowang,容量为 15GB,生成的文件路径为/dev/haiyang/xiaowang

[root@yang ~]# lvcreate -L 15G -n xiaowang haiyang
  Logical volume "xiaowang" created.

6.对逻辑卷进行格式化,创建 xfs 文件系统

[root@yang ~]# mkfs -t xfs /dev/haiyang/xiaowang
meta-data=/dev/haiyang/xiaowang  isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

7.将创建好的逻辑卷挂载到 /opt 目录下

[root@yang ~]# mount /dev/haiyang/xiaowang /opt/

[root@yang ~]# lsblk 
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                    8:0    0  100G  0 disk 
├─sda1                 8:1    0    1G  0 part /boot
└─sda2                 8:2    0   99G  0 part 
  ├─centos-root      253:0    0   91G  0 lvm  /
  └─centos-swap      253:1    0    8G  0 lvm  [SWAP]
sdb                    8:16   0   20G  0 disk 
└─sdb1                 8:17   0   20G  0 part 
  └─haiyang-xiaowang 253:2    0   15G  0 lvm  /opt
sdc                    8:32   0   20G  0 disk 
└─sdc1                 8:33   0   20G  0 part 
sr0                   11:0    1  4.4G  0 rom

8.对逻辑卷进行扩容处理

[root@yang ~]# lvextend -L +20G -r /dev/haiyang/xiaowang
  Size of logical volume haiyang/xiaowang changed from 15.00 GiB (3840 extents) to 35.00 GiB (8960 extents).
  Logical volume haiyang/xiaowang successfully resized.
meta-data=/dev/mapper/haiyang-xiaowang isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3932160 to 9175040


[root@yang ~]# lsblk 
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                    8:0    0  100G  0 disk 
├─sda1                 8:1    0    1G  0 part /boot
└─sda2                 8:2    0   99G  0 part 
  ├─centos-root      253:0    0   91G  0 lvm  /
  └─centos-swap      253:1    0    8G  0 lvm  [SWAP]
sdb                    8:16   0   20G  0 disk 
└─sdb1                 8:17   0   20G  0 part 
  └─haiyang-xiaowang 253:2    0   35G  0 lvm  /opt
sdc                    8:32   0   20G  0 disk 
└─sdc1                 8:33   0   20G  0 part 
  └─haiyang-xiaowang 253:2    0   35G  0 lvm  /opt
sr0                   11:0    1  4.4G  0 rom