2016-08-08 6 views
0

파일 경로는 본질적으로 데이터 작업시 의심 스럽습니다. find_brca이라는 프로그램에서 가상의 상황이 발생하고 my.genome이라는 데이터가 있고 /Users/Desktop/ 디렉토리에 있다고 가정 해 보겠습니다.파일 경로를 사용하지 않는 파일 시스템이 있습니까?

find_brca은 약 4 시간 동안 실행되는 게놈 하나의 인수를 취해 그 개인이 평생 동안 유방암에 걸릴 확률을 반환합니다. 매우 높은 확률로 제시된 사람들은 즉시 유방을 예방책으로 삭제할 수 있습니다.

분명히이 시나리오에서는 /Users/Desktop/my.genome이 실제로 우리가 생각하는 게놈을 포함하고 있다는 것이 절대적으로 중요합니다. do-over는 없습니다. "이전 백업 파일의 이전 버전을 사용했습니다."또는 기타 기술적 인 문제는 환자가 받아 들일 수 없습니다. 분석 할 것으로 생각되는 파일을 분석하려면 어떻게해야합니까?

문제를 복잡하게 만들려면 find_brca을 수정할 수 없다고 주장 할 수 있습니다. 우리는 폐쇄 소스, 독점권 등을 쓰지 않았기 때문입니다.

MD5 또는 다른 암호화 체크섬이 구조 될 수 있다고 생각할 수 있으며 어느 정도 도움이되지만 find_brca이 실행되기 전이나 후에 파일을 MD5로만 볼 수는 있지만 결코 알 수는 없습니다 find_brca이 정확히 어떤 데이터를 사용했는지 (DTrace/ptrace 등의 심각한 저수준 시스템 프로빙을하지 않고).

문제의 근본 원인은 파일 경로가 실제 데이터와 1 : 1 관계를 가지지 않는다는 것입니다. 파일을 체크섬으로 만 요청할 수있는 파일 시스템에서만 - 그리고 데이터가 수정되면 체크섬이 수정됩니다. find_brca 게놈의 파일 경로 4fded1464736e77865df232cbcb4cd19을 제공 할 때 실제로 올바른 게놈을 읽는 것을 보장 할 수 있습니다.

이와 비슷한 파일 시스템이 있습니까? 현재 존재하지 않는 파일 시스템을 만들고 싶다면 어떻게 할 것인가?

+1

나는 문제가 그랬듯이 질문을 이해 있습니다. 그래서 문제는 "나쁜"누군가 파일을 수정할 수 있다는 것입니다. – dmeister

+0

파일 경로가 생각하는 데이터를 가리 키지 않는 시나리오가 많기 때문에 약간 애매했습니다. 부패. 실행 전 또는 4 시간 런타임 동안 경쟁 조건으로 파일을 우발적/의도적으로 다른 것으로 전환합니다. 백업 등에서 사용 된 이전 버전 프로그램 끝에 분석 할 파일 경로를 주면 하루가 끝날 때 그 경로의 끝에서 데이터에 대한 보장을하지 않기 때문입니다. 임의의 이름이 아닌 체크섬을 기반으로 파일을 요청할 수있는 파일 시스템에서는 이러한 문제가 없습니다. –

답변

2

나는 안정성에 대한 나의 의심을 가지고 있지만 hashfs 정확히 당신이 원하는 다음과 같습니다 http://hashfs.readthedocs.io/en/latest/

HashFS는 내용 주소 파일 관리 시스템입니다. 그게 무슨 뜻 이죠? 간단히 말해 HashFS는 파일의 해시를 기반으로 파일이 저장되는 디렉토리를 관리합니다. 이러한 종류의 시스템에 대한 일반적인 사용 사례는 다음과 같습니다. 파일은 한 번 쓰여지고 변경되지 않습니다 (예 : 이미지 저장). 중복 파일 (예 : 사용자 업로드)이없는 것이 바람직합니다. 파일 메타 데이터는 다른 위치 (예 : 데이터베이스)에 저장됩니다.

참고 : hashfs와 혼동하지, 내 학생이 몇 년 전에했던 : http://dl.acm.org/citation.cfm?id=1849837

1

질문은 다소 모호하지만 질문에 대한 답은 여러 가지가 있습니다.

우선, 모든 파일 시스템에 경로/데이터 통신이 부족하지는 않습니다. 대부분의 파일 시스템 (대부분은 아니지만)에서 파일은 경로가 아닌 ID로 식별됩니다.

다음으로 응용 프로그램이 데이터를 처리하는 동안 데이터가 변경되지 않도록하려는 경우 접근 방법은 사용중인 파일 시스템과이 응용 프로그램이 파일과 함께 작동하는 방식에 따라 달라집니다 필요에 따라 파일을 닫습니다).

마지막으로 파일 데이터가 사용되는 동안 공격자가 파일 시스템의 데이터를 변경하는 것에 우려되는 경우 파일 경로보다 큰 문제가있을 수 있으며 사전에 해당 문제를 해결해야합니다 .

참고로 가상 파일 시스템 (Linux의 FUSE, Windows의 CBFS)을 구현할 수 있습니다.이 파일 시스템은 메모리, 데이터베이스 또는 클라우드와 같은 다른 곳에서 가져온 데이터로 응용 프로그램을 제공합니다. 이 접근법은 귀하의 질문에 대한 답변입니다.

업데이트 : 파일 경로를 없애고 해시로 데이터를 처리하려면 해시가 핵심 인 NoSQL 데이터베이스가 가장 좋습니다.

+0

당신은 "파일 경로가없는 파일 시스템에 대해서는 어떻게하면 좋을지 모르지만 파일 경로는 그대로 유지하는 방법"이라는 질문에 대답하는 것 같습니다. 나는 파일 경로를 전혀 원하지 않거나 필요로하지 않는다. 수십억 개의 파일이 SHA-1 합계로 색인 된 단일 '디렉토리'는 정상적으로 작동합니다. 특히 해시를 기반으로 파일을 읽으면 반환하는 데이터를 보장하는 복사 기록 시스템 인 경우 특히 유용합니다. 읽는 동안 "수정 된"경우에도 데이터는 사용자가 생각하는 데이터입니다. 그러나 불행히도 나는 이와 같은 것을 찾기 위해 애를 썼다. 아마도 가상 파일 시스템이 최선의 방법입니다 :) Eugene에게 감사드립니다! –

+1

@ J.J 답변에 대한 업데이트를 추가했습니다. NoSQL을 찾아 해시를 키로 사용하십시오. –

+0

저는 그것을 좋아합니다. 아마도 데이터베이스가 전통적인 파일 시스템처럼 작동하지 않을 것입니다. (파일 경로를 제외하고 해시를 허용하는 프로그램을 바보로 삼기를 바랬지 만) 트랜잭션 지원과 같은 유연성을 제공합니다. –

관련 문제