조각 모음이 필요하지 않은 것은 무엇입니까? 리눅스 또는 ext2 ext3 FS?


32

Linux 시스템을 조각 모음하지 않아도되는 이유는 무엇입니까? ext2 / ext3 파일 시스템을 사용하고 있거나 Linux이기 때문에?

이중 부팅 시스템 (W7 / Ubuntu)과 두 시스템 모두에서 액세스 할 수있는 공통 파티션 (NTFS)이 있기 때문에 관련이 있습니다. Linux에서이 파티션을 사용하는 경우 조각화됩니까?

또 다른 문제는 Truecrypt 컨테이너입니다. 또한 Linux 및 Windows로 액세스하며 FAT32입니다. Linux에서 작동하면서 조각화됩니까?


2
다른 대답은 좋지만 하나의 중요한 비트는 제외합니다. 모든 파일 시스템 : ext2 / 3 / 4 및 NTFS는 디스크 공간이 부족할 때 파일을 상당히 조각화합니다. 조각화를 방지하려면 파일 시스템 사용이 90 %를 초과하지 않도록하십시오.
Zan Lynx

1
ext4를 사용한다면 e4defrag -v ., 디렉토리 트리에서 실행할 때 , 특히 토렌트 클라이언트로 다운로드 한 파일이 포함 된 경우 (몇몇은 fallocate/를 사용하지만) 얼마나 많은 조각화를하는지 놀랄 것 posix_fallocate입니다.
rbrito

질문은 개인적인 견해에 달려 있지만 실제 사실에 더 의존한다고 생각합니다.
Julie Pelletier

답변:


27

여기에 기사의 방법 긱 EXT2 / EXT3 할당 디스크에 파일 방법은. 또한 " 조각 모음해야 합니까?" 라는 기사도 있습니다.


FAT가 조각난 이유 :

"파일을 FAT 파일 시스템에 저장하면 디스크 시작 부분에 최대한 가깝게 [파일이 저장됩니다.] 두 번째 파일을 저장하면 첫 번째 파일 바로 다음에 [파일이 저장됩니다.] 원본 파일의 크기가 커지면 항상 조각화됩니다.
G 방법

그리고 위키 피 디아는 FAT 조각에 대한 자세한 정보가 있습니다 .

EXT2,3,4가 파일을 할당하는 방법 :

"ext2, ext3 및 ext4 파일 시스템 [...]은보다 지능적인 방식으로 파일을 할당합니다. 하드 디스크에 여러 파일을 서로 가까이 두는 대신 Linux 파일 시스템은 디스크 전체에 서로 다른 파일을 분산시켜 많은 양을 남깁니다. 그들 사이에 여유 공간이 있습니다. "
G 방법

( wikipedia에서 ext3의 조각 모음에 대한 자세한 정보 )

"현대 Linux 파일 시스템은 연속 섹터에 저장할 수없는 경우에도 파일의 모든 블록을 서로 가깝게 유지하여 조각화를 최소화합니다. ext3와 같은 일부 파일 시스템은 다른 블록에 가장 가까운 여유 블록을 효과적으로 할당합니다. 리눅스 시스템에서 조각화에 대해 걱정할 필요가 없습니다. "
- TLDP


4
좋은 답변입니다! 그러나 조금 더 내용을 넣어야합니다. 아이디어는 StackExchange에 대한 답변만으로 충분해야한다는 것입니다. 질문의 링크가 끊어지면 답변이 도움이되지 않으므로 게시물에 충분한 설명을 제공 한 다음 추가로 읽을 수있는 링크를 제공해야합니다.
lgeorget

1
@lgeorget에게 감사드립니다. 나는 몇 가지 방향 인용문으로 답을 찾았으므로 항상 "why"에 대해 읽을 내용이 있습니다. 귀하의 의견 / 건설적인 비판에 감사드립니다 !!
dougBTV

"당신이 FAT 파일 시스템에 파일을 저장하면, 그것은 저장". 이해가되지 않습니다. "그것"은 무엇입니까? FAT는 파일 시스템 형식입니다. 저장할 수있는 위치를 설명하지만 단일 위치로 제한하지는 않습니다. 실제로 OS가 결정합니다. 그러나 FAT에 쓸 수있는 다양한 OS가 있으며 각각 자체적으로 결정합니다.
MSalters

@MSalters-동의했습니다. 인용 부분을 편집하여 그 모호한 부분을 생략하겠습니다.
dougBTV

모호한 내용은 이제 숨겨져 있습니다. 이 문장은 여전히 ​​절대적이지만 ( "FAT"가 저장되는) FAT 사양 전체에 대해서는 언급하지 않습니다. 실제로 인용 한 Wikipedia 링크는 직접적으로 모순됩니다. 즉, Windows에서 첫 번째 파일 바로 다음이 아닌 두 번째 파일의 위치를 ​​선택한다고합니다. ( "큰 연속 영역을 미리 선택")
MSalters

23

파일 시스템에 관계없이 조각화는 항상 관심사입니다. 그러나 Ext3 / Ext2는 대부분의 관리자가 걱정하지 않는 것처럼 작동하는 지점까지 문제를 최소화했습니다. 이는 유능한 I / O 스케줄러를 사용하고 파일 시스템이 각 파일 뒤에 후행 공간을 남겨서 증가하도록 수용함으로써 최소화됩니다. 또한 추가 조각이 더 가깝게 저장되어 조각화가 있어도 그 효과는 심각하게 소거됩니다. Ext4를 익스텐트로 전환하는 것도 조각화를 더 멀리 완화하는 데 도움을주기위한 것입니다.

