LVM+NBD实现VM数据备份和迁移

在云系统的高可用性中,VM层的高可用性尤为关键,其中又涉及到了VM本身数据的备份和迁移的问题。在现有的平台上,每一个VM的数据放在一个单独的LV(逻辑卷)上,VM数据的备份可通过备份其所在的LV来完成,迁移则需要其他的物理服务器可以访问到该VM的数据,也即LV的内容。对于备份,可利用LVM(Logical Volume Manager)的快照功能来完成,远程访问则可通过NBD(Network Block Device)来实现。

 LVM属于软件层,管理着底下的硬盘分区,其好处是可以动态调整LV的大小、动态增加PV(物理卷)VG(卷组)以增大VG容量、创建LV快照等,使得用户在LV容量不够用的情况下能够直接调整LV大小来满足,而不需要重新对底下的物理硬盘进行分区。我们这里主要用到LVM的快照功能来备份VM数据,具体如下:

 假设物理服务器名为Server1,其上某一虚拟机名为VM1VM1数据存放在LV-VM1逻辑卷上,该逻辑卷隶属于名为VgVm的卷组。在某一时刻,VM1数据是完好的,我们需要将这一时刻的数据进行备份,以防VM1数据在将来某一时刻被破坏时能恢复到这一时刻的状态。首先创建一个逻辑卷快照,命令如下:

 lvcreate –L 1G –s –n LV-VM1Snapshot /dev/VgVm/LV-VM1

 其中“1G”为要创建的快照的大小,这个大小根据需要制定。需要注意的是,如果指定的值太小,快照在其生命周期内发生溢出的话,该快照将无效,因此创建时需要对将要写入快照的数据量有一个合理的预估。“LV-VM1Snapshot”为快照名称,其他参数可参看相应的帮助文档。

 LVM快照使用的是Copy-on-write(写时复制)机制,在快照创建之后,当有数据要往LV-VM1卷上某一位置写入时,LVM会将这一位置的数据拷贝到LV-VM1Snapshot快照逻辑卷上,然后再将新数据写入LV-VM1,这样就起到了备份旧数据的作用。而在实际的实现中,LVM可能根本不会去拷贝数据,而是开辟新的位置写入新数据,然后调整指向数据块的指针值来达到目的,所以速度会很快。在这里,我们只需要了解写时复制就够了,不必深究实现细节。

 以上快照创建之后,我们需要一种方法来远程访问这个快照,于是NBD派上用场了。NBD作为网络块设备,其内容来源为网络上的服务器,其组成为Server/Client模型。Client机器像访问本地磁盘一样访问数据,而真正的内容存储在Server上。Client机器上需要安装NBD内核模块,当Client要访问Server上的数据时,该内核模块将请求发往ServerServer端有一个守护进程叫nbd-server,负责解析接收到的请求并读取数据然后返回给Client

这里需要两台物理服务器,其中一台为上面提到的Server1,我们把它当作NBDServer端,另一台当作NBDClient端,假设名为Server2。现在需要在Server1Server2上安装NBD,分别在两台服务器上进行以下步骤进行安装:

 下载最新的安装包:nbd-3.2.tar.bz2,进入到安装包所在目录,执行以下命令:

 

tar jxf nbd-3.2.tar.bz2

 

该命令会解压生成目录nbd-3.2。接着执行命令:

 

cd nbd-3.2

./configure //这一步若提示“missing glib”,需要先执行apt-get install libglib2.0-dev

make && make install

 

到此,Server1Server2上都安装好了NBD服务。

 

Server1上执行命令:

 

nbd-server 1234 /dev/VgVm/ LV-VM1Snapshot

 

其中1234为端口号,可灵活指定,后面是要通过NBD导出的逻辑卷名,这里为上面创建的快照卷。

 

Server2作为NBDClient端,需要安装内核模块,执行以下命令安装:

 

insmod  /lib/modules/xxx/kernel/drivers/block/nbd.ko

 

其中的xxx因系统而异。

 

安装完内核模块后,若执行命令“ls /dev”,则可看到/dev目录下多了nbd0nbd1等设备。

 

Server2上执行命令:

 

nbd-client Server1-IP 1234 /dev/nbd0

 

其中Server1-IPNBD Server端的IP地址,1234为端口号,/dev/nbd0表示镜像设备,访问/dev/nbd0等同于访问Server1上的快照卷“/dev/VgVm/ LV-VM1Snapshot”。如果需要将快照内容拷贝到Server2上,只需要对/dev/nbd0进行dd即可,也可mount设备/dev/nbd0然后访问其中的文件。

 

 

转载于:https://www.cnblogs.com/woshiweige/p/4518438.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值