使用dmsetup命令生成snapshot ( by quqi99 )

来源:互联网 发布:js this.classname 编辑:程序博客网 时间:2024/05/29 15:08

                     使用dmsetup命令生成snapshot 


转载自, http://blog.sina.com.cn/s/blog_4d3833cf0100n68c.html


可以使用如下方法建立snapshottarget的逻辑设备:
1.   分区并通知系统确认
      #fdisk /dev/sda
      分别创建/dev/sda7/dev/sda8/dev/sda9分区均为1G空间
      #partprobe
      其中/dev/sda7/dev/sda8用来制作镜像目标linear target逻辑设备,/dev/sda9用来作为COW设备。
2.   编写创建/dev/mapper/kevin_linear_dev ,/dev/mapper/kevin_snapshot_base_dev/dev/mapper/kevin_snapshot_dev三个设备的脚本
  /dev/mapper/kevin_linear_dev是原始目标设备
  /dev/mapper/kevin_snapshot_base_devsnapshot所需要的中间基础设备,后面会说到它与/dev/mapper/kevin_linear_dev的区别
  /dev/mapper/kevin_snapshot_dev是创建出的快照设备
  将如下代码写入并运行
  #vi kevin_linear_dev.sh
#!/bin/bash
size1=$(blockdev --getsize $1)
size2=$(blockdev --getsize $2 )
echo -e "0 $size1 linear $1 0\n$size1 $size2linear $2 0" | dmsetup create $3
 
  #vikevin_snapshot_base_dev.sh
#!/bin/bash
dmsetup table $1 | dmsetup create $2
 
  #vikevin_snapshot_dev.sh
size=$(blockdev --getsize $1)
CHUCK_SIZE=$3
dd if=/dev/zero of=$2 bs=512count=$CHUCK_SIZE
echo 0 $size snapshot $1 $2 p $3 | dmsetup create$4
3.   创建/dev/mapper/kevin_linear_dev设备并为其创建文件系统放入文件
      #./kevin_linear_dev.sh /dev/sda7 /dev/sda8kevin_linear_dev
      #mkfs.ext3/dev/mapper/kevin_linear_dev
      #mkdir /mnt/kevin_linear_dev
      #mount /dev/mapper/kevin_linear_dev/mnt/kevin_linear_dev
      #cp /var/log/message/mnt/kevin_linear_dev/
4.   创建/dev/mapper/kevin_snapshot_base_dev设备,并检测。
      #./kevin_snapshot_base_dev.sh kevin_linear_devkevin_snapshot_base_dev
      #mkdir /mnt/kevin_snapshot_base_dev
      #mount /dev/mapper/kevin_snapshot_base_dev/mnt/kevin_snapshot_base_dev
      #diff -qur /mnt/kevin_snapshot_base_dev/mnt/kevin_linear_dev
      你会发现/mnt/kevin_snapshot_base_dev目录中的文件和/mnt/kevin_linear_dev目录中的文件一致
      #cp /etc/resolv.conf/mnt/kevin_linear_dev
      #diff -qur /mnt/kevin_snapshot_base_dev/mnt/kevin_linear_dev
      即时修改后/mnt/kevin_snapshot_base_dev目录中的文件和 /mnt/kevin_linear_dev目录中的文件就不同步了!
5.   同步/dev/mapper/kevin_linear_dev/dev/mapper/kevin_snapshot_base_dev设备
      # umount /mnt/kevin_linear_dev
      # umount /mnt/kevin_snapshot_base_dev
      卸载设备的挂接目录
      # dmsetup table kevin_linear_dev | dmsetup reloadkevin_snapshot_base_dev
      # dmsetup resumekevin_snapshot_base_dev
      #mount /dev/mapper/kevin_linear_dev/mnt/kevin_linear_dev
      #mount /dev/mapper/kevin_snapshot_base_dev/mnt/kevin_snapshot_base_dev
      #diff -qur /mnt/kevin_snapshot_base_dev/mnt/kevin_linear_dev
      经过reloadrusume后再次挂接设备就保持了同步
6.   创建/dev/mapper/kevin_snapshot_dev设备并挂接
      #umount /mnt/kevin_snapshot_base_dev
      #umount /mnt/kevin_linear_dev
      #dmsetup suspend kevin_linear_dev
      为了保证数据完整性保证目标设备没有I/O操作,需要先将目标设备挂起
      #./kevin_snapshot_dev.sh/dev/mapper/kevin_snapshot_base_dev /dev/sda9 8 \kevin_snapshot_dev
      #dmsetup resume kevin_linear_dev
      恢复kevin_linear-dev设备后设备就可以正常运了
      #mkdir /mnt/kevin_snapshot_dev
      #mount /dev/mapper/kevin_snapshot_dev/mnt/kevin_snapshot_dev
7.   测试和同步快照
      #mount /mnt/mapper/kevin_linear_dev/mnt/kevin_linear_dev
      #diff -qur /mnt/kevin_linear_dev/mnt/kevin_snapshot_dev
      在没有更改任何文件的情况下快照和数据源是一致的
      #cp /etc/rc.local/mnt/kevin_snapshot_dev
      #diff -qur /mnt/kevin_linear_dev/mnt/kevin_snapshot_dev
      当快照被修改后,写入或修改的数据将存入COW设备,而数据源保持不变
      #mount /dev/mapper/kevin_snapshot_base-dev/mnt/kevin_snapshot-dev
      这里会报错,因为/dev/mapper/kevin_snapshot_base_dev已经被加入 /dev/mapper/kevin_snapshot_dev,不可以直接使用了。如果想查看和导出数据源,就需要用到下一节的snapshot-origin设备
      snapshot的好处是快速建立备份和数据修改分支,同时如果数据源是直读设备(例如CD/DVD),我们需要暂时修改其少量数据时snapshot也非常有效。
8.   当我们不在需要使用以上三个设备后,我们需要卸载和删除这个设备
      # dmsetup remove kevin_snapshot_dev
      # dmsetup remore kevin_linear_dev
      # dmsetup remorekevin_snapshot_base_dev

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝介入卖家不举证怎么办 买家拒收快递货怎么办 买家到付拒收怎么办 买家发顺丰到付又拒收怎么办 到付快递骗局怎么办 一年级学生上课走神怎么办 网购出现质量问题怎么办 小米分期没额度怎么办 小米预约错了怎么办 小米商城缺货要怎么办 LG显示器不满屏怎么办 网页页面放大了怎么办 JSP样式失效了怎么办? 客户故意不结账怎么办 面对刁难的顾客怎么办 万家乐燃气灶具不好打火怎么办 垃圾处理器堵了怎么办 银赫入伍金俊秀怎么办 孕妇被蜈蚣咬了怎么办 苹果id密码忘了怎么办 苹果6触屏失灵怎么办 阴道里长尖锐疣怎么办 毛笔笔尖泡弯了怎么办 长智齿了很疼怎么办 买彩票中大奖了怎么办 被小蜈蚣咬了怎么办 微信被盗刷钱了怎么办 眼结膜下出血该怎么办 金珠娜没有你该怎么办 晕血的人来月经怎么办 真丝衣服洗花了怎么办 窦性心动过缓怎么办 苹果id账号忘了怎么办 驾照换证过期了怎么办 充电宝灯一直亮怎么办 淘宝充值未到账怎么办 中银购物商城卡怎么办 窝沟封闭掉了怎么办 手被菜刀割破了怎么办 微信转账转错了怎么办 st股票退市了怎么办