조각화는 여전히 존재하며 ext2에는 오프라인 조각 모음 도구가 있으며 ext4는 온라인 도구를 가져오고 btrfs는 (질문과 관련이 있기 때문에) 온라인 조각 모음이 이미 있습니다. ext3을 사용하는 경우 유일한 선택은을 통해 ext4 (변환)로 변환하거나과 tune2fs같은 사용자 공간 도구를 사용하여 얼마나 운이 좋은지 확인하는 것 shake입니다.

파일 시스템이 진행중인 I / O 유형에 따라 여전히 음소거 된 수준에서도 문제가 될 수 있으므로 온라인 도구가 처음부터 유용한 것으로 간주됩니다.

FAT32에 대한 질문의 경우 파일을 조작 할 때 조각화가 발생하지 않으며 파일에 쓸 때 발생합니다. 질문에 직접 대답하기 위해 조각화는 파일 시스템 디자인의 한 측면이므로 FAT32 파일 시스템은 무언가를 쓸 때마다 조각화 될 가능성이 있습니다.


"유능한 I / O 스케줄러를 사용하면 최소화됩니다." 그 문구에는 옳지 않은 것이 있습니다.
Faheem Mitha

찾아 주셔서 감사합니다. 나는 문단의 문장의 전체 문법으로 인해 수정으로 인해 발생하는 문제를 수정하지 않고 언어를 수정하는 것이 나쁘다.
Bratchley

이것은 좋은 대답입니다. CoW (copy on write)에 대해 추가하겠습니다. fs가 조각화되는지 여부와 밀접한 관련이 있습니다.
Martin Sugioarto

4

질문에 하나씩 답하기 :

Linux 시스템을 조각 모음하지 않아도되는 이유는 무엇입니까? ext2 / ext3 파일 시스템을 사용하고 있거나 Linux이기 때문에?

ext2 / 3 / 4는 파일과 폴더에 대해 다른 접근 방식을 가지고 있기 때문에 거의 조각화되지 않습니다. 다른 사람들은 이미 그것에 대해 답변했으며 여기에서 자세한 내용을 읽을 수 있습니다

이중 부팅 시스템 (W7 / Ubuntu)과 두 시스템에서 액세스 할 수있는 공통 파티션 (NTFS)이 있기 때문에 관련이 있습니다. Linux에서이 파티션을 사용하는 경우 조각화됩니까?

예, 조각화 될 수 있습니다. Windows 또는 Linux 또는 다른 것이 액세스하는 경우 문제가되지 않습니다. 각 파일 시스템이 파일 크기를 처리하는 방법, 모든 블록을 저장하는 방법, 각 파일 사이에 빈 공간을 두는 지 여부입니다.

또 다른 문제는 Truecrypt 컨테이너입니다. 또한 Linux 및 Windows로 액세스하며 FAT32입니다. Linux에서 작동하면서 조각화됩니까?

Truecrypt 컨테이너는 모든 실질적인 문제에 대한 파일입니다. TrueCrypt를 사용하여 컨테이너를 만들면 선택한 크기의 파일이 만들어집니다. 운영 체제의 경우 다른 파일과 같습니다. 등을 복사하면 조각이 조각화되어 저장 될 수 있습니다.

그러나 동일한 컨테이너의 사본을 여러 개 보유하는 것이 좋지 않으므로 보안을 줄이는 데 도움이 될 수 있습니다. 항상 새 용기를 만드십시오.

컨테이너 내부 의 파일을 저장, 삭제, 복사, 이동하는 등의 작업을 수행 할 때 운영 체제는 파일 에 대해 알지 못합니다. 크기를 변경하지 않고 다른 파일을 열고 편집하고 저장하는 것과 같습니다.

그리고 조각화에 대한 진정한 암호화 보안이 걱정된다면 SSD와 함께 truecrypt 사용에 대한 조사를 수행하십시오. SSD는 내부의 모든 메모리 마모를 활용하려고하기 때문에 컨테이너를 복사하는 것과 동일한 효과를 낼 수 있습니다.


3

결국, 그것은 OS 내의 파일 시스템 드라이버에 달려 있습니다.

ext2 및 FAT 파일 시스템은 디스크의 어느 블록이 어떤 파일에 속하는지를 기록하는 방법입니다. 파일의 모든 블록이 연속적이지 않은 경우 파일을 조각화라고합니다. 그러나 명백히, 조각화는 파일을 작성할 때 블록을 할당하는 방법이 아니라 파일을 작성할 때 블록 할당 전략에 의해 발생합니다.

차이점은 파일 시스템 드라이버가 얼마나 멀리 보이는지입니다. 드라이버가 쓸 블록이 10 개 더 있다는 것을 알고 있으면 연속적인 여유 영역을 선택하고 향후 조각화를 피할 수 있습니다. 이는 OS 별 드라이버 아키텍처에 따라 다릅니다. 그러나 FAT와 ext2에서 동일한 여유 공간 검색을 수행 할 수 있습니다.

사실, ext2와 FAT는 생각만큼 다르지 않습니다. 기존 FAT 코드 위에 부트 로더의 ext2 부분을 작성했으며 100 줄 미만의 추가 코드가 필요했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.