LVM文件的备份和恢复
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文件的备份和恢复相关推荐
- 【技术分享】Oracle控制文件的备份、恢复以及多路复用
Oracle控制文件的备份.恢复以及多路复用 前言 今天Frank给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海. ...
- 复用Oracle数据文件,Oracle控制文件的备份、恢复以及多路复用
前言 今天给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海.Oracle技术博大精深,以我一个人的力量,那无异于蜉蝣于天地,沧海之一粟.在此,笔者抛砖引玉,希望读者 ...
- iphone和mac互传文件_华为手机也能连苹果电脑:一键文件互传、备份和恢复
大家都知道,苹果生态封闭,自成一派.那如果使用其它品牌的手机,能不能实现和Mac电脑互传文件.备份和恢复呢? 今日,花粉俱乐部分享了一则教程,使用华为手机助手就能轻松实现上述操作. 据介绍,华为手机助 ...
- 文件及文件组备份与还原示例.sql
--以下代码简单地演示了如何进行文件组的备份及还原(在还原时,模拟了丢失第二次文件组备份文件的情况). --创建测试数据库 CREATE DATABASE db ON PRIMARY( NAM ...
- vmware服务器文件备份,三种VMware数据备份和恢复方法
方法2:ESX Service Console中安装备份程序 工作原理:这种方法是在ESX Service Console在安装备份程序,按下图备份VM中潜在的VMDK文件组.Service Cons ...
- 回收站文件清理了怎么恢复
在我们清理电脑时,我们一般会直接删除不需要的文件,而这些文件通常会放入回收站中临时存储.很多时候电脑文件清理了,也会随便把回收站文件清理了.但意外总在不经意间,有时删除文件会混入一些重要的文件,并将其 ...
- VMware备份和恢复的方法
VMware能将物理服务器封装成大型的硬盘图像文件–虚拟机磁盘格式(VMDK)文件,因此我们不禁认为:备份整台服务器应该和备份这些VMDK文件(当然也包括相关的配置文件)一样简单. 但是在大多 ...
- mysql数据备份和恢复
mysql备份类型 1.物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本. ####1.热备(hot backup) 在线备份,数据库处于运行 ...
- mysql fulsh_mysql之备份和恢复(msyqldump、LVM、xtrabackup)
备份类型: 根据备份时是服务器是否在线: 热备份(HOT): 读写操作不受影响 温备份(WARM): 进可以执行读操作,写操作不能执行 冷备份(COLD): 读写操作均不能进行 根据备份时对数据文件的 ...
最新文章
- 使用JavaScript实现一个简单的编译器
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- libpcap原理阐述
- UE3客户端加入DS过程
- 只用一个循环实现层序遍历
- mysql8.0重置密码
- 数字孪生:第三人称鼠标操作
- 噇字符集linux增加,『转』Unicode汉字编码表
- 实例总结C#反射基础知识
- PhotoZoom2020pro激活序列号秘钥下载8版安装教程
- 2022 下半年一定不要裸辞!
- ffmpeg 265转YUV命令 转码工具,各种格式间互转,计算PSNR
- 飞利浦e570有JAVA吗_飞利浦E570不仅仅是手机 还是一款可通话的移动电源
- 移动手机网站H5页面如何一键打开拉起微信小程序快速关注公众号功能?
- 刷脸支付设备深度融合多项赋能
- Nova组件源码分析之冷迁移与Resize
- 经验 | 如何编写优质嵌入式C代码
- 想用这种方法跳槽加薪,太幼稚了!
- lasterGrbl和GRBL使用指南
- MIT 18.06 Gilbert Strang《线性代数》L1. 方程组的几何解释