分类 大观园 下的文章

 在任务管理器中看到sql server 2000进程的内存占用,而在sql server 2005中,不能在任务管理器中查看sql server 2005进程的内存占用,要用

以下语句查看sql server 的实际内存占用:

select * from sysperfinfo where counter_name like '%Memory%'

其中, Total Server Memory 表示内存占用。

 

select locked_page_allocations_kb  from sys.dm_os_process_memory
Select sum(awe_allocated_kb)  as [AWE allocated, kb] From sys.dm_os_memory_clerks

 

要适当限制sql server 的内存占用,要给sql server设置最大值,不要把物理内存全部给sql server,要给windows系统保留适当大小的内存。

对于大物理内存,要在windows server 2003系统的boot.ini中增加 /PAE 参数,如果是AMD的CPU,还要加 /usepmtimere 参数,要在本地组策略里设置“锁定内存中的页”,在sql erver 2005 中选中AWE,并设置最小值和最大值, 重启服务器或sql server服务即可,详细请参考windows server 2003和sql server 2005中的“启用对4GB以上物理内存的支持”的帮助文档。

 

 

 

一、sql 数据库CPU瓶颈

对于SQL Server的一个工作进程的状态有很多,主要状态有运行中(RUNNING)、可运行(RUNNABLE)和挂起(SUSPENED)3种。

通过查看系统监视计数器Processor:% Processor Time,可以确定CPU瓶颈。如果这个计数器的值很高。比如持续15-20分钟超80%,就意味着CPU出现了瓶颈。


当您怀疑计算机硬件是影响SQL Server运行性能的主要原因时,可以通过SQL Server Performance Monitor监视相应硬件的负载,以证实您的猜测并找出系统瓶颈。下文将介绍一些常用的分析对象及其参数。

  Memory: Page Faults / sec

  如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。

  Process: Working Set

  SQL Server的该参数应该非常接近分配给SQL Server的内存值。在SQL Server设定中,如果将"set working set size"置为0, 则Windows NT会决定SQL Server的工作集的大小。如果将"set working set size"置为1,则强制工作集大小为SQLServer的分配内存大小。一般情况下,最好不要改变"set working set size"的缺省值。

  Process:%Processor Time

  如果该参数值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。

  Processor:%Privileged Time

  如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。另外设置Tempdb in RAM,减低"max async IO","max lazy writer IO"等措施都会降低该值。

  Processor:%User Time

  表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。

  Physical Disk:Avg.Disk Queue Length

  该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。

  注意:一个Raid Disk实际有多个磁盘。

  SQLServer:Cache Hit Ratio

  该值越高越好。如果持续低于80%,应考虑增加内存。 注意该参数值是从SQL Server启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值。



检测CPU压力的另一个方法是计算可运行状态下的工作进程数量,通过执行如下的DMV查询可以得到这个信息:

SELECT COUNT(*) AS workers_waiting_for_cpu, t2.Scheduler_id

FROM sys.dm_os_workers AS t1, sys.dm_os_schedulers AS t2

WHERE t1.state = 'RUNNABLE' AND t1.scheduler_address=t2.scheduler_address

AND t2.scheduler_id < 255

GROUP BY t2.scheduler_id

也可以执行如下的查询得到工作进程在可运行状态下花费的时间:

SELECT SUM(signal_wait_time_ms) FROM sys.dm_os_wait_stats

下面查询是找出每次执行占用CPU最多的前100位查询:

SELECT TOP 100 total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count,

(SELECT SUBSTRING(text, statement_start_offset/2+1,

(CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2

ELSE statement_end_offset END - statement_end_offset)/2)

FROM sys.dm_exec_sql_text(sql_handle)) AS query_text

FROM sys.dm_exec_query_stats

ORDER BY avg_cpu_cost DESC

稍做修改,找出运行最频繁的查询:

SELECT TOP 100 total_worker_time/execution_countASavg_cpu_cost, plan_handle, execution_count,

