存档

文章标签 ‘lvm’

Acronis Backup Recovery Advanced Server的snapapi折腾笔记

2012年1月29日 3 条评论

目标:我要在一个被修改过的linux(基于centos 5.x修改的,重新编译过内核)系统,备份他的整个硬盘,该硬盘做了LVM分区。其实已经通过vmware  convert做了一次P2V的镜像了,不过我还是不甘心,希望能做个P2P的镜像。

如果没LVM,这很简单,DD出来再DD回去就是了,但是Y做了LVM(centos/RHEL的默认分区方式),而我对LVM掌握的十分有限,只有另谋出路了:商业备份程序–>acronis backup & recovery advanced server

server 下载地址,不要贪新版本,用这个11就好,不要用11.5  http://dl.acronis.com/u/ABR11A_trial_en-US.exe

linux 组件 在 https://www.acronis.com/en-us/my/products/index.html 的my product里面,需要登陆。

序列号

SXAJV3F4-U2LKNKFD-PYV3BX5V-BECTL4WW-55XR6HXH-RBW4JUQK-UNLMMJYW-LYZS496F
DBSPAQLY-RNR23TGB-3WD9KM4E-GH2U2E8H-RSAPXUP7-LE6TH5TB-7X26UJ59-5KQSLP46
VNQB2X9K-TVDWEXA2-NLDZY664-XHEHVFCF-E8ZTUL7S-LE5G3YF2-WFSY799G-972H574F
SHXRNFWM-V9Q7S9NK-F8JNA37W-8U33VM9P-7SENEBJR-R892EZS4-3YDNAKHF-4B79DABJ
Z9U97E9D-MWS5T77M-YA7SNWG7-FURX8VHK-XLRFC4PZ-6AQ8EEKV-43M9BC77-RGEMYCQP
56S6WTM8-QWGTUVJX-J23WGX5Y-D3UE3W8K-SJ5DZSGJ-YS7BV5Z6-PAV5YQA5-2VYBLTRN

前期的折腾:

1、linux agent的下载,够隐蔽的,得要在安装server的过程中才有提示,最后在注册了试用版的portal里才可以下载的到。

安装agent

sh ABR11AL64_en-US.x86_64 –help 可以看参数列表

不需要那么折腾,装个标准内核和开发包就可以规矩的搞起了,需要备份的时候改下grub再reboot切换到另外一个内核即可。(这么搞imp的网口顺序貌似会乱!可能是udev的问题)

如果需要在线备份,还是继续往下面折腾吧。

2、需要安装kernel-devel和gcc才可以安装snapapi(centos5可以自动安装,centos6需要手动编译)

折腾到最后,发现必须要安装acronis的一个叫snapapi的LKM才可以对LVM分区执行备份工作。所以,我现在面对的情况是:

1、没有当前内核的代码,或许有当前内核的配置文件

2、有类似版本的内核代码

3、有他的LKM的代码

错误信息:

[18458.932501] snapapi26: version magic ‘2.6.18-164.15.1.el5.xxx SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1’ should be ‘2.6.18-164.15.1.el5.xxx SMP mod_unload 686 REGPARM gcc-4.1’

分析:

modversion modmagic不一致,差距就是多了个4KSTACKS,需要强行插入LKM。

 

思路:

一、去掉4KSTACKS字样

1、暴力修改二进制文件。我用UE试了试,ctrl+d删除了不需要的字符,结果出错了。VI做的二进制编辑器用不来,老保存不到文件,后续方法是找一个对ELF文件支持的更好的二进制编辑器或者modversion cracker实现。

[20218.918997] Verify ELF error [sec 1] (assertion 143)
[20218.919000] Module failed ELF checks

二、强插LKM

1、modprobe -f参数,系统崩溃

2、编译LKM的时候去掉modversion的支持,就好像adore-ng那样

这个东西又洋气的很,用的dkms编译的LKM,现在得熟悉下dkms了,参考。ldtarball之后,代码在/var/lib/dkms/这个位置

 

不折腾dkms了,手动编译方法如下,但貌似有错:

出现

在执行make oldconfig和make prepare之后,重新make,出现

下面应该是要找这个freezer.h在哪被引用了,能否去掉,如果不能,就把这个freezer.h弄进去。
当然,最简单的方法可以有限尝试下,就是touch /usr/src/kernels/2.6.18-164.15.1.el5.xxx-i686/include/linux/freezer.h ,果然过了。
继续解决/bin/sh: scripts/mod/modpost: No such file or directory 的问题,这个简单

