分布式存储ScaleIo和XIV的一些想法

来源:互联网 发布:自学java工程师 编辑:程序博客网 时间:2024/06/05 16:55

最近本集成的时候遇到分布式存系统,遇到一些问题,提出个人的简介和看法,希望对一些人有帮助。

首先ScaleIo和XIV都是分布式存储系统,至于还有没有其他的我不知道了。如果用一个比喻的话我觉得XIV就是手机中的iOS系统,ScaleIo就是安卓。

XIV:

在服务器上安装了XIV系统,然后需要在另一个IP上安装管理(用Linux命令行安装管理的驱动),然后再通过GUI将管理端与服务器连接起来,管理端和服务器的关系是一对多。全部在GUI上配置好,然后才在管理端执行Linux命令,得到相关的数据,执行之后的返回值的类型是JSON。我们用java语言进行集成开发,开始采用的是Restful协议,该协议在跳过验证方面还是比较不错的,但是在提供管理端和命令行的前提下,个人认为如果做集成的话还是SSH协议比较安全快捷。首先Restful协议对参数的封装比较繁琐,如果你们使用过Restful的增删改的方法的话应该对此深有感触。为什么这么繁琐呢?原因在于,不论是命令行还是执行命令行之后的返回值都是JSON类型的数据格式。Key-Value套着Key-Value,这种数据的封装用Restful肯定不好受。因此,建议在管理端后服务器配置好后,再java底层采用SSH协议,直接最命令行进行封装,然后再将命令行里面的变量进行封装,在前天进行传参的调用就OK了。然后只要对JSON类型的返回值进行相对应的解析就可以得到相应的数据了。

ScaleIo:

该分布式存储系统就不需要那么复杂的安装配置了,虽然它也有GUI界面。ScaleIo会对硬件内存进行集成分配,在默认情况下,有多少个IP的机器关联到该系统下,会自动将这些机器的内存集合成一个大的池,默认为defaultSP,然后才会在其中划分卷,并且卷的划分默认为8的倍数。在使用的时候一定要提前估算好内存的使用,合理划分。一旦重要的数据存入,且无法划分出多余的池的时候,只能增加成本,在新增池的时候需要新增机器,并关联到该系统下。(上述操作ScaleIo的文件里面都有)我采用SSH协议将其命令行封装,编写成相对应的方法,方便前台对其的调用。

由于我们在前期采用的是XIV,在集成的后期就出现了相关的问题--不兼容。XIV将囊括进去的IP封闭了起来,在这些机器上本来可以执行的其他的命令行从而取到相关数据都执行不了,但是ScaleIo可以,为了避免大量的返工,只能将XIV卸掉,装上ScaleIo,然后在后期的可配合里面添加XIV,通过带外的接口进行相关数据的提取才避免因此造成的损失。这就是我前文提到的为什么XIV是手机地IOS系统,ScaleIo是安卓的原因了。

0 0
原创粉丝点击