私有云存储服务4节点部署各方案对比

近日因工作需要在某高校安装私有云存储系统。部署环境是一台4节点服务器,每个节点有16GB内存,3个硬盘,每个硬盘3TB
,每个节点可用空间约为8TB。部署的目标是充分利用所有的服务器资源,提供可靠的存储服务,同时尽量不要修改我们的系统源代码。由于本人在web服务部署经验尚浅,遂问计于师哥,对比了如下多种部署方案。

1. 原始方案


  • 说明:1节点部署ffmpeg转码服务,1节点部署私有云存储系统(nginx+mysql+php代码)。文件读写只在部署了私有云存储的节点进行,日后购买磁盘阵列后将存储挂载到磁盘阵列上。

  • 优点:部署简单

  • 缺点:有2个节点完全没有使用,作为转码服务的节点的空间利用率极低。实际可用的文件存储空间只有安装了云存储系统的节点上的8TB空间。该节点压力大,存在单点故障。

  • 结论:浪费太大,可靠性差,不可

2.mfs 方案


  • 说明:所有节点都部署mfs分布式文件系统。其中一个节点做mfs的元数据服务器,其他三个做mfs存储服务器。此外对于这三个存储服务器,用一台部署nginx和php代码做主web服务器,一台部署ffmpeg转码服务,一台部署mysql做数据库服务器。

  • 优点:首先,每个节点都得到了利用。其次,由于安装了mfs,每个文件在三个节点中都有副本,数据安全性高,可靠性高。

  • 缺点:mfs的三副本策略导致实际可用文件存储空间只有8TB。虽然可以设置只用1副本来增加可用空间,但是会降低可靠性。mfs依然存在单点故障(mfs的元数据服务器)。这个架构中,mfs元数据服务器、或者mysql数据库服务器、web服务器中有任意一台挂掉都会导致整个服务中断。此外,mfs安装虽然容易,但是一旦发生故障我缺少处理经验(能安装和能排错是完全不同的两个层次)。

  • 结论:此方案虽然服务器资源都用上了,但是在生产环境中维护成本高,单点故障多,并且空间依然只有8TB,所以再议。

3. iscsi级联+raid方案



部署方案

  • 说明:一个节点部署ffmpeg转码服务,一个节点部署nginx和php代码做主web服务器,一个节点安装mysql做主数据库服务器,一个节点安装mysql做热备数据库服务器。除去每个节点必须的存储空间外,剩下的存储空间都使用iscsi级联,并作raid10或raid5,挂载到web服务器上用于文件读写。

  • 优点:所有节点都得到了利用,并且存储空间利用率远较前两个方案高。设每个节点自用一个硬盘,另外两个硬盘用于iscsi级联,4个节点级联后可用空间为24TB。采用raid10后,I/O速度提高两倍,可靠性大幅提高,可用空间为变为12TB,依然比1,2方案高。若采用raid5,则1盘做冗余,7盘做存储,可用空间为21TB。相对raid10而言空间利用率提高,读写速度降低。

  • 缺点:存在一个单点故障——web服务器。

  • 结论:此方案存储空间利用率较之1,2方案而言大幅提高,并且可靠性不比2低:文件存储空间有raid保护,数据库有热备,单点故障少。此外部署难度低,故障容易处理。可以说是目前最好的方案。

4.负载均衡方案


  • 说明:在3的基础上,设置nginx负载均衡,让主mysql服务器只负责写,从mysql服务器只负责读。

  • 优点:主数据库服务器负载有所下降。

  • 缺点:要修改系统读写数据库的源代码,成本过高。

  • 结论:在目前的4节点服务器中搞负载均衡实在是没什么必要。由于转码服务需要大量cpu计算能力,所以必须分单独一个节点来做。另外3个节点又必须分一个来单独做数据库服务器。对于剩下两个节点,要么都做web服务器,要么一个做web服务器一个做从数据库服务器。私有云存储系统的主要压力不在web服务,而是在数据库读写和文件存储中。所以负载均衡只能是对两台数据库服务器来做,但是这样要修改系统读写数据的源代码,成本过高。不如方案3的双机热备。

