Linux系统管理---LVM分区管理

目录

一、什么是LVM

物理卷(physical volume,PV) :

卷组(volume group,VG):

逻辑卷(logical volume,LV):

PE:

LE:

二、LVM常用命令

lvm相关查看命令

三、创建LVM实验流程:(Centos7.X )

1.创建PV(物理卷):

2.创建VG(卷组):

3.创建LV逻辑卷:

四、LVM逻辑卷扩容:(动态)

1、查看VG(卷组可用空间)

2.给lv扩展并查看空间大小变化

3.xfs-growfs 重新识别磁盘物理边界(重新识别大小)

五、lvm减缩(非动态)

1.卸载

2.缩减

3.格式化

4.重新挂载

六、LVM逻辑卷删除

1.依次删除

2.删除单个逻辑卷

七、LVM快照

LVM快照原理:

新建快照区为什么有文件:

创建lvm

建立快照(默认lvm分区)

安装SSM工具


一、什么是LVM

LVM是Linux下对磁盘分区进行管理的一种工具,适合管理大存储设备,并允许用户动态调整文件系统的大小。在使用LVM逻辑卷之前我们要先了解逻辑卷管理中的一些概念:

Linux系统管理---LVM分区管理_第1张图片

如图,五块硬盘组成LVM的底层结构。这五块硬盘的大小和型号可以不同。

物理卷(physical volume,PV) :

        是LVM最底层的概念,是LVM的逻辑的存储块,物理卷于磁盘分区是逻辑对应的关系。

多个物理卷可以合并或拆分,从而实现容量的扩容或者缩减。

LVM提供了 命令工具可以把分区转化为物理卷,通过组合物理卷得方式生成卷组

卷组(volume group,VG):

        卷组是LVM逻辑上得设备,由物理卷组合而成。卷组的大小取决于物理卷的容量及个数。

逻辑卷(logical volume,LV):

        逻辑卷可以理解成LVM中的分区

        LV建立在VG上,可以指定从VG中提取多少容量来创建逻辑卷,然后对LV进行格式化并挂载。

PE:

        PV中可以分配的最小存储单元称为PE,大小可以指定,默认为4MB.

LE:

        LV中可以分配的最小存储单元称为LE。在同一个卷组中,LE和PE大小相同且一一对应

二、LVM常用命令

功能

pv(物理卷)管理命令

vg(卷组)管理命令

lv(逻辑卷)管理命令

scan扫描

pvscan

vgscan

lvscan

用法

[root@localhost 桌面]# pvscan

                     # vgscan

create创建

pvcrerate

vgcreate

lvcreate

用法

【】# pvcreate /dev/sdb1  #创建物理卷/dev/sdb1。

【】# vgcreate myvg /dev/sdb1  #创建卷组,名为myvg。

【】# lvcreate -L 8G -n rs myvg #在卷组中创建8g的逻辑卷叫rs

-s 快照

display显示

pvdisplay

vgdisplay

lvdisplay

用法

