如何完善物理机到虚拟机的迁移过程
如何完善物理机到虚拟机的迁移过程
现在,物理机到虚拟机的大部分迁移流程都是借助于图形化向导完成的,但是你仍旧可以通过提前实现一些关键的准备工作来完善这个过程。
除了虚拟服务器的能力,虚拟化技术最大的好处之一就是能够将现有的物理服务器迁移至虚拟环境当中,并且不需要重装操作系统。所有人都关注于vMotion和HA迁移这两项技术,但是物理机到虚拟机(P2V)的迁移特性也已经成为虚拟化的基础,因为很少有企业会在购买新的服务器之后,放弃现有的服务器和应用程序。物理机到虚拟机的迁移到是一种经过检验、可靠的方式,可以将之前的物理设备转移到新的虚拟环境当中。现在,整个P2V流程都是基于图形化向导的,但是通过一些额外的方式可以让你成为一名P2V专家,确保自己以正确的方式管理虚拟化环境。
清理服务器
也许这件事情不值得拿出来单独讨论,但是还是要强调需要对将要导入的服务器进行清理。显示隐藏的系统文件、移除所有由曾经登陆过服务器的23个用户产生的垃圾文件。当然,他们中的一些可能会在回收站中留下几十GB的数据——这些数据不应该成为P2V的一部分。使用目录大小排序工具,寻找体积最大的文件,这些都会增加你的P2V迁移时间,并且占用昂贵的共享存储空间。
用户目录也是需要检查的关键区域,在进行工作之前,一些开发人员可能会将程序文件复制到桌面上,他们还有可能将这些程序文件存储在本地硬盘的临时文件夹当中;一个好的目录大小排序工具可以帮助你快速找到他们。Internet缓存文件当中同样会包含一些体积较大的下载文件,而这些文件通常只被使用一次,并且不会从服务器上被移除。传统的临时文件和目录当中也包含一些不再需要的数据,桌面和profile文件夹往往成为包含大量程序文件和目录的地方,这样会浪费几十GB的存储空间。
检测资源使用情况
通常物理服务器的硬件资源都不能被充分利用,而对服务器进行虚拟化正是要解决这个问题。我们会对硬件资源利用率较低的服务器进行虚拟化,所以如果直接将服务器中的硬件资源复制到虚拟化环境当中是非常浪费的,因为这些资源本可以由多台服务器共享使用。
需要检查的主要硬件种类包括CPU、内存、网卡和存储。连续监控服务器一周时间,记录下资源的使用情况。当为虚拟服务器分配资源时,可以使用这些数据作为基准。需要记住的关键一点是当你监控的是一台CPU使用率在50%的老旧服务器时,在虚拟化之后的新硬件平台上,其CPU使用率可能会大大降低。
根据操作系统设定CPU数量和内存大小标准,相比于根据物理服务器配置过度分配硬件资源、之后逐步进行缩减,这种以标准为基础进行扩展的方式是一种更为经济的解决方案。
卸载厂商相关的软件
对于大多数物理服务器来说,制造商都会预先配置软件和驱动,用来支持特定的硬件平台。而在虚拟服务器进入生产环境之前,这些软件需要从新的操作系统上被移除。确保所有的和厂商相关的软件,包括管理软件都被移除,这一点非常关键。哪怕只遗留一个这样的软件也会导致CPU使用率大幅上升,因为这些软件会不断重复地寻找特定的硬件。在你卸载了所有此类软件之后,你可以检查服务器运行的服务,确保没有任何厂商相关的软件仍然存在。完成这些操作之后,可以安装基于hypervisor的工具,来为虚拟机提供新的驱动。
卸载厂商驱动时,需要注意配置你的虚拟机使用两个虚拟CPU启动。第一次,需要使用两个CPU启动虚拟服务器,即便你计划服务器在正常情况下只需要一个CPU。在服务器被虚拟化之后第一次重启时,许多特定厂商的驱动将会寻找并不存在的硬件,这样会导致CPU使用率达到100%。使用两个CPU启动可以允许你卸载和厂商相关的软件,而不必像只有单个CPU那样,和其他程序争夺CPU周期。
借助于一些物理机到虚拟机迁移工具,现在可以在新的虚拟机当中禁用特定服务了。但是这种方式不能起到很大帮助作用,因为你需要找到所有的服务,但是它们中的一些可能没有被明确标注。另外一个可能的问题是在一些情况当中,禁用它们可能会影响服务器正常启动,除非它们被正确卸载,这样操作系统才能使用本地的操作系统组件替换厂商驱动。
方法有:
1、直接导出数据库,将文件复制到新服务器,并在新服务器上导入。
2、使用第三方迁移工具。
3、数据文件和库表结构文件直接复制到新的服务器上,挂载到MySQL服务下,配置相同。
迁移MySQL数据库通常只需要几个简单的步骤,但是由于您要转移的数据量可能比较庞大,因此一般耗时也会比较长。
下面的步骤将指导您如何从旧的服务器上导出MySQL数据库,对它进行安全加固;然后将其复制并导入到新的服务器上,以保证数据的完整。
将MySQL数据库导出至转储文件(dump file)
Oracle提供了一个名为mysqldump的工具,允许您轻松地将数据库结构和其数据导出到一个SQL的转储文件。您可以使用如下的命令:
1mysqldump -u root -p --opt [database name] > [database name]sql
不过,请注意如下几点:
我们可以使用--single-transaction的标志,以避免数据库在导出数据的过程中被锁死。这样能够在将数据导出到转储文件的同时,您仍可继续在旧的数据库上更新数据。不过请注意,那些在导出进程已经开始之后被更新的数据,是不会被导入转储文件之中的。
在运行该命令之前,请务必将[database name]替换成您的实际数据库名称。
请输入您自己的用户名和相对应的密码,并确保该用户具有备份数据库所需的权限。
安全加固备份文件
在大多数情况下,数据是一家企业的最重要的资产。因此,我们不希望数据库的各种备份被暴露在不受保护的服务器上,因为这样有可能会造成错误地泄露,甚至会出现被黑客窃取等更为糟糕的状况。
因此,通常您可以尝试的做法是:压缩、加密文件,然后删除原文件。在Linux操作系统上,请使用以下的命令对已压缩文件进行加密:
1zip --encrypt dumpzip dbsql
在压缩开始之前,系统将提示您输入密码。
传输备份文件
至此,我们已经获得了一个加密的转储文件。下面让我们通过网络使用SCP命令,将其传输到新的服务器上:
1scp /path/to/source-file user@host:/path/to/destination-folder/
将MySQL转储导入新服务器
通过上面一步,我们已将备份文件传到了新的服务器上,下面让我们来进行解密和提取:
1unzip -P your-password dumpzip
为了存储空间和安全方面的原因,一旦文件导入成功,请记得删除其对应的转储文件。
您可以使用以下的命令来导入文件:
1mysql -u root -p newdatabase < /path/to/newdatabasesql
在新服务器上验证导入的数据
现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。
我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。
该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。
1SELECT
2TABLE_NAME,
3TABLE_ROWS
4FROM
`
5information_schema``tables`
6WHERE
`
7table_schema` = 'YOUR_DB_NAME';
此外,我建议您检查各个表中数字列的MIN和MAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。
此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。
另一种导出和导入的选项
我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。
该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。
而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了。
因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。
当然,如果您非要尝试一下的话,可以使用如下的命令:
1mysqldump -u root -pPassword --all-databases | ssh user@new_hosthostcom 'cat - | mysql -u root -pPassword'
重要提示
请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(https://devmysqlcom/doc/refman/57/en/upgradinghtml)。
请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。
请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。
如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。
在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的性能问题。
在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了
1、ftp工具将主机中的emlog下载content文件夹
2、emlog博客网站后台,左侧导航栏——数据——备份数据库——点击开始备份按钮,备份完成后,会自动通过浏览器下载
3、在新服务器上安装一个和原来版本一样的emlog,要保证数据库前缀,数据库名和原来的一样,不然可能出现问题。管理员账号也跟原来的一样,即使你使用了新的账号密码,恢复数据后,还得用的账号密码登陆博客系统后台进行操作。
4、恢复网站数据
将原来系统中备份的数据库文件(emlog_为前缀的sql文件)通过emlog后台导入到新的emlog系统中,注意,一定要先恢复数据,然后再进行下一步的上传原来系统中导出的用户文件(content文件夹中的文件)。
5、恢复用户文件
将从原来的虚拟主机空间中导出的content文件夹使用ftp上传到新的虚拟主机空间中,覆盖新安装系统中的content文件夹,弹出对话框,点击全部覆盖即可。
6、更新缓存:
登陆重新安装好的emlog后台(用原来备份系统的管理员账号密码,因为现在数据库已经恢复为原来的了),进入数据界面,点击“更新缓存”,搬家成功!
如何将zencart系统迁移到另一台服务器,为大家详细说明,以方便大家更方便快捷的操作……
1 在新主机上,创建新的MySQL数据库。记下用户名、密码、数据库名以及主机名(通常是localhost)。
2 在新主机上,全新安装相同版本的zencart,这保证configurephp文件中的设置正确。
在安装的时候,要安装演示数据,这样可以测试安装是否正确。
a 安装
b 测试
c 备份新主机的 /includes/configurephp 和 /admin/includes/configurephp 文件到本地。
3 完全备份已有数据库和商店程序。
a 可以使用 “数据库备份模块” 或者 phpMyAdmin 来备份数据库 … 要选择 “添加 DROP TABLE” 选项;同时,在数据选项下,选择 “完整插入” 以及 “扩展插入”,保存SQL文件到本地计算机。
b 通过FTP下载旧的网站上的所有文件 (如果可以的话,在服务器上压缩后再下载)
4 上传旧的文件到新的服务器上,覆盖新服务器上的文件。两个文件例外:
不要覆盖新服务器上的 /includes/configurephp 和 /admin/includes/configurephp 文件。
5 进入新服务器上的 phpMyAdmin 。
a 选择新数据库 (安装了新的zencart的数据库)
b 删除所有数据表。
c 导入上面 3a 中保存的SQL文件。
6 下载缓存设置同步工具(见下载区),重置缓存设置。只要上传该文件到zencart安装目录并运行(fix_cache_keyphp)即可。运行后一定要删除该文件。
7 完成。
本文介绍如何使用 Microsoft Windows NT 40 Resource Kit Supplement 中提供的工具从一个域向另一个域中复制域对象。
备注: 建议您先将本文介绍的步骤在测试环境中做一个测试,然后再将它们用于生产环境。
Resource Kit 工具包括:
Addusersexe 工具可用于在一个域和另一个域之间导入导出用户和组帐户。
Rmtshareexe 工具可用于远程创建或删除共享。
Scopyexe 工具可用来从一个共享向另一个共享复制 NTFS 文件和文件夹权限。 (不过,此工具不复制共享权限。)
Permcopyexe 工具可用来从一个共享向另一个共享复制共享权限。
Subinaclexe 工具可用来获取文件、注册表项和服务的安全信息,和将此信息在用户和用户,组和组,以及域和域之间传输。
有关 Resource Kit 工具的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
158388Useful Resource Kit Utilities for Domain Administrators(域管理员资源包实用工具概述)
向另一个域迁移用户和组
您可以使用 Addusersexe 工具向另一个域中迁移用户和组。 如要将现有用户和组帐户传输到一个文件中,请使用“addusers \\computer_name|domain_name/d filename”命令,其中“computer_name|domain_name”是包含指定域的用户和组信息的主域控制器 (PDC) 计算机的名称,“filename”是包含用户和组帐户信息的新文件的名称。
用户和组信息传输到一个文件中后,此信息将保存为用逗号分隔的格式。
这样的用户帐户信息传输并不将用户帐户密码或任何安全信息保存到此文件中。 当您使用此传输文件将用户迁移到另一个域时,所有新创建的用户帐户的密码都是空的,而且,默认情况下,会要求所有新创建的用户在下一次建立登录会话时更改他们的密码。
如要将用户和组添加到新域中,请使用“addusers \\computer_name|domain_name/c filename”命令,其中“computer_name|domain_name”是 PDC 计算机和创建用户帐户时所在的域的名称,“filename”是包含用户和组信息的逗号分隔格式的传输文件的名称。
备注: Addusersexe 工具和其他文档资料都包括在 Windows NT 40 Resource Kit 的 Supplement 3 中。如想查看此工具可以使用的其他参数,请在命令提示符下键入: “addusers / ”,然后按 ENTER 键。
有关其他信息,请单击下列文章编号以查看 Microsoft 知识库中的文章:
199878Addusers Automates Creation of a Large Number of Users(Addusers 使创建大批量用户的工作实现自动化)
245009Batch Add Accounts Without Forcing a Password Change at Next Logon(批量添加帐户而不强制在下次登录时执行密码更改)
远程创建共享
如要使用 Rmtshareexe 工具在远程服务器上创建或删除共享,请按照下面的语法来使用命令:
rmtshare \\server[\sharename[=path [/printer]]] [/grant [user[:perms ]]] [/remove user][/users:number] [/unlimited] [/remark:"text"] /delete
对上述命令语法的解释如下:
“\\server\sharename”是指服务器和您可以创建、检查、修改或删除的共享。
“/grant user:perms”语法的作用是在服务器上添加有权限的有效用户或有效组的名称,或在访问控制列表中更改用户的权限。 有效的权限包括: r=读,c=更改(写),f=完全,n=无。 您可以键入“read”,但只使用第一个字符。
“/remove user”语法的作用是删除某一用户的特定项。 此后,此用户将继承权限(与之形成对比的是“/grant user:none”,它取消用户的所有访问权限)。
“/users:number”语法是对服务器和共享有特权的用户的数目。
“/delete”语法的作用是删除“\\server\sharename”语法指定的共享。
备注: 如果共享名或路径包含空格,请将该共享名或路径用引号引起,例如: \\server\"空格"="c:\空格"。
有关其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
155449Batch Process to Create and Grant Access to Home Directories(以批处理方式创建和授予对主目录的访问权限)
复制文件和共享权限
复制 NTFS 和共享权限需要两个工具: Scopyexe 工具用来复制 NTFS 文件和文件夹权限,Permcopyexe 工具用来复制共享权限。
如要复制文件和文件夹并保留它们的 NTFS 文件和文件夹权限,请使用 Scopyexe 工具和“scopy source destination/o /a /s”命令,其中“source”是到源文件夹的路径,“destination”是到目标文件夹的路径。 /o选项可复制所有者安全信息,/a 可复制审核信息,/s可包括子文件夹中的所有文件。
Scopyexe 工具不能将文件复制到文件分配表 (FAT) 文件系统和高性能文件系统 (HPFS) 等不使用安全功能的文件系统,也不能从中进行复制。 Scopyexe 工具只复制 NTFS 文件系统安全信息。 此工具不能用来复制共享权限。
如要使用 Permcopyexe 工具将共享权限从一个共享复制到另一共享,请使用“permcopy \\source_server\share_name \\destination_server\share_name”命令,其中“source_server\share_name”和“destination_server\share_name”是到源和目标共享的通用命名约定 (UNC) 路径。
备注: 不能使用 Permcopyexe 工具来复制一个管理共享(共享名$,如 C$ 或 IPC$)的权限。 如果将权限复制到位于 x86 计算机的管理共享,则 Servicesexe 程序可能会停止响应。
迁移注册表项、服务和其他对象
Subinaclexe 工具可用来获取文件、目录、注册表项和服务的安全信息,和将此信息在用户和用户、组和组,以及域和域之间进行传输。
如想使用 Subinaclexe 工具迁移其他域对象,请按照下面的语法来使用命令:
subinacl /object_type object_name /action=parameter /action=parameter
可由 Subinaclexe 工具操作的对象类型包括:
注册表项和子项文件目录共享服务内核对象
可对上述对象执行的操作包括:
显示
更改所属权
更换对象中的所有访问控制项
更改对象的域名
将对象从一个域迁移到另一个域
示例
如要将所有包含“Domain1\Sales”的访问控制项的安全标识符替换为“Domain2\Sales”,请使用 Subinaclexe 工具和下面的命令:
subinacl /replace=domain1\sales=domain2\sales
有关这些工具的语法和使用方面的其他信息,请参考 Windows NT Server 40 Resource Kit Supplement 3 中的 Rktoolshlp 文件。
回到顶端
属性
文章编号: 301940 - 最后修改: 2001年11月2日 - 修订: 10
这篇文章中的信息适用于:
Microsoft Windows NT Server 40 Standard Edition
Microsoft Windows NT Workstation 40 开发员版
关键字: kbhowto kbhowtomaster KB301940
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
0条评论