之前一篇文章介绍了lvm,今天在这里演示制作lvm的过程。lvm的制作过程有以下几个步骤:磁盘分区

使用分区制作pv

以pv建立vg

从vg分割出lv

格式化lv并挂载到目录中使用

接下来,我们来完成上面的流程吧。

分区

首先,我们看看磁盘的分区情况。# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 40G 0 disk

├─sda1 8:1 0 2M 0 part

├─sda2 8:2 0 1G 0 part /boot

├─sda3 8:3 0 1G 0 part [SWAP]

├─sda4 8:4 0 10G 0 part /

└─sda5 8:5 0 100M 0 part

sdb 8:16 0 1G 0 disk

sdc 8:32 0 1G 0 disk

sdd 8:48 0 1G 0 disk

sde 8:64 0 1G 0 disk

可以看到,我的主机上面有5块磁盘,除了sda这块磁盘,其他的磁盘还没有分区,另外sda这块磁盘也还有剩余空间。现在,把另外4块磁盘也分区。分区使用fdisk或gdisk工具,具体过程这里就省略了。分完区后信息如下:# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 40G 0 disk

├─sda1 8:1 0 2M 0 part

├─sda2 8:2 0 1G 0 part /boot

├─sda3 8:3 0 1G 0 part [SWAP]

├─sda4 8:4 0 10G 0 part /

└─sda5 8:5 0 100M 0 part

sdb 8:16 0 1G 0 disk

└─sdb1 8:17 0 1023M 0 part

sdc 8:32 0 1G 0 disk

└─sdc1 8:33 0 1023M 0 part

sdd 8:48 0 1G 0 disk

└─sdd1 8:49 0 1023M 0 part

sde 8:64 0 1G 0 disk

└─sde1 8:65 0 1023M 0 part

制作pv

首先,我们需要安装lvm2这个软件。yum install lvm2

关于pv有几个相关的命令:pvscan 查看系统上的pv

pvdisplay 列出pv的使用情况

pvcreate 制作pv

pvremove 删除该pv,即使某分区没有了pv属性

现在我们来使用分区来制作pv。

用法:pvcreate 分区 ……# pvcreate /dev/sdb1 /dev/sdc1

Physical volume "/dev/sdb1" successfully created.

Physical volume "/dev/sdc1" successfully created.

# 这样就制作好了两个pv

下面通过pvscan查看系统上所有的pv# pvscan

PV /dev/sdc1 lvm2 [1023.00 MiB]

PV /dev/sdb1 lvm2 [1023.00 MiB]

Total: 2 [<2.00 GiB] / in use: 0 [0 ] / in no VG: 2 [<2.00 GiB]

# 共有2个pv,总大小2G左右,0个pv被使用

查看某个pv的使用情况:pvdispaly [分区名]# pvdisplay /dev/sdb1

"/dev/sdb1" is a new physical volume of "1023.00 MiB"

--- NEW Physical volume ---

PV Name /dev/sdb1

VG Name

PV Size 1023.00 MiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID 6sl1Eg-S6BJ-1QYX-NAFs-9dIB-zEKN-jz7lYM

然后,我们再将这两个pv给删除掉# pvremove /dev/sd{b,c}1

Labels on physical volume "/dev/sdb1" successfully wiped.

Labels on physical volume "/dev/sdc1" successfully wiped.

最后,我们还是制作3个pv吧# pvcreate /dev/sd{b,c,d}1

Physical volume "/dev/sdb1" successfully created.

Physical volume "/dev/sdc1" successfully created.

Physical volume "/dev/sdd1" successfully created.

制作vg

vg也有几个相关的命令,如下:vgcreate 制作vg,这个命令是这些命令中最复杂的。

vgscan 浏览系统上的vg

vgremove 删除一个vg

vgdisplay 查看vg的使用情况

vgextend 对vg扩容,即增加pv

vgreduce 从vg移除pv

首先看制作vg的命令使用:

vgcreate [-s N[m|g|t]] vg名称 pv名称

选项与参数:-s 后接大小,m、g、t大小写均可,用来设置pe大小。省略该参数,则使用默认大小,一般为4M

vg名称: 和pv过程不一样,这里需要自定义vg的名称,
pv名称, 由哪几个pv制作vg。
下面来制作vg# vgcreate vgwww /dev/sd{b,c,d}1
Volume group "vgwww" successfully created
浏览vg有哪些# vgscan
Reading volume groups from cache.
Found volume group "vgwww" using metadata type lvm2
查看vg的相关信息# vgdisplay
--- Volume group ---
VG Name vgwww
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
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 <2.99 GiB
PE Size 4.00 MiB
Total PE 765
Alloc PE / Size 0 / 0
Free PE / Size 765 / <2.99 GiB
VG UUID pd3HIi-NnES-DsdO-d35L-qoJB-OrwI-vkhfqV
现在我们对vgwww进行扩容操作# vgextend vgwww /dev/sde1
Volume group "vgwww" successfully extended
制作lv
关于lv也有一些相关命令,分别如下:lvcreate :制作lv
lvscan :查询系统上的lv
lvdisplay :显示lv的状况
lvextend :增加lv容量
lvreduce :减少lv容量
lvremove :删除一个lv
lvresize :对lv容量大小进行调整
下面我们来看制作lv的命令lvcreate [-L N[m/g/t]] [-n lv名称] vg名称
lvcreate [-l N] [-n lv名称] vg名称

选项参数:-L 后接容量,设置lv的大小

-l 后接使用多少个pe的数量

可以不设置lv名称,那么系统会自动设置lv名称# lvcreate -L 1G -n lvwww vgwww

Logical volume "lvwww" created.
# lvscan
ACTIVE '/dev/vgwww/lvwww' [1.00 GiB] inherit

下面再来演示如何给lv进行扩容增大1G,扩容要使用lvresize命令了。首先,确定vg剩余空间大于1G,然后进行扩容# vgdisplay vgwww

--- Volume group ---
VG Name vgwww
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 3.98 GiB
PE Size 4.00 MiB
Total PE 1020
Alloc PE / Size 256 / 1.00 GiB
Free PE / Size 764 / 2.98 GiB <=== 还有剩余3G的空间
VG UUID pd3HIi-NnES-DsdO-d35L-qoJB-OrwI-vkhfqV
# lvresize -L +1G /dev/vgwww/lvwww
Size of logical volume vgwww/lvwww changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
Logical volume vgwww/lvwww successfully resized.

格式化、挂载

这个/dev/vgwww/lvwww就相当于一个分区,想要使用该分区就需要先进行格式化,然后挂载使用# mkfs.xfs /dev/vgwww/lvwww

# blkid
……
/dev/mapper/vgwww-lvwww: UUID="fcbff612-a169-4542-ad92-6d53abe7b982" TYPE="xfs"
# mount /dev/vgwww/lvwww /www
[root@localhost ~]# df -h
……
/dev/mapper/vgwww-lvwww 2.0G 33M 2.0G 2% /www

到此,整个流程就结束了,新的文件系统已经创建完毕了。