linux安装时设置backup分区,[Lvm] Linux(centos 6)Lvm创建、Lvm分区扩容,Lvm快照备份及Lvm配置详解...

本章blog主要讲解了[Lvm] Linux(centos)lvm磁盘创建,LVM分区,扩容、快照管理及LVM配置命令详解

本章Blog相关知识点:LVM基本组成:

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。LVM将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系 统。LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间。LVM的基本组成块(building blocks):

物理卷Physical volume (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)。 物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块。

卷组Volume group (VG):将一组物理卷收集为一个管理单元。LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷PV组成。可以在卷组上创建一个或多个"LV分区"(逻辑卷),VG卷组由一个或多个物理卷PV组成。

逻辑卷Logical volume (LV):虚拟分区,由物理区域(physical extents)组成。LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

物理区域Physical extent (PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)。每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。LVM优点

比起正常的硬盘分区管理,LVM更富于弹性:

使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。

使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。

可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。

在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。

可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。

LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。

无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。

允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。

这些优点使得LVM对服务器的管理非常有用,对于桌面系统管理的帮助则没有那么显著,你需要根据实际情况进行取舍。LVM缺点

在系统设置时需要更复杂的额外步骤。

与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。 LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。

如下图所示PV、VG、LV三者关系:

8d5777274e9788a5d7de7bcf0ab59cfb.pngLvm相关管理命令

设备文件名:

/dev/卷组名/逻辑卷名 或 /dev/mapper/卷组名-逻辑卷名

物理卷管理:pv

pvcreate(创建pv), pvremove(移除pv), pvmove(移除卷内数据), pvscan(显示所有的pv卷), pvs(查看pv卷简要信息), pvdisplay (看pv卷详细信息)

卷组管理:vg

vgcreate(创建vg), vgremove(移除vg), vgs(查看vg卷简要信息), vgdisplay (查看vg卷详细信息), vgextend(扩展vg卷组), vgreduce(缩减vg卷组), vgrename (改名)

# vgcreate -s PE_size   指定PE的大小 ,默认是4M

逻辑卷管理:lv

lvcreate, lvremove, lvs, lvdisplay , lvextend(扩展lv卷组) , lvreduce(缩减lv卷组)

# lvcreate  创建lv逻辑卷

-n 指定lv名称

-L  逻辑卷大小

-s  创建快照

-p  指定模式

# lvextend 扩展lv大小

-L  [+] 5G  扩展[了]到5G

获取以上命令帮助方法: # command -h  ,例: #lvcreate -h

配置管理LVM实验(逻辑卷管理)

系统环境:

系统:Centos 7.4 最小化安装

LVM管理工具:lvm2-2.02.171-8.el7.x86_64

磁盘分区:挂载/dev/sdb 、/dev/sdc 、/dev/sdd、/dev/sde 、/dev/sdf、 /dev/sdg 共6块磁盘

实验目的:

1、通过LVM管理工具,分别创建pv、vg 和lvm。

2、模拟扩展和缩减LV,模拟扩展或缩减VG

3、创建lv快照

4、卸载LVM,删除LVM

实验步骤:

一、设置磁盘(虚拟机中增加6块10G磁盘),安装LVM 管理工具。

1、在Vmware 虚拟机中,增加6块磁盘 。

713848e831b644e74f6996c5216a57da.png

2、查看系统版本,验证lvm*管理工具是否安装 并查看磁盘信息[root@study ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@study ~]# rpm -qa |grep lvm*    确认是否安装lvm管理工具

lvm2-libs-2.02.171-8.el7.x86_64

lvm2-2.02.171-8.el7.x86_64

[root@study ~]# fdisk -l | grep "^Disk./dev"

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sde: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sdf: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sdg: 10.7 GB, 10737418240 bytes, 20971520 sectors

二、对增加的磁盘进行分区并修改分区类型为8e(Linux LVM),并验证分区结果[root@study ~]# echo 'n

> p

> 1

>

>

> t

> 8e

> w '|fdisk /dev/sdb      为/dev/sdb磁盘创建分区1 ,分配分区大小为磁盘总空间。并调整类型为8e(LVM)

[root@study ~]# fdisk -l | grep "LVM$"   验证磁盘分区结果

/dev/sda3        12584960   251658239   119536640   8e  Linux LVM

/dev/sdb1            2048    20971519    10484736   8e  Linux LVM

/dev/sdc1            2048    20971519    10484736   8e  Linux LVM

/dev/sdd1            2048    20971519    10484736   8e  Linux LVM

/dev/sde1            2048    20971519    10484736   8e  Linux LVM

/dev/sdf1            2048    20971519    10484736   8e  Linux LVM

/dev/sdg1            2048    20971519    10484736   8e  Linux LVM