5.使用openstack或者vmware vcenter搞多机虚拟化


  • 说明:4个节点,一个做ffmpeg转码服务,另外3个物理节点用软件openstack或者vmware
    vcenter变成一个虚拟机来部署安装私有云存储系统(nginx+mysql+php代码)。

  • 优点:只要搞定了虚拟机,代码安装部署比较容易。其他什么效率啊,安全啊,可靠性啊,都让虚拟机软件来做。

  • 缺点:这种方式的虚拟机效率低,分布式共享内存效率好不了。本来内存延迟很小的,但是经过网络之后,延迟会大几个数量级。这又不是大型机。并且openstack和vmware
    vcenter这种部署方式,实际上要调的参数太多,我们并不精通,很容易出现故障,出现了也难以排除。

  • 结论:这个方案显然是一拍大腿想出来的。虚拟机虽然很好用,但是这样引入了未知的黑洞。据我所知很少有生产环境这么搞的——效率是最直接的问题。听说dell刚刚收购了一家公司是搞这个的,但是这种技术并不成熟。为此我还专门询问了在做openstack的师哥,连他也没见过这么搞的。新技术方案没有充分的调研和实验是不能直接上的。

结语:


最终我们采用了方案3。

系统部署方案有很多,但是每个都不是万能的。什么是好?适应当前环境的就是好。就现在来看,方案3最好,实现了最小成本最高效率和可靠性。当然,想继续优化也没问题,但是从4,5两个方案中可以看出,这样的优化是代价越来越高,效果越来越小,带来的副作用越来越多。搞负载均衡,那负载均衡的那个节点也是单点故障。其实要服务挂掉很容易,交换机一挂就全完了。就一个4节点服务器,还要怎么耍?把各种分布式文件系统都装上?复杂性那么高,以后还要不要维护了?要知道简单就是美。其实几乎每本linux部署相关的书中一开始都会强调——“不要为了优化而优化”。只要满足现在的要求并能为未来的优化留下空间就行,因为完美的要求永远是动态变化的。

时间: 2024-12-27 23:43:21

私有云存储服务4节点部署各方案对比的相关文章

腾讯云首推私有云存储,意欲抢占更多用户市场

腾讯云首推私有云存储,意欲抢占更多用户市场 8月23日,腾讯云于2017腾讯"云+未来"峰会北京站,面向全球用户,重磅推出了智能云存储新品系列.其中,为给各行业领域提供更多能满足其私有存储需求的公有云服务,腾讯云特别推出了私有化存储CSP(Cloud Storage on Private),它以标准化.分布式的X86架构为基础,为客户提供机房私有部署.腾讯云机房专区部署两种方式,在满足客户多场景需求的同时,更保障其对系统100%的可控性. 直面市场挑战,腾讯云重拳出击 众所周知,公有云

公共云存储服务的可扩展性和性能

原文地址 公共云存储服务供应商可帮助企业用户免于承担物理硬件及其相关成本的负担,其中包括能源.冷却以及服务器维护等. 很多企业都在使用公共云.私有云以及混合云这样的一个组合,但是其中的公共云存储服务是尤其吸引人的.它的成本效益高,它可提供可扩展性.可靠性以及性能优势. 使用公共云存储服务可以让企业将相关工作外包给供应商,从而从繁重的管理任务重脱身出来,并可以减少与支持物理硬件相关的成本开支.企业用户的数据是存储在供应商的数据中心内的,而供应商管理和维护着其数据中心的方方面面,具体包括能源.冷却和

杉岩数据企业级私有云存储解决方案

虚拟化技术在企业私有云IT基础架构中仍然占据重要地位,同时,为了进一步提升应用效率,越来越多的生产环境也正在逐步变革,从以虚拟机为中心的架构向以容器和微服务为中心的云原生架构过渡,在这个过程中,存储如何有效支撑各种云主机应用与微服务应用,对于企业的私有云数据中心提出了新的挑战. 企业面临的问题 存储设施七国八制,硬件锁定缺少弹性 多种云平台对于存储的要求各不相同,块/文件/对象存储对应不同类型的应用,对外提供不同的服务接口,一种存储设备无法满足多种类型的云平台存储需求,而且传统存储在扩展性方面不

