什么是虚拟架构优化(VIO)?

什么是虚拟架构优化(VIO)?,第1张

文本Tag: 虚拟化 在我们周围,我们看到许多企业的存储管理员正遭遇悄悄的变化。虽然IT人员每天的工作是和无形的数据打交道,但是长期以来IT人员总是可以方便地找到关键设备的"实体"和访问性。当问题发生时,管理员总是可以确定哪些交换机端口需要检查,哪台服务器可能是问题的所在,哪个HBA(主机总线适配器)需要查看,以及其他需要进一步检查的物理设备。但是在今天的数据中心中,这种便利性正在消失。 这种情况发生的部分原因是虚拟化。在现在的虚拟化浪潮中,一马当先的是服务器虚拟化,其他的变体还包括应用程序虚拟化,网络设备虚拟化,I/O虚拟化,存储虚拟化等。 同时,如今的IT架构已经扩展到超出控制。系统之间存在越来越高的互相依赖性,而且这些系统经常是在性能上限的情况下运行。对于一个特定的应用程序,其依赖性可能横跨多个应用程序,多台服务器,多个SAN(存储局域网)架构,多个I/O适配器甚至多个数据中心。在这些系统中,如果一个单一组件的性能上限被打破,通常情况下这些系统并不会出现性能逐渐下滑,但是会出现延迟时间变长,性能不断地变化和超出控制,I/O尝试越来越延迟,出现不断放弃并重复的I/O尝试,堵塞控制无法将这些I/O尝试予以排队、高速缓存或很好地控制。此外,由于如今的系统非常大,超过了传统管理工具所能管理的范围,因此传统的管理工具很快变得过时。面对日益增加的复杂性,以及任何变化都可能带来的灾难性后果的情况,许多管理员对此感到很无助。 缺少工具 无论系统是物理的还是虚拟的,现在都很难找到能够评估整体情况对架构进行细节分析的工具。管理员缺少足够的工具来获取分析数据,以便进行规划、性能管理、路由监视、合规或问题查找。 那么管理员现在是如何应对这些挑战的呢?从我们同终端用户的交谈中,我们估计现在85%以上的企业在管理并决定虚拟架构的时候依赖于它们最初对已知"好"设置的测试,或是纯粹单凭经验,而不是实际数据。这使得规划活动实际上变成了浪费,出现了资源过度配置,SLA(服务水平协定)无法得到保障,问题解决流程混乱,灵活性受限等情况。此外,随着设置随时间而变化,管理员无法确定他们现在的架构功能。我们发现80%以上的VMware用户还没有部署VMotion,而且这些用户在修改虚拟架构之后经常无法确定性能所受到的影响。 管理员所面临的挑战就是如何持续一致地获得关于对架构有意义的数据,在这方面,IT管理员就好像在未知的道路上驾驶一辆挡风玻璃一片模糊的汽车。但是时间正在改变这一切。 虚拟架构优化 如今,许多越来越复杂的技术可以帮助IT管理员扫除这方面的迷雾。这些解决方案统称为虚拟架构优化(VIO)。VIO工具能够访问整个虚拟架构,为管理员提供必要的数据来进行明智的决策,让管理员很好对每个架构层面(网络、服务器、存储以及应用程序)上的容量、利用率、性能进行管理。 在这个领域中,有些解决方案是专门解决架构中某一方面问题的,比如容量、分析等。在这方面,不仅有比较成熟的解决方案,而且还有来自新厂商的产品。这些产品和解决方案包括BMC的VSM 解决方案,Novell的PlateSpin,惠普的VSE,VMware的Capacity Planner,Virtugo的virtualSuite, Hyperic,TwinStrata的 Clarity AP,以及Computer Associates的 ASM。虽然这些解决方案在路由规划上有一席之地,但是它们无法满足如今的虚拟架构管理需求:架构分析数据。 一些其他的解决方案可以让管理员可以实时或接近实时地监视和管理架构的多个方面的问题。这些解决方案提供了整合的监视和分析,可用于全局地优化虚拟架构或查找解决虚拟架构的问题,它们的管理范围横跨多个方面--从应用程序一直到磁盘。此外,这种解决方案提供了精细的数据以供决策制定使用。如果没有对性能的智能评估,容量和资源利用的规划只能在假设的基础上进行,而这种假设可能不适用于其中的某个系统,且实际情况随时都可能发生变化。 在Taneja Group看来,这种实时或近实时的以性能为基础的分析工具对于虚拟架构的构建和管理来说是非常必要的。 在这个领域,厂商及其解决方案有:Virtual Instrument的VirtualWisdom,Akorri的BalancePoint,Onaro的SANscreen VMInsight以及BlueStripe的FactFinder。 为什么需要虚拟架构优化 VIO是虚拟架构运营的关键一环,但是这些新兴的VIO解决方案会比其他解决方案更好吗?在我们看来,它们构建了更为综合的数据集,而这种数据集可以作为虚拟架构管理的基础。为了澄清这一点,我们提出了五个主要的战略问题,这五个问题是每个终端用户在选择虚拟架构管理工具的时候都应该考虑的。这些问题可以帮助用户确认VIO技术所能带来的好处,并评估它们的VIO或管理平台在解决虚拟架构问题上的表现。 我是否可以有效地规划、设计、决定我的架构,让架构可以最充分的利用现有的系统并获得100%的预想效果? VIO将在架构规划和操作修改上减少运营成本和复杂性。如今,有很多不必要的时间被花在了初始设置的确认上,而且每次修改完成后都需要对潜在性能和利用率的影响进行评估。VIO提供了完善的数据集,让管理员可以很方便地且一目了然地了解架构功能及其影响,且VIO还提供了如何优化设置的信息。 我是否可以很快地找到性能问题的根源所在,并很快发现系统环境所发生的事件或变化? VIO解决方案不仅可以为组织提供正确的信息以避免误设置,而且VIO工具还可以提供实时或近实时的可视性,让管理员可以一目了然地观察环境所发生的变化,让管理员可以迅速确认性能异常及其根源所在。VIO解决方案可以抓取历史数据,提供审计跟踪,确认问题发生的时间,以及系统所发生的情况。 我是否可以确定地知道我是否合理地利用了服务器、存储、虚拟机及其他架构? 适合的VIO解决方案可以方便地确认出运营中的峰值和低谷,避免过度配置,从而节省资本成本。这些解决方案可以协助管理员动态地、智能地平衡整个架构,确保即使是最小的架构也不会遇到性能问题。 我是否可以确定地知道虚拟技术是否对我的架构产生了负面影响,我是否可以在没有厂商帮助的情况下确认出问题所在? VIO解决方案可以为你提供所需的数据,确定哪些系统是问题所在,以及这些系统是否对你的架构产生了有害的影响。 我是否可以安全地实施并利用虚拟技术的全部功能,以提高我的操作效率,改善IT功能? 像VMotion这样技术之所以未能广泛推广,是因为IT人员不知道使用这种技术后会发生什么。如果没有正确的支持性数据,那么这种自动化架构和政策有可能是危险的地雷,它们有可能不明智地对架构采取错误的操作。这也就是为什么针对VMotion这样的自动化、存储变化、访客重设置、I/O管理等解决方案的策略和工具没有得到广泛利用。但是VIO可以提供足够的智能性,从而避免潜在的灾难性后果。VIO对环境所发生的变化和操作提供了预测性的描述,并确保事情总是在预料之内。 VIO帮助实现更好的控制 如果你对这些问题的回答是"不是",或者觉得这些问题听起来很熟悉的话,那么你很可能没有很好地控制你的架构,就好像在未知的路径上驾驶一辆挡风玻璃一片模糊的汽车。这样做会使你浪费时间、精力、资源,而这种代价可能是很高昂的。目前为止,市面上的VIO解决方案可以帮助管理员拨清迷雾。这些解决方案采用了连续一致的,以性能为中心的分析手段,能够指出数据中心各层(从应用程序到存储磁盘,无论是应用程序、虚拟机、操作系统、网络、存储或SAN厂商都可以)之间设置、变化以及事件的关联。VIO所使用的数据通常是通过网线直接获取,这些集中的数据提供了跨域性能和事件的信息,因此VIO可以作为一个主监控器,实现操作监视、设置浏览等功能,还可以在整个数据中心中触发变化。 VIO不像生命周期管理、设置管理这样的点解决方案,这些解决方案有可能因为非智能的自动化操作无意中产生负面影响,VIO协调的是整个数据中心。让我们来看看VIO解决方案的核心功能,然后再看看不同产品的差别在哪里。 1:通过实际数据,给出详细的可视性 VIO解决方案能够抓取实时数据,为全局架构管理提供最好的支撑,其数据之详细,可以抓取任何时间内的变化,并提供必要的详细数据来检测并纠正因变化所引起的问题。在抓取详细数据这方面,VIO产品有几个点和其他产品不同: 首先,管理员必须评估该解决方案所给出的数据详细程度。定时取样,加上先进的算法,可以为规划奠定很好的基础,但是还不能为问题解决提供实时的可视性。市场上有越来越多的解决方案可以获取实时数据,比如Virtual Instrument的VirtualWisdom。 其次,管理员必须评估这个解决方案是如何获取数据的。一些VIO产品依赖于代理端的方式,一些则主动通过可用的API(应用程序编程接口)获取数据,一些通过网线获取数据。对于每种方式,用户都必须考察其复杂性,持续管理,数据详细性,以及架构中需要传输的潜在数据集的大小。 2:对整个虚拟架构的全局视角 VIO解决方案的分析范围必须覆盖企业的每个层。Taneja Group的分析师经常在文章中提醒读者跨域关联技术越来越重要。在VIO下,跨域关联是采取智能化行动的基础,这样才能避免对结果的胡乱猜测。管理员得到这种综合信息,才能采取行动来纠正错误,比如过多的LUN(逻辑单元号)传输,而不必担心它们会产生另一个问题,比如过多的交换机端口传输。但是VIO解决方案的综合性数据的能力也各有不同,有时限于特定的操作系统或存储设备。这种受限的解决方案无法统观全局,但是它们也有其他优点,比如可以通过复杂的算法对系统行为特征进行检查。用户可以评估不同方式的优缺点,观察这种解决方案是否可以为用户带来他们所需的架构某一方面的可视性。 3:可操作的关联数据 全局可视性是一回事,提供可操作的数据就是另一回事了。VIO解决方案在这些方面也各有不同:提供多少数据,从哪些系统中抓取数据,这些数据可以激起或触发什么类型的活动。从网线上抓取数据的解决方案在这方面有自己的优势,这种解决方案可以看到环境中所有的事情,而不仅仅是各个节点的数据传输或性能。当一个解决方案是建立在实时数据基础上的时候,就可以让用户深入了解系统性能,简化问题解决的方式,实现对SLA或合规活动的审计。 4:可扩展性和互操作性 最后,各种解决方案与企业系统的整合深度有所不同。VIO产品在自动触发活动的能力上也有所不同。此外,具有适合功能的实时的VIO解决方案可以提供正确的数据和API来实现对其他工具(比如惠普Openview,IBM Tivoli,CA Unicenter,VMware vCenter Server或定制脚本)的更好利用。用户必须评估他们需要VIO和其他技术整合到什么程度,这些技术包括存储管理工具、虚拟机、虚拟交换机等。寻找符合你需要的可扩展性。 可视性 一些名为VIO的解决方案给用户提供的是自动导航架构,而没有为用户提供详细的数据。用户仍然无法看到周围发生了什么,但是这些厂商可以提供管理架构,帮助用户自动化路由活动,并保持对政策和最佳实践的遵守。不幸的是,用户仍然缺乏关于数据中心实际情况的详细的可视性。 以性能管理为导向的VIO解决方案可以为用户拨开迷雾,能够为用户提供关于数据中心各个方面的有用的关联数据。如今产品之间的差异化在于数据的详细程度,以及厂商是如何将这些细节转化为可操作的数据集。厂商将细节转化为可操作数据集的途径可以是为管理员提供有用分析或总结,或是整合其他系统并自动采取行动,或是两者兼有。 在Taneja Group看来,虚拟架构优化将成为为下一代数据中心定义功能的关键技术。虽然如今该技术是只是提供实时智能性,为架构行为和反应提供基础,但是该技术最终将推动在整个数据中心的各个系统之间实现更好的协调,并帮助实现更加自动化、更加具有弹性的计算环境,以便更好地回应不断变化的商业需求。这些技术的未来潜力很大,它们提供了关键的可视性。从我们的角度看,这些解决方案是所有虚拟化战略的基石,在所有数据中心管理工具集中都应该包含它们。

