我希望你们中的许多人正在使用高流量数据库驱动的网站,并且有机会将主要的可伸缩性问题放在数据库中。我最近注意到了几件事:
大多数大型数据库都需要一组DBA来进行扩展。他们不断地因硬盘驱动器的限制而苦苦挣扎,最终获得了非常昂贵的解决方案(SAN或大型RAID,频繁的碎片整理和重新分区维护窗口等)。维护此类数据库的实际年度成本在10万美元至100万美元之间,对我来说太陡了:)
最终,我们吸引了多家公司,如英特尔,三星,FusionIO等,它们才开始销售基于SLC闪存技术的超快速但价格合理的SSD硬盘。这些驱动器的随机读/写速度比市场上最好的旋转硬盘驱动器快100倍(每秒高达50,000个随机写)。它们的寻道时间几乎为零,因此随机I / O的成本与顺序I / O相同,这对数据库来说真是棒极了。这些SSD驱动器每GB的成本约为10-20美元,而且相对较小(64GB)。
因此,似乎有机会通过简单地构建足够大的RAID 5 SSD驱动器阵列(只需花费几千美元)来避免传统方式扩展数据库的巨大成本。然后,我们不在乎数据库文件是否碎片化,并且我们可以提供每秒100倍的磁盘写入量,而不必将数据库分布在100个心轴上。。
还有其他人对此感兴趣吗?我一直在测试一些SSD驱动器,并且可以分享我的结果。如果该站点上的任何人都已经解决了使用SSD的I / O瓶颈的问题,我很想听听您的战争故事!
PS。我知道有很多昂贵的解决方案可帮助实现可扩展性,例如久经考验的基于RAM的SAN。我想明确指出,即使是5万美元,对于我的项目来说也太昂贵了。我必须找到一种解决方案,其成本不超过$ 10,000,并且不需要花费很多时间来实施。
Dave,NXC和Burly,
多谢您的回覆!我想澄清一下,“便宜”一词在我的情况下非常重要。因此,我必须使用便宜的戴尔服务器($ 4K 2950s,只有8个存储库)。我已经安装了32GB的RAM,因此无法继续以这种方式扩展。此外,添加RAM不会使您摆脱磁盘写入瓶颈,这是我目前的主要问题。
我曾经关心SSD的寿命,但是在阅读了现代损耗平衡算法后,我很确定这些驱动器将持续足够长的时间。我的数据库每天写入300GB,并预计在2009年每天超过1TB。企业级SSD可以在多年内每天处理大约10TB的写入。
我不同意Burly的观点,即从SAS迁移到SSD需要太多的工作。我的数据库是一个同步镜像,因此我可以升级镜像的一侧,然后观察它几个月,如果它崩溃了,我可以故障转移到第二台服务器,该服务器仍旧有旧的SAS硬盘驱动器...