(SELECT SUBSTRING(text,statement_start_offset/2+1,

(CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2

ELSE statement_end_offset END - statement_end_offset)/2)

FROM sys.dm_exec_sql_text(sql_handle)) AS query_text

FROM sys.dm_exec_query_stats

ORDER BY execution_count DESC

可以使用下列系统监视性能计数器查看编译和重编译的速度:

1. SQLServer: SQL Statistics: BatchRequests/Sec(每秒批处理请求数)

2. SQLServer: SQL Statistics: SQLCompilations/Sec(每秒SQL编译次数)

3. SQLServer: SQL Statistics: SQLRecompilations/Sec(每秒SQL重编译次数)

还可以通过下面语句得到SQLServer在优化查询计划上花费的时间:

SELECT * FROM sys.dm_exec_query_optimizer_info

WHERE counter='optimizations' OR counter = 'elapsed time'

下面查询找到被编译得最多的前10位查询计划:

SELECT TOP 10 plan_generation_num, execution_count,

(SELECT SUBSTRING(text, statement_start_offset/2+1,

(CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2

ELSE statement_end_offsetEND-statement_end_offset)/2)

FROM sys.dm_exec_sql_text(sql_handle))ASquery_text

FROM sys.dm_exec_query_stats

WHERE plan_generation_num> 1

ORDER BY plan_generation_num DESC

 

二、sql 数据库内存瓶颈

内存有压力时,一个查询计划可能得移出内存。如果这个计划被再次提交执行,就必须再优化一次,而由于查询优化是CPU密集型运算,这就会给CPU带来压力。同样,内存有压力时,数据库页面可能需要被移出缓冲区池。如果这些页面很快就再次被选中,就会导致更多的物理IO。

通常所说的内存指的是服务器上的可用物理内存(既RAM)。还有另外一种内存叫做虚拟地址空间(VAS)或虚拟内存。在Windows系统上,所有位应用程序都有一个GB的进程地址空间,用来获取最大GB的物理内存。在GB的可用内存之外,进程还可以在用户模式下得到GB的VAS,另外GB保留只能通过内核模式获取。要想更改这个配置,可以在boot.ini文件中使用/3GB switch。

常见的操作系统机制是页面调试,它使用一个交换文件来存储最近未使用的部分进程内存。当这一内存被再次引用时,它就直接从交换文件中读取(或调入)物理内存。

 

可以通过性能计数器,监测下面参数:

1. 内存:可用字节(Available Bytes)

2. SQL Server:缓冲管理器:缓存命中率(Buffer Cache Hit Ratio)指的是那些不用通过磁盘读取而直接在缓冲区池中找到的页的比例。对于大多数产品工作负荷而言,这个值应该是多。(应该是越大越好)

3. SQL Server:缓冲管理器:页平均寿命(Page Life Expectancy)指的是一个没有被引用的页在缓冲区池中保留的秒数。如果数值较低,则说明缓冲区池遇到了内存不足的情况。

4. SQL Server:缓冲管理器:检查点页/秒(Checkpoint Pages/Sec)指的是被检查点刷新的页数,或者要求所有脏页被刷新的其它操作的数目。它能显示工作负荷中增加的缓冲区池活动量。

5. SQL Server:缓冲管理器:延迟写入/秒(Lazywrites/Sec)指的是缓冲管理器的延迟写入器写入的缓冲数目,它的作用类似于前面提到的检查点页/秒。

 

怀疑内存不足时:

方法1:

【监控指标】:Memory Available MBytes ,Memory的Pages/sec, page read/sec, Page Faults/sec

【参考值】:

如果 Page Reads/Sec 比率持续保持为 5,表示可能内存不足。

Page/sec 推荐00-20(如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题)。

方法2:根据Physical Disk 值分析性能瓶颈

【监控指标】:Memory Available MBytes ,Pages read/sec,%Disk Time 和 Avg.Disk Queue Length