游戏服务器被攻击都是很常见的,特别是游戏新上线时,都要承受住玩家突然猛增,被攻击等等。如果承受不住可能会直接宣布游戏倒闭。那么游戏服务器怎么防御?

第一、确保游戏服务器系统安全。

服务器管理维护人员需要对服务器所有的项目进行检查,查看访问者是从哪里来的,然后查看网络和日志,通过日志分析有哪些可疑的流量。此外将一些不必要的服务及端口进行关闭,限制一些SYN半连接数,确保系统文件是最新的版本,然后系统的版本一定要更新到最新,将一些漏洞打上补丁。

第二、在骨干节点设置防火墙。

防火墙可以有效地抵御DDOS攻击,与其他服务器一样,高防服务器也需要设置相关的防火墙,对于一些攻击流量,可以牺牲一些主机,将一些恶意流量引导出去,保证游戏服务器的正常运行,同时处理这些恶意流量。

第三、接入专业游戏高防

接入专业游戏高防,通过与具备强大安全防护能力的安全厂商进行合作,在短时间内补齐短板,提升对抗能力,不仅可以防御各种DDOS和CC攻击,同时还能帮助游戏加速,从而更好的优化玩家的体验。

企业应用系统架构优化方法

系统优化是一个全面而复杂的工作,很难通过某一方面的提升而获得很好的效果,也很难在一朝一夕完成系统的全面优化,每个系统都有其特性,需要综合分析综合考虑才能获得比较好的效果。 我下面为大家整理了一些企业应用系统架构优化的方法,欢迎阅读参考:

