有关LVM快照的分享

有关LVM快照的分享

在Linux當中,我們可以使用LVM快照(snapshot)來快速備份數據。
其工作原理是我們創建一個快照區,在原來的LV發生變化的時候,把變化前的數據放到快照區。新的內容不會進行變更。

嘗試創建一個LVM snapshot
1.確保我們已經創建了一個lv,其中自己創建三兩個文件或目錄,如果沒有,請創建一個并將其掛載。名字就叫lv1吧。
2.可以先查看一下我們當前的Lv具體信息,用lvdisplay命令,會出現如下結果:
[root@zhulaoshi ~]# lvdisplay
— Logical volume —
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID ZSKBus-B2MP-Nlmh-66Bn-gVvM-FXN4-Do9Uf9
LV Write Access read/write
LV Creation host, time zhulaoshi, 2018-05-28 21:05:48 +0800
LV Status available

open 1

LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:2
    3.好了,現在我們在lv1的基礎上新建一個lvm快照,命名為lvsnap,大小設定成200M,使用如下命令:
    Lvcreate –L 200M –s –n lvsnap /dev/vg1/lv1
    格式解釋: lvcreate(命令字) –L 200M(快照空間大小200M)-s(快照snapshot縮寫,創建快照必須用這個選項)-n lvsnap(設定快照lv的名字lvsnap) /dev/vg1/lv1(因為我們是在lv1的基礎上創建快照的,自然這裡寫的路徑指向了lv1)。

執行後,我們如果成功創建,應該會返回如下字段:
[root@zhulaoshi ~]# lvcreate -L 200M -s -n lvsnap /dev/vg1/lv1
Logical volume “lvsnap” created
4.很好,那麼我們現在再通過lvdisplay來查看下當前的lv具體信息吧:
[root@zhulaoshi ~]# lvdisplay
— Logical volume —
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID ZSKBus-B2MP-Nlmh-66Bn-gVvM-FXN4-Do9Uf9
LV Write Access read/write
LV Creation host, time zhulaoshi, 2018-05-28 21:05:48 +0800
LV snapshot status source of
lvsnap [active]
LV Status available

open 1

LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:2

— Logical volume —
LV Path /dev/vg1/lvsnap
LV Name lvsnap
VG Name vg1
LV UUID 1SGp39-w6Mn-u0m5-AdcU-gJxq-a8RQ-mqUFL0
LV Write Access read/write
LV Creation host, time zhulaoshi, 2018-05-28 22:11:01 +0800
LV snapshot status active destination for lv1
LV Status available

open 0

LV Size 500.00 MiB
Current LE 125
COW-table size 200.00 MiB
COW-table LE 50
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:3
    從結果中我們不難發現,新建的快照lv和原始Lv的大小都是500M。但是lvsnap的COW-table為200M。什麼是COW呢?COWcopy on write(寫時複製)。在這裡呈現的大小實際上就是我們剛才分給了快照區用來承載快照的空間大小。
    5.那麼,我們已經創建好了snapshot的lv,現在把它掛載起來并查看它的內容。我們會發現,其內容和原來的lv1里的內容一樣。
    [root@zhulaoshi ~]# mkdir /media/snaplv 先創建一個用來掛載的目錄
    [root@zhulaoshi ~]# mount /dev/vg1/lvsnap /media/snaplv/ 掛載
    [root@zhulaoshi ~]# df –h 以更易讀的方式顯示當前磁盤分區的使用情況
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/vg_zhulaoshi-lv_root 18G 3.5G 13G 22% /
    tmpfs 932M 224K 932M 1% /dev/shm
    /dev/sda1 485M 40M 421M 9% /boot
    /dev/sr0 3.6G 3.6G 0 100% /media/RHEL_6.5 x86_64 Disc 1
    /dev/mapper/vg1-lv1 485M 11M 449M 3% /media/lvmTest
    /dev/mapper/vg1-lvsnap 485M 11M 449M 3% /media/snaplv
    可以看到已經掛載上的LV1和lvsnap的磁盤使用信息是一樣一樣的。