【参考值】:%Disk Time建议阈值90%

当内存不足时,有点进程会转移到硬盘上去运行,造成性能急剧下降,而且一个缺少内存的系统常常表现出很高的CPU利用率,因为它需要不断的扫描内存,将内存中的页面移到硬盘上。

怀疑内存泄漏时

【监控指标】:Memory Available MBytes ,ProcessPrivate Bytes和ProcessWorking Set,PhysicalDisk/%Disk Time

【说明】:

资源监控中,如果ProcessPrivate Bytes计数器和ProcessWorking Set计数器的值在长时间内持续升高,同时MemoryAvailable bytes计数器的值持续降低,则很可能存在内存泄漏。内存泄漏应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况的测试来检验。

 

 

 

CPU瓶颈问题

1、System\%Total processor time如果该值持续超过90%,且伴随处理器阻塞,则说明整个系统面临着处理器方面的瓶颈.

注:在某些多CPU系统中,该数据虽然本身并不大,但CPU之间的负载状况极不均衡,此时也应该视作系统产生了处理器方面的瓶颈.

2、排除内存因素,如果Processor %Processor Time计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以确定CPU 瓶颈。(内存不足时,有点进程会转移到硬盘上去运行,造成性能急剧下降,而且一个缺少内存的系统常常表现出很高的CPU利用率,因为它需要不断的扫描内存,将内存中的页面移到硬盘上。)

造成高CPU使用率的原因:

频繁执行程序,复杂运算操作,消耗CPU严重

数据库查询语句复杂,大量的 where 子句,order by, group by 排序等,CPU容易出现瓶颈

内存不足,IO磁盘问题使得CPU的开销增加

 

CPU分析

【监控指标】:

System %Processor Time CPU,Processor %Processor Time CPU

Processor%user time 和Processor%Privileged Time

systemProcessor Queue Length

Context Switches/sec 和%Privileged Time

【参考值】:

System\%Total processor time不持续超过90%,如果服务器专用于 Server,可接受的最大上限是80-85% ,合理使用的范围在60%至70%。

Processor %Processor Time小于75%

systemProcessor Queue Length值,小于CPU数量的总数+1

磁盘I/O分析

【监控指标】:PhysicalDisk/%Disk time,PhysicalDisk/%Idle Time,Physical Disk Avg.Disk Queue Length, Disk sec/Transfer

【参考值】:%Disk Time建议阈值90%

Windows资源监控中,如果% Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。

Processor%Privileged Time该参数值一直很高,且如果在 Physical Disk 计数器中,只有%Disk time 比较大,其他值都比较适中,硬盘可能会是瓶颈。若几个值都比较大,那么硬盘不是瓶颈。若数值持续超过80%,则可能是内存泄露。如果 Physical Disk 计数器的值很高时该计数器的值(Processor%Privileged Time)也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。

Disk sec/Transfer 一般来说,该数值小于15ms为最好,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或是硬盘的RAID方式了.

Average Transaciton Response Time(事务平均响应时间)随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势

Transactions per Second(每秒通过事务数/TPS)当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈

Hits per Second(每秒点击次数)通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。

Throughput(吞吐率)可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。

Connections(连接数)当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)

Time to First Buffer Breakdown(Over Time)(第一次缓冲时间细分(随时间变化))可以使用该图确定场景或会话步骤运行期间服务器或网络出现问题的时间。

碰到过的性能问题:

  • 1. 在高并发的情况下,产生的处理失败(比如:数据库连接池过低,服务器连接数超过上限,数据库锁控制考虑不足等)

  • 2. 内存泄露(比如:在长时间运行下,内存没有正常释放,发生宕机等)

  • 3. CPU使用偏离(比如:高并发导致CPU使用率过高)

  • 4. 日志打印过多,服务器无硬盘空间

如何定位这些性能问题:

1. 查看系统日志,日志是定位问题的不二法宝,如果日志记录的全面,很容易通过日志发现问题。

