服务器和应用系统迁移方案

服务器和应用系统迁移方案

一、迁移方案总体思路

新旧系统的迁移是一个整体系统工程。迁移必须保证用户系统建设的相关要求,在迁移过程中,我们需要重点考虑几个问题:

1、数据迁移如何保障“业务中断停机时间”。业务中断对用用户无论是生产环境还是测试环境均存在较大的恢复风险,这样的风险特别是对于时间敏感型数据还是对于数据完整性业务都是不可以接受的。我们基于这样的要求,考虑到如何将停机时间最小,能否实现0停机的建设目标?

i. 对于服务器操作系统而言,我们可以采用P2V的方式,利用操作系统的Volume Shadow Copy卷影副本复制服务作为基础,来实现在旧系统环境下的系统无修改,无停机的情况下,将数据和应用软件、操作系统环境、系统环境变量等全部以“快照”形式迁移到新服务器中。由此实现服务器环境的整体迁移。

ii. 对于应用IIS和其他应用服务器来说,我们可以基于应用服务器的动态业务扩展集群方式,来实现服务器不停机环境下的增加业务节点操作,这样可以实现应用服务器“热添加”到新环境中的故障转移/负载均衡集群系统中,在部分应用服务中我们可以使用session会话复制来实现旧系统的全局环境变量和会话请求状态也迁移到新环境中来。考虑到会话复制和状态的快速实时,我们可以采用会话内存复制,考虑到会话复制和状态的安全性,我们可以采用会话数据库复制管理。

iii. 对于数据库而言,我们可以基于数据库本身自带的数据库镜像技术、数据库日志传递技术来实现各自的分库、迁移库的构建,数据库镜像技术可以让我们不但保证数据库迁移的不停机,而且还可以保证万一迁移中出现停机故障也不影响源数据库,而日志传递技术构建的迁移可以保证系统数据库迁移以异步方式进行,这样可以让我们的系统环境在网络出现故障的情况依然可以进行迁移任务窗口的正常工作。

2、迁移涉及到的除了应用、实例、数据库的操作以外,还涉及到迁移前规划、迁移后测试的完整性测试。这些测试包括但不限于数据一致性测试、数据完整性测试、应用会话状态完整性测试、连接中断测试、数据恢复测试。只有这样才能保证迁移的安全性和有效性。

二、服务器硬件环境迁移方案

1. 迁移评估

迁移前,对迁移方案进行评估以确保迁移成功。首先需要勘察现有系统的架构和资源使用状况,评估过程必须包含以下信息和内容:

 现有系统支撑的服务数量以及在服务器中的分布情况

 现有物理服务器资源占用状况,包括CPU、内存、磁盘和网络连接状况,为保证迁移成功,目标虚拟机规格应不低于原物理机标准

 当前的物理环境是否支持虚拟化,是否支持资源扩展,因为在迁移之前须在物理服务器上完成虚拟化

 对当前的存储容量和资源利用率进行评估,需在目标系统中规划好迁移需要的存储空间。需明确现有存储如何利用,比如有些服务器是在本地磁盘上创建系统盘和用户盘,有些服务器则在本地磁盘上创建系统盘而在SAN/NAS上创建用户盘。

2. 迁移计划

通过对现有网络环境的评估,我们对现有资源利用率,服务以及系统需求非常清晰。评估后才能开始对迁移进行计划,步骤如下:

一、确定迁移步骤,包括所有服务器的迁移先后顺序,其顺序按风险的高低降序排列。

二、确定备份方案,由于现有系统会被加固,某些服务器通过虚拟化重复利用,而在虚拟化前需要清除所有的数据,因此需要对这些服务器进行备份保证服务的连续性。

三、确定并准备好迁移所需的工具,包括工具在迁移中必备的一系列功能和使用工具所需具备的网络环境。

四、在实际迁移开始之前确定额外的测试环境,该测试环境能够引导测试从而确保迁移成功。因此,测试环境需明确设计的服务器和存储数量。

