如何使用vzdump克隆备份恢复OpenVZ虚拟机

如何使用vzdump克隆备份恢复OpenVZ虚拟机,第1张

1 前言

我在这篇文章中使用两个OpenVZ服务器:

Server1.example.com:IP

192.168.0,100

Server2.example.com:IP

192.168.0.101

(两台都使用的是Debian

Etch的系统,设置的过程大家可以参考这篇教程Installing

And Using OpenVZ On Debian Etch-但是vzdump同时也支持其他版本的linux)

我在server1.example.com服务器上运行着一个主机名为test.example.com的虚拟机,它的ip地址是192.168.1.102且他的VEID是102.我想备份这个虚拟机,并把它恢复在server2.example.com这台服务器上。

我们可以原封不动的把虚拟机恢复在server2.example.com的服务器上(例如相同的ip地址和主机名),但是运行克隆在server2的虚拟机时,我们必须停止在server1.example.com服务器上的虚拟机。否则的话,ip地址和主机名将会冲突第二种方法我们在恢复虚拟机之前,使用vzctl

set命令改变一些参数例如ip地址和主机名。这样的话,我们可以同时运行两个虚拟机(原本运行在server1.example.com上的虚拟机和克隆在server2.example.com)第二种方法是克隆虚拟机的最好的方法。

2.准备OpenVz服务器

首先我们必须安装Vzdump和它所依赖的rsync,在debian系统中,命令如下:

server1/server2:

apt-get install vzdump rsync

方法2:

?

1

2

3

wget http://download.openvz.org/contrib/utils/vzdump/vzdump_1.2-4_all.deb

apt-get install cstream ssmtp

dpkg -i vzdump_1.2-4_all.deb

3创建一个虚拟机的备份

这一章仅需要在server1服务器上操作就可以了

在server1.example.com上,想创建一个VEID为102的虚拟机的备份,先看一下vzdump的帮助

man vzdump

来学习下如何使用vzdump.

要备份你服务器上所有的虚拟机,你可以使用下列命令

vzdump –compress –dumpdir /home/backup –stop

–all

–compress 意思是:

压缩备份的文件 (压缩为一个.tgz文件).

–dumpdir确定你想存储备份的文件夹,如果你不定义一个dumpdir,默认为/vz/dump或者/var/lib/vz/dump(依赖你的版本)。

–stop

停止虚拟机,常见备份,然后启动虚拟机。如果你使用—stop你的虚拟机将会停掉几分钟.一个更快的方案是你使用…

–suspend:挂起虚拟机,虚拟机备份这时会拷贝via

rsync到一个临时文件.虚拟机将会在定调几秒后立刻得以恢复,然后这个dump被创建使用的是临时文件夹下的拷贝。我推荐使用这种方法如果你不想等太久的话。

你也可以省去–stop 和

–suspend直接备份一个正在运行的虚拟机,大多数情况下这是没有问题的,但是可能会使备份不同意,因此请慎用!

–all创建所有可用虚拟机的备份,如果你想备份一个特定虚拟机的备份,使用虚拟机的VEID来替换。

要想把创建VEID为102的虚拟机备份在/home/backup,并且想在备份的时候停止虚拟机,使用下列命令

vzdump –compress –dumpdir /home/backup –stop

102

要想创建一个dump到默认文件夹(/vz/dump

or /var/lib/vz/dump),使用命令

vzdump

–compress –stop 102

输出结果将会如下所示

server1:/vz/dump# vzdump –compress –stop 102

INFO:

starting backup for VPS 102

(/var/lib/vz/private/102)

INFO: starting first sync /var/lib/vz/private/102

to /var/lib/vz/dump/tmp9009

INFO: stopping vps

Stopping

container …

Container was stopped

Container is unmounted

INFO: final

sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp9009

INFO:

restarting vps

Starting

container …

Container is mounted

Adding IP address(es):

192.168.0.102

Setting CPU units: 1000

Configure meminfo: 65536

Set

hostname: test.example.com

File resolv.conf was modified

Container start

in progress…

INFO: vps is online again after 15 seconds

INFO: Creating

archive ‘/var/lib/vz/dump/vzdump-102.tgz’

(/var/lib/vz/dump/tmp9009/102)

Total bytes written: 340428800 (325MiB,

11MiB/s)

INFO: backup for VPS 102 finished

successful (1.37 minutes)

server1:/vz/dump#

不像停止,仅仅挂起虚拟机,使用命令

vzdump –compress –suspend 102

输出结果如下所示

server1:~# vzdump –compress –suspend 102

INFO: starting backup for VPS 102 (/var/lib/vz/private/102)

INFO: starting first sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842

INFO: suspend vps

Setting up checkpoint…

suspend…

get context…

Checkpointing completed succesfully

INFO: final sync /var/lib/vz/private/102 to /var/lib/vz/dump/tmp10842

INFO: resume vps

Resuming…

INFO: vps is online again after 4 seconds

INFO: Creating archive ’/var/lib/vz/dump/vzdump-102.tgz’ (/var/lib/vz/dump/tmp10842/102)

Total bytes written: 340428800 (325MiB, 24MiB/s)

INFO: backup for VPS 102 finished successful (1.57 minutes)

server1:~#

在备份之后,我们看一下dump的目录…

ls -l /vz/dump/

你将会看到一个以.tgz为后缀的文件:

server1:~# ls -l /vz/dump/