比如,系统宕机时,系统日志打印了某方法执行时抛出out of memory的错误,我们就可以顺藤摸瓜,很快定位到导致内存溢出的问题在哪里。

2. 利用性能监控工具,比如:JAVA开发B/S结构的项目,可以通过JDK自带的Jconsole,或者JProfiler,来监控服务器性能,Jconsole可以远程监控服务器的CPU,内存,线程等状态,并绘制变化曲线图。

利用Spotlight可以监控数据库使用情况。

我们需要关注的性能点有:CPU负载,内存使用率,网络I/O等

3. 工具和日志只是手段,除此之外,还需要设计合理的性能测试场景

具体场景有:性能测试,负载测试,压力测试,稳定性测试,浪涌测试等

好的测试场景,能更加快速的发现瓶颈,定位瓶颈

4. 了解系统参数配置,可以进行后期的性能调优

除此以外,还想说个题外话,就是关于性能测试工具的使用问题

在刚开始用Loadrunner和JMeter的时候,做高并发测试时,都出现过没有把服务器压垮,这两个程序自己先倒下的情况。

如果遇到这个问题,可以通过远程调用多个客户端的服务,分散性能测试工具客户端的压力来解决。

说这个的目的是想说,做性能测试的时候,我们一定要确保瓶颈不要发生在我们自己的测试脚本和测试工具上

<!-- 正文结束 -->


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/638520/viewspace-1117845/,如需转载,请注明出处,否则将追究法律责任。

1

0


以下为Google Chrome 默认非安全端口列表:

访问会直接被拦截


1, // tcpmux

7, // echo

9, // discard

11, // systat

13, // daytime

15, // netstat

17, // qotd

19, // chargen

20, // ftp data

21, // ftp access

22, // ssh

23, // telnet

25, // smtp

37, // time

42, // name

43, // nicname

53, // domain

77, // priv-rjs

79, // finger

87, // ttylink

95, // supdup

101, // hostriame

102, // iso-tsap

103, // gppitnp

104, // acr-nema

109, // pop2

110, // pop3

111, // sunrpc

113, // auth

115, // sftp

117, // uucp-path

119, // nntp

123, // NTP

135, // loc-srv /epmap

139, // netbios

143, // imap2

179, // BGP

389, // ldap

465, // smtp+ssl

512, // print / exec

513, // login

514, // shell

515, // printer

526, // tempo

530, // courier

531, // chat

532, // netnews

540, // uucp

556, // remotefs

563, // nntp+ssl

587, // stmp?

601, // ??

636, // ldap+ssl

993, // ldap+ssl

995, // pop3+ssl

2049, // nfs

3659, // apple-sasl / PasswordServer

4045, // lockd

6000, // X11

6665, // Alternate IRC [Apple addition]

6666, // Alternate IRC [Apple addition]

6667, // Standard IRC [Apple addition]

6668, // Alternate IRC [Apple addition]

6669, // Alternate IRC [Apple addition]

————————————————

版权声明:本文为CSDN博主「李昊轩的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_33709508/article/details/108826606


IT之家1月31日消息 据外媒 ZDNet 今日消息,谷歌工程师近日宣布,为 Chrome 浏览器再次屏蔽了 8 个 TCP 端口,来防止黑客利用 NAT Slipstreaming 2.0 漏洞进行攻击。这 8 个端口为 69、137、161、1719、1720、1723、6566、10080。

由于目前 IPv4 地址有限,因此路由器会使用 NAT 网络地址转换协议来访问公共互联网。这个功能可以允许路由器跟踪内网设备的请求,并将这些请求以路由器的公网 IP 地址发送出去。当远程计算机响应时,中转协议也将会把数据回传至内网对应设备。

IT之家获悉,NAT Slipstreaming 漏洞于 2020 年 10 月 31 日由网络安全工程师 Samy Kamkar 发现。攻击者利用恶意网站诱导用户进行点击,JavaScript 代码将绕过防火墙和 NAT 表来提供的防御措施,与目标设备直接进行连接。此后黑客便可以利用后续方法发起攻击。

