谷歌'开源'文件生命周期管理“'。我很抱歉,我只知道商业SAN应用程序,而不是如果有F/OSS替代品。
商业应用程序工作的方式是文件系统显示正常 - 所有文件都存在。但是,如果文件在某个时间段内没有被访问(对我们来说,这是90天),文件将被移动到辅助存储器。也就是说,除了第一个4094字节之外的所有内容都被移动。文件归档后,如果您寻找(读取)过去的字节4094,则会在文件从辅助存储中拉回时出现轻微延迟。我猜想小于4094字节的文件永远不会发送到辅助存储,但我从来没有想过。
这个方案的唯一问题是,如果你碰巧有东西试图扫描你的所有文件(例如网络搜索索引)。这往往会将所有东西都从二级存储中抽回来,填补了初级的空白,IT人员开始为您提供毛茸茸的眼球。 (我是,ahem,从一些轻微的经验谈起)。
您可以尝试在ServerFault.com上询问此问题。
如果你很方便,你可能会想出一个类似的方法使用cron和shell脚本。你必须用符号链接来替换4094字节的东西(注意,下面没有经过测试)。
# This is the server's local storage, available via network
SOURCE_STORAGE_PATH=/opt/network/mounted/path
# This is the remote big backup mount
TARGET_STORAGE_PATH=/mnt/remote/drive
# This is the number of days to start archiving files
DAYS_TO_ARCHIVE=90
# Find old files that are not already symlinks, using temp files
# NOTE: You might have to account for spaces in file names
TEMP_FILE=$(mktemp)
find ${SOURCE_STORAGE_PATH} -atime +${DAYS_TO_ARCHIVE} -a -not -type l > ${TEMP_FILE}
# This probably needs to change, if too many files in TEMP_FILE...
# this would be a good point to drop into something like Perl
for FILE in $(cat ${TEMP_FILE}); do
# split source into path and file name
BASE_PATH=$(dirname ${FILE});
FILE_NAME=$(basename ${FILE})
# path to target
TARGET_PATH=${TARGET_STORAGE_PATH}/${BASE_PATH}
# make sure target exists (note -p option to mkdir)
[ -d "${TARGET_PATH}" ] || mkdir -p ${TARGET_PATH}
# move source to target
mv ${FILE} ${TARGET_PATH}
# replace source with symlink to target
ln -s ${TARGET_PATH}/${FILE_NAME} ${FILE}
done
我对此感到满意的是,其中一些文件包含患者可识别的信息。这就是为什么我希望在本地子网上设置某些东西,而不是将任何数据推送到云端(事实上,长期存储的加密是我应该考虑的另一件事情,尤其是在可移动驱动器上)。 谢谢。 – basswulf 2009-08-07 11:45:32
啊,我以前在med工作过,你没有提到病人的资料。我会像上面那样做,但是在推送之前将所有文件包装在GPG中。有了足够强大的钥匙,他们应该保持安全。或者HDFS。我正在更新答案。 – mixonic 2009-08-07 12:20:27