谷歌'開源'文件生命週期管理「'。我很抱歉,我只知道商業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