在这个漏洞首次被发现时,谷歌就表示会阻止 HTTP、HTTPS 访问 5060、5061 这两个 TCP 端口。谷歌在说明中表示,“为了防止进一步的攻击,此更改还会阻止其它几个会被 NAT 漏洞利用的端口,以防止这些端口被类似方法进行利用。”

不仅 Chrome 浏览器屏蔽了这些 TCP 端口,火狐、Edge 最新版本浏览器也进行了针对该漏洞的修补。


如果要查看IIS连接数,最简单方便的方法是通过“网站统计”来查看,“网站统计”的当前在线人数可以认为是当前IIS连接数。然而,“网站统计”的当前在线人数统计时间较长,一般为10分钟或15分钟,再加上统计技术及统计机制的问题,从而会产生或多或少的统计误差。

如果要想知道确切的当前网站IIS连接数的话,最有效的方法是通过windows自带的系统监视器来查看。这正是本文要介绍的方法。

一、运行-->输入“perfmon.msc”

二、在“系统监视器”图表区域里点击右键,然后点“添加计数器”

 



图一

三、在“添加计数器”窗口,“性能对象”选择Web Service,“从列表选择计数器”选中Current Connection,“从列表选择实例”选中你要统计的站点,最后点击“添加”按钮

 

图二

四、设置完毕

这样,你就可以在“系统监视器”图表区域中看到一条曲线(此曲线你可以设置其颜色和宽度等参数),它就是网站的IIS连接数曲线图了,如图一黄色曲线所示。

需要说明的是,windows系统监视器显示的是即时IIS并发连接数,并非如“网站统计”那里的15分钟内访问人数,所以你会发现IIS并发连接数并不会太多,就卡卡测速网而言,目前IIS并发连接数在20-30个左右,而“网站统计”里显示15分钟内在线人数一般在150-200人左右。百度统计没有“15分钟内在线人数”的统计,它认为“那样意义不大,因为无法知道15分钟内用户是否还在线上”。

查看IIS连接数,还可以在“运行”-->输入“netstat -a”命令来查看,不过由于显示结果太多太杂,很难统计HTTP的连接总数,所以不推荐使用此命令来查看。


最近刷屏的云平台事故,已然引起轩然大波。我们回头看,发现这些年云平台的故障已不是孤立的事件了。大家在云平台快速发展的过程中,对云平台的认知也经历了多个阶段。从不熟悉不认可,到部分业务开始上云,再到对云完全依赖。这个过程大家对云平台的数据安全一直都有着种种误读,从完全不信任,到盲目信任。

下面我们从云平台技术架构等层面来帮助大家剖析一下:业务上云了,数据为什么还需要做云备份?

背景

我们先来回顾下几起大的云故障:

1)2015年9月,国内某著名云平台发生大规模的安全软件缺陷,导致大批用户云主机文件被异常删除,业务中断。

2)2017年2月,全球知名的云平台发生大规模存储故障,导致大量全球知名业务中断。

3)2018年6月,国内某知名云平台发生故障,直接导致用户在登陆该云平台的云控制台和使用MQ、NAS、OSS等部分功能时出现问题

4)2018年8月,国内某知名云平台发生严重故障,直接导致某创新公司数据全部丢失,公司面临前所未有的业务停摆威胁…

以上是云平台自身原因引起的灾难性故障…

其实还有外部因素导致的问题

2017年5月,全球爆发的Wannacry勒索病毒,给网络带来了未有的挑战,云平台也不能完全幸免,

2018年1月,Intel 芯片设计缺陷,给整个IT架构带来灾难性影响,云平台性能和安全受到极大的挑战。

2018年8月,Wannacry病毒再次感染爆发,直接使得台湾的知名芯片制造企业三大生产线全线停产,直接损失超过3%,达到人民币17.4亿。

