1.LVM是什么?

LVM(逻辑卷管理):它是Linux环境下对磁盘分区进行管理的一种机制,是一种把硬盘驱动空间分配成逻辑卷空间的方法,使用硬盘不必分区也能简单的重新划分大小PV:物理卷,处于LVM最底层,可以是物理硬盘或者分区。PP:物理区域,PV中可以用于分配的最小存储单元,可以在创建PV的时候制定,如1M, 2M, 4M, 8M, 32M,64M…组成同一VG中所有PV的PE大小应该相同VG:卷组,建立在PV之上,可以含有一个到多个PVLV:逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。

2.创建逻辑分区

[root@localhost ~]fdisk /dev/sdb (进入磁盘分区列表)
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x90982aa0 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n (创建分区)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1 (分区号1)
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+100M (从起始扇区添加100M为最后的扇区,此时磁盘的分区sdb1为100M)
分区 1 已设置为 Linux 类型,大小设为 100 MiB

命令(输入 m 获取帮助):n (创建分区)
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):2 (分区号2)
起始 扇区 (206848-41943039,默认为 206848):
将使用默认值 206848
Last 扇区, +扇区 or +size{K,M,G} (206848-41943039,默认为 41943039):+100M (从起始扇区添加100M为最后的扇区,此时磁盘的分区sdb2为100M)
分区 2 已设置为 Linux 类型,大小设为 100 MiB

命令(输入 m 获取帮助):p (显示磁盘信息)

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90982aa0

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 411647 102400 83 Linux

命令(输入 m 获取帮助):t (修改系统设备)
分区号 (1,2,默认 2):1 (分区号1)
Hex 代码(输入 L 列出所有代码):8e (系统设备类型)
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):t (修改系统设备)
分区号 (1,2,默认 2):2 (分区号2)
Hex 代码(输入 L 列出所有代码):8e (系统设备类型)
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p (显示磁盘信息,此时查看是否修改成功)

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90982aa0

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 8e Linux LVM
/dev/sdb2 206848 411647 102400 8e Linux LVM

命令(输入 m 获取帮助):wq (退出保存)
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@localhost ~]# df(查看磁盘的挂载状态)
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3690152 14121304 21% /
devtmpfs 1914644 0 1914644 0% /dev
tmpfs 1931772 0 1931772 0% /dev/shm
tmpfs 1931772 12788 1918984 1% /run
tmpfs 1931772 0 1931772 0% /sys/fs/cgroup
/dev/sda1 1038336 173128 865208 17% /boot
tmpfs 386356 4 386352 1% /run/user/42
tmpfs 386356 24 386332 1% /run/user/0
/dev/sr0 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64

[root@localhost ~]# partprobe(从磁盘内核重新读取)

[root@localhost ~]# pvcreate /dev/sdb1(将物理分区进行整合)
Physical volume “/dev/sdb1” successfully created.

[root@localhost ~]# vgcreate vg0 /dev/sdb1(创建分区组/卷 vg0)
Volume group “vg0” successfully created

[root@localhost ~]# lvcreate -L 50M -n lv0 vg0(创建逻辑分区 lv0)
Rounding up size to full physical extent 52.00 MiB
Logical volume “lv0” created.

[root@localhost ~]# mkfs.xfs /dev/vg0/lv0 (对逻辑分区 lv0进行格式化)
meta-data=/dev/vg0/lv0 isize=512 agcount=2, agsize=6656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=13312, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

[root@localhost ~]# mount /dev/vg0/lv0 /mnt/(挂载逻辑分区lv0到/mnt下)

[root@localhost ~]# ll /dev/vg0/lv0(查看逻辑分区lv0的信息)
lrwxrwxrwx. 1 root root 7 3月 8 19:00 /dev/vg0/lv0 -> …/dm-2

[root@localhost ~]# ll /dev/mapper/vg0-lv0 (查看逻辑分区vg0-lv0的信息)
lrwxrwxrwx. 1 root root 7 3月 8 19:00 /dev/mapper/vg0-lv0 -> …/dm-2

3.当物理分区容量大小足够时,可以直接扩展逻辑分区,来缓解容量不足的情况