五、规划网络环境,由于网络中的服务器各处不同位置,因此在迁移中需考虑到网络连接情况、数据备份方式,以及网络流量来源,确定网络流量是否会引发网络拥塞

六、确定迁移周期以及参与人员,包括迁移起止时间,团队能力建设以及团队成员的角色。

3. 测试计划

迁移计划后,执行小批量的测试迁移方案,这里会涉及到首批迁移的测试和审核,步骤如下:

 准备用于测试迁移的测试系统环境,在测试时,第一批服务器将会迁移到该系统环境中。

 安装并核实迁移工具,此时要执行第一批服务器的P2V迁移。

 对第一批服务器,需分析存储系统,不管该服务器在存储迁移中采用本地磁盘存储还是远端SAN/NAS存储系统。

4. 迁移测试

在第一批服务器和服务的小批量测试迁移后,需对迁移后的服务器进行测试,包括单元测试和性能测试。

5. 迁移实施

在迁移实施过程中,所有的服务器都会被迁移到虚拟化系统下。执行步骤如下:

 确保批量迁移的整个网络环境已准备完毕,并通过迁移工具完成源系统和目标系统之间的连通。此处的目标系统属于中转系统。

 对迁移系统进行性能审核和健康检查,如果系统状态监视则停用旧系统并将其服务暂时转移到新的虚拟化系统中。

 进行利旧,对于一部分可用的旧硬件可在服务器虚拟化中重新再利用,一些软件资源需扩展,如内存和硬盘。这些服务器构成最终的虚拟化基础设施,即最终系统。

 最后,在目标系统和最终系统之间进行V2V迁移。这样,最终系统完成了现存硬件的重复利用。

a. 服务器虚拟化前进行备份

为了对旧系统中的物理服务器进行虚拟化,需考虑服务器虚拟化带来的影响。例如,现有服务器的重复利用,服务器虚拟化时会对这些服务器的CPU,内存以及硬盘资源进行再利用,然而这些服务器上存在某些服务仍在运行,若无备份则会影响现有业务。因此,在执行迁移和虚拟化之前,必须先对需利旧的服务器进行备份。

迁移步骤如下图所示。

提供物理备份服务器,并已进行虚拟化,数据和服务器已备份到虚拟化系统。

 首先,对于要被迁移的服务器上,一般会存在多种服务正在运行,而且这些服务器在迁移评估后认为在虚拟化场景下可再利用的。但是,迁移过程中不允许存在较长的停机时间,因此需要准备一台采用虚拟化平台的备份虚拟机,通过P2V将该服务器备份到虚拟机上。

 备份完所有需要进行虚拟化的服务器之后,这些服务器上安装虚拟化软件进行虚拟化,根据评估阶段确定的容量规划,在虚拟化平台上创建相应规格的虚拟机,其计算资源用于承接旧系统中的服务。

 准备好所有的虚拟机后,规划和安装相关迁移工具,将备份系统中的服务迁移到虚拟化系统的虚拟机中。虚拟机迁移是指将备份的虚拟化系统中的应用服务迁移到最终的虚拟化系统中。

 虚拟机迁移完毕后,要对这些服务进行测试,最后停用旧系统,所有服务切换到虚拟化系统中。

b. 迁移的详细操作步骤

迁移的具体步骤及描述如下图所示:

A. 在评估阶段,虚拟化和迁移之前需收集的信息如下:

 性能统计:包括CPU使用率,内存使用率,硬盘IOPS和硬盘使用情况;

 物理服务器配置:包括CPU规格,内存容量,硬盘容量

 统计物理服务器部署位置,分析是否支持虚拟化,累计支持虚拟化的服务器数量,并规划出虚拟化中需新增的硬件情况;

通过上述无代理收集和代理收集两种场景收集当前系统的使用和配置情况。可采用华为信息收集工具或者第三方工具。

B. 分析现有服务的依赖条件,对当前系统进行备份。