编译通过了,虽然有关于modversion的警告,现在调试就方便很多。。。没错,战斗还没开始
嘿嘿,没想到战斗没开始就接近尾声了,模块装载成功

重新开启Acronis Backup & recovery,果然可以开始备份了,等待吧。

这段时间,回顾下为啥之前模块装不上,但自己编译又能装上,看来可能是dkms在合并内核oldconfig的时候出了问题,导致没有去掉4KSTACK的支持,一路走来,解决了不少问题,大新年的,够折腾的,不过还好有收获。

哈哈,等了10来分钟,备份成功,回家吃饭!明天过来把他恢复到另外的服务器里去。

貌似还没饭吃,开始恢复备份到其他系统,有2个思路:

1、通过网络引导,直接装一个新的系统进去。

2、先装好一个系统,再把备份恢复进去。

我好像看到这玩意是支持1方式的,但是在程序里没看到做tftp的指引,并且我有一台空闲的DELL 1950 with CENTOS 5.7服务器放着,就先考虑第二种方式吧。

在恢复之前,先把agent装上,snapapi26.ko是没成功加载的,我猜测恢复的时候应该不需要这个LKM,咋快就咋整着先吧。

目标磁盘和备份文件的磁盘大小不一样,并且目标磁盘没有/var分区,估计可能会有问题,先44再说。
备份文件3.9G -rw-r–r– 1 root root 3.9G Jan 31 02:28 bak_2012_01_30_18_08_10_454D.TIB

 

在选择目标分区的时候有2个问题
1、这个NT signature是啥意思?到底选啥?暂时先选默认的auto,我感觉得选recover from backup,这涉及到MBR的问题,如果跑grub的时候出问题了就换换。
2、源分区和目标分区对不上号,瞎胡选的,如果有问题的话,就找个DELL R410,再分个一样的区44。还可以外挂一个USB硬盘44。

弹个窗口出来要我重启,那就照做吧。

按钮reboot不生效,我给机器reboot了,去控制台看,也没啥特别的,重新把过场再跑了一次,还是一样,看样子这条路有问题。在acronis安装目录下找到了帮助文件,搜索之,发现有PXE的介绍,想起来应该还可以从PE启动恢复,可以做引导盘的,这样就方便多了,引导盘,搞起!

通过losetup和kpartx使用磁盘文件备份和恢复LVM卷

2011年12月21日 评论已被关闭

在使用Kvm和XEN虚拟系统时,常常要对虚拟机进行clone。一种方式是采用img磁盘文件来作为虚拟机磁盘,另一种方式是采用卷管理(LVM)来管理虚拟机磁盘。
推荐使用LVM卷管理,可以充分利用LVM的snapshot进行备份和复制。不过,在使用LVM卷管理时,有时候也需要直接访问LVM的LV,从中复制一些文件。
这里解释 kpartx 工具,可以实现对块文件(包括卷管理的LV)到设备文件的映射,这样就可以使用fdisk和mount命令访问逻辑卷了。

原文在 http://arch.huatai.me/?p=315

阅读全文…

分类: 技术点滴 标签: ,

lvm和dd

2011年12月15日 评论已被关闭

dd if=/dev/sda of=/mnt/dump.dd 之后,如果sda有lvm的话,这个dump.dd是mount不上的,下面的方法或许可行。我记录下。

原文在 http://serverfault.com/questions/327104/mounting-an-lvm-ext3-dd-in-linux

LVM adds extra layers between the device and the filesystem; namely

  • devices become Physical Volumes (PVs)
  • PVs are part of a Volume Group (VG)
  • VGs contain Logical Volumes (LVs)
  • LVs contain filesystems

To access the filesystem on the image of an LVM disk, you need to

  1. Loop-mount the image with losetup /dev/loop0 <img.dd>
  2. Set up device maps with kpartx -av /dev/loop0
  3. Check for volume groups, physical volumes and logical volumes with vgdisplay, pvdisplay and lvdisplay
  4. Mount the relevant logical volume
This might not work if the image is an old image of the PVs in the system – then the UUIDs, VG names and LV names inside it could collide… – glglgl Nov 14 at 8:26
分类: 技术点滴 标签: , ,