回首AWS Simple Storage Service发布至今已逾十年,期间我们走过漫长的道路。今天的云存储早已不再是开发者的测试对象,企业已经开始在各种不同的体系架构中大规模部署云存储(不论是数据块、文件系统或对象存储),并且应用于许多领域,从备份和灾难恢复到归档与数据分析。现在甚至连主存储中的压力负载都能够运行在云端。云存储带来诸多便利,例如提高灵活性、按需付费以及近乎无限的扩展,我们还缺少什么呢?
对了,还有一件事没有解决。即便在理想状况下,你或许仍然需要花上近一天的时间来切换云存储服务商,这或将成为一种不堪重负的过程。
为什么要切换呢?原因可能会有很多,可能你发现云存储服务商的服务水平和能力无法达到要求。(例如满足应用程序或用户扩展所需的性能和稳定性。)
举个例子,你在最开始注册了云备份服务,但是后来又需要支持云端技术的灾难恢复与分析能力,或许你会发现供应商难以达到所要求的服务水平,从功能或地理位置上无法支持额外的应用场景。其次,那些在数据安全性和合规要求日益严苛的行业会发现其他的供应商能够更好地满足其业务所需。当然,最常见的原因或许是:你的服务商开始逐步提高存储访问、数据传输或其它服务的收费,间接降低了其服务的性价比。
当发现有其他的云存储服务商在这些方面有更完善的功能,你或许想要进行切换。不过这并非如想象中那么简单。
验证潜在的新供应商
那么在数据与服务迁移过程中涉及到哪些方面呢?如果你已经在云端存储了海量数据(数百TB甚至PB),那么迁移过程可能会颇有挑战性,并会让你耗时费力、大动干戈。在开始之前,首先要明确新的服务商从服务水平与功能上能够满足你的数据存储需求。例如在迁移非结构化数据时,请检查是否支持你正在或计划中使用的文件协议或对象存储访问API。服务水平协议(SLA )是否支持你的数据可用性要求?权衡整体的成本收益。使用成本计算器,以及不同供应商提供的工具来估算迁移后每个月所支付的实际费用的增减。
假如你还需要迁移应用程序,请检查正在运行的虚拟机(VM)映像或应用程序容器的可移植性,确认其是否可以被简单地迁移,或是需要重构。此外,通过小规模试验进行概念验证,从而确保新的服务商能够满足应用性能与其它关键参数的要求(如网络延迟或总吞吐量)虽然本文不会详细展开探讨有关应用程序迁移的话题,但这同样值得注意,假如你正在或打算迁移在云端运行应用程序,请将此包含在规划以内。
选择一种迁移方式
一旦你感到某个新的服务商能够满足各方面的要求,准备规划迁移工作。请准备回答以下基本问题:
- 有多少数据要迁移?
- 根据已知条件,这需要花费多少时间?
- 在数据迁移过程中,用户是否仍需要存取访问?假如是的话,你如何确保正常访问并兼顾成本。
- 如果迁移失败或新的服务商的服务能力低于预期,你可以有哪些追索方案和应急计划?
这些问题的答案决定了你在何时,用哪种方案来进行迁移。随后评估新供应商提供的迁移方案,通常可以归结在以下几个方面:
1、可选的方案中应当包含经过公网的加密数据在线迁移,而且通常使用“强加密”的方案,例如安全FTP(基于SSH-2)或类似技术。
2、服务商应当允许使用虚拟专用网(VPN),通过安全专用连接的在线传输。
3、服务商应当支持物理介质(例如便携式存储设备)的海量数据传输。
4、服务商应当能提供相关设备、第三方工具或服务来协助迁移。
大多数人会选择采用这些方法之一,不过如有需要,你自然当然可以同时选用多种方案。
第一种方案在传输相对较小的数据集合时效果较好,其受到互联网的阻塞影响,并会消耗大量带宽。即使只有TB级别的数据传输也可能需要几天或几周才能完成。值得注意的是,虽然数据传输成本不会很高,但当前的服务商仍有可能对额外的数据传输收费。
计算数据迁移成本
在云存储服务商之间迁移云端的数据时,通常会产生这三类费用:
数据传出(出口)成本。根据你从服务商站点传输到互联网的数据量,主要的云存储服务商,如Amazon Web Services (AWS)和Azure目前都会对前150 TB的数据收取7美分~9美分/千兆字节的数据迁移费,其中第一个1 GB到5 GB的免费。每位服务商都提供相应的折扣层级,每千兆字节的价格随着数据量跨越到下一层级而逐渐下降。 AWS还提供传输加速服务,每千兆字节额外加收4美分,以便客户通过不太拥挤的边缘位置路由传输。
数据传入(入口)成本。通常主要的服务商都不会对传入和上传的数据量收费。并且短期内我们不认为这种情况会有变化,但你在开始迁移之前还是应该再次确认。
实际迁移数据的成本。无论是电子传输还是通过物理介质的方式运输,都会产生费用。对于前者,主要成本基于所消耗的带宽计算;如果通过VPN传输,则服务商会对端口的速度额外收费。假如通过硬盘驱动器迁移数据,你需要支付介质的运送或快递费用。在使用专用设备的数据传输服务时,你同样需要额外支付费用,使用第三方工具或服务亦然。
所幸的是,主要的云存储服务商和独立软件供应商通常都会提供在线成本计算器或指南,有助于数据传输成本的估算。
第二种方案可以让你更快速地完成迁移,但在面对海量数据迁移时可能会代价昂贵。这种方案需要与主流的公有云存储服务商协作,如AWS或Microsoft Azure。这些服务商与网络或数据中心服务提供商(如Equinix)有着紧密的合作。你可以直接连接到网络服务商,从而为你的云存储帐户建立起专用VPN连接。然后,数据将通过网络服商从现有的云服务商安全传出,迁移到新的云服务商那里。
这其中的主要优点是你可以建立起安全、可靠的连接,避免了云存储服务商之间这段互联网带宽不稳定的影响。其最主要的缺点便是VPN连接产生的成本,这可能会非常昂贵的。例如,AWS Direct Connect VPN连接服务同时按每个端口每小时,以及每千兆字节出口费用(基于速度)双向收费,而Azure ExpressRoute服务则按端口速度收取每月的费用。如果你确实需要快速传输关键的数据,那么这种成本可能是值得的,但在大多数情况下,这种方案的性价比有待商榷。
当计划将海量数据传输到新的服务商时,请酌情考虑第三种备选方案。有时候由于带宽有限或成本过高,通过网络上传下载数据的方案难以执行。你首先从现有云存储服务商那里取得数据,通常是发送一块硬盘驱动器给到服务商,并在线创建导出作业,指定所要传输的数据。随后服务商会将数据加密后迁移到磁盘上,并将其返回给你。这样你便可以将磁盘发送到新的服务商那里完成上传。有时你甚至可以直接指定原服务商将磁盘发送到新的服务商那里,简化传输步骤。这种听起来效率低下的过程通常非常可靠。 Azure与AWS提供的磁盘导入/导出服务便是使用物理介质进行传输服务的典范。
对云存储服务商而言,他们显然没有动机来推动你把数据迁移到其他服务商那里。因此,你可能会发现该过程比预期中更为繁琐和昂贵。这也催生了许多第三方推出有助于迁移工作的工具和服务(参见“有助于在云端实现数据迁移的第三方供应商”)。除了这些第三方提供的方案之外,一些云存储服务商还提供文件同步和共享,或者复制和恢复服务,以便于数据传输到你的数据中心里的服务器上。通过这种方式,文件同样可以迁移到新的云存储服务商那里。如有疑问,请与你的当前和目标云存储服务商联系,了解他们所提供的工具和服务,以帮助简化或加快数据迁移工作。
有助于在云端实现数据迁移的第三方供应商
显而易见的是,主流的云存储服务商往往不愿意你将数据导出到其他服务商那里。不过,一些第三方为填补这块空白市场做出了卓有成效的努力。
Mover能够建立起20多家云服务商,Web服务和数据库之间的链接,并且提供了在云端托管的迁移服务,大幅简化了文件的迁移工作。 SkySync则支持Microsoft Azure和AWS云之类的公共云服务商与本地存储之间的文件迁移或同步工作。其他供应商,如Cloudyn,有助于在迁移期间监控、管理云端的文件和工作负载。 此外,你还可以查看AWS和Azure的应用市场,以获得更多有助于迁移的工具。
避免被云服务商锁定
你能做什么来避免被云技术服务商所锁定么?我们相信以下准则将有所帮助:
严格审查你的供应商目录,以减少不得不在未来进行迁移切换的风险。作为尽职调查的一部分,确定他们是否有能力提供你今天需要,并能扩展至未来所需的云端数据服务。他们能否满足你对可用性、性能、安全性和其他关键服务水平指标的要求?仔细查看服务水平承诺上的各项条款,并花费一个月时间进行试用、评估。对所选择的使用场景,其成本是否合理?与同行相互切磋获取他们与供应商之间交往的经验。
综合考量在需要更改服务商时,存储在云端的数据和应用程序的可移植性。数据存储的格式是否便于迁移?同样,所运行的虚拟机映像或应用程序容器是否相对便于移植?大部分云存储服务商运行定制的hypervisors(基于Xen,KVM等),这意味着虚拟机映像可能需要在传输之前进行修改,转换为开放的虚拟机格式可能会有所帮助,但是当运行大量虚拟机时,整个迁移过程便会需要不少额外的工作。容器往往更容易移植,不过当前企业往往只会有少数应用程序会运行在容器中。
查看了解服务商为将数据迁出云端所提供的工具,服务和相关成本。综合这些内容可以更精确地决定你是否能够以经济有效的方式,将数据资产迁移到新的服务商那里?是否可以借助第三方工具和服务来填补任何空白?思考所有可能的迁移方式,并确定需要投入多少IT人员的工时和其它资源。考虑到将在新的供应商那里存储的数据量,你能承担起云到云端的迁移项目吗?
假如云端所存储主要数据对你企业的业务至关重要,请谨慎考虑如何在迁移期间持续提供访问。例如,你可能希望阶梯式完成迁移工作,将最重要的数据加速传输到新的云计算服务商那里,或者采用快速的方案在数小时内执行、完成迁移工作。
通过云存储网关或类似平台进行数据分层,从而避免云端的关键业务数据迁移时受阻。运用混合存储的方法将主要数据和活跃的(面向事务)数据存储在数据中心中,而活跃度较底或静止(二级或三级)数据可能存储在云端。数据分层可以帮助避免在云计算服务商之间迁移“核心”或“关键”数据时出现的麻烦,从而产生高昂的代价。