[【】# pvdisplay   #列出详细信息。

remove移除(卸载后用)

pvremove

vgremove

lvremove

用法

【】# pvremove /dev/sdb1 #移除PV。

【】# vgremove myvg #删除卷组。

【】# lvremove /dev/myvg/rs #删除逻辑卷。

extend扩展

vgextend

lvresize

用法

【】# vgextend myvg /dev/sdb2 #把sdb2加入myvg卷组。

【】# lvresize -L +4G /dev/myvg/rs #给lv添加4G

#-L指定逻辑卷大小。

-n指定逻辑卷名称、所属卷组名称。

-l指定所占用的PE数量

reduce减少(未卸载)

vgreduce

lvreduce

用法

1.减小分区大小(需卸载umount)

缩减:lvreduce -L -指定大小 /dev/卷组名/逻辑卷名称

格式化

挂载

2.减小vg(将物理卷从vg移除):vgreduce 卷组名 物理卷(分区设备名)

lvm相关查看命令

查看卷名

简单对应卷信息查看

扫描相关的所有对应卷

详细对应卷信息的查看

pv物理卷

pvs

pvscan

pvdisolay

vg卷组

vgs

vgscan

vgdisplay

lv逻辑卷

lvs

lvscan

lvdisplay

三、创建LVM实验流程:(Centos7.X )

Command (? for help): n

Partition number (1-128, default 1):

First sector (34-41943006, default = 2048) or {+-}size{KMGTP}:

Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G

Current type is 'Linux filesystem'

Hex code or GUID (L to show codes, Enter = 8300): 8e00

Changed type of partition to 'Linux LVM' #创建分区,文件系统类型修改为8e00。

Command (? for help): p

Disk /dev/sdb: 41943040 sectors, 20.0 GiB

Logical sector size: 512 bytes

Disk identifier (GUID): 466D20A9-B1B8-4577-A429-0563EB7B1255

Partition table holds up to 128 entriesFirst usable sector is 34, last usable sector is 41943006

Partitions will be aligned on 2048-sector boundaries

Total free space is 2014 sectors (1007.0 KiB)

Number Start (sector) End (sector) Size Code Name

1 2048 10487807 5.0 GiB 8E00 Linux LVM

2 10487808 20973567 5.0 GiB 8E00 Linux LVM

3 20973568 31459327 5.0 GiB 8E00 Linux LVM

4 31459328 41943006 5.0 GiB 8E00 Linux LVM  #保存退出。

1.创建PV(物理卷):

pvcreate:可以把要添加到卷组(VG)的所有磁盘分区或整个磁盘创建为物理卷。

格式:pvcreate 磁盘分区或整个磁盘

pvscan:查看物理卷

pvdisplay:列出pv的详细信息

[root@localhost 桌面]# pvcreate /dev/sdb1  #创建物理卷/dev/sdb1。

Physical volume "/dev/sdb1" successfully created

[root@localhost 桌面]# pvscan    #查看物理卷。

PV /dev/sda2 VG centos lvm2 [19.51 GiB / 0 free]

PV /dev/sdb1 lvm2 [5.00 GiB]

Total: 2 [24.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 1 [5.00 GiB]

[root@localhost 桌面]# pvdisplay   #列出详细信息。

--- Physical volume ---

PV Name /dev/sda2

VG Name centos

PV Size 19.51 GiB / not usable 3.00 MiB

Allocatable yes (but full)

PE Size 4.00 MiB

Total PE 4994

Free PE 0

Allocated PE 4994PV UUID xWz4eX-2Bfg-QMWR-cSPc-X2jw-GlnF-VjeCqQ

"/dev/sdb1" is a new physical volume of "5.00 GiB"

--- NEW Physical volume ---

PV Name /dev/sdb1

VG Name

PV Size 5.00 GiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID k0tGdH-LfVZ-Z8oC-fd7F-UXZf-U8Qw-gMIzQu

2.创建VG(卷组):

vgcreate:创建卷组

格式:vgcreate 卷组名 物理卷

vgscan:查看卷组。

列出vg的详细信息:vgdisplay 卷组名

扩展vg:vgextend 卷组名 物理卷(分区设备名)

减小vg:vgreduce 卷组名 物理卷(分区设备名)

[root@localhost ~]# vgcreate myvg /dev/sdb1  #创建卷组,名为myvg。

Volume group "myvg" successfully created

[root@localhost ~]# vgdisplay myvg #查看卷组myvg的详细信

息。

--- Volume group ---

VG Name myvg

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 1

VG Access read/writeVG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 1

Act PV 1

VG Size 5.00 GiB

PE Size 4.00 MiB

Total PE 1279

Alloc PE / Size 0 / 0

Free PE / Size 1279 / 5.00 GiB

VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y

[root@localhost ~]# pvcreate /dev/sdb2

Physical volume "/dev/sdb2" successfully created

[root@localhost ~]# pvcreate /dev/sdb3

Physical volume "/dev/sdb3" successfully created

[root@localhost ~]# pvcreate /dev/sdb4

Physical volume "/dev/sdb4" successfully created

#将sdb2-sdb4添加到物理卷。

【】# vgextend myvg /dev/sdb2 #把sdb2加入myvg卷组。

Volume group "myvg" successfully extended #查看信息是否有变化。

【】# vgdisplay myvg

--- Volume group ---

VG Name myvg

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 2

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0Cur PV 2

Act PV 2

VG Size 9.99 GiB

PE Size 4.00 MiB

Total PE 2558

Alloc PE / Size 0 / 0

Free PE / Size 2558 / 9.99 GiB

VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y #依次添加sdb3、sdb4。

【】# vgdisplay myvg

--- Volume group ---

VG Name myvg

System ID

Format lvm2

Metadata Areas 4

Metadata Sequence No 4

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 4

Act PV 4

VG Size 19.98 GiB

PE Size 4.00 MiB

Total PE 5116

Alloc PE / Size 0 / 0

Free PE / Size 5116 / 19.98 GiB

VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y

3.创建LV逻辑卷:

【】# lvcreate -L 8G -n rs myvg

#在卷组中创建8g的逻辑卷叫rs

Logical volume "rs" created

#-L指定逻辑卷大小。-n指定逻辑卷名称、所属卷组名称。-l指定所占用的PE数量

【】# mkfs.xfs /dev/myvg/rs

meta-data=/dev/myvg/rs isize=256 agcount=4, agsize=524288 blks

= sectsz=512 attr=2, projid32bit=1

= crc=0

data = bsize=4096 blocks=2097152, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=0

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

【】# mkdir /lvmtst

【】# mount /dev/myvg/rs /lvmtst/

【】# df -h 文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 18G 4.4G 14G 25% /

devtmpfs 481M 0 481M 0% /dev

tmpfs 490M 140K 490M 1% /dev/shm

tmpfs 490M 7.0M 483M 2% /run

tmpfs 490M 0 490M 0% /sys/fs/cgroup

/dev/sda1 497M 119M 379M 24% /boot

/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64

/dev/mapper/myvg-rs 8.0G 33M 8.0G 1% /lvmtst

#创建成功,成功格式化并挂载。

四、LVM逻辑卷扩容:(动态)

1、查看VG(卷组可用空间)

【】# vgdisplay myvg #首先查看卷组内还有多少可用空间。

--- Volume group ---

VG Name myvg

System ID

Format lvm2

Metadata Areas 4

Metadata Sequence No 5

VG Access read/write

VG Status resizable

MAX LV 0Cur LV 1

Open LV 1

Max PV 0

Cur PV 4

Act PV 4

VG Size 19.98 GiB

PE Size 4.00 MiB

Total PE 5116

Alloc PE / Size 2048 / 8.00 GiB

#已用。

Free PE / Size 3068 / 11.98 GiB

#可用。

VG UUID 84UhNy-Eq73-uZ2L-TFTL-jUsP-yn2C-Ghd19Y

#首先查看卷组内还有多少可用空间。

2.给lv扩展并查看空间大小变化

【】# lvresize -L +4G /dev/myvg/rs #给lv添加4G

Extending logical volume rs to 12.00 GiB

Logical volume rs successfully resized

#扩展到12G,调整成功。

【】# lvscan

ACTIVE '/dev/myvg/rs' [12.00 GiB] inherit

ACTIVE '/dev/centos/root' [17.51 GiB] inherit

ACTIVE '/dev/centos/swap' [2.00 GiB] inherit

【】# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 18G 4.4G 14G 25% /

devtmpfs 481M 0 481M 0% /dev

tmpfs 490M 140K 490M 1% /dev/shm

tmpfs 490M 7.0M 483M 2% /run

tmpfs 490M 0 490M 0% /sys/fs/cgroup

/dev/sda1 497M 119M 379M 24% /boot

/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64

/dev/mapper/myvg-rs 8.0G 33M 8.0G 1% /lvmtst

3.xfs-growfs 重新识别磁盘物理边界(重新识别大小)

【】# xfs_growfs /lvmtst/

meta-data=/dev/mapper/myvg-rs isize=256 agcount=4, agsize=524288 blks = sectsz=512 attr=2, projid32bit=1 = crc=0

data = bsize=4096 blocks=2097152, imaxpct=25= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=0

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 2097152 to 3145728

【】# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 18G 4.4G 14G 25% /

devtmpfs 481M 0 481M 0% /dev

tmpfs 490M 140K 490M 1% /dev/shm

tmpfs 490M 7.0M 483M 2% /run

tmpfs 490M 0 490M 0% /sys/fs/cgroup

/dev/sda1 497M 119M 379M 24% /boot

/dev/sr0 6.6G 6.6G 0 100% /run/media/root/CentOS 7 x86_64

/dev/mapper/myvg-rs 12G 33M 12G 1% /lvmtst

        #在XFS文件系统下,分区只能够进行扩展,并不支持分区缩减的功能。如果想缩减基于XFS的逻辑卷需要:

五、lvm减缩(非动态)

1.卸载

【】umount /挂载点

2.缩减

【】lvreduce -L -指定大小 /dev/卷组名/逻辑卷名称

3.格式化

【】mkfs.xfs -f /dev/卷组名/逻辑卷名称

4.重新挂载

【】mount 重新挂载

六、LVM逻辑卷删除

1.依次删除

【】# umount /dev/myvg/rs #卸载。

【】# lvremove /dev/myvg/rs #删除逻辑卷。

【】# vgremove myvg #删除卷组。

【】# pvremove /dev/sdb1 #移除PV。

2.删除单个逻辑卷

1)先数据转移  pvmove

LVS:pvmove

pvmove用来实现数据转移,根据数据量的多少,它可能要使用大量的时间,并可降低逻辑卷的性能,因此要在系统不太忙时操作。(转移到vg的可用空间

2)缩减vg(类似移除)

减小vg:vgreduce 卷组名 物理卷(分区设备名)

3)再移除物理卷

 【】pvremove  /dev/sdb   

