Linux 第12天 lvm

时间: 20180728

目录

LVM概念

LVM的实现

PV创建,VG创建,LV创建,挂载

LVM扩容,缩减

LVM快照

LVM Logical Volume Manager

功能:重点在于可以灵活的增加文件系统容量,而非在数据的存储效率和安全上面。

Lvm将多个分区或者硬盘整合为一个大的逻辑硬盘,然后再在其之上分配逻辑分区,并还可以

调整逻辑分区的大小。

PV (Phycical Volume)

用户来将硬盘或分区格式化为lvm所使用物理卷,供上层VG使用

VG (Volume Group)

用来将多个PV组合成一个或多个VG供上层LV划分分区使用

LV (Logic Volume)

用来将VG的容量划分成具体的逻辑分区,并在后续创建文件系统挂载使用

LVM当中数据存储的最小单位是PE,PE与block作用一样,LVM默认使用的是4MB的PE区块,而

LVM的VG最多仅能含有65534个PE,因此默认的LVM的VG会有4M*65534/1024M=256G,我们可以

在创建VG的时候通过设定PE的大小来决定的VG的大小。

LVM的实现

1. 创建PV

PV的管理命令: pvcreate, pvdisplay, pvs, pvscan, pvremove, pvmove

pvck, pvresize

pvcreate: 初始化硬盘硬盘或整个硬盘,使用其成为PV

pvscan: 搜寻当前系统里面任何具有PV的硬盘

pvdisplay:显示PV的属性信息

pvs: 显示pv信息比pvdisplay显示的简略一些

pvremove:移除所指定的PV

(1) 先准备块设备,调整其id为8e

(2) 创建pv pvcreate /dev/sdb{2,3,4}

(3) 查看pv信息 pvdisplay

2. 创建VG

VG的管理命令: vgcreate, vgscan, vgdisplay, vgs, vgextend, vgreduce

vgchange, vgremove, vgrename, vgck

vgcreate: 创建vg

vgscan: 搜寻系统上的vg信息

vgdisplay,vgs: 查看系统上VG的状态

vgextend: 在VG内添加额外的PV

vgreduce: 在VG内移除PV

vgchange: 配置VG是否启动active

vgremove: 删除一个VG

(1) 新增一个VG,并指明其包含哪个或哪些pv

vgcreate VGNAME /dev/pv1...

本例中使用 vgcreate -s 16M mysky /dev/sda{5,6}

vgscan

pvscan

vgdisplay

(2) 此时如果想要增加VG的容量,可以进行如下的操作

vgextend mysky /dev/sda7

vgdisplay

3. 创建LV

lv的管理命令: lvcreate, lvscan, lvdisplay, lvextend, lvreduce,

lvremove, lvresize

lvcreate: 创建LV

lvscan: 显示系统上的lv状态

lvdisplay: 显示LV详细信息

lvextend: 在LV里添加容量

lvreduce: 在LV里减少容量

lvremove: 删除一个LV

lvresize: 对LV进行容量大小调整

lvcreate 使用方法

lvcreate -L #[bBsSkKmMgGtTpPeE] [-n Logical Volume Name]

VGNAME

本例中使用: lvcreate -L 3G -n myskylv mysky

lvs lvdisplay lvscan查看lv的状态

4. 文件系统挂载

真正使用lvm就必须对lv进行格式化挂载后才可使用

(1) mkfs -t ext3 /dev/mysky/myskylv

(2) mkdir /data

(3) mount -t ext3 /dev/mysky/myskylv /data

LV扩容

1. 用fdisk配置新的具有8e system ID的磁盘分区

partprobe

2. 利用pvcreate 创建PV

pvcreate /dev/sda7

3. 利用vgextend将PV加入之前创建的VG mysky (VG扩容)

vgextend mysky /dev/sda7

4. 利用lvresize将新加入的PV内的PE加入myskylv LV中 (LV扩容)

lvresize -L +3G /dev/mysky/myskylv

5. 通过resize2fs将文件系统的容量确实添加

resize2fs /dev/mysky/myskylv

至此lv扩容结束

LV缩减

注意:有的文件系统不支持容量缩减,如xfs只可以扩容不可缩减

因为缩减容量可能会出现问题,导致文件系统里的文件无法访问,好在ext支持容量缩减

