Mark blog

知行合一 划水归档

Linux 磁盘存储和文件系统(三)

LVM

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

允许在多个物理设备间重新组织文件系统

​ • 将设备指定为物理卷

​ • 用一个或者多个物理卷来创建一个卷组

​ • 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的

​ • 在物理卷上创建的逻辑卷 是由物理区域(PE)组成

​ • 可以在逻辑卷上创建文件系统

LVM介绍

LVM: Logical Volume Manager, Version: 2

dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

设备名:/dev/dm-#

软链接:

​ /dev/mapper/VG_NAME-LV_NAME

​ /dev/mapper/vol0-root

​ /dev/VG_NAME/LV_NAME

​ /dev/vol0/root

pv管理工具

显示pv信息

​ pvs:简要pv信息显示

​ pvdisplay

创建pv

​ pvcreate

​ /dev/DEVICE

vg管理工具

显示卷组

​ vgs

​ vgdisplay

创建卷组

​ vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName

​ PhysicalDevicePath [PhysicalDevicePath…]

管理卷组

​ vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

​ vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

删除卷组

​ 先做pvmove,

​ 再做vgremove

lv管理工具

显示逻辑卷

​ lvs

​ Lvdisplay

创建逻辑卷

​ lvcreate -L #[mMgGtT] -n NAME VolumeGroup

​ lvcreate -l 60%VG -n mylv testvg

​ lvcreate -l 100%FREE -n yourlv testvg

删除逻辑卷

​ lvremove /dev/VG_NAME/LV_NAME

重设文件系统大小

​ fsadm [options] resize device [new_size[BKMGTEP]]

​ resize2fs [-f]/[-F]/[-M]/[-P]/[-p] device [new_size]

扩展和缩减逻辑卷

扩展逻辑卷:

​ lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

​ resize2fs /dev/VG_NAME/LV_NAME

​ lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME

缩减逻辑卷:

​ umount /dev/VG_NAME/LV_NAME

​ e2fsck -f /dev/VG_NAME/LV_NAME

​ resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

​ lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

​ mount

跨主机迁移卷组

源计算机上

​ 1 在旧系统中,umount所有卷组上的逻辑卷

​ 2 vgchange –a n vg0 lvdisplay

​ 3 vgexport vg0

​ pvscan

​ vgdisplay

​ 拆下旧硬盘

在目标计算机上

​ 4 在新系统中安装旧硬盘,并vgimport vg0.

​ 5 vgchange –ay vg0

​ 6 mount所有卷组上的逻辑卷

创建逻辑卷示例

创建物理卷

​ pvcreate /dev/sda3

为卷组分配物理卷

​ vgcreate vg0 /dev/sda3

从卷组创建逻辑卷

​ lvcreate -L 256M -n data vg0

​ mke2fs -j /dev/vg0/data

mount /dev/vg0/data /mnt/data

逻辑卷管理器快照

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适 的选择

快照只有在它们和原来的逻辑卷不同时才会消耗空间

​ 在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所 改变才会使用这些空间

​ 当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。

​ 快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的 数据

​ 建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用 lvextend放大快照

逻辑卷管理器快照

快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据 改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件 系统共享

由于快照区与原本的LV共用很多PE的区块,因此快照与被快照的LV必须在同 一个VG中.系统恢复的时候的文件数量不能高于快照区的实际容量

使用LVM快照

为现有逻辑卷创建快照

​ lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data

挂载快照

​ mkdir -p /mnt/snap

​ mount -o ro /dev/vg0/data-snapshot /mnt/snap

恢复快照

​ umount /dev/vg0/data-snapshot

​ umount /dev/vg0/data

​ lvconvert –merge /dev/vg0/data-snapshot

删除快照

​ umount /mnt/databackup

​ lvremove /dev/vg0/databackup