七、LVM快照

        在LVM中快照就是记录某一时刻的数据,当想要回到那一时刻的时候再通过恢复数据来达到将时间恢复的做法。实际上lvm快照算是一种备份

LVM快照原理:

当被快照区发生改变时,快照区保存改变前的原文件,

恢复快照时用快照区文件覆盖被快照区

也可在快照区写入数据(进行测试),恢复数据只需要删除快照区新建快照

新建快照区为什么有文件:

新建快照区与被快照区存在一种类似硬连接的关系,所以会显示。但只有当被快照区文件改变时才会真实的存储在快照区

注意:快照区与被快照区的LV必须在统一VG下。

例:

创建lvm

【】# lvcreate -L +3G -n rs myvg

#创建lv名为rs,vg为myvg,大小3G。

【】# mkfs.xfs /dev/myvg/rs

#XFS格式化。

【】# mount /dev/myvg/rs /test1/

【】# df -h

文件系统             容量  已用  可用  已用%  挂载点

。。。。。。。。。。。。。。。。。。。。。。 #格式化并查看。

/dev/mapper/myvg-rs  3.0G  33M  3.0G  2%  /test1

【】# dd if=/dev/zero of=/test1/t1.txt bs=1M count=500

记录了500+0 的读入

记录了500+0 的写出

