我有很多rrd文件是在第一代Cubieboard (1 GHz CPU、1 Core、1 GB RAM)上生成的,大约一年前,当我将数据记录器迁移到x86_64机器时,我注意到我再也不能读取那些旧文件了。我不知道它们是特定平台的。
我知道有一个工作流,我将文件中的数据导出到XML文件中,然后在另一个体系结构上导入它们,但这不是我的首选,因为旧板速度慢得令人痛苦,还有其他重要的工作要做,比如作为DNS服务器。rrdtool版本停留在1.4.7,并且有1.4 G的文件需要处理。
有没有一种方法可以在快速英特尔机器上模拟Cubieboard,或者一些基于x86_64的工具来转换那些rrd文件?
发布于 2018-10-23 20:15:18
正如您已经注意到的,RRD文件在体系结构之间是不可移植的。格式不仅取决于32/64位整数大小,还取决于“endian”特性,甚至取决于结构填充的编译器行为。可以在新平台上以32位模式编译库,但仍然不太可能与旧RRD文件兼容,因为还有其他硬件差异需要考虑。
简而言之,你最好的选择是(慢慢地?)导出到XML,然后在新体系结构中重新导入,正如您已经提到的。我以前在一个大型的RRD安装上这样做过,为了避免数据中的空白,我并行运行了一段时间,但这需要时间。
我似乎还记得Tobi曾经计划在RRD 1.6中建立一种独立的RRD格式,但是即使这成为现实,它也不会帮助您处理遗留数据。
https://stackoverflow.com/questions/52696180
复制相似问题