实际上,除了我们看到的公有云这些严重故障外,几乎每天都能听到,发生在企业内部的私有云,因为各种原因,包含软件缺陷、人员,电力异常等导致的业务中断、数据丢失。企业正常的生产受到极大的影响,损失无法估量。

这些内部、外部因素叠加在一起,实际上带来了几乎无法规避的现实: 云也会宕机,也会丢失数据….

云的本质

在IOE(IBM, Oracle,EMC)时代,IT专家们为了最大程度规避岗位风险,通过采用业界最知名,最大牌的服务器(小型机)、存储硬件操作系统、应用软件,同时引入最大牌的备份软件来组成自己的企业级数据中心方案。如下(示意图1):

当然这种架构维护成本相当高,一般的企业难以招架,也只有少数的大企业或有实力的机构才有能力采用。

随着各行业竞争加剧,企业需要更高效、性价比更高的IT方案,提高效率,降低成本。这时候,云计算出现了。

什么是云计算:

简单点,就是把原先分散的资源集中放在一起,需要多少,就从资源池里面提供多少。

这里资源重点指的是计算能力、存储能力、以及网络连接能力,如下(示意图2)

比如:

10家企业,每家原来采购花费了100万,共计1000万,每家实际平均只用了30万的,共计300万,实际资源还剩余了700万没有用到。

用了云计算以后,云计算平台企业一次性投入1000万建设公共云平台,每家实际30万,可以服务33家企业。当然好处,不止于直接的成本降低,还有运维管理效率的提升。

当然了,这几年开放架构性能每年翻倍,价格还不断降低,这花掉的1000万大部分是买的比原来小型机时代更便宜的开放架构的硬件,实际上通过集群连接技术,计算和读写数据能力丝毫不亚于小型机的能力。

可以说云计算是非常理想的去IOE方案,但也仅仅是在资源的组合利用和调度方面,这是目前云计算核心解决的问题。云计算目前相对成熟的服务,就是计算和存储。

在数据可靠性存储方面,我们再剖析看看构成云的核心要素块存储、对象存储。通常,我们用云计算,文件之类的数据一般就是存储在块存储或对象存储之上。数据库之类的数据,一般上规模云平台,底层也是基于分布式存储架构。

这几种上层存储服务底层都是以分布式存储为主要提供形式。

基本的数据读写逻辑是:

数据以分块的方式,写入到多个存储节点的底层磁盘。写入什么样的数据,存储是不会感知到的。也就是说正确的数据,被破坏的数据同样会被写入到存储底层。同时,因为各种磁盘电气特性或系统各种复杂的内存一致性策略等,写入的时候,还会有是否真的写入,或者写正确到磁盘上的区别(当然这不仅是分布式系统一家的情况,传统的存储也会类似)。

分布式存储(云存储),能否解决的问题列表

如果出现上面列表,本该解决的,却不能解决,那还会有其他因素综合影响。

正因为有以上问题,云平台提供方,通常会引入一些备份机制,如快照,灾备数据中心等技术。但很遗憾的是,一般的快照最多也只能解决平台体系内的问题。系统整体风险,还需要谋求独立于平台的第三方解决方案。灾备数据中心对于一般技术水平的企业还是难于驾驭。

这些平台底层的容灾设计机制,需要完全信任依赖于厂家的承诺实现。

企业上云,目前主要分成几类:

以上所有类型,底层都离不开分布式存储技术(云存储),都会遇到几乎核心的几类风险。

综上所述,云的本质在于解决资源的充分共享和调度,其安全性需要引入外部的各类服务来保证。对于如何正确上云,需要充分理解云这把利器和与生而来的风险。

最佳实践

对于云来说,不同的方式,或保护等级,对于的实施成本大不一样,可能差距到10倍不等。

正确选用方案,需要了解实际的业务情况。

对于上公有云的情况

①最低保护级别的部署