524288000字节(524 MB)已复制,1.33933 秒,391 MB/秒

【】# df -h

文件系统        容量   已用  可用  已用%  挂载点

。。。。。。。。。。。。。。。。。。。。。。。 #模拟写入数据,并查看分区信息。

/dev/mapper/myvg-rs 3.0G 533M 2.5G 18% /test1

建立快照(默认lvm分区)

【】# lvcreate -s -L +1G -n rskz /dev/myvg/rs

Logical volume "rskz" created

#创建快照完成。-s选项指定了使用快照功能。-L 指定了快照的可用空间。-n指定了快照的名称,在/dev/myvg/“快照名称”。

【】# lvdisplay /dev/myvg/rskz

--- Logical volume ---

LV Path         /dev/myvg/rskz

LV Name         rskz

VG Name         myvg

LV UUID         Zj7S40-EYmJ-xVlK-ZMth-kd8a-w3uG-90oqzU

LV Write Access     read/write

LV Creation host, time localhost.localdomain, 2018-12-22 15:51:54 +0800

LV snapshot status   active destination for rs

LV Status             available

# open                  0

LV Size                   3.00 GiB

#“被快照”分区大小。

Current LE              768

COW-table size         1.00 GiB

#快照分区大小(可使用空间)。

COW-table LE            256

