草庐IT

使用Veeam实现物理机到虚拟机的迁移

王春海 2023-03-28 原文


Veeam Backup & ReplicationVeeam公司推出的一款软件,该软件实现了物理机和虚拟机的备份、虚拟机的复制、存储快照和vSphere虚拟机CDP复制副本功能。使用Veeam主要是用来备份物理机和虚拟机。但是,除了备份物理机外,Veeam还支持将备份恢复到虚拟化环境中,本文介绍,将无法使用VMware Converter迁移的物理机,使用Veeam备份物理机,再将备份恢复到虚拟化环境,间接实现从物理机到虚拟机的迁移。

使用Veeam备份Windows、Linux和Mac操作系统的物理机时,需要向物理机安装Veeam Agent(Veeam代理)程序。备份的数据可以恢复到原来的位置,也可以将Windows和Linux操作系统的整机备份恢复到虚拟机中。使用这一功能可以实现物理机到虚拟机的备份。

使用VMware迁移工具vCenter Converter迁移物理机到虚拟化环境时,vCenter Converter只支持Windows操作系统的数据同步,不支持Linux操作系统的数据同步。而Veeam可以执行多次同步后,使用Veeam的即时恢复功能将Windows操作系统的备份恢复到vSphere或Hyper-V的虚拟化环境,将Linux的备份恢复到vSphere虚拟化环境。这样也实现了从物理机到虚拟机的备份,并且迁移所中断的时间会较短。

本节通过2个具体的案例介绍这方面的应用。

1 备份Cent OS 7的物理机到虚拟机中

在本次实验环境中,一台PC机安装了Cent OS 7的操作系统,该PC机配置了1个Intel i7-2600的CPU,配置了32GB内存,1块160GB的硬盘。该计算机的IP地址是172.18.96.182。下面介绍备份这台Cent OS 7物理机的方法,步骤如下。

(1)创建一台物理机或虚拟机,在虚拟机中安装Veeam Backup & Replication V11.0。安装完成后登录Veeam管理控制台,在“Home→Jobs→Backup”右侧空白窗格中用鼠标右键单击,在弹出的快捷菜单中选择“Backup → Linux computer”,如图1所示。

(2)在“Job Mode”对话框的“Type”字段中,选择Server,在“Mode”中选择“Managed by backup Server(由备份服务器管理)”。

图1 添加Linux备份任务

(3)在“Name”对话框中设置备份作业名称,本示例为Agent Backup Job2 - Cent OS 7,如图3所示。如果希望Veeam的资源调度程序比其他类似作业优先考虑此作业,并首先为其分配资源,选中“High priority高优先级”复选框。

(4)在“Computers”对话框中,选择保护组和(要备份的单个计算机。管理员可以在Veeam控制台中将一个或多个保护组和(或)添加到清单的单个计算机添加到Veeam代理备份作业。单击“Add”按钮选择“Individual computer”,在弹出的“Add Computer”对话框中输入要备份的Linux计算机的IP地址,本示例为172.18.96.182,单击“Add”按钮选择“Linux account”,在弹出的“Credentials”对话框中输入这台Linux计算机的管理员账户root及密码,如图2所示。

2 添加要备份的计算机IP地址和账户密码

(5)在“Backup Mode”对话框中选择“Entire computer”。在“Storage”对话框中选择备份存储库。

6)在“Schedule”对话框中指定要根据其执行备份的计划在“Summary”对话框中完成Veeam代理备份作业配置过程,选中“Run the job when I click Finish”,单击“Finish”按钮。

7)等Linux备份完成后,Status显示Success

在完成第一次备份之后,如果要将这台Linux的物理机迁移到虚拟机中,可以在申请停机时间之后,再次执行备份,第二次备份属于差异备份,差异数据量一般较小,备份所需花费的时间也会较短,一般会在3~10分钟之内完成。

2 将Linux备份恢复到vSphere虚拟化环境中

将Windows或Linux物理机备份恢复到vSphere虚拟化环境中,也是使用Veeam的即时还原功能。这与使用Veeam备份的Windows或Linux虚拟机恢复到vSphere虚拟化环境中方法和步骤是相同的。下面介绍主要的步骤。

(1)在将Linux备份恢复到vSphere虚拟化环境之前,将IP地址为172.18.96.182的Linux物理机关机。

(2)在Veeam管理控制台中,在“HOME→ Backups→ Disk”右侧用鼠标右键单击Linux物理机备份,在快捷菜单中选择“Instant recovery”。如图3所示。

3 即时还原

(3)在“Machine”对话框中单击Point”列出了虚拟机的恢复点。一般选择最后的备份用于恢复。