[root@study ~]# reboot    内核重读磁盘分区

[root@study ~]# cat /proc/partitions  | grep "1$"    验证内核是否加载了磁盘分区

8        1    2097152 sda1

8       17   10484736 sdb1

8       33   10484736 sdc1

8       49   10484736 sdd1

8       65   10484736 sde1

8       81   10484736 sdf1

8       97   10484736 sdg1

三、创建PV 物理卷[root@study ~]# pvcreate /dev/sd{b..e}1    创建pv物理卷

Physical volume "/dev/sdb1" successfully created.

Physical volume "/dev/sdc1" successfully created.

Physical volume "/dev/sdd1" successfully created.

Physical volume "/dev/sde1" successfully created.

[root@study ~]# pvs    查看pv状态信息

PV         VG Fmt  Attr PSize    PFree

/dev/sda3  VG lvm2 a--  <114.00g <69.00g

/dev/sdb1     lvm2 ---   <10.00g <10.00g

/dev/sdc1     lvm2 ---   <10.00g <10.00g

/dev/sdd1     lvm2 ---   <10.00g <10.00g

/dev/sde1     lvm2 ---   <10.00g <10.00g

[root@study ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda3

VG Name               VG

PV Size               <114.00 GiB / not usable 3.00 MiB

Allocatable           yes

PE Size               4.00 MiB

Total PE              29183

Free PE               17663

Allocated PE          11520

PV UUID               2Ksdp4-23Ia-jnvA-BeO4-31O2-chlO-I2CQTc

"/dev/sdd1" is a new physical volume of "<10.00 GiB"

--- NEW Physical volume ---

...

四、创建myvg 卷组 ,指定PE大小为16M[root@study ~]# vgcreate /dev/myvg -s 16M /dev/sd{b..e}1  创建myvg1卷组,并指定PE大小为16M

Volume group "myvg" successfully created

[root@study dev]# vgs

VG   #PV #LV #SN Attr   VSize    VFree

myvg   4   0   0 wz--n-  <39.94g <39.94g

[root@study dev]# pvs     查看pv状态信息

PV         VG   Fmt  Attr PSize    PFree

/dev/sdb1  myvg lvm2 a--     9.98g   9.98g

/dev/sdc1  myvg lvm2 a--     9.98g   9.98g

/dev/sdd1  myvg lvm2 a--     9.98g   9.98g

/dev/sde1  myvg lvm2 a--     9.98g   9.98g

五、创建mylv 逻辑卷并查看pv,vg及lv状态, 格式化lv逻辑卷并实现开机挂载[root@study dev]# lvcreate -n mylv -L 20G  myvg     从myvg 卷组中分配20G并创建mylv逻辑卷;-n 指定LVM名字 ,-L 分配容量大小

[root@study dev]# lvs

LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

mylv myvg -wi-a----- 20.00g

[root@study dev]# lvdisplay    查看lv状态信息

...

--- Logical volume ---

LV Path                /dev/myvg/mylv

LV Name                mylv

...

[root@study dev]# ls /dev/myvg/

mylv

[root@study dev]# mke2fs -t ext4 -m 2 -L mylvdata /dev/mapper/myvg-mylv     创建文件系统

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=mylvdata

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

1310720 inodes, 5242880 blocks

104857 blocks (2.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2153775104

160 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

[root@study dev]# mount /dev/mapper/myvg-mylv /mylv/  挂载

[root@study dev]# df -h | grep "^/dev"

/dev/mapper/VG-root     15G  1.2G   13G   9% /

/dev/sda1              2.0G  116M  1.7G   7% /boot

/dev/mapper/VG-home     20G   45M   19G   1% /home

/dev/mapper/VG-var     9.8G  200M  9.1G   3% /var

/dev/mapper/myvg-mylv   20G   45M   20G   1% /mylv

[root@study dev]# vi /etc/fstab   ## 配置开机自动挂载

#

...

/dev/myvg/mylv         /mylv                    ext4    defaults         0 2

六、扩展或缩减mylv 逻辑卷

LVM最大的优势是可以对磁盘进行动态管理,而且不会丢失现有的数据。

1、扩展LVM的思路:

先确定扩展的大小,并确保所属的卷组有足够的剩余空间;

卸载逻辑卷umount ;通过命令e2fsck检查数据 ;

扩展物理边界 ,reseize2fs 扩展逻辑边界

[root@study ~]# cp -af /boot/ /mylv/

[root@study ~]# ls /mylv/

boot  lost+found

[root@study ~]# lvs

LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

...

mylv myvg -wi-a----- 20.00g

[root@study ~]# df -lh

..

/dev/mapper/myvg-mylv   20G  154M   19G   1% /mylv

...

[root@study ~]# vgs    确保剩余空间 ,扩展的大小必须小于卷组剩余空间大小,myvg剩余vg大小为19.94G

VG   #PV #LV #SN Attr   VSize    VFree

myvg   4   1   0 wz--n-  <39.94g <19.94g

[root@study ~]# umount /mylv/   卸载磁盘分区/mylv/

[root@study ~]# e2fsck -fy /dev/mapper/myvg-mylv   检查并修复磁盘

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

mylvdata: 338/1310720 files (0.3% non-contiguous), 154377/5242880 blocks

[root@study ~]# lvextend -L +5G /dev/mapper/myvg-mylv   为LV逻辑卷扩展增加5G空间

Size of logical volume myvg/mylv changed from 20.00 GiB (1280 extents) to 25.00 GiB (1600 extents).

Logical volume myvg/mylv successfully resized.

[root@study ~]# lvs   lv卷增加到25G空间

LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

...

mylv myvg -wi-ao---- 25.00g

[root@study ~]# resize2fs /dev/mapper/myvg-mylv   ##为/dev/mapper/myvg-mylv扩展逻辑边界

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/mapper/myvg-mylv is mounted on /mylv; on-line resizing required

old_desc_blocks = 3, new_desc_blocks = 4

The filesystem on /dev/mapper/myvg-mylv is now 6553600 blocks long.

[root@study ~]# df -lh    查看磁盘大小

Filesystem             Size  Used Avail Use% Mounted on

...

/dev/mapper/myvg-mylv   25G  154M   24G   1% /mylv

[root@study ~]# ls /mylv/   磁盘数据依然存在

boot  lost+found

2、缩减LVM思路:

卸载逻辑卷umount ;通过命令e2fsck检查lv逻辑卷 ;

缩减LVM逻辑卷逻辑边界(确保缩减后的空间大小依然能存储原有的所有数据);

缩减物理边界;重新挂载;[root@study ~]# lvs   确认lv卷空间大小

LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

...

mylv myvg -wi-ao---- 25.00g

[root@study ~]# df -lh    ##查看磁盘大小

Filesystem             Size  Used Avail Use% Mounted on

...

/dev/mapper/myvg-mylv   25G  154M   24G   1% /mylv

[root@study ~]# umount /dev/myvg/mylv

[root@study ~]# e2fsck -fy /dev/mapper/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

mylvdata: 338/1638400 files (0.3% non-contiguous), 174937/6553600 blocks

[root@study ~]# resize2fs /dev/mapper/myvg-mylv 15G   缩减逻辑边界空间大小为15G

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/mapper/myvg-mylv to 3932160 (4k) blocks.

The filesystem on /dev/mapper/myvg-mylv is now 3932160 blocks long.

[root@study ~]# lvreduce -L 15G /dev/mapper/myvg-mylv  缩减lv卷大小为15G

WARNING: Reducing active logical volume to 15.00 GiB.

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 25.00 GiB (1600 extents) to 15.00 GiB (960 extents).

Logical volume myvg/mylv successfully resized.

[root@study ~]# mount /dev/mapper/myvg-mylv /mylv/

[root@study ~]# df -lh

Filesystem             Size  Used Avail Use% Mounted on

...

/dev/mapper/myvg-mylv   15G  150M   15G   2% /mylv

[root@study ~]# lvs

LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

...

mylv myvg -wi-ao---- 15.00g

七、扩展或缩减myvg 卷组

1、扩展vg卷组思路

准备要添加的物理卷;

添加物理卷至卷组中;

# vgextend vg_name /path/to/pv_devcie[root@study ~]# pvcreate /dev/sd{f,g}1

Physical volume "/dev/sdf1" successfully created.

Physical volume "/dev/sdg1" successfully created.

[root@study ~]# vgs

VG   #PV #LV #SN Attr   VSize    VFree

VG     1   3   0 wz--n- <114.00g <69.00g

myvg   4   1   0 wz--n-  <39.94g <24.94g

[root@study ~]# vgextend myvg /dev/sd{g,f}1  扩展2个磁盘分区到myvg卷组

Volume group "myvg" successfully extended

[root@study ~]# vgs    卷组大小增加20G空间

VG   #PV #LV #SN Attr   VSize    VFree

VG     1   3   0 wz--n- <114.00g <69.00g

myvg   6   1   0 wz--n-  <59.91g <44.91g

2、缩减vg卷组思路

去顶要移除的物理卷的总空间大小,要小于vg当前的空闲空间大小;

将要移除的物理卷上的数据移动至其他PV;

# pvmove /path/to/pv_device

缩减vg;

# vgreduce vg_name /path/to/pv_device[root@study ~]# vgs  ##磁盘卷组空闲free空间为44.91G

VG   #PV #LV #SN Attr   VSize    VFree

VG     1   3   0 wz--n- <114.00g <69.00g

myvg   6   1   0 wz--n-  <59.91g <44.91g

[root@study ~]# pvs   ## 确认分区/dev/sdb1 和分区/dev/sdc1分区被使用,存有数据

PV         VG   Fmt  Attr PSize    PFree

/dev/sda3  VG   lvm2 a--  <114.00g <69.00g

/dev/sdb1  myvg lvm2 a--     9.98g      0

/dev/sdc1  myvg lvm2 a--     9.98g  <4.97g

/dev/sdd1  myvg lvm2 a--     9.98g   9.98g

/dev/sde1  myvg lvm2 a--     9.98g   9.98g

/dev/sdf1  myvg lvm2 a--     9.98g   9.98g

/dev/sdg1  myvg lvm2 a--     9.98g   9.98g

[root@study ~]# pvmove /dev/sdf1   ##转移数据

No data to move for myvg

[root@study ~]# pvmove /dev/sdg1

No data to move for myvg

[root@study ~]# vgreduce myvg /dev/sd{f,g}1   缩减vg卷组,删除分区/dev/sdf1 和分区/dev/sdg1

Removed "/dev/sdg1" from volume group "myvg"

Removed "/dev/sdf1" from volume group "myvg"

[root@study ~]# pvremove /dev/sd{g,f}1   删除pv卷

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

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

八、创建LVM快照卷,完成数据备份及还原

1、实现思路

创建快照;

# lvcreate -s -L size -n Name -p r /path/to/original_lv_device

挂载;

# mount /dev/mapper/myvg_name  /media    例 # mount /dev/mapper/myvg-test--snap /media/

把挂载数据备份;

# tar -zcf  /root/media.tar.gz  /media/*

卸载快照卷 ,移除快照卷;

# lvremove  /dev/myvg/test-snap

模拟删除lv数据,通过快照数据进行还原;[root@study ~]# lvcreate -s -L 10G -n mylvspare  -p r /dev/mapper/myvg-mylv

Using default stripesize 64.00 KiB.

Logical volume "mylvspare" created.

[root@study ~]# mount /dev/mapper/myvg-mylvspare /media/

mount: /dev/mapper/myvg-mylvspare is write-protected, mounting read-only

[root@study ~]# ls /media/

boot  lost+found

[root@study ~]# tar -zcf /root/spare.tar.gz /media/*

tar: Removing leading `/' from member names

[root@study ~]# ls -lh

total 102M

-rw-------. 1 root root 1.8K Jan 28 12:33 anaconda-ks.cfg

drwxrwxr-x. 2 root root  36K Sep  5 21:38 Packages

-rw-r--r--. 1 root root 102M Feb  4 18:11 spare.tar.gz

[root@study ~]# umount /dev/mapper/myvg-mylvspare

[root@study ~]# lvremove /dev/mapper/myvg-mylvspare

Do you really want to remove active logical volume myvg/mylvspare? [y/n]: y

Logical volume "mylvspare" successfully removed

[root@study ~]# rm -rf /mylv/boot/   ##模拟删除LV卷中数据,通过备份的快照数据进行还原

[root@study mylv]# cd /root/

[root@study ~]# ls

anaconda-ks.cfg  Packages  spare.tar.gz

[root@study ~]# tar -zxf spare.tar.gz

[root@study ~]# ls

anaconda-ks.cfg  media  Packages  spare.tar.gz

[root@study mylv]# cp -af  /root/media/* /mylv/

[root@study mylv]# ls     ## 通过快照数据进行数据还原

config-3.10.0-693.el7.x86_64

efi

grub

grub2

initramfs-0-rescue-aa42d80ce1774acf8f5de007d85e5ef1.img

initramfs-3.10.0-693.el7.x86_64.img

initramfs-3.10.0-693.el7.x86_64kdump.img

initrd-plymouth.img

lost+found

mylv

symvers-3.10.0-693.el7.x86_64.gz

System.map-3.10.0-693.el7.x86_64

vmlinuz-0-rescue-aa42d80ce1774acf8f5de007d85e5ef1

vmlinuz-3.10.0-693.el7.x86_64

九、卸载删除lVM[root@study media]# umount  /dev/mapper/myvg-mylv

[root@study media]# lvremove /dev/mapper/myvg-mylv

Do you really want to remove active logical volume myvg/mylv? [y/n]: y

Logical volume "mylv" successfully removed

[root@study media]# vgremove myvg

Volume group "myvg" successfully removed

[root@study media]# pvremove /dev/sd{b..e}1

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

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

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

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

至此 ,整体部署配置LVM实验完成 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值