Allocated to snapshot   0.00%

#目前使用百分比。

Snapshot chunk size     4.00 KiB

Segments                 1

Allocation              inherit

Read ahead sectors       auto

- currently set to       8192

Block device             253:3

【】# mount -o nouuid /dev/myvg/rskz /test2/

【】# df -h

文件系统     容量     已用      可用      已用%   挂载点

。。。。。。。。。。。。。。。。。。。。。。 #相同的使用空间

/dev/mapper/myvg-rs 3.0G 533M 2.5G 18% /test1

/dev/mapper/myvg-rskz 3.0G 533M 2.5G 18% /test2

【】# lvdisplay /dev/myvg/rskz

--- Logical volume ---

LV Path              /dev/myvg/rskz

LV Name              rskz

VG Name               myvg

LV UUID               Zj7S40-EYmJ-xVlK-ZMth-kd8a-w3uG-90oqzU

LV Write Access       read/write

LV Creation host, time localhost.localdomain, 2018-12-22 15:51:54 +0800

LV snapshot status    active destination for rs

LV Status             available

# open                1

LV Size                  3.00 GiB

Current LE              768

COW-table size          1.00 GiB

COW-table LE            256

Allocated to snapshot   0.20%

#已使用百分。

Snapshot chunk size     4.00 KiB

Segments                  1

Allocation             inherit

Read ahead sectors     auto

- currently set to     8192

Block device         253:3

【】# ll -h /test2/

总用量 500M

#在快照中保存的数据和“被快照”分区一致。

-rw-r--r--. 1 root root 500M 12月 22 15:43 t1.txt

#到目前为止,快照分区已经成功实现。那么继续进行恢复快照前的准备工作。

【】# touch /test1/t2.txt

【】# touch /test1/t3.txt

【】# ll /test1/

总用量 512000

-rw-r--r--. 1 root root 524288000 12月 22 15:43 t1.txt

-rw-r--r--. 1 root root 0 12月 22 16:21 t2.txt

-rw-r--r--. 1 root root 0 12月 22 16:21 t3.txt

安装SSM工具

【】# yum -y install system-storage-manager

SSM:检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

查看磁盘信息

列出设备信息

【】# ssm list dev

存储池信息

【】# ssm list pool

----------------------------------------------------

Pool Type Devices Free Used

Total

vg02 lvm 1 1008.00 MB 0.00 KB 1008.00 MB

----------------------------------------------------

将sdb上所有卷组信息删除:

【】# vgremove vg02

【】# pvremove /dev/sdb{1,2,3,4}

创建目录

【】# mkdir /mail-lv

用的命令如下:

ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点

自动把设备变成pv,创建vg , lv ,格式化文件系统, 自动挂载

【】 ssm create -s 1G -n mail-lv --fstype xfs -p mail

/dev/sdb[1-4] /mail-lv

【】# df -h /mail-lv/

你可能感兴趣的:(温故知新,linux,centos,运维)