2009-08-07 3 views
2

저는 커다란 대학에서 일하고 있으며 대부분 내 부서의 백업 요구 사항은 중앙 네트워크 서비스에서 제공합니다. 그러나 사용자 중 상당수는 의료 이미징 스캔과 같은 대용량 파일 모음을 가지고있어 사용 가능한 중앙 저장소를 초과합니다.사용자 파일 용 Linux 데이터웨어 하우스 시스템?

저는 부서별 리소스를위한 향상된 백업 솔루션을 제공하고자하며 직원들이 이러한 컬렉션을 보관할 수있는 Linux 서버를 설정했습니다. 그러나 거의 액세스하지 않는 대량의 파일에 의해 서버에 저장되는 것을 막을 수 있습니다. 나는이 문제를 다루는 시스템을 가지고 있지만 휠을 재발 명하지 않기를 원합니다.

내 개념 :

  1. 사용자가 서버에 파일을 복사합니다.
  2. 예약 된 작업은 별도의 저장 장치에있는 모든 파일의 전체 - - 날짜 복사가 얼마 동안 액세스하지 않은
  3. 파일입니다 (1TB의 외장 드라이브는 현재이를 위해 책정 입니다) 유지 서버에서 삭제되었지만 드라이브에 남아있어 라이브 환경에 많은 헤드 룸을 유지합니다.
  4. 간단한 인터페이스는 (아마도 웹 기반)는 사용자가 그들이 필요로하는 사람, 라이브 서버에 저장 드라이브에서 복사 를 요청할 수있는 에서 모든 파일 목록에 액세스 할 수 있습니다. 이메일 개의 파일이 복사되면 알림이 전송됩니다.

이 개념은 PACS (영상 저장 및 통신 시스템) 나는 이전 작업에 대해 들어 있지만 직접 사용하지 않은 기준으로합니다. 이는 비슷한 방식의 "니어 라인"백업을 사용하여 방대한 양의 데이터에 대한 액세스를 제공하는 동시에 네트워크의 다른 부분을 방해하지 않는 시간에 로컬 시스템으로의 전송을 허용합니다. "데이터 보유"가 직접 액세스 쉘빙에서 제시되는 것보다 훨씬 많은 많은 박물관 및 학술 도서관에서 사용되는 것과 유사한 원리입니다.

내 요구 사항에 맞는 간단한 오픈 소스 시스템이 있습니까? 다른 패러다임을 사용하지만 여전히 내 필요에 맞는 다른 시스템이 있습니까?

답변

1

S3 여기에 흥미로운 아이디어가 있습니다. cron을 사용하여 1 개월 이상 액세스하지 않은 파일을 Amazon의 S3에 동기화 한 다음 사용자가 sync'd 파일을 서버에 다시 복원 할 수 있도록 웹 인터페이스를 만듭니다. 파일을 S3로 이동하고 복원 한 후에 이메일을 보냅니다.

무한한 저장, 사용한만큼만 비용을 지불하면됩니다. 상당히 기존의 오픈 소스 프로젝트는 아니지만 조립하기가 너무 어렵지 않습니다.

보안이 필요한 경우 GPG 암호화로 파일을 래핑 한 다음 Amazon으로 푸시하십시오. GPG는 매우 안전합니다.

더 많은 비용 절감 방법은 모든 데이터를 로컬에 저장하는 것입니다.당신이 큰 디스크 클러스터 또는 큰 NAS를 구입하지 않으려면, 당신은 HDFS를 사용할 수 있습니다

그리고 동기화를 S3와 유사한 동작 클러스터에. 범용 하드웨어로 HDFS를 확장 할 수 있습니다. 특히 몇 대의 오래된 장비와 빠른 네트워크가 이미 설치되어 있다면, 이는 심각한 NAS보다 훨씬 저렴할뿐만 아니라 확장 성이 훨씬 뛰어납니다.

행운을 빈다. 이것에 대한 더 많은 답변을 기대합니다.

+0

필자가보기에 이러한 파일 중 일부에는 환자를 식별 할 수있는 정보가 포함되어 있습니다. 그래서 데이터를 클라우드로 내보내는 대신 로컬 서브넷에서 설정하기를 원합니다 (사실 장기 저장소의 암호화는 특히 이동식 드라이브에서 고려해야 할 또 다른 사항입니다). 감사합니다. – basswulf

+0

아, 전 med에서 일했는데 환자 데이터는 언급하지 않았습니다. 위와 동일하게 할 것이지만, GPG에있는 모든 파일을 포장하기 전에 포장하십시오. 열쇠가 충분하면 안전해야합니다. 또는 HDFS. 지금 대답을 업데이트 중입니다. – mixonic

0

-Please- 환자 데이터를 S3에 업로드하지 마세요. (적어도 광산은 아님).

0

Google '오픈 소스'파일 수명주기 관리 '' 죄송합니다. F/OSS 대안이 없다면 상용 SAN 응용 프로그램 만 인식합니다.

상용 응용 프로그램의 작동 방식은 파일 시스템이 정상적으로 표시되는 것으로 모든 파일이 존재합니다. 그러나 파일이 특정 기간 (예 : 90 일)에 액세스되지 않은 경우 파일은 보조 스토리지로 이동됩니다. 즉, 첫 번째 4094 바이트를 제외한 모든 바이트가 이동됩니다. 파일이 아카이브 된 후, 4094 바이트를 탐색 (읽기)하면 파일을 2 차 스토리지에서 다시 가져 오는 동안 약간의 지연이 있습니다. 나는 4094 바이트보다 작은 파일은 2 차 저장소로 전송되지 않는다고 생각하지만, 그것에 대해서는 생각해 본 적이 없다.

유일한 문제는 모든 파일 (예 : 웹 검색 색인)을 검사하려고하는 경우입니다. 그것은 보조 기억 장치에서 모든 것을 꺼내고, 기본을 채우는 경향이 있습니다. 그리고 IT 사람들은 당신에게 털이 많은 안구를주기 시작합니다. (저는 ahem입니다. 약간의 경험으로 말하면됩니다.)

ServerFault.com에서 질문 해보십시오.

당신이 편리하다면, cron과 쉘 스크립트를 사용하는 유사한 접근법을 생각해 낼 수 있습니다. 심볼릭 링크로 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 
+0

감사합니다. 몇 가지 흥미로운 아이디어가 있습니다. 이 질문을 주말에두고 월요일에 다시 할 생각입니다. – basswulf