1 实现动静分离

所谓“动静”分离,就是将静态资源如图片、CSS、Js等和动态资源如JSP、Servlet等进行分开的处理,通过使用不同的服务器,从而加快页面的响应速度,这是目前互联网应用最常用的方式之一,但是在企业应用端相对应用较少。

动静分离至少有两个方面的好处,一是提高了静态资源的处理速度,因为应用服务器处理静态资源的速度—般都不如专业的web服务器,第二个好处就是减少了应用服务器的负担,应用服务器专注于处理动态请求,这对系统的稳定运行是有很大的帮助的。

要实现动静分离,有两种方式,一种是在加载静态资源的HTML语言中,将地址指定到不同的IP/域名上,实现彻底的分离。这种方式需要在设计之初进行考虑,并不适合优化项目,因为这种修改会产生很大的工作量。第二种方式是通过分发器,拦截对静态资源的访问,将动态资源转发给后端的应用服务器,实现动静分离。这种方式的好处是不需要改动现有的代码,仅需要做部署方式故调整,增加web服务器进行静态资源的处理。示意图如下:

目前转发器比较多,既有老牌的Apache Web Server、有性能卓越的Zeus,也有目前如日中天的Nainx,不同的项目可以按照各自的需求进行选择。

2 使用缓存技术