1. 先卸载已经挂载的LV

umount /dev/mysky/myskylv

2. 强制进行磁盘检测

e2fsck -f /dev/mysky/myskylv

3. ext文件系统缩减容量为3G

resize2fs /dev/mysky/myskylv 3G

4. LV缩减3G容量

lvreduce -L -3G /dev/mysky/myskylv

5. 重新挂载分区

mount /dev/mysky/myskylv /data/

6. vgreduce

vgreduce mysky /dev/sda7

LVM快照

快照就是在当时创建快照那一刻将所指定的分区定格在那一个时间,里边的文件只保存至

那一刻,快照卷里分两部分数据一部分是定格后该分区变更的数据,和在定格前所保存的

数据,快照卷里其实保存的是目录列表和文件所对应的inode编号,只有新更新的文件

或数据才会被临时存储至这个快照卷里。 创建快照卷其实是为了备份数据使用,即保存

创建快照那一时刻文件系统里所存储的数据。

-s|--snapshot

Create a snapshot. Snapshots provide a "frozen image" of an

origin LV.  The snapshot LV can be used, e.g. for backups,

while the origin LV continues to be used.  This option can

create a COW (copy on write) snapshot, or a thin snapshot (in

a thin pool.)  Thin snapshots are created when the origin is

a thin LV and the size option is NOT specified. Thin snap‐

shots share the same blocks in the thin pool, and do not

allocate new space from the VG.  Thin snapshots are created

with the "activation skip" flag, see --setactivationskip.  A

thin snapshot of a non-thin "external origin" LV is created

when a thin pool is specified. Unprovisioned blocks in the

thin snapshot LV are read from the external origin LV. The

external origin LV must be read-only.  See lvmthin(7) for

more information about LVM thin provisioning.  COW snapshots

are created when a size is specified. The size is allocated

from space in the VG, and is the amount of space that can be

used for saving COW blocks as writes occur to the origin or

snapshot.  The size chosen should depend upon the amount of

writes that are expected; often 20% of the origin LV is

enough. If COW space runs low, it can be extended with lvex‐

tend (shrinking is also allowed with lvreduce.)  A small

amount of the COW snapshot LV size is used to track COW block

locations, so the full size is not available for COW data

blocks.  Use lvs to check how much space is used, and see

--monitor to to automatically extend the size to avoid run‐

ning out of space.

with the "activation skip" flag, see --setactivationskip.  A

thin snapshot of a non-thin "external origin" LV is created

when a thin pool is specified. Unprovisioned blocks in the

thin snapshot LV are read from the external origin LV. The

external origin LV must be read-only.  See lvmthin(7) for

more information about LVM thin provisioning.  COW snapshots

are created when a size is specified. The size is allocated

from space in the VG, and is the amount of space that can be

used for saving COW blocks as writes occur to the origin or

snapshot.  The size chosen should depend upon the amount of

writes that are expected; often 20% of the origin LV is

enough. If COW space runs low, it can be extended with lvex‐

tend (shrinking is also allowed with lvreduce.)  A small

amount of the COW snapshot LV size is used to track COW block

locations, so the full size is not available for COW data

blocks.  Use lvs to check how much space is used, and see

--monitor to to automatically extend the size to avoid run‐

ning out of space.

创建快照

lvcreate -L 2G -s -n myskysnap /dev/mysky/myskylv

lvsdisplay

创建快照目录 mkdir /mnt/snap

挂载 mount /dev/mysky/myskysnap /mnt/snap/

利用快照恢复数据

注意: 所要恢复的数据不能超过快照区的总大小,因为如果变动的数据大小超过了

快照区的空间,那么快照区是不能容纳所有变动的数据,这个时候功能会失效

演示: 先在原来的LV中写入一些数据,然后通过lvm的快照功能恢复之前的操作

1. cp -r /etc /data

2. 创建一个数据恢复的临时目录 mkdir /tmp/backup

3. cd /mnt/snap

4. tar -zcf /tmp/backup/lvm.tzr.gz *

5. 将myskysnap LV卸载并移除,因为里面的内容已经备份出来了

umount /mnt/snap

lvremove /dev/mysky/myskysnap

