我有几个虚拟化的文件服务器在ProxmoxVE上的QEMU / KVM上运行。
物理主机有4个存储层,性能差异很大。 它们通过NFS本地连接。
这些将作为本地磁盘提供给文件服务器,抽象到池中,并处理networking的多个数据stream。 我的目标是让这个抽象层智能地合并层。
这里有一个类似的post: 家庭自酿分层存储解决scheme与Linux? (内存 – > SSD – >硬盘 – >远程存储) ,其中接受的答案是放弃NexentaStor的Linux解决scheme的build议。
我喜欢运行NexentaStor的想法。 它几乎符合法案。
NexentaStor提供混合存储池,我喜欢校验和的想法。 16TB没有发生许可费用也是一个巨大的加分。 在硬件的费用后,免费的是我所有的预算可以处理。
我不知道zfs池是自适应的还是基于负载dynamic分配的,但由于NexentaStor不支持virtionetworking或块驱动程序(这在我的环境中是必须的),因此它变得无关紧要。
然后我看到一个名为SmartMove的商业解决scheme: http ://www.enigmadata.com/smartmove.html
而且这看起来像是朝着正确的方向迈出的一步,但是我太破碎了,我会浪费时间甚至要求报价,所以我正在寻找另一种select。
我在一个支持virtio驱动程序的linux实现之后,对于哪个软件能胜任这个工作,我感到不知所措。
在Linux服务器上获取这个的一种方法是使用flashcache内核模块 。 这只能真正给你一层,说在Drobo和/或本地光盘顶部的SSD。 在过去的几个星期里,我一直在家里用500GB SATA驱动器和X25-E SSD进行实验,以提供LVM,然后通过iSCSI进行分片和服务。 到目前为止,它工作得很好。
FlashCache有两种可用的方法:直写式和回写式。 写回caching写入,但也有一个devise缺陷,他们还没有解决,将导致系统的硬故障不能正确保留一些数据。 写通过没有这样的问题,但写入总是刷新到后备光盘。
不过,我认为这不适合在NFS之上进行分层。
关于Flashcache的一些注意事项:你必须从头开始构build它,你必须运行一个64位的内核(32位只是不能正确地加载模块),在我的testing中,迄今为止它的工作很好。 再次,这只是一个星期左右到目前为止。
你可以尝试在github上扩展这个实验项目: https : //github.com/tomato42/lvmts
它包含一个守护进程,用于检测最常用的lvm扩展盘区,并将这些扩展盘区移到分层的存储链上。