我們還可以使用Ls來查看當前兩個磁盤下的具體文件內容是否一致呢,如下:
[root@zhulaoshi ~]# ls /media/lvmTest/
install.log lost+found test1 test2
[root@zhulaoshi ~]# ls /media/snaplv/
install.log lost+found test1 test2
果然是一致的哦!
6.那麼到這裡,我們創建lvm快照的步驟就已經結束了。剛剛創建的這個lvm的快照到底有何用處呢?
當我們修改lv1里的數據內容時,其快照區對應的數據不會產生變化,從而我們有效的對原有的數據進行了備份保存。但是要注意!我們lv1里的數據修改內容不得超過我們設定的200M的大小,否則會導致快照區的空間不夠用,從而使快照失效。

1.创建一个lv,大小400M。在创建之后,对其进行格式化,并将其挂载。再向其中创建一个文件,并在这个文件中写入一些数据。
2.对这个刚刚创键的lv进行逻辑卷快照的创建,创建成功后,看一看里面的文件是否与lv中的相同。

3.新添加一块硬盘,并对其分区,需要分为5个可用分区
4.使用刚刚新建的5个分区中的4个,创建一个卷组,其中PE的大小每个16M
5.将剩余的一个分区添加到这个卷组当中
6.在这个卷组中拿出1600M的空间创建逻辑卷lvNew
7.使这个逻辑卷真正可用

尝试:对这个逻辑卷lvNew进行磁盘配额的操作,对用户test设置文件个数软限制5,硬限制7。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101888.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关系数据模型表示采用_数据库常见的数据模型

    关系数据模型表示采用_数据库常见的数据模型关系模型是目前最常用地数据模型之一。关系型数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集,以及实体集之间的联系,其最大特点是描述的一致性。关系模型是由若干个关系模式组成的集合。关系模式可记为R(A1,A2,A3,…,An),其中,R表示关系名,A1,A2,A3,…,An表示属性名。一个关系模式相当于一个记录型,对应与程序设计语言中类型定义的概念。关系是一个实例,也是一张…

    2025年6月23日
    2
  • 有没有支持5V输入和9V输入给两串8.4V锂电池充电的芯片IC「建议收藏」

    有没有支持5V输入和9V输入给两串8.4V锂电池充电的芯片IC「建议收藏」有的FS4062支持5V和9V同步升降压充电8.4V两床锂电池,也就是5V9V适配器自动识别两串8.4V锂电池高效充电管理芯片概述:FS4062是一款宽电压输入,专门为7.4V双节锂电池充电的充电管理芯片,兼容5V,9V适配器。在5V供电的情况下,实现升压充电,电池端最大充电电流1.3A,在9V供电的情况下,实现降压充电,电池端最大充电电流1.2A,充电电流可以通过外置电阻RSET来设定。低阻抗的电源通路可以使充电效率更高,减少充电时间,提高电池使用寿命。.

    2022年10月6日
    4
  • cglib动态代理实现原理_jdk cglib 动态代理 区别

    cglib动态代理实现原理_jdk cglib 动态代理 区别cglib动态代理详解我们都知道jdk的动态代理内部调用切面无效的问题,而cglib则不会出现这种情况,这是为什么?cglib就一定不会出现内部调用切面无效的问题吗?cglib针对每一个类只创建了一个代理类吗?为什么cglib的效率要比jdk的动态代理低呢?首先我们看一下通常我们是如何使用cglib增强一个类的publicclassMain{staticclassTest{publicvoidtest(){System.out.pr

    2022年10月21日
    3
  • 基于遗传算法的BP神经网络优化算法

    基于遗传算法的BP神经网络优化算法遗传算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,这样就可以确定遗传算法的优化参数个数,进而确定遗传算法个体的编码长度。因为遗传算法优化的参数是BP神经网络的初始权值和阈值,只要网络的结构已知,权值和阈值的个数就已知了。种群中的每个个体都包含了一个网络所有权值和阈值,个体通过

    2022年7月20日
    14
  • eclipse创建springboot项目的三种方法[通俗易懂]

    eclipse创建springboot项目的三种方法[通俗易懂]方法一安装STS插件安装插件导向窗口完成后,在eclipse右下角将会出现安装插件的进度,等插件安装完成后重启eclipse生效 新建springboot项目 项目启动 方法二1.创建Maven项目2.选择项目类型3.选择项目4.编写项目组和名称-finish即可5.修改pom.xml文件<!–…

    2022年10月13日
    3
  • 微信小程序简单获取当前时间及日期

    微信小程序简单获取当前时间及日期

    2021年11月11日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号