缓存技术是巨型项目、超大型项目中最重要的技术,范围也比较广,从前端的页面、应用中的数据、数据库本身等均可以进行缓存,每个方面使用的技术也千差万别。使用缓存可以带来两个方面的好处,一是缓存的数据可以被高速加载,从内存中读取数据比通过数据库或磁盘读取具有更好的效率二是最重要的,减少了数据库服务器的压力,有利于数据库的稳定,数据库可以使用更多的资源进行查询、统计等工作,有利于提高系统的整体运行速度。对于大中型应用而言,应用中的数据缓存和数据库端的缓存是应该被考虑的。数据库端的缓存在本文数据库章节中进行描述,本节描述应用中数据的缓存。

要使用缓存,首先需要明确缓存的'内容。一般优化项目不建议做全部数据缓存,或者使用内存数据库之类的技术,这种修改工作量巨大,由此带来的安全性、稳定性、数据的一致性都可能存在较大的隐患。所以,缓存的内容需要有所选择,一般的说,应该根据数据的数据量、被读取的次数、增加/更新频率进行选择。如果数据较少、增加/更新频率非常低,那么应该考虑直接缓存在应用服务器端,只有对于重要性较高、读取次数较多、增加/更新频率相对适中的数据,才适合使用独立缓存。 确定缓存的内容之后,就应该确定缓存的方式。对于缓存于应用服务器端的资源,一般选择KEY-ALUE(OBJECT)进行缓存。对于独立缓存,其内容也KEY-VALUE的格式进行存储(如果使用内存数据库实现缓存,那么存储的就是与数据库相同的信息),VALUE可以选择SON或者Java Object,其中JSON占用空间较少,读取的网络流量较少,读取之后需要进行转换为Java对象JavaXCN占用空间较大,读取的网络流量会较多,读取之后无需进行转化(前提是要求该对象已经系列化),不同系统可以各自特点进行选择。

