有关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)
上一篇 2021年5月31日 下午5:00
下一篇 2021年5月31日 下午6:00


相关推荐

  • vue3 axios安装及使用

    vue3 axios安装及使用vue3axios 安装及使用安装使用 npm 安装 npminstallax 封装 axios Author Axios 封装 Date 2020 12 0810 39 03 LastEditTime 2021 10 2211 34 08 LastEditors PleasesetLas Description InUserSettin FilePath blogs s src api

    2026年3月18日
    2
  • java全局变量和局部变量的区别「建议收藏」

    java全局变量和局部变量的区别「建议收藏」java全局变量和局部变量全局变量全局变量又称实例变量,属性,成员变量。位置定义在类中,属于类中的一个成员作用范围因为全局变量是定义在类中的,所以可以使用四种访问权限控制修饰符修饰,但是不论使用哪种,全局变量在当前类中的每一个方法中都可以被访问到,(static修饰的静态方法只能访问static修饰的属性)默认值全局变量有默认值基本类型的实例变量:整型 :默认值为0浮点型 :默认值为0.0布尔型 :默认值为false字符型 :默认值为0或者‘\u0000’引用类型的实

    2022年8月21日
    10
  • java Files类和Paths类的用法

    java Files类和Paths类的用法Java7 中文件 IO 发生了很大的变化 专门引入了很多新的类 importjava nio file DirectoryStr importjava nio file FileSystem importjava nio file FileSystems importjava nio file Files importjava nio file Path i

    2026年3月18日
    1
  • java中static关键字的作用_java中static关键字的作用

    java中static关键字的作用_java中static关键字的作用java中static关键字主要有两种作用:第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,实现某个方法或属性与类而不是对象关联在一起简单来说,在Java语言中,static主要有5中使用情况:成员变量、成员方法、代码块,内部类和静态导包。基本用法:static修饰成员变量:该成员变量属于类变量,可以通过ClassName.attributeName直接引用,而不…

    2022年7月7日
    21
  • sql数据库嵌套查询_select嵌套查询

    sql数据库嵌套查询_select嵌套查询嵌套查询是将一个select查询放到另一个查询的where子句中去如:查询”xx“同学的所修课程及分数1.先选择姓名为”xx”的同学的学号select学号from学生where姓名=“XX”2.根据学号来选择相关字段select课程名,分数from成绩where学号=根据1,2合并select课程名,分数from成绩where学号=(select学号from…

    2022年8月10日
    13
  • js添加元素方法

    js添加元素方法1.insertBefore添加元素到指定位置<ulid=”ul”><li>1</li><li>2</li><li>3</li></ul><ulid=”sel”></ul><script>varbtn=docume…

    2022年6月22日
    30

发表回复

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

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