[root@localhost ~]# lvextend -L 80M /dev/vg0/lv0 (将磁盘逻辑分区扩展到80M)
Size of logical volume vg0/lv0 changed from 52.00 MiB (13 extents) to 80.00 MiB (20 extents).
Logical volume vg0/lv0 successfully resized.

[root@localhost ~]# xfs_growfs /dev/vg0/lv0 (将逻辑分区格式化)
meta-data=/dev/mapper/vg0-lv0 isize=512 agcount=2, agsize=6656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13312, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13312 to 20480

4.当物理分区容量不足,首先应进行整合物理分区,然后执行物理卷组的扩展的操作,最后实行逻辑卷组的扩展,来缓解逻辑分区容量大小不足的尴尬

[root@localhost ~]# lvextend -L 120M /dev/vg0/lv0 (将逻辑分区lv0扩展到120M)
Insufficient free space: 10 extents needed, but only 4 available

[root@localhost ~]# pvcreate /dev/sdb2 (将物理分区进行整合)
Physical volume “/dev/sdb2” successfully created.

[root@localhost ~]# vgextend vg0 /dev/sdb2 (扩展分区vg0)
Volume group “vg0” successfully extended

[root@localhost ~]# lvextend -L 120M /dev/vg0/lv0 (将逻辑分区扩展到120M)
Size of logical volume vg0/lv0 changed from 80.00 MiB (20 extents) to 120.00 MiB (30 extents).
Logical volume vg0/lv0 successfully resized.

5.以上的磁盘分区的扩展只能扩展,却不能缩小,那么我们如何让磁盘容量既扩容也可缩减

[root@localhost ~]# umount /mnt (卸载/mnt下的磁盘分区)

[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0 (将逻辑分区lv0格式化并将文件类型改为ext4)
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
30720 inodes, 122880 blocks
6144 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
15 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@localhost ~]# mount /dev/vg0/lv0 /mnt/ (挂载逻辑分区lv0到/mnt下)

[root@localhost ~]# lvextend -L 150M /dev/vg0/lv0 (将逻辑分区lvo扩展到150M)
Rounding size to boundary between physical extents: 152.00 MiB.
Size of logical volume vg0/lv0 changed from 120.00 MiB (30 extents) to 152.00 MiB (38 extents).
Logical volume vg0/lv0 successfully resized.

[root@localhost ~]# resize2fs /dev/vg0/lv0 (将文件系统容量缩减)
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 155648 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 155648 blocks long.

6.缩减系统容量大小

[root@localhost ~]# umount /mnt (卸载)

[root@localhost ~]# df (查看是否已经卸载mnt下的磁盘分区)
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3690160 14121296 21% /
devtmpfs 1914644 0 1914644 0% /dev
tmpfs 1931772 0 1931772 0% /dev/shm
tmpfs 1931772 12824 1918948 1% /run
tmpfs 1931772 0 1931772 0% /sys/fs/cgroup
/dev/sda1 1038336 173128 865208 17% /boot
tmpfs 386356 4 386352 1% /run/user/42
tmpfs 386356 24 386332 1% /run/user/0
/dev/sr0 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64

[root@localhost ~]# e2fsck -f /dev/vg0/lv0 (扫描逻辑卷)
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg0/lv0: 11/38912 files (9.1% non-contiguous), 10561/155648 blocks

[root@localhost ~]# resize2fs /dev/vg0/lv0 110M(缩减系统容量到110M)
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 112640 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 112640 blocks long.

[root@localhost ~]# mount /dev/vg0/lv0 /mnt/ (挂载逻辑分区lv0到/mnt下)

[root@localhost ~]# lvreduce -L 80M /dev/vg0/lv0 (缩减逻辑分区的容量到80M)
WARNING: Reducing active and open logical volume to 80.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y (是否要确认缩减)
Reducing logical volume lv0 to 80.00 MiB
Logical volume lv0 successfully resized

7.删除物理卷和逻辑卷组

[root@localhost ~]# pvmove /dev/sdb1 /dev/sdb2 (释放磁盘分区的容量)
/dev/sdb1: Moved: 100.00%

[root@localhost ~]# pvs (显示磁盘分区信息)
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 vg0 lvm2 a-- 96.00m 96.00m
/dev/sdb2 vg0 lvm2 a-- 96.00m 16.00m

