版权归原作者所有,如有侵权,请联系我们

[科普中国]-自动化存储

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述

当今,信息系统已经越来越像电力、交通、通信系统一样,成为我们工作当中不可或缺的基础设施之一。信息系统的建设相对于其他基础设施的建设历史还十分短暂,系统的稳定性和成熟性还不高,这一点与其基础设施的地位还不相称。

很多经验教训显示,不重视信息系统的安全稳定建设.一个很小的故障或人为失误往往会造成重大的损失。在保障信息系统的安全,以进一步保证工作和业务顺畅运行,同时保护政府/企业的核心信息资产不受损失方面,业务连续性系统是一重要的概念。

当今,越来越多的业务寻求实施业务连续性方案,以确保业务能够在任何状态下连续运转。这就是自动化存储可以协助完成的地方1。

EMC自动化存储不够稳定、缺乏保护的基础架构会阻碍该机构发挥在各类停机事故中成功脱险的能力。仅仅恢复信息系统并不能解决问题——它们需要的是恢复业务运行。通常认为50%或许比它更少的数据是重要数据。而最近发现数据和应用相互依存使得重要数据的比例增加到80%。

EMC自动网络存储协助政府/企业保护关键性资产——数据的互相依赖性使得所有应用都变得非常关键。整合能够实现全面保护,能够在需要时为数据制作多份本地或远程拷贝,也能够在业务正常访问数据的同时执行保护流程。

运用自动化网络存储,客户可以彻底消除对麻烦且不可靠的基于磁带的数据保护方式的依赖。EMC的解决方案最终为政府/企业提供一条可以满足在当前的条件下还无法实现的业务连续性目标的道路。

政府/企业可以运用自动网络存储对关键性业务连续流程进行控制。运用EMC开放存储管理软件,管理工作可以远程进行——减少对员工的依赖,降低成本并降低风险。

用自动化网络存储方案实现业务连续性很多政府机构/企业目前采用的基础架构包括几种UNIX和Windows操作系统,并配备本地存储。它包含各种数据孤岛,而所有这些信息都没有实现联网,加大了信息共享难度,且信息管理也需要耗费大量时间和资金。除了这些系统所面临的管理挑战之外,备份流程也无法在允许的时间内成,使得客户可能丢失数据。而且,由于各备份必须针对各主机平台分别完成。信息的同步变得几乎不可能实现。

而EMC的自动化网络存储方案,能够帮助政府机构/企业全面解决这些问题。为了实现一个强壮的业务连续性环境,需要制定完善的计划。在制定计划和实施的过程中包括几个主要步骤和几个关键行动。在业务连续性中的第一个关键行动是”业务影响评估”(BlA)。BIA回答了“如果应用或业务程序中断运行,客户将付出多大代价”和“客户可以付担得起多少数据丢失“的问题。这一信息导致了对”恢复时间目标”(RTO)的义——在信息系统中断时,应用需要多快可以重新运转,对“恢复点目标”(RPO)的定义——业务过程可以忍受多少数据丢失。懂得这些信息可以很大程度上鉴别出一般类型的“业务连续性或灾难恢复”(BC/DR)基础架构的必要条件。

而风险评估可以识别出“客户的组织机构中有可能会发生什么问题”。就像上面提到的”业务影响评估”,当客户能够很好理解最有可能发生的风险时,就可以更好地开发一个最理想的“业务连续性或灾难恢复”(BC/DR)基础架构。一旦大家都知道了灾难恢复基础架构,在技术方面和业务流程程方面都需要制定详细的计划。

一旦制定完计划,具体的实施就开始了,关键是确保预先设计的计划可以经得起时间的考验。“灾难恢复计划”需要定期测试,并且相应的解决方案必须有充分的能力,允许有效地进行测试。

综上所述:政府机构和企业通过部署自动化存储网络,可以极大的提高信息系统的可靠性,使得信息系统如同其他的基础设施一样,为业务的连续运行提供可信的安全保障1。

日志的自动化存储实现在实现系统日志的自动备份上,要考虑服务器的安全问题。服务器一般都是放在防火墙的后面。防火墙默认所有的端口都是关闭的,服务器需要什么端口,在防火墙上就开启什么端口。一般来说,我们只是打开 80、 20、 21 等几个端口。端口开启的越少系统则越安全。从安全性方面考虑,利用文件夹共享等方式来实现系统日志的自动备份会用到 139 等端口,这样会存在很严重的安全隐患。因为开启 139 端口虽然可以提供共享服务,但是常常被攻击者所利用进行攻击,比如使用流光、 SuperScan 等端口扫描工具,就可以扫描目标计算机的 139 端口,如果发现有漏洞,可以试图获取用户名和密码,这是非常危险的,21 端口是用来实现 FTP 文件传输的默认端口,所以可以通过 FTP 方式来远程备份日志2。

