问题:我需要尽快将大块数据从远程位置复制到系统内存中。
场景:我有一个数据处理系统。该系统是通过使用从远程位置拉入的多个组件即时通过 shell 脚本构建的。
其中一个组件是作为文件组存储的大块数据。
我的要求是从远程位置检索大块数据,并尽快将其安装到系统内存中。这是一项要求,以便依赖此数据的系统可以在启动后尽快开始使用它进行处理。
问题:“我的数据最有效的容器是什么?”
已经尝试/考虑的解决方案:
注意事项:
我对 ISO 容器的最初研究显然是不完整的。ISO 集装箱似乎是最有效的,可以快速获取内容物。这是基于我的研究发现的,当然可能会改变。
打包在 ISO 中我能够:
使用这个容器,我能够将整个过程缩短到 1 分钟以内,这是该项目可以接受的容忍水平。
在 Ubuntu 中使用类似于以下的命令可以轻松创建此容器:
mkisofs -o /tmp/data.iso /opt/data/
Run Code Online (Sandbox Code Playgroud)
**请注意,这需要genisoimage
通过apt-get
.
为了将文件直接存储到内存中,我在/tmp
文件系统中创建了一个 ramdisk:
mount -t tmpfs -o size=3G tmpfs /tmp/data
Run Code Online (Sandbox Code Playgroud)
使用多部分传输实用程序可以相对快速地检索容器。我使用了一种axel
这样的方式:
axel -a -n 128 -o /tmp/data/data.iso https://s3.amazonaws.com/bucket/data.iso
Run Code Online (Sandbox Code Playgroud)
最后我们将文件挂载到本地文件系统:
mount -o loop -r /tmp/data/data.iso /opt/data/
Run Code Online (Sandbox Code Playgroud)
安装过程几乎是瞬时的,这使得系统能够快速开始使用数据进行处理。
归档时间: |
|
查看次数: |
246 次 |
最近记录: |