total 147864

-rw-r–r– 1 root root 1170 2008-11-20 17:40 vzdump-102.log

-rw-r–r– 1 root root 151249685 2008-11-20 17:40 vzdump-102.tgz

server1:~#

你现在就可以拷贝这个dump到其他的OpenVZ服务器上了,使用scp把/vz/dump/vzdump-102.tgz这个备份拷贝到server2.example.com的/home文件夹下);

scp /vz/dump/vzdump-102.tgz root@192.168.0.101 :/home

4.恢复一个虚拟机

(这一章仅仅是针对server2的!)

在server2.example.com,你现在就可以恢复这个虚拟机了,使用下列命令….

vzrestore /vz/dump/vzdump-101.tar 101

在这里250是恢复虚拟机新的VEID-你也可以使用任何在server2.example.com上没有被使用的VEID-你甚至可以再次使用102,如果server2.example.com上没有使用的话。

如果你不想修改虚拟机的设置(例如。Ip地址,主机名),你现在就可以启动它了,但是请确认在server1.example.com上的原始的虚拟机已经停止,否则会导致ip冲突。

vzctl start 250

如果你想同时运行两个虚拟机(原始的和克隆的),你必须克隆虚拟机启动前改变其ip地址和主机名.

要设置一个新的主机名,运行下列命令:

vzctl set 250 –hostname test2.example.com

–save

要设置一个新的ip地址,我们必须先删除原来的。

vzctl set 250 –ipdel 192.168.0.102 –save

然后我们设置一个新的

vzctl set 250 –ipadd 192.168.0.250 –save

最后我们就可以启动克隆的虚拟机了。

转载

这是一个简短的教程,目的是为了快速搭建一个可用的VPN,本文并不涉及有关VPN的正常使用内容。本简短教程基于以下硬件条件:

一台安装了Debian GNU/Linux 5.0的VPS。

当然理论上所有可以安装pptpd包的*nix系统都可以作为主机,教程中安装方式是基于Debian的apt-get命令,其他发行版请自行对照使用。

这台VPS的物理位置是Fremont, CA。

物理位置作为VPN这个应用本身并不重要,在这里提出只是多此一举。

安装服务器端软件

# apt-get install pptpd

Debian的包管理是所有发行版里最好的,所以这条命令打完就安装完毕了我们的pptp服务器端程序。

配置IP地址范围

编辑/etc/pptpd.conf,在最后添加如下地址:

localip 192.168.0.1

remoteip 192.168.0.234-238,192.168.0.245

这两句设置了当外部计算机通过pptp联接到vpn后所能拿到的ip地址范围和服务器的ip地址设置。

增加一个用户

编辑/etc/ppp/chap-secrets,在下面增加类似的条目:

username pptpd password *

上面内容很好理解,最后那个星号是说允许从任何IP地址联接,如果你想单独设定IP地址也可以。

重启pptpd服务

# /etc/init.d/pptpd restart

理论上到这里一个vpn就已经搭建完毕了。无论你用的是Windows还是OSX,或者是iPhone OS,都可以通过建立一个pptp链接来联入这个VPN。不过你并不能通过这个来上Internet,因为所有的数据都作用于那台pptpd的服务器上,而不会传入拨入的计算机设备上。要上Internet还需要这么干:

dns解析支持

编辑:/etc/ppp/options,在里面找一下“ms-dns”项目:

ms-dns 208.67.222.222

ms-dns 208.67.220.220

我填写的是OpenDNS的地址,当然你也可以填写电信的DNS。

允许转发

编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1。

net.ipv4.ip_forward=1

最后的最后,运行一下这条命令来打开iptables的转发支持:

/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

注意:来自@LEMONed的消息,只有Xen的VPS可以搭建pptp,OpenVZ的不行。

引用来自@LEMONed的话:

因为openvz下只有venet0,没有eth0,而绝大多数的vps都是openvz的,然后绝大多数的openvz vps都没有masqurade,只能搭建openvpn并且要自签证书什么的,根本不能用pptpd。我为了给iphone搭个vpn曾经把这个研究透彻了

看来过几天我得再写一份搭openvpn的教程。

这里有个如何在openvz下搭建OpenVpn的教程:OpenVZ VPS安装配置OpenVPN

有下面几种虚拟化技术可以选择

1、母服务器是Windows 2008/2012,使用Hyper-V技术,分割成的虚拟机可以安装任何操作系统,如Win2003/2008/2012,甚至Linux各版本都没有问题。

Hyper-V的安装步骤比较简单,安装完毕后需加载ISO文件,自行安装系统,然后和普通服务器一样设置TCP/IP属性。

2、母服务器是Linux系统,可以使用的虚拟化技术很多,有OpenVZ、XenServer。OpenVZ的只能分出Linux的虚拟机,而XenServer可以安装任何操作系统,Win2003的也没有问题。

以上提到的虚拟化技术都是免费的。

3、母服务器是Windows 2003系统,只能安装Virtuozzo虚拟化技术,这种技术是要收费的,而且不便宜,划分出来的虚拟机也只能是2003系统。

我们公司使用的虚拟化技术是微软的Hyper-V和OpenVZ,对这两种技术非常熟悉,希望我的回答能抛砖引玉,给您一些启示。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/86883.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-05
下一篇2023-03-05

发表评论

登录后才能评论

评论列表(0条)

    保存