单数据中心,数据库主从配置+冷备份(异地云区域)+云主机快照是最低配置

数据库主从解决单点问题,当主节点宕机,还有从节点接管服务。

数据库冷备份解决逻辑或人为因素导致的数据丢失等风险,通常应当部署在不同的地理区域。

以上两点保障核心数据得到了基本保障。

为什么对云主机还要启用快照?上面不就是一些程序或配置么?很简单,时间就是损失,恢复时间越长,企业承担的损失越大。通常,从你copy程序和修改配置,到部署、验证、需要的时间绝对是恢复快照的·10倍以上。

当然,如果备份机制能独立于平台,那将是更好的方案。百度上搜索,会有不少云备份的方案可供选择。

②对于可靠性要求高的应用

通常采用主数据中心与副数据中心结合的结构。这种结构,没有技术力量的团队,建议还是慎用,真正能跑起来,难度大。最大的挑战,需要解决多个数据中心数据一致性问题。对于这种方案,通常建议采用主从方案,同时工作的方案,会导致系统设计复杂度异常高。

数据中心通常采用支持多线BGP机房,解决南北互通,和不同运营商之间互通问题。

主从之间数据复制可以采用云平台自身提供的一些方案或者利用第三方的数据复制软件,完成核心数据在两个数据中心(区域)复制。

对于私有云部署

部署私有云的企业,通常是有一定的IT维护管理力量,同时也是特别注重数据安全的。这种情况,通常有如下组合。

①私有云本地数据保护

对于通常的企业的IT数据中心,推荐采用私有云加上一套备份系统。

这里的私有云包含虚拟化数据中心、超融合数据中心、OpenStack等系列数据中心等。客观上存在分布式(云)存储不能规避的风险,需要最低搭配一套备份系统。请注意恢复时间对业务影响代价。如果一定要采用手动方式备份,请确保恢复时间是企业可以承受的代价。

根据重要程度,配置的备份系统有不同的指标要求。

同时,为了考虑系统的整体云平台备份支持能力,系统的灵活扩展能力和数据重删能力,也是一个重点考察指标。目前国内外有一些产品如:Veeam、CommVault、Veritas、木浪云等。其中Veeam、木浪云专门针对云和虚拟化平台设计,有更好的云保护管理能力。

②私有云异地灾备和容灾

对于保护等级要求较高的情况,两套私有云平台 + 备份系统,形成热灾备接管 + 数据和应用容灾恢复架构。私有云两地容灾架构,通常要求专线,带宽要能保障,目前的带宽还是比较贵,需要提前核算好相关的费用成本。

典型的实施方案如下。

实施方案一:

两套私有云之间,通过云平台厂商提供的存储复制技术,完成两地数据复制和同步。同时,系统需要引入一套备份系统。部署在主或从数据中心。两种部署方法,看具体情况选择。一般为了降低对主数据中心影响,通常应当部署在从数据中心。

这种架构需要云平台支持,成本投入大,数据管理粒度相对粗,一般针对整个存储系统实施,缺少各种粒度和优先级控制。

实施方案二:

两套系统之间,通过第三方完成数据备份和异地复制,形成灾备架构

两套私有云之间,通过第三方云平台备份与复制厂商,提供的数据备份与复制技术,完成两地数据备份、复制和同步。这种方案特点是管理灵活,可以细化到一个云主机系统。在备份的同时,也同时在做复制容灾。一般在从数据中心,不需要部署和主中心一样的配置,可以低于主中心。

这两种方案达到的效果如下:

简言之,数据安全无小事,无论是在云计算时代还是在传统IT的时代,数据保护都非常重要。当然,在云计算快速发展的时代,数据保护产品和方案一定要与云环境完全融合,这已是势在必行。

来源:凡未注明原创的作品均属编辑转载,目的在于传递更多信息学习交流,并不代表本公众号平台赞同其观点和对其真实性负责;如涉及作品内容、版权和其他问题,请及时与我们联系,我们将及时删除。