6. 解压备份出来的文件和/data目录中的数据做对比,看是否已经备份到相关

操作之前的数据。

原文地址:http://blog.51cto.com/winthcloud/2152481

时间: 2024-10-19 06:45:55

Linux 第12天 lvm的相关文章

linux 缩减文件系统大小 LVM

linux缩减文件系统大小 LVM 实验环境: (1)操作系统:centos6.7 i686 (2)VMware Workstation 12版本 (3)实验硬盘大小5G 先查看下当前磁盘使用情况: 增加大小为5G的虚拟硬盘: 建立文件系统: (1)主要步骤如下: (2)格式化: #mkfs.ext4 /dev/vg_wtf/lv_wtf (3)挂载: #mkdir /wtf #建立挂载目录 #mount /dev/vg_wtf/lv_wtf  /wtf (4)查看目前磁盘使用情况,截图如下:

Linux磁盘管理:LVM逻辑卷创建及使用

Linux磁盘管理:LVM逻辑卷创建及使用    一.创建LVM逻辑卷    通过图文并茂的方式来看看如何创建我们的LVM ,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV.所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷) ①将物理硬盘格式化成PV(物理卷) 使用的是 pvcreate 命令 这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看 [[email protected] ~]# f

【转载】Linux磁盘管理:LVM逻辑卷管理

Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底

LINUX 创建RAID5 和 LVM 逻辑卷

LINUX 制作 RAID5卷和LVM逻辑卷 环境搭建 虚拟机装有linux操作系统. 在windows物理机上有SecurCRT或者putty等和linux操作系统远程连接的软件. 首先查看linux的ip地址,连接SecurCRT输入linux上的ip地址.root用户名和密码来进行远程连接 如下图 安装mdadm软件包 创建RAID卷需要用的命令mdadm,就要先安装好mdadm软件包 创建挂载点/mnt/cdrom/ 使用mount将光盘挂载到/mnt/cdrom/目录下,进入目录/mn

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解 前言 本文接着上篇文章作如下延伸:链接:Linux磁盘管理之磁盘管理与文件系统 什么是LVM?为什么需要LVM? 如何具体进行LVM逻辑卷管理? 什么是磁盘配额?为什么需要磁盘配额? 在Linux中进行磁盘配额的条件是什么呢? 如何具体进行磁盘配额? 下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理. 一.LVM概述 1.什么是LVM?为什么需要LVM? ? 许多 Linux 使用者安装操作系统时都会遇到这

Linux 0.12的编译与链接

昨天花了很长时间去编译链接linux 0.12版的kernel,发现在64位ubuntu下,这位兄台的文章写得最全最好,几乎涵盖了我遇到的所有问题,在此记录一下. 编译linux 0.12 链接linux 0.12

Linux 0.12 内核管理存储器

其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出的32位地址(实际上被看做段内偏移地址),再依据代码段寄存器CS中的16位段选择子,可在GDT或LDT中查找对应的段描写叙述符.从段描写叙述符中提取段的基地址,与程序给出的32位地址相加.得到结果为线性地址. 依据此线性地址查找系统页文件夹表,再查二级或是多级页表,终于得到物理地址. 此方式系统仅仅有一个4G的线性地址空间由各进程共享(

《linux 内核完全剖析》编译linux 0.12 内核 Ubuntu 64bits 环境

我×...终于好了,大概3 4个小时吧...各种毛刺问题.终究还是闯过来了.... [email protected]:~/Downloads/linux-0.00-050613/linux-0.00$ make ld -s -x -M head.o  -o system > System.map dd bs=32 if=boot of=Image skip=1 16+0 records in 16+0 records out 512 bytes (512 B) copied, 0.000605

Linux下动态调整LVM文件系统大小

LINUX下可以通过LVM动态调整一个已挂载的文件系统大小 LV可以根据需求增大或减小,但是LV改变大小以后,在LV中的文件系统也需要相应的改变大小.这个概念非常重要,如果没有相应的调整LV中文件系统的大小,那么可能导致数据误用! 扩展文件系统: 1.umount掉文件系统 2.先加LV e2fsck -f /dev/VG00/LV01    必须检查,lvresize要求 lvresize -L +1G /dev/VG00/LV01    (变成+了,参数的使用非常直观)(resize命令可直