上图描述了一种应用系统下的依赖关系,可作为迁移参考,确定所有服务器的迁移优先级顺序。

在确定各服务的依赖条件后,对需进行虚拟化的服务器进行备份。具体备份过程参见本小节迁移实施方案中 “服务器虚拟化前进行备份”部分的内容。

C. 容量规划和虚拟化执行

根据当前的资源使用和需求情况,计算虚拟化所需的容量。 

D. 规划应用服务 

在华为虚拟化解决方案中,同类虚拟机部署在同一个计算资源池中,在同一个池中可相互共享存储/计算资源,一个集群的故障不会影响其他资源池。

E. 虚拟化规划和虚拟机分配

建立虚拟化平台后,要准备最终的迁移资源。迁移前,如果服务器a具备双核CPU2G内存,那么在虚拟化平台中就创建一个2/2G内存的虚拟机,并分配相应的硬盘。

F. 规划迁移工具

采用迁移工具从物理或虚拟的服务器向最终的虚拟化系统中进行磁盘复制。

G. 通过工具执行在线迁移

准备好源系统,目标虚拟机以及目标系统后,决定迁移时需使用的迁移工具和迁移策略。

H. 迁移测试

迁移后,需进行测试来验证迁移是否成功,测试场景如下:

 应用服务迁移后对虚拟化基本功能的监测;

 迁移前后应用服务的特性功能是否几乎相同;

 虚拟化系统的性能监控;

 ….

I. 停用旧系统

截至目前现有的服务器已经被虚拟化和重复使用,其他一些不支持虚拟化的服务器上对应的服务也已经迁移到虚拟化平台,那么现在可将应用服务切换到虚拟系统并停用旧系统,其步骤如下:

三、应用系统数据库迁移方案

1. 应用服务器迁移到群集环境

为满足企业不断的成长需求,实现企业服务器的高可伸缩性、高可用、高可靠性和高性能,提升服务器的SLA,Microsoft到目前为止,提出了五种解决方案:

我们对于IIS等应用环境以及.net应用程序框架我们提出构建IIS环境的NLB群集,将当前系统不停机加入到NLB群集中,使之成为群集中的一个节点,而新环境则为另外一个节点。实施完成后再退出此迁移群集,将新环境加入到新的构建的NLB群集。

微软的网络负载平衡可以提供最多32台主机的负载平衡,当我们的Web站点需要分担更多用户访问请求的时候,负载均衡无疑是值得考虑的一个解决方案。当然NLB也有相应的限制,像广域网环境中,我们就不能使用NLB进行设置,因为其网络不允许使用同一个MAC地址,也就违反了NLB的基本要求。
  在安全方面,除了我们进行的端口规则设定,Windows 2003 Server本身基于TCP/IP 堆栈的集成是动态的,不用进行任何人工干预,这种设置有效的防止了DOS攻击等恶意攻击。除此之外,企业结合自身的网络安全,确保NLB站点的高效运作。

NLB不但能实现均衡负载,而且还能实现多种形式的冗余。NLB主要用于那些文件改动不大,并且不常驻内存的环境,比如WEB服务、FTP服务、和VPN服务等。NLB不适合用于数据库、邮件等服务,因为不能保证每个节点的数据是一样的。

当用户访问集群的时候,集群能将访问请求分摊到集群中的每个服务器上,以达到均衡负载的效果。这些服务器被称为集群节点。在负载平衡中,每个节点的文件一般都要求是一样的。这样每个节点返回给客户的结果都是一致的。一般来说组建一个NLB要求至少两个节点,其中一个节点不能使用,这全部负载将落入到剩下的那个节点上,即全载。Windows server 2003 最多支持32个节点。节点越多,可用性,可靠性就越高。

NLB能提供三种冗余功能,软件冗余、硬件冗余、站点冗余。

基于NLB集群的Web网站