(4)在“Destination”中选择恢复后的虚拟机的名称和恢复位置,如图4所示。

4 恢复位置

【说明】要提前在Veeam中添加要用做恢复目的地的vCenter Server或Hyper-V主机。

(5)在“Summary”对话框复查要进行恢复的虚拟机及设置,可以根据需要选择“Connect VM to network”和“Power on VM automatically”

6)在“Restore Session”对话框的log列表中显示了当前正在执行的操作,等出现“Waiting for user to start migration”后单击“Close”关闭对话框。

此时虚拟机可以对外提供服务,但此时该虚拟机还保存在Veeam的存储中,需要使用“存储迁移”功能,将该虚拟机从Veeam存储迁移到生产环境中的目标共享存储中,本示例中的共享存储为vSAN存储。

(1)在“HOME → Instant Recovery”中用鼠标右键单击正在进行的任务,在弹出的快捷菜单中选择“Migrate to production(迁移到生产环境)”,如图5所示。

5 迁移到生产环境

2)在“Destination”对话框中选择目标主机和群集、资源池、虚拟机文件夹、共享存储。

3)在“Transfer”选择源和目标代理,通常选择“Automatic selection(自动选择)”。

4)在“Ready”对话框显示了当前准备进行的操作,检查无误之后,选中“Delete source VM files upon successful quick migration(does not apply to VMotion)”。

5)快捷迁移将把数据从Veeam加载的存储迁移到生产环境的存储。

(6)在迁移完成后,Home中的Instant Recovery任务完成后自动关闭。

(7)登录vCenter Server,查看从备份恢复的虚拟机(本示例名称为CentOS7_172.18.96.182),可以看到虚拟机状态及分配的资源,如图6所示。

(8)打开虚拟机控制台,检查迁移后的虚拟机是否正常,如图7所示。

6 恢复(迁移)后的虚拟机 7 打开虚拟机控制台

【说明】从备份恢复的虚拟机与原物理机具有相同的CPU和内存配置,如果要修改该虚拟机的配置,可以将迁移后虚拟机关机再进行修改,这些不再一一介绍。

3 备份Windows物理机

本节介绍备份Windows物理机的内容。本示例中,要备份的物理机操作系统是Windows Server 2008 R2,配置了1个Intel i7-2600的CPU和32GB内存,如图8所示。该计算机的IP地址是172.18.96.196,计算机名称为WIN-V0M0U9MKGQ8

8 要备份的物理机

使用Veeam备份物理机,要备份的物理机需要启用“文件和打印机共享”,并且在防火墙中允许“文件和打印机共享”的入站连接。之后在Veeam管理控制台中创建Windows备份任务,主要步骤如下。

(1)登录Veeam管理控制台,在“Home →Jobs →Backup”右侧空白窗格中用鼠标右键单击,在弹出的快捷菜单中选择“Backup→ Windows computer”,如图9所示。

(2)在“Job Mode”对话框的“Type”字段中,选择Server,在“Mode”中选择“Managed by backup Server”。

9 备份Windows

(3)在“Name”对话框中设置备份作业名称,本示例为Agent Backup Job 1 - WS08-172.18.96.196

(4)在“Computers”对话框中,单击“Add”按钮选择“Individual computer”,在弹出的“Add Computer”对话框中输入要备份的Windows计算机的IP地址,本示例为172.18.96.196,单击“Add”按钮添加172.18.96.196的管理员账户和密码(账户格式为计算机名称\Administrator,本示例为WIN-V0M0U9MKGQ8\Administrator,如图10所示。

10 备份的计算机和账户凭据

(5)在“Backup Mode”对话框中选择“Entire computer”。

6)在“Summary”对话框中完成Veeam代理备份作业配置过程,选中“Run the job when I click Finish”,单击“Finish”按钮。

(7)之后向导会向172.18.96.196的Windows计算机安装Veeam备份代理并完成第一次备份。

(8)在申请了停机时间后,可以执行第2次备份。

【说明】Veeam也可以添加备份物理机的任务实现多次定期备份,这和备份虚拟机没有区别。

将Windows备份恢复到vSphere虚拟化环境中,和恢复Linux备份到vSphere虚拟化环境中操作步骤相同。只是需要注意以下几点,其他相同操作本文不再赘述。

(1)在将Windows备份恢复到虚拟化环境后,进入恢复之后的Windows虚拟机,在“控制面板→程序和功能”中卸载安装的Veeam备份代理。

(2)从备份恢复的虚拟机与原物理机具有相同的CPU和内存配置,如果要修改该虚拟机,可以将迁移后虚拟机关机再进行修改,这些不再一一介绍。

4 手动安装Windows备份代理

