- 论坛徽章:
- 0
|
本帖最后由 junewen 于 2015-04-08 23:16 编辑
原文来自存储人生
随着我司管理的存储平台的不断增多,既需要高效管理起来这些来自不同厂家的不同产品,又需要满足来自业务部门的容量,性能的需求,的的确确非常头疼。
一个存储从安装到上线,再到业务部门请求到生命周期到期通常是这样一个流程:
存储厂商或者第三方公司通常会负责第一步的安装与初始化工作。
存储部门做一些上线前的配置,比如用户验证与权限划分,SAN的存储池(Pool)的建立,NAS的加入域,存储资源的划分等。
业务部门会结合当前业务需求以及未来的发展,可能会联系基础架构咨询部做个规划与设计。当有了具体的存储需求时,比如容灾,性能要求,多大空间,SAN还是NAS,然后就会找存储部门要存储了。业务部门可以自己找,当然可以找个项目经理。
存储部门就根据业务部门提出的要求分配存储资源,当然必要时需要和业务部门再反复沟通。
存储部门负责存储资源的日常维护。
存储部门负责回收存储资源。
存储部门的挑战(我们为什么需要存储自动化 ? )
Gartner集团预计,每年需要管理的数据的增长幅度达到60%到70%。来自大型数据中心的传闻数据表明Gartner的数据可能还过于保守。但即使这一增长幅度达到爆炸性的速度,而IT预算却没有相应增加。对削减预算的企业来说,管理人员增长速度甚至可能是负的。这两个数据带来的问题就是存储自动化缺口。
数据大爆炸
在这个数据大爆炸的时代,数据的增长速度接近疯狂,这个是来自数据量的挑战,我们可以选择合适的存储来满足,比如现在热门的scale-out存储,参考《高端存储系统:Scale out VS Scale up》。这个不是本文讨论的范畴。
其实这里厂商已经做了很多自动化的工作,比如自动分层技术,Thin Provisioning技术都和这个有关。
沟通无止境
最烦的是和业务部门的沟通。他们有他们的要求,他们的语言,存储有存储的规则。
能否给他们一个自助平台?类似于现在云存储?你是Oracle数据库,那好,直接从下来菜单选择就好了。你要20G,没有问题,完全按照厂商的最佳实践给你准备存储。
请求无止境
不谈别的,当是每天分配空间就够你累的了:创建LUN,Zone,CIFS、NFS……这个是最需要自动化也是最容易的环节。
回收/迁移烦烦烦
有很大的可能是你的用户并没有删除数据,或他们的存储需求下降时未能警告你。这也会带来存储自动化缺口。虽然存储自动分层变得越来越流行,但很少有企业会有能够区分和重新分配不再使用的资源的自动化流程。
这个是非常烦恼的事情,因为你需要不停地和用户确认是否有业务影响。通过自动区分和重新分配不再使用的资源,企业可以减少存储预算增加,并消除与过期数据相关的潜在安全风险。
我在想直接给用户一个接口,让他们自行回收,迁移。责任自负,岂不美妙?
监管/合约严严严
来自上级部门的各种要求,来自行业的各种要求,你需要把它们全部加到流程中去,一旦侵犯后果很严重。有时真的容易忽略。你很难要求公司所有人都能遵守所有的规范,但自动化工具就可以。
一个最简单的例子就是zone的命名,十个人可能会有十个不同的方法,让别人完全看不懂。
存储平台多
小公司可能就买一台存储,大公司就不可能了。就像我司,几乎有当今所有厂商的NAS,SAN,归档产品,就差云存储了。每个产品需要一个单独的文档,流程。每次一个全新的存储产品上线,就需要培训,新加文档,流程。非常不容易管理。
我真的幻想可以在一个界面可以做所有存储相关的事情。
存储问题多多
这个就不多说了。常见的硬盘坏了现在基本可以做到自动生成单子联系厂家更换了,基本不需要人工参与。
要是我们能列出每个存储产品的常见问题,再针对这些问题能自动做些基本的处理就好了。比如NetApp的volume快要满的时候,能否尝试自动扩展?这个比出现业务影响之后再处理好多了,起码不用半夜接电话。
有时,简单到仅仅是自动扩大接近容量极限的LUN,就能避免应用程序停机,从而避免停工带来的成千上万的损失。
存储部门的工作(什么可以自动化 ?)
之前我已经谈过了一个存储产品从上线到退役的大概过程,我认为存储部门的工作以下可以考虑自动化:
存储初始化配置
这个我认为可以自动化,以求公司所有设置完全一致。比如NetApp,我们可以实现规定所有重要参数,每次新上线一台NetApp,用程序自动初始化。当然有些产品还是需要手工做一些事情。具体问题,具体分析了。
存储的监控
这个真的必须要自动化,否则一个公司几百台存储没有办法管理。当然厂商本身会提供一些平台来监控。但我们讨论的是一个通用的平台,适合监控所有的存储产品。
这里既包括所有配置,参数的监控,也包括性能,容量的监控等。这里是个最简单的例子,《Oracle ZFS RESTful API与PowerShell – CIFS/NFS信息查询》,《NetApp PowerShell 基于CIFS Share查询信息》。
存储的优化
这个可以是基于存储监控模块的数据来做出的智能应对措施。比如根据存储使用量的监控,来预测未来容量的需求,提示回收闲置源等等。
存储日常分配
这个是最需要自动化也是最容易的环节,但也不是那么容易。
最简单的就是利用脚本来创建LUN,创建CIFS/NFS等。这里有一个前提就是,你得事先选好哪台存储,选好了存储阵列之后,如果需要的话,还得选好存储池。
一个复杂的自动化流程应该是这样的:
根据存储监控模块中的存储阵列,挑出那些健康的阵列。这个健康的定义就很难了,也很难判断。比如根据主机距离的远近,容灾方案的选择,容量与性能的要求等等。
有些应用可能有特殊的要求或最佳实践,一并考虑进去。
选好了存储阵列之后,对于NAS来说你就得选机头,存储池等。对于SAN来说也可能需要相应的选择。然后才是创建文件系统,CIFS/NFS, LUN/LUN Mapping。
对于SAN来说,还需要建zone。第一步就是选一个或多个SAN交换机,这个选法也是很有技巧的。
如果可能的话最好能到Server上做个验证以确保存储分配成功。
或许可以和Backup team联动,自动备份。
或许可以容灾部门合作,做个容灾演练。
应用的存储自动分配
除了上面的基于主机的分配,我们还可以考虑将存储的自动分配实施到应用当中去,比如数据库存储的自动扩展,VMware或其他云的自动分配 (比如Datastore的自动创建)。
存储的回收与迁移
这里的迁移不是说同一个阵列的不同Tier的迁移,而是指跨平台的应用层的迁移。比如怎么把数据从SAN 搬到NAS上面。
回收最好能让客户自助方式完成。
同其他IT设备的集成
比如讲存储的分配集成到主机的生成过程中。比如在私用云的环境中,用户在定义主机特性的时候,可以选择存储的特性,之后自动完成存储的分配。
怎样完成存储的自动化
好了,前面讲了怎么多,那到底怎么做呢?可行性怎么样?这个就是接下来我要研究的问题。我的初步研究成果如下。其实讲怎样完成存储自动化,我们首先要确定要自动化哪些流程。如果上来就来自动化10.0当然不切实际。
那么到底有哪些途径可以实现呢?
存储产品单一且来自同一个厂商
采用厂商自己的自动化工具。比如只用NetApp产品,我看有个NetApp Workflow Automation不错,参考《Automating storage with NetApp Workflow Automation》与《OnCommand Workflow Automation》。
购买商业存储自动化软件
这个就要看预算与需求了,而且往往中看不中用。实际上,往往想存储自动化的公司还是非常想牢牢控制自己的存储资源的。把存储交给第三方软件来管理,出了问题吵架都累死了。
这里我看有sentrysoftware的Storage Automation,Puppet Labs貌似也有了,EMC ViPR Controller看起来也可以加其他厂商的存储,EMC还买了个自动化软件iWavesoftware。
自己动手丰衣足食
这个当然难度最高,灵活性最好。你得需要一堆高级人才,他们得精通存储与软件开发,还得懂点网站开发。或者一堆存储人员加程序员,但还是需要一堆翻译人员,否则鸡同鸭讲。
这个是一个持续开发的过程,请做好养一堆高工资的人准备。但如果IT环境足够复杂,足够庞大,这点应该是小钱。而其带来的对业务部门良好服务相比,值得投资。
CLI vs REST API vs SMI-S
自己动手其实也有选择,对于同一个产品来说也有很多方式来编程或写脚本,你可以选择CLI,也可以API。有些提供了REST API,有些提供了SMI-S,有些两个都提供了。那到底选哪个?
如果你想程序或脚本得到良好的移植性,或者将来可能用云平台,请选择REST API。我认为REST API简单,规范。
如果你只有一家厂家的多个产品,比如全部都是EMC的。或者可以选择SMI-S。当是SMI-S不是那么易上手。与其说是利于用户自动化管理,不如说是厂商用来销售其统一管理平台的工具。
如果你产品单一,Linux技巧好,直接上SSH/CLI吧。 |
|