[root@localhost ~]# vgreduce vg0 /dev/sdb1 (从/dev/vdb1中移除vg0)
Removed “/dev/sdb1” from volume group “vg0”

[root@localhost ~]# pvremove /dev/sdb1 (将物理卷转化为普通分区)
Labels on physical volume “/dev/sdb1” successfully wiped.

8.利用快照的方式对文件进行备份,和恢复备份文件

[root@localhost ~]# mkfs.xfs -f /dev/vg0/lv0 (原始设备进行格式化)
meta-data=/dev/vg0/lv0 isize=512 agcount=4, agsize=5120 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=20480, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

[root@localhost ~]# mount /dev/vg0/lv0 /mnt/(挂载原始设备)

[root@localhost ~]# df(查看挂载的情况)
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3695556 14115900 21% /
devtmpfs 1914644 0 1914644 0% /dev
tmpfs 1931772 0 1931772 0% /dev/shm
tmpfs 1931772 12824 1918948 1% /run
tmpfs 1931772 0 1931772 0% /sys/fs/cgroup
/dev/sda1 1038336 173128 865208 17% /boot
tmpfs 386356 4 386352 1% /run/user/42
tmpfs 386356 24 386332 1% /run/user/0
/dev/sr0 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-lv0 78500 4272 74228 6% /mnt

[root@localhost ~]# touch /mnt/file{1…10}(在/mnt目录下创建文件)

[root@localhost ~]# ls /mnt/(查看/mnt下的文件)
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9