在Veeam管理控制台中添加Windows物理机后,将自动向物理机安装Veeam备份代理,如果安装失败,可以在要备份的物理机上手动安装Veeam备份代理,主要步骤如下。

(1)Veeam用于物理机的备份代理程序保存在Veeam管理控制台C:\ProgramData\Veeam\Agents文件夹中,在该目录中有3个子文件夹(如图11所示)。

11 Veeam备份代理程序文件夹

其中val文件夹中的程序用于Linux操作系统的备件插件,vam用于Mac操作系统,vaw用于Windows操作系统。其中Linux和Windows有32位与64位的备份代理,安装程序中有x86标志的用于32位操作系统,安装程序中有x64标志的用于64位操作系统。管理员可以将C:\ProgramData\Veeam\Agents创建为共享,本示例中设置共享名称为agents。在当前的示例中,Veeam管理服务器的IP地址是172.18.96.60。Windows计算机可以通过浏览\\172.18.96.60\agents\vaw文件夹直接安装Veeam代理程序。

(2)在IP地址为172.18.96.196的Windows物理机中,在资源管理器中输入\\172.18.96.60\agents\vaw并按回车键,在弹出的身份验证对话框中输入用户名密码登录,登录之后如图12所示。

12 Veeam代理及需要的程序

(3)在vaw文件夹中有一个x64和一个x86的目录,分别用于64位与32位Windows,还有.net 4.5.2安装程序和Veeam代理安装程序。在安装Veeam代理程序之前,需要安装.net和x86或x64文件夹中的程序。首先安装.net程序。在安装完.net之后,进入x64目录,依次运行Sqlsysclrtypes.exe、sqllocaldb.exe、sharemanagementobjects.exe程序。最后安装KB2999226

(4)最后安装Veeam代理程序,文件名为Veeam_B&R_Endpoint_x64.msi。如果在执行Veeam_B&R_Endpoint_x64.msi时出现Local Administrator privileges are required to install the product的提示(如图13所示)需要修改注册表后用管理员身份安装。

13 需要本地管理员权限

(5)对于图13的错误提示,运行regedit打开注册表编辑器,打开\HKEY_CLASSES_ROOT\Msi.Package\shell,用鼠标右键单击shell,在弹出的对话框中选择“新建→项”, 设置名称为runas,选中runas项,双击右侧窗口的“默认”,在弹出的窗口中数值数据处输入“以管理员身份运行”(不包括英文双引号),然后单击“确定”按钮,如图14所示。

(6)用鼠标右键单击runas,在弹出的对话框中选择“新建→项”,设置项名为command,双击右侧的“默认”,把数值数据修改为msiexec /i"%1",如图15所示。

14 runas 15 命令项

(7)修改完注册表之后,用鼠标右键单击Veeam_B&R_Endpoint_x64.msi,在弹出的对话框中选择“以管理员身份运行”。然后根据向导执行Veeam备份代理安装,直到安装完成。

(9)如果当前操作系统使用第三方工具做过优化,建议在“服务”中检查被禁用的服务,将被禁用的服务启动类型修改为“自动”或“自动(延迟启动)”,在当前的示例中,只将Internet Connection Sharing (ICS)和Routing and route Access保持为“禁用”状态,其他被禁用的服务都修改为“自动”或“自动(延迟启动)”,然后重新启动计算机。如图16所示。

16检查服务

将过上述设置之后,在Veeam管理控制台中就能发现安装了备份代理的Windows物理机。之后就可以在Veeam管理控制台中备份Windows的物理机了,这些不再介绍。


【说明】(1)本文发表在 《网络安全和信息化》杂志2021年第10期,第102~106页

2)更加详细的内容可以参看本图书:

VMware虚拟化与云计算应用案例详解(第3版)

https://item.jd.com/12939315.html

3)如果查看相关视频,可以看

基于Veeam V11的物理机和虚拟机的备份容灾应用视频

https://edu.51cto.com/course/27783.html


有关使用Veeam实现物理机到虚拟机的迁移的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. ruby-on-rails - Ruby on Rails 迁移,将表更改为 MyISAM - 2

    如何正确创建Rails迁移,以便将表更改为MySQL中的MyISAM?目前是InnoDB。运行原始执行语句会更改表,但它不会更新db/schema.rb,因此当在测试环境中重新创建表时,它会返回到InnoDB并且我的全文搜索失败。我如何着手更改/添加迁移,以便将现有表修改为MyISAM并更新schema.rb,以便我的数据库和相应的测试数据库得到相应更新? 最佳答案 我没有找到执行此操作的好方法。您可以像有人建议的那样更改您的schema.rb,然后运行:rakedb:schema:load,但是,这将覆盖您的数据。我的做法是(假设

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