Windows 系统日志备份对于采用 Windows 操作系统的服务器,通过 FTP 传输来实现系统日志的自动定期备份,需要利用 WSH(Windows Script Host)进行脚本编程。WSH 是 Microsoft 公司提供的脚本宿主软件,包含在 WScript.exe 和 Cscript.exe 文件中。目前采用 Wscript.exe 作为脚本宿主居多。微软公司提供了两种语言, VBScript 和 Jscript(JavaScript 的微软版本)用来作为脚本引擎。所谓脚本其实就是纯文本文件,文件扩展名为 VBS 或 JS.Wscript.exe 会使用不同的脚本引擎来执行相应的脚本文件。WSH 包含 SCRRUN.DLL 和 WSHOM.OCX 两个文件。

操作系统的日志文件是不能直接进行拷贝的,必须在事件查看器中手动给事件日志打包或者用专门的软件工具打包。我们在每一台服务器上安装一个名叫 Microsoft Product Support Reporting Tool 的工具,这个软件每次运行后都会记录下很多操作系统的信息。其中包括系统的日志。系统日志是以*.evt 文件格式保存.这个软件安装后有一个名叫 MPSRpt.cmd 的文件,把它放到计划任务中,考虑到日志的传送会影响到服务器的性能,假定把它设置为每天凌晨 2:00 执行,到这个时间系统的事件日志就被自动备份到本机上了,然后编写一个把系统日志上传到指定的FTP空间的脚本 ftpbak.txt,代码如下:

open 10.10.2.23 /登录到指定的 FTP 服务器 syslog /FTP 用户名 putlog /FTP 密码 binarylcd C:\WINDOWS\MPSReports\Setup\Reports /指定本地上传目录 put WZDX-CMET_Application.evt /上传“应用程序”事件 put WZDX-CMET_System.evt /上传“系统”事件bye /退出 FTP 把 ftpbak.txt 这个脚本放在 c:\ 目录下,同时再编写一个用来启动 FTP 命令、调用 ftpbak.txt文件的批处理脚本 startup-ftp.bat。代码如下:

C:\WINDOWS\system32\ftp.exe -s:c:\ftpbak.txt把 start-ftp.bat 这个脚本加到计划任务中,设置在 2:30 执行。这样就使生成的日志文件自动地传到指定的 FTP 空间里2。

Linux 系统日志备份对于采用 Linux 操作系统的服务器,也可通过 FTP 传输来实现系统日志的自动定期备份。Linux 系统的各种日志通常都放在/var/log 这个目录下。这里要用到 Linux 的计划任务来实现日志文件的自动传输。在 Linux 系统中,计划任务一般是由 cron 承担,可以把 cron 设置为开机时自动启动。cron 启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后 cron 会根据命令和执行时间来按时调用工作任务。利用 vi 打开crontab 后可以看到如下信息:

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 30 15 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly据此可以知道在/etc/下还有四个目录: cron.hourly、 cron.daily、 cron.weekly 和 cron.monthly,只要把需要按计划每小时、每天、每周、每月执行的脚本放在相应的目录下就可以了。cron 配置计划任务的书写格式是:分钟 小时 日 月 周 [用户名] 命令。其中第一字段应该定义的是:分钟,表示每个小时的第几分钟来执行,范围是 0-59;第二字段应该定义的是:小时,表示从第几个小时来执行,范围是 0-23;第三字段应该定义的是:日期,表示从每个月的第几天执行,范围 1-31;第四字段应该定义的是:月,表示每年的第几个月来执行,范围 1-12;第五字段应该定义的是:周,表示每周的第几天执行,范围从是 0-6,其中 0 表示星期日;每六字段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个可省略;第七字段应该定义的是:执行的命令和参数。
例如设定系统日志的传送时间是每天的 15 点 30 分,把传送日志的脚本 ftpbak.sh 放在/etc/cron.daily/目录下。 Ftpbak.sh 的代码如下:

#!/bin/shecho " open 10.10.2.23 /*用 open 连接日志服务器 */ user syslog putlog /*输入用户名和密码*/ binary /*以二进制传输*/hash /*当有数据传输时,显示#号*/lcd /var/log /*更换到日志所在目录*/put messages.1 /*上传日志信息*/ bye " | ftp –n /*执行 ftp 命令*/

|| ||

这样在规定的时间, Linux 服务器也会自动把自己的日志传到日志服务器上。这时,还有一个问题,按照我们编写的脚本程序,每天上传的日志文件名字都是相同的。这样在日志服务器里今天上传的日志就会把昨天上传的日志覆盖掉。所以还需编写一个脚本 rename.vbs,重新命名日志服务器中的日志文件。代码如下:

dim time‘把今天的日期转化成字符串time = CStr(Date())Set objFSO = CreateObject("Scripting.FileSystemObject")‘给应用程序事件文件名前加上日期objFSO.MoveFile "e:\log\WZDX-CMET_Application.evt", time & "-" & "WZDX-CMET_Application" & ".evt"‘给系统事件文件名前加上日期objFSO.MoveFile "e:\log\WZDX-CMET_System.evt" , time & "-" & "WZDX-CMET_System"& ".evt"‘给 Linux 系统日志加上日期objFSO.MoveFile "e:\log\messages.1" , time & "-" & “messages.1” 把 rename.vbs 这个脚本加到日志服务器的计划任务中,设置为每天 3:00 自动执行。这样就完成了通过 21 端口来远程自动备份系统的日志2。