数据库设计

    1.MSCS,提供后端服务与应用程序的容错移转,可提升系统的可用性。常见的应用有SQL Server与Exchange Server等。

    MSCS是由客户端来决定由谁来处理服务请求,所有服务器共享一个共享存储器来储存会话状态。当主动服务器挂了,则继续由被动服务器接手。被动服务器会从共享存储器取出会话状态,继续未完成的工作,以达到容错移转的目的。

    2.数据库是数据管理最有效的手段,要使用它来高效地管理和存取各种数据资源,必须设计出结构合理、功能完善的数据库。数据库设计时一项复杂的工作,它是一项涉及多学科的综合技术,要求数据库管理员既要懂得数据库知识,又要充分了解应用领域的专业知识。

    在进行数据库设计时,要根据企业组织中各类用户的信息要求和处理需求来对数据库进行设计。数据库设计的主要内容包过机构性设计和行为特性设计,设计的过程主要包括需求分析、概念设计、逻辑设计和物理设计四个阶段。

   (1)需求分析

    需求分析就是对现实世界要处理的对象进行详细调查,在了解原系统的概况、确定新系统功能的过程中,获得用户对数据库的数据要求、功能要求、安全要求和完整性要求。

   (2)概念设计

    概念设计时将需求说明中关于数据的要求,综合为一个统一的概念模型。概念模型是表达概念模型设计结果的工具,是设计人员对系统的抽象的概括,它能表达用户的需求,且独立于支持数据库的数据库的管理系统和硬件系统。

   (3)逻辑设计

    概念设计的结果是得到一个与数据库的管理系统无关的概念模型,而逻辑设计的目的是吧概念设计的概念模型,转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。

   (4)物理设计

    物理设计的任务是确实数据库的存储结构,主要包括确定数据库文件和索引文件的记录格式和物理结构,悬着存取方法,决定访问路径和外存储器的分配策略,实现完整性和安全性以及程序设计等。

对于一个比较大的网站来说,数据库集群也应该是以集群的方式建立,这样可以增强网站的性能,提高网站的可靠性。数据库可分为三类:故障切换集群、分布式数据库系统、共享磁盘系统。

NLB集群系统的总体设计

(1)环境下实现Windows 2003服务器集群;

(2)在域内环境内的windows2003 web server群集;

(3)利用IIS搭建了一个WEB站点,域名为dzx.com。由于业务的逐渐增加,网站速度也越来越慢,而且经常出现故障,为公司的利益带来了很多的不便;公司决定使用两台WEB站点为客户机提供访问。因此采用了网络负载均衡技术。

NLB集群工作原理及算法

1.NLB的工作原理

    当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点,然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。 如何将请求数据包发送到所有的NLB节点是NLB运行的关键之处,单播和多播这两种操作模式就是用于实现这一需求。NLB不支持单个NLB群集中的单播/多播的混合环境;在每一个NLB群集中,该群集中的所有节点都必须配置为多播或单播,否则,此NLB群集将无法正常工作。 

2.负载平衡算法

    一个负载平衡算法都包含以下三个组成部分:

    策略:制定任务放置策略的制定者使用的负载和任务量,以及分配的方式。 传送策略:基于任务和计算机负载,判定是否要把一个任务传送到其它计算机上处理。 放置策略:对于适合传送到其它计算机处理的任务,选择任务将被传送的目的计算机。 

    负载平衡的上述三个部分之间是以不同的方式相互作用的。放置策略利用策略提供的负载,仅当任务被传送策略判定为适于传送之后才行动。

    总之,负载平衡的目标是:提供最短的平均任务响应时间;能适于变化的负载;是可靠的负载平衡机制。

(1)策略

    人们用来描述负载采用的参数有:

    运行队列中的任务数、系统调用的速率、CPU上下文切换率、空闲CPU时间百分比、空闲存储器的大小(K字节)、1分钟内的平均负载。

    对于这些单个的负载描述参数,第(1)个,即采用运行队列中的任务数作为描述负载的参数被证实是最有效的,即它的平均任务响应时间最短,并且已经得到广泛应用。但是,假如为了使系统更全面而采集了更多的参数&#x

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值