对于独立缓存,接下来的工作是选择缓存服务器,缓存服务器选择需要具有一定的原则:是否满足已经确定的缓存方式、对操作系统要求如何、稳定性如何、是否支持分布式、是否支持多节点热备、客户端(即JAVA调用接口)接口是否支持漂移(一个节点崩溃是否能转移到另外的节点)、客户端是否高效等等。从目前业界来看,memcached、redis都是应用比较广泛的缓存服务器。

选择完缓存服务器之后,就需要对系统的代码进行一定的改造。改造的内容就是将通过数据库读取的信息改为从缓存服务器获得,而对数据的保存、修改、删除操作,既要操作数据库上的数据,也需要对缓存服务器的信息进行更新,如下图所示:

由于是对系统的优化,那么系统中已经具有很多数据且并未进入缓存,因此还需要将缓存服务器中的数据进行初始化。有两种方式来进行,一种方式是直接将数据库中的数据一次性加载到缓存服务器,另外一种方式是在修改Load数据的方式,先从缓存服务器获取,如果没有,则从数据库获取,然后同步到缓存服务器上。对于优化项目,建议使用第二种方式。第二种方式一个额外的好处就是当缓存服务器全部不可用时,系统也能提供完整的服务。

3 使用异步日志记录

对于企业应用而言,对用户的操作的记录是很重要的,在系统出现某些问题的时候,可以通过日志进行数据恢复。一般系统要么没有进行记录,要么使用数据库进行同步记录。这部分数据会比较庞大,少则百万级,多则数亿,并且随着使用量的增加而逐渐增加。这些表属于使用率最高的表之一,在这些表上进行经常性数据插入,有可能会变成系统的噩梦。

为了解决这个问题,引入异步日志记录,是较为理想的选择。通过在web容器中增加过滤器,拦截用户的请求,然后将用户的请求和表单数据封装为JSON格式的数据,采用异步方式发送到NoSQL数据库,需要恢复的时候,通过对JSON数据进行还原。这种方式有如下好处:

1)不需要改动现有代码而进行了用户操作记录

2)由于采用异步模式,几乎不会增加用户操作的时间

3)采用NoSQL+JSON存储,不用为每一类操作特别设置特定的表结构,修改简单。

目前的NoSQL数据库也逐渐显露头角,根据DB Engines在今年10月发布的数据库排名中,MongoDB的NoSQL服务器已经跃居第七位,因此NoSQL服务器目前推荐使用MongoDB。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存