[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0(进行快照)
Rounding up size to full physical extent 52.00 MiB
Volume group “vg0” has insufficient free space (4 extents): 13 required.

[root@localhost ~]# umount /dev/vg0/lv0 (卸载原始设备)

[root@localhost ~]# df(查看是否已经卸载)
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3695664 14115792 21% /
devtmpfs 1914644 0 1914644 0% /dev
tmpfs 1931772 0 1931772 0% /dev/shm
tmpfs 1931772 12824 1918948 1% /run
tmpfs 1931772 0 1931772 0% /sys/fs/cgroup
/dev/sda1 1038336 173128 865208 17% /boot
tmpfs 386356 4 386352 1% /run/user/42
tmpfs 386356 24 386332 1% /run/user/0
/dev/sr0 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64

[root@localhost ~]# mount /dev/vg0/lv0backup /mnt/(挂载快照到/mnt目录下)

[root@localhost ~]# df(查看快照是否挂载到/mnt目录下)
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 3695648 14115808 21% /
devtmpfs 1914644 0 1914644 0% /dev
tmpfs 1931772 0 1931772 0% /dev/shm
tmpfs 1931772 12844 1918928 1% /run
tmpfs 1931772 0 1931772 0% /sys/fs/cgroup
/dev/sda1 1038336 173128 865208 17% /boot
tmpfs 386356 4 386352 1% /run/user/42
tmpfs 386356 24 386332 1% /run/user/0
/dev/sr0 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-lv0 78500 4272 74228 6% /mnt

[root@localhost ~]# ls /mnt/(查看原始设备的文件是否被复制过来)
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9

[root@localhost ~]# cd /mnt/

[root@localhost mnt]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9

[root@localhost mnt]# rm -rf *(删除文件)

[root@localhost mnt]# ls

[root@localhost ~]# umount /mnt/(卸载快照)

[root@localhost ~]# lvremove /dev/vg0/lv0backup (文件删除恢复)
Do you really want to remove active logical volume vg0/lv0backup? [y/n]: y
Logical volume “lv0backup” successfully removed

[root@localhost ~]# lvcreate -L 10M -n lv0backup -s /dev/vg0/lv0 (重新进行快照)
Rounding up size to full physical extent 12.00 MiB
Logical volume “lv0backup” created.

[root@localhost ~]# mount /dev/vg0/lv0backup /mnt/ (挂载快照到/mnt下)

[root@localhost ~]# ls /mnt/(查看被删除的文件是否被恢复过来)
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9

LVM文件的备份和恢复相关推荐

  1. 【技术分享】Oracle控制文件的备份、恢复以及多路复用

                       Oracle控制文件的备份.恢复以及多路复用 前言      今天Frank给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海. ...

  2. 复用Oracle数据文件,Oracle控制文件的备份、恢复以及多路复用

    前言 今天给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海.Oracle技术博大精深,以我一个人的力量,那无异于蜉蝣于天地,沧海之一粟.在此,笔者抛砖引玉,希望读者 ...

  3. iphone和mac互传文件_华为手机也能连苹果电脑:一键文件互传、备份和恢复

    大家都知道,苹果生态封闭,自成一派.那如果使用其它品牌的手机,能不能实现和Mac电脑互传文件.备份和恢复呢? 今日,花粉俱乐部分享了一则教程,使用华为手机助手就能轻松实现上述操作. 据介绍,华为手机助 ...

  4. 文件及文件组备份与还原示例.sql

    --以下代码简单地演示了如何进行文件组的备份及还原(在还原时,模拟了丢失第二次文件组备份文件的情况). --创建测试数据库 CREATE DATABASE db ON PRIMARY(     NAM ...

  5. vmware服务器文件备份,三种VMware数据备份和恢复方法

    方法2:ESX Service Console中安装备份程序 工作原理:这种方法是在ESX Service Console在安装备份程序,按下图备份VM中潜在的VMDK文件组.Service Cons ...

  6. 回收站文件清理了怎么恢复

    在我们清理电脑时,我们一般会直接删除不需要的文件,而这些文件通常会放入回收站中临时存储.很多时候电脑文件清理了,也会随便把回收站文件清理了.但意外总在不经意间,有时删除文件会混入一些重要的文件,并将其 ...

  7. VMware备份和恢复的方法

    VMware能将物理服务器封装成大型的硬盘图像文件–虚拟机磁盘格式(VMDK)文件,因此我们不禁认为:备份整台服务器应该和备份这些VMDK文件(当然也包括相关的配置文件)一样简单.     但是在大多 ...

  8. mysql数据备份和恢复

    mysql备份类型 1.物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本. ####1.热备(hot backup) 在线备份,数据库处于运行 ...

  9. mysql fulsh_mysql之备份和恢复(msyqldump、LVM、xtrabackup)

    备份类型: 根据备份时是服务器是否在线: 热备份(HOT): 读写操作不受影响 温备份(WARM): 进可以执行读操作,写操作不能执行 冷备份(COLD): 读写操作均不能进行 根据备份时对数据文件的 ...

最新文章

  1. 使用JavaScript实现一个简单的编译器
  2. MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
  3. libpcap原理阐述
  4. UE3客户端加入DS过程
  5. 只用一个循环实现层序遍历
  6. mysql8.0重置密码
  7. 数字孪生:第三人称鼠标操作
  8. 噇字符集linux增加,『转』Unicode汉字编码表
  9. 实例总结C#反射基础知识
  10. PhotoZoom2020pro激活序列号秘钥下载8版安装教程
  11. 2022 下半年一定不要裸辞!
  12. ffmpeg 265转YUV命令 转码工具,各种格式间互转,计算PSNR
  13. 飞利浦e570有JAVA吗_飞利浦E570不仅仅是手机 还是一款可通话的移动电源
  14. 移动手机网站H5页面如何一键打开拉起微信小程序快速关注公众号功能?
  15. 刷脸支付设备深度融合多项赋能
  16. Nova组件源码分析之冷迁移与Resize
  17. 经验 | 如何编写优质嵌入式C代码
  18. 想用这种方法跳槽加薪,太幼稚了!
  19. lasterGrbl和GRBL使用指南
  20. MIT 18.06 Gilbert Strang《线性代数》L1. 方程组的几何解释

热门文章

  1. daemon.json
  2. unity物理碰撞介绍
  3. linux中wc命令怎么退出,linux中的wc命令
  4. 《电力系统自动装置》
  5. 阮一峰 php程序员进阶,阮一峰:Git 使用规范流程
  6. 移动端视网膜(Retina)屏幕下1px边框线的解决方法
  7. 一致性协议之 ZAB
  8. Quantum leaps 量子,从古怪精灵到宝剑在手
  9. 《数据结构》03-树1 树的同构
  10. 特斯拉如何恢复出厂设置_苹果笔记本电脑怎么恢复出厂设置