Dropbox 官方中文版!最优秀实用的免费跨平台文件网络同步网盘云存储服务

很不幸的,昨晚发现我的台式机又死机了,硬盘灯不闪烁,Num lock键也无任何反映,强行重启电脑后经过一段时间的磁盘扫描检测后,总算正常进入系统了,发现系统运行速度正常,初步判断盘符和文件均无丢失,有惊无险,联想起上个月刚出现了一起故障,电脑里面一个1T硬盘无法访问,万幸的是刚才故障盘里面既无操作系统也无重要文件.当时就想把重要文件复制下来,一时疏忽,忘记了,看来事不宜迟,得马上找到应对的措施,事不过三,下次再发生故障,估计就没这么好的运气了. 微软的DFS肯定是没必要的了,小牛拉大车,有点浪费

什么是企业私有云存储

在生活中提到存储,人们往往想到的都是U盘.移动硬盘,深远一点的就是百度网盘等存储工具.对于企业的资料存储人们是不太关注,毕竟那属于企业范畴,只有企业信息部门才会去关注. 但是在云的时代,企业人员都是产生存储资料的节点.以前人们办公的时候都是自己产生的文档,就自己存储在个人的电脑之中.同事或者领导需要才通过邮件或者QQ等传输工具进行传输.这样就会给企业带来相应的麻烦.比如当人员离职时候,要是文档交接不全,自然流失,后续的人员工作开展就会受到相应的影响:电脑系统重装,存储在个人电脑的文档,一不小心就

Linux最佳的云存储服务分析

什么样的云服务才适合作为 Linux 下的存储服务?兄弟连www.lampbrother.net来帮大家分析一下! 大量的免费空间.毕竟,个人用户无法支付每月的巨额款项. 原生的 Linux 客户端.以便你能够方便的在服务器之间同步文件,而不用做一些特殊的调整或者定时执行脚本. 其他桌面系统的客户端,比如 Windows 和 OS X.移动性是必要的,并且同步设备间的文件也很有必要. 基于 Android 和 iOS 的移动应用程序.在今天的现代世界里,你需要连接所有设备. 我不将自托管的云服务

卡巴斯基:乌“云”密布的云存储服务

云存储服务以其方便快捷的特点早已在互联网用户中被广泛普及.据新华网数据,截止到今年3月,国内个人云用户数已超过3.51亿人.然而,无论是个人用户还是企业用户,将文件上传到“云”上是否安全可靠呢? 近日,卡巴斯基实验室的专家针对这一问题进行了深入研究.结果显示,如不采用有效的防御措施,云存储很有可能“乌云密布”,存在巨大安全隐患.而究其原因在于大多数流行云存储所具有的自动同步功能.根据卡巴斯基实验室专家们的分析,网络罪犯很可能通过员工笔记本上安装的Dropbox客户应用获得笔记本的控制权.而这一事

使用python调用windows azure 云存储服务

前几天自己看了python,心痒痒,然后使用python来调用Windows azure云存储. 参考文章: 使用python调用windows azure 云存储服务 安装python 我在按照文章内容安装完python sdk for azure后,直接通过python编辑器调试. 在导入azure包时,未报错. from azure.storage import * 在执行BlobService对象时,未报错. blob_service = BlobService(account_name

搭建nextcloud私有云存储网盘

简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储. 真正试用过后就由衷地赞同这个Nextcloud:它是个人云存储服务的绝佳选择.一开始以为Nextcloud只是一个网盘云存储,后来看到 Nextcloud内置了Office文档.图片相册.日历联系人.两步验证.文件管理.RSS阅读等丰富的应用,我发现Nextcloud已经仅仅可以 用作个人或者团队存储与共享,还可以打造成为一个个人办公平台,几