这与我之前的问题Solaris: Mounting a file system on an application's handlers有点相关,除了这个问题是出于不同的目的并且更简单,因为没有打开/关闭/锁定它只是一个固定长度的块的字节与读/写操作。Solaris:用于ZFS的虚拟片/磁盘
是否有无论如何我可以创建一个虚拟切片,有点像RAM磁盘或SVM切片..但我希望读取和写入通过我的应用程序。
我打算使用ZFS来获取多个这些虚拟片/磁盘,并将它们制作成一个较大的虚拟片/磁盘,以便为分布式备份存储提供快照。我非常喜欢ZFS提供的压缩和堆叠。如有必要,我可以保证一次只有一个ZFS实例访问这些虚拟磁盘(以防止缓存冲突等)。如果一个实例发生故障,我们可以确保它不会重新启动,然后我们可以启动该ZFS的另一个实例。
我打算将这些磁盘分成大约4GB左右的块,然后我可以在每个块的周围移动并决定在哪里存储它们(当然是多次镜像),然后让ZFS访问这些块并将它们一起放入更大的块用于实际使用。如果需要的话,ZFS也允许添加这些小块,以增加较大块的大小。
我知道如果我们在Java中使用我自己的应用程序,会有额外的延迟/网络流量,但这仅仅是用于备份存储。生产存储是完全不同的配置,不涉及。
编辑:我们有一个系统使用所有可用的空间,基本上当没有足够的空间时,它将删除旧快照并增加旧快照之间的差距。我的建议的目的是让生产设备中未使用的空间能够投入使用,而无需额外费用。在不同的时间,我们生产设备的不同单位将有自由空间。我所描述的系统在尝试访问数据时应该消除任何单点故障。我希望不必购买两台大型设备并保持同步。我希望只有两个接入点,然后我们可以按照我们想要的任何方式混合使用大型/小型设备,并无缝地移动数据。
这是一个交叉帖子,因为这是比系统管理员相关的更多软件相关原始问题在这里:https://serverfault.com/questions/212072。原始封闭可能是一个好主意
我可能错过了一些东西,但我不明白自己接受的回复是如何匹配“但我希望读取和写入通过我的应用程序”的要求。对您的回复有两个其他评论:一个普通文件需要最小大小作为zpool后备存储(64 MB),并且重新启动不是问题,因为ZFS通过zpool设置来维护持久性缓存,因此不需要自定义启动命令。 – jlliagre 2011-01-02 08:49:10
对不起,我不清楚。我分别问了一个关于如何使用我的应用程序的处理程序来创建网络文件系统(类似于NFS)的问题](http://stackoverflow.com/questions/4370125/solaris-mounting-a-file-system-上的应用程序,处理程序)。然后,ZFS可以使用网络文件系统上的固定长度文件。很高兴知道最小文件大小(64MB)。其实我计划在4GB左右。 – 2011-01-03 13:33:34