2012-12-21 4 views
6

필자는 구멍이 inode에서 메타 데이터로 유지되지만 실제 디스크는 빈 0으로 채워지지 않습니다.파일 구멍이란 무엇이며 어떻게 사용할 수 있습니까?

  1. 파일의 구멍이 유용한 실제 사용 예제를 설명 할 수 있습니까?

  2. 구멍은 과 같음 soft preallocation? 실제 디스크 공간이 사용되지 않지만 그 공간은 다른 프로세스에도 사용할 수 없지만 디스크 공간 관점에서 볼 때.

+1

내 대답을 입력하기 전에 질문이 닫 혔으므로 여기에 간다. VM 시나리오에서 구멍의 진정한 이점은 실제로 가상 디스크에서 데이터를 삭제할 때이다. 20Gigs VM의 디스크 공간과 당신은 일부 데이터를 삭제하기로 결정했습니다. 스파 스 파일 지원없이, 삭제에도 불구하고, 20Gigs는 기본 물리적 하드 디스크에 여전히 남아 있습니다. 그러나 파일 시스템이 구멍을 지원하면 VM은 '펀치'할 수 있습니다. 구멍이 삭제되어 실제 디스크 공간이 확보됩니다. 구멍 펀칭은 일부 파일 시스템에서 fallocate()가 지원합니다. – itisravi

답변

10

구멍이있는 파일은 일반적으로 스파 스 파일이라고합니다.

프로그램은 광범위한 주소 (오프셋)에 액세스해야하지만 잠재적 인 블록을 모두 만지기는 어려울 때 유용합니다. 이것은 가상화 제품이 가상 디스크를 저장하는 데 일반적으로 사용됩니다. 예를 들어 20GB 디스크로 가상 컴퓨터를 구성했지만 데이터가 빠르지는 않습니다. 처음에는 몇 개의 디스크 블록 만 사용하고 VM은 파일 시스템을 만들고 느린 속도로 파일을 저장하게하는 20GB의 스파 스 파일을 만드는 것이 훨씬 빠릅니다.

스파 스 파일은 사전 할당과 반대되는 것으로, 씬 프로비저닝 (thin provisioning)이라고하며 디스크 오버 커미션이라고도합니다. 이를 통해 실제 하드웨어 지원보다 "가상 디스크 공간"을 더 많이 생성 할 수 있으며 필요한 경우에만 디스크를 추가하여 파일 시스템을 확장 할 수 있습니다.

+0

Wikipedia는 마지막 단락의 반대를 암시하는 것으로 보입니다. 위키 피 디아가 묘사 한 것에서부터, 그것은 사전 할당보다는 오히려 사전 할당으로 들립니다. 예를 들어, 단점은 스파 스 파일이 조각화 될 수 있다는 것입니다. 파일 시스템 여유 공간 보고서가 오도 된 수 있습니다. 스파 스 파일이 포함 된 파일 시스템을 가득 채우면 예기치 않은 결과가 발생할 수 있습니다 (예 : 디스크 전체 또는 할당량 초과 오류). http : //en.wikipedia.org/wiki/Sparse_file – Jimm

+0

나는 스파 스 파일을 VM의 컨텍스트 : 필요에 따라 파일을 늘리면 안됩니다. 예를 들어 사용자가 VM을 위해 20GB의 공간을 요청한 경우 1GB를 사전 할당합니다. 실제 사용량의 임계 값이 더 많으면 미리 할당합니다. – Jimm

+0

파일이 조각화 될 수 있으며 예기치 않은 디스크가 가득 찬 상황을 일으키는 원인은 정확하게 공간이 할당되지 않았기 때문입니다. 사전 할당 된 경우 분열은 없었을 것입니다. 스파 스 파일은 분명히 지나친 약속이며, 질문에서 언급 한 것과 정반대입니다 : 공간도 있습니다. 다른 프로세스에는 사용할 수 없습니다. 스파 스 파일의 경우 다른 파일에 대한 공간을 사용할 수 있으며 예약이 전혀 없습니다. – jlliagre

1

구멍은 디스크 공간 사용을 줄인다는 의미에서 "유용합니다"(더 많은 공간을 사용할 수 있음). 다른 의미로는 able을 사용하지 않습니다. 파일 시스템 표현의 일부로서의 구멍의 존재는 큰 블록 0을 포함하는 스파 스 (sparse) 파일이있을 때 "유용"합니다.

구멍은 사전 할당과 관련이 없습니다. 사전 할당은 파일에 실제로 해당 데이터가 있기 전에 파일의 데이터에 대해 디스크에서 사용 가능한 공간을 만듭니다. 구멍은 데이터입니다 ... 특히 블록은 0으로 구성됩니다.

관련 문제