조각 모음
Defragmentation
파일 시스템의 유지보수에 있어서 조각 모음은 단편화의 정도를 줄이는 과정이다.파일을 저장하는 데 사용되는 대용량 저장 장치의 내용을 최소의 인접 영역(프래그먼트, 익스텐트)으로 물리적으로 정리함으로써 이를 실현한다.그것은 또한 단편화의 반환을 방해하기 위해 압축을 이용하여 자유 공간의 더 큰 영역을 만들려고 시도한다.일부 조각 모음 유틸리티는 작은 파일이 순차적으로 액세스되는 경우가 많으므로 단일 디렉토리 내에 함께 보관하려고 시도한다.
조각 모음은 전자 기계식 디스크 드라이브(하드 디스크 드라이브, 플로피 디스크 드라이브 및 광 디스크 미디어)의 파일 시스템에 유용하며,조각난 파일에 액세스할 때 하드 드라이브의 읽기/쓰기 헤드가 디스크의 다른 영역으로 이동하는 속도는 읽기/쓰기 헤드를 이동하지 않고 순차적으로 비파쇄 파일의 전체 내용에 액세스하는 것에 비해 느리다.
단편화의 원인
조각화는 파일 시스템이 전체 파일을 하나의 단위로 저장할 수 있을 만큼 연속적인 공간을 할당할 수 없거나 할당하지 않고 기존 파일 사이의 간격에 그 일부를 배치할 때 발생한다(대개 그러한 간격은 파일 시스템이 이후에 삭제한 파일을 보유했거나 파일 시스템이 초과 공간을 할당했기 때문에 있음).첫째로 파일).(로그 파일과 마찬가지로)에 자주 추가되는 파일뿐만 아니라 (이메일 및 웹 브라우저 캐시와 같은) 파일을 자주 추가하고 삭제하는 파일, (비디오와 같은) 큰 파일 및 더 많은 수의 파일이 단편화 및 결과적으로 성능 저하에 기여한다.조각 모음은 이러한 문제를 완화하기 위해 시도한다.
예
그렇지 않으면 빈 디스크는 각각 10개의 블록의 공간을 사용하는 A부터 E까지의 5개의 파일을 가지고 있다(이 절에서 블록은 파일 시스템의 할당 단위임; 블록 크기는 디스크가 포맷될 때 설정되며 파일 시스템에서 지원하는 모든 크기일 수 있음).빈 디스크에서는 이러한 모든 파일이 차례로 할당된다(이미지의 예 1 참조).파일 B를 삭제하려면, 나중에 다시 사용할 파일 B의 공간을 빈 공간으로 표시하거나, 파일 뒤에 있는 모든 파일을 이동하여 빈 공간이 끝에 오도록 하는 두 가지 옵션이 있다.파일을 이동해야 하는 파일이 많으면 파일을 이동하는 데 시간이 많이 걸릴 수 있기 때문에, 대개 빈 공간은 그냥 그대로 두고 새 파일에 사용할 수 있는 것으로 표에 표시한다(이미지의 예 2참조).[1]6블록의 공간을 필요로 하는 새로운 파일 F가 할당될 때, 그것은 이전에 B파일을 가지고 있던 공간의 처음 6블록에 배치될 수 있고, 그 다음 4블록은 계속 사용할 수 있게 될 것이다(이미지의 예 3 참조).또 다른 새로운 파일 G가 추가되어 4개의 블록만 필요한 경우 F 이후와 C 이전(이미지의 예 4)의 공간을 차지할 수 있다.
그러나 F 파일을 확장해야 할 경우 바로 뒤에 있는 공간을 더 이상 사용할 수 없기 때문에 세 가지 옵션이 있다.
- F 파일을 새로 큰 크기의 연속 파일로 만들 수 있는 위치로 이동하십시오.파일이 사용 가능한 최대 인접 공간보다 크면 이것은 가능하지 않을 것이다.파일도 너무 커서 원치 않을 정도로 오랜 시간이 걸릴 수 있다.
- 다시 인접할 수 있을 만큼 충분한 공간이 열릴 때까지 F 이후 모든 파일을 이동하십시오.이것은 앞의 예와 같은 문제를 제시한다: 파일 수가 적거나 이동할 데이터가 많지 않으면 큰 문제가 되지 않지만, 수천 개 또는 심지어 수만 개의 파일이 있다면, 그 파일들을 모두 옮길 시간이 충분하지 않다.
- 다른 곳에 새 블록을 추가하고 F에 두 번째 익스텐트가 있음을 표시하십시오(이미지의 예 5 참조).이 과정을 수백 번 반복하면 파일 시스템은 여러 곳에 흩어져 있는 작은 자유 세그먼트를 가질 수 있으며, 일부 파일에는 다중 익스텐트가 있을 수 있다.파일에 이와 같은 익스텐트가 많을 경우, 해당 파일을 읽을 때 디스크를 무작위로 검색해야 하기 때문에 해당 파일에 대한 액세스 시간이 지나치게 길어질 수 있다.
덧붙여 「파쇄」의 개념은, 디스크에 복수의 익스텐트가 있는 개별 파일에만 한정되는 것이 아니다.예를 들어 특정 시퀀스(예: 특정 DLL, 다양한 리소스 파일, 게임 내 시청각 미디어 파일)로 읽히는 파일 그룹은 개별 파일이 fragmen이 아니더라도 디스크에서 순차 로드 순서가 아닌 경우 조각난 것으로 간주할 수 있다.ted; 읽기/쓰기 헤드는 순차적으로 액세스하기 위해 이러한 (비사용) 파일을 무작위로 검색해야 한다.일부 파일 그룹은 원래 올바른 순서로 설치되었을 수 있지만 그룹 내의 특정 파일이 삭제됨에 따라 시간과 함께 분리된다.대부분의 업데이트 프로그램은 파일을 업데이트하기 위해 이전 파일을 먼저 삭제한 다음 새로 업데이트된 파일을 대신 쓰기 때문에 업데이트는 일반적인 원인이다.그러나 대부분의 파일 시스템은 디스크의 동일한 실제 위치에 새 파일을 쓰지 않는다.이를 통해 관련 없는 파일이 남겨진 빈 공간을 채울 수 있다.
완화
조각 모음은 파일 범위(물리적 할당 블록)를 이동하는 작업으로, 파일 범위(물리적 할당 블록)가 결국 하나로 병합되는 것이 바람직하다.그렇게 하려면 보통 적어도 두 개의 복사 작업이 필요하다. 하나는 더 많은 이동이 발생할 수 있도록 블록을 디스크의 빈 스크래치 공간으로 이동시키는 작업과 마지막으로 블록을 원하는 위치로 이동시키는 작업이다.이러한 패러다임에서는 디스크에서 데이터를 제거하지 않기 때문에 정전 시에도 안전하게 작동을 중지할 수 있다.그 기사 그림은 예를 묘사하고 있다.
디스크 조각 모음을 위해 조각 모음 소프트웨어("조각 모음자"라고도 함)는 사용 가능한 공간 내에서만 파일을 이동할 수 있다.이것은 집중적인 작업으로 여유 공간이 거의 없거나 없는 파일 시스템에서는 수행할 수 없다.조각 모음 중에는 시스템 성능이 저하되며, 조각 모음자가 예기치 않은 파일 시스템 변경으로 인해 혼동되지 않도록 프로세스 중에는 컴퓨터를 그대로 두는 것이 가장 좋다.사용한 알고리즘에 따라 다중 패스를 수행하는 것이 유리할 수도 있고 그렇지 않을 수도 있다.조각 모음과 관련된 재구성은 파일의 논리적 위치(디렉토리 구조 내에서 파일의 위치로 정의됨)를 변경하지 않는다.
프로그램 파일 조각 모음 외에도 조각 모음 도구는 프로그램을 로드하고 파일을 여는 데 걸리는 시간을 줄일 수 있다.예를 들어 Windows 9x 조각 모음에는 프로그램이 프로그램을 로드하는 순서대로 조각 모음 프로그램 파일과 종속성을 서로 옆에 배치하여 디스크의 프로그램을 최적화한 Intel Application Launch Accelerator가 포함되어 있었다.[2]Windows에서 훌륭한 조각 모음자는 Prefetch 파일을 읽어 가능한 한 많은 파일 그룹을 식별하고 그 안에 파일을 액세스 순서에 따라 배치한다.
하드 드라이브의 초기에는 외부 트랙이 내부 트랙보다 데이터 전송 속도가 더 높다.자주 액세스하는 파일을 외부 트랙에 배치하면 성능이 향상된다.[3]MyDefrag와 같은 타사 조각 모음은 자주 액세스하는 파일을 외부 트랙으로 이동하고 이러한 파일의 조각 모음을 실행한다.[4]
RAM 캐시, 플래터 회전 속도 향상, 명령 대기열(SCSI/ATA TCQ 또는 SATA NCQ) 및 데이터 밀도 향상으로 시스템 성능에 미치는 단편화의 부정적인 영향을 어느 정도 줄일 수 있지만, 일반적으로 사용되는 데이터 양이 증가하면 이러한 장점이 상쇄된다.그러나 부분적으로 채워진 디스크는 전체 디스크보다 훨씬 적게 조각나며,[5] 고용량 HDD에서는 동일한 파티션이 더 작은 범위의 실린더를 차지하므로, 현대의 시스템은 현재 사용 가능한 거대한 디스크 용량으로부터 막대한 이익을 얻는다.그러나 평균 액세스 시간은 플래터의 반 회전보다 결코 낮을 수 없으며 플래터 회전(rpm으로 측정)은 수십 년 동안 가장 느린 성장을 경험한 HDD의 속도 특성(데이터 전송 속도 및 탐색 시간과 비교)이므로, 대부분의 스토리지 집약형 앱에서 검색 수를 최소화하는 것이 이로운 것으로 남아 있다.면허증조각 모음은 단지 그것이다: 파일당 최대 한 번의 검색이 있음을 확인하고 비인접 트랙에 대한 탐색만 계산한다.
파티셔닝
조각 모음을 최적화하고 조각화의 영향을 줄이기 위한 일반적인 전략은 쓰기보다 더 많은 읽기를 경험하는 파일 시스템의 파티션을 파일이 자주 생성되고 삭제되는 휘발성 영역과 분리하는 방식으로 하드 디스크를 분할하는 것이다.사용자의 프로필을 포함하는 디렉토리는 지속적으로 수정된다(특히 Temp 디렉토리와 웹 브라우저 캐시가 며칠 내에 삭제된 수천 개의 파일을 생성함).사용자 프로필의 파일이 전용 파티션(일반적으로 UNIX 권장 파일 시스템에서 실행되는 것처럼, 일반적으로 /var 파티션에 저장됨)에 있는 경우 조각 모음은 다른 디렉토리의 모든 정적 파일을 처리할 필요가 없으므로 더 잘 실행된다.(대안적으로, 조각 모음자는 특정 파일 경로를 제외하도록 지시할 수 있다.)쓰기 작업이 상대적으로 적은 파티션의 경우, 조각 모음 시간이 첫 번째 조각 모음 이후 크게 단축되는데, 조각 모음은 앞으로 소수의 새 파일만 조각 모음하면 되기 때문이다.
오프라인 조각 모음
움직이지 않는 시스템 파일, 특히 스왑 파일이 있으면 조각 모음을 방해할 수 있다.이러한 파일은 운영 체제를 사용하지 않을 때 안전하게 이동할 수 있다.예를 들어 nttresize는 이러한 파일을 이동하여 NTFS 파티션의 크기를 조정한다.PageDefrag는 GUI가 로드되기 전에 부팅 시 실행함으로써 스왑 파일 및 윈도우즈 레지스트리를 저장하는 파일과 같은 윈도우즈 시스템 파일의 조각 모음을 수행할 수 있다.Windows Vista 이후 이 기능은 완전히 지원되지 않으며 업데이트되지 않았다.
NTFS에서는 파일이 디스크에 추가됨에 따라 마스터 파일 테이블(MFT)이 증가하여 새 파일에 대한 정보를 저장해야 한다.일부 파일이 방해가 돼 MFT를 연장할 수 없을 때마다 MFT는 파편을 얻는다.초기 버전의 Windows에서는 파티션이 마운트되는 동안 안전하게 조각 모음을 할 수 없었으므로 Microsoft는 조각 모음 API에 하드 블록을 작성했다.그러나 Windows XP 이후 점점 더 많은 수의 조각 모음자가 MFT 조각 모음을 할 수 있게 되었다. 왜냐하면 Windows 조각 모음 API가 개선되었고 이제 이러한 이동 작업을 지원하기 때문이다.[6]개선사항에도 불구하고, MFT의 처음 4개 클러스터는 Windows 조각 모음 API에 의해 이동 불가능한 상태로 남아 있으므로, 일부 조각 모음자는 MFT를 다음 두 조각으로 저장하게 된다.디스크를 포맷할 때 배치되는 위치에 처음 4개의 클러스터가 있고, 디스크 시작 부분에 나머지 MFT(또는 조각 모음자의 전략이 가장 적합한 장소라고 판단되는 위치)가 있다.
솔리드 스테이트 디스크
기존의 전자기계 하드 디스크 드라이브에서 데이터를 읽을 때 디스크 컨트롤러는 먼저 헤드를 주어진 파편이 있는 트랙에 비교적 천천히 배치한 다음, 파편이 헤드에 도달할 때까지 디스크 플래터가 회전하는 동안 기다려야 한다.SSD(Solid State Drive)는 움직이는 부품이 없는 플래시 메모리를 기반으로 하기 때문에 플래시 메모리의 파일 조각에 대한 랜덤 액세스는 이러한 지연을 겪지 않기 때문에 액세스 속도를 최적화하기 위한 조각 모음이 불필요하다.더욱이 플래시 메모리는 실패하기 전에 제한된 횟수에만 쓸 수 있기 때문에 조각 모음은 실제로 해롭다(파국적 실패의 완화는 제외).그러나 Windows는 여전히 파일 시스템이 최대 조각화 허용 오차에 도달하지 못하도록 SSD 조각 모음을 자동으로 수행(작동성이 거의 없음)한다.최대 조각화 한계에 도달하면 이후 디스크에 쓰려는 시도가 실패한다.[7]
파일 시스템 유형별 접근 및 조각 모음
- FAT: MS-DOS 6.x 및 Windows 9x 시스템에는 조각 모음이라는 조각 모음 유틸리티가 함께 제공됨.DOS 버전은 Norton SpeedDisk의 제한된 버전이다.[8]Windows 9x와 함께 제공된 버전은 Symantec Corporation에서 라이센스를 받았으며, Windows 2000과 XP와 함께 제공된 버전은 Condusiv Technologies에서 라이센스를 받았다.
- NTFS는 Windows NT 3.1과 함께 도입되었지만 NTFS 파일 시스템 드라이버에는 조각 모음 기능이 포함되지 않았다.[9]Windows NT 4.0에서는 타사 도구가 조각 모음 태스크를 수행하는 데 사용할 수 있는 조각 모음 API가 도입되었지만 조각 모음 소프트웨어는 포함되지 않았다.Windows 2000, Windows XP 및 Windows Server 2003에서 Microsoft는 조각 모음 API를 사용하고 컴퓨터 관리를 위한 스냅인이었던 Disckeeper를[10] 기반으로 한 조각 모음 도구를 포함했다.윈도 비스타, 윈도 7, 윈도 8에서 이 도구는 크게 향상되었고 비주얼 디스크 맵이 없는 새로운 인터페이스를 제공받았으며 더 이상 컴퓨터 관리에 포함되지 않는다.[11][12]마이크로소프트 윈도용 무료 및 상업용 제3자 조각 모음 제품도 많이 있다.
- BSD UFS 및 특히 FreeBSD는 디스크에 정보가 기록되는 순간 바로 단편화를 줄이려는 내부 재할당기를 사용한다.[13]이는 장기간 사용 후 시스템 성능 저하를 효과적으로 제어한다.
- Btrfs는 온라인과 자동 조각 모음을 이용할 수 있다.[14]
- Linuxext2, ext3, ext4:UFS와 마찬가지로, 이러한 파일 시스템은 항상 단편화를 제어하도록 설계된 할당 기법을 사용한다.[15]결과적으로, 대부분의 경우 조각 모음이 필요하지 않다.[16]ext2는 오프라인 조각 모음을 사용함
e2defrag
, 이것은 그것의 후계자와 작동하지 않는다. ext3.그러나 다른 프로그램 또는 조각 모음과 같은 파일 시스템에 독립적인 프로그램(예: 조각 모음)을 사용하여 3개의 파일 시스템을 조각 모음할 수 있다.[17]ext4는 ext3와 다소 역호환성이므로 일반적으로 조각 모음 프로그램에서 지원하는 양이 동일하다.현재 e4 조각 모음을 사용하여 온라인 조각 모음을 포함한 4개의 파일 시스템을 조각 모음할 수 있다. - VxFS는
fsadm
조각 모음 작업을 포함하는 유틸리티. - JFS는 다음과 같은 이점을 가지고 있다.
defragfs
IBM 운영 체제에 대한 유틸리티.[18] - 1998년에 Mac OS 8.1과 함께 도입된 HFS Plus는 별도의 조각 모음 없이 파일에 액세스하는 동안 파일 조각 모음을 시도하기 위해 할당 알고리즘에 여러 가지 최적화를 가지고 있다.[19]파일이 '즉시' 조각 모음의 후보(최대 크기 20MB 포함)가 되려면 몇 가지 제한이 있다.OS X 10.3 이후 코리올리 시스템즈의 유틸리티인 iDefrag가 있다.기존 Mac OS 조각 모음은 Norton SpeedDisk와 TechTool Pro에서 수행할 수 있다.
- NetApp의 ONTAP 7.2 운영 체제에 WAFL이라는 명령어가 있음
reallocate
대형 파일 조각 모음을 위해 설계된 제품. - XFS는 온라인 조각 모음 유틸리티를 제공한다.
xfs_fsr
. - SFS는 조각 모음을 거의 완전히 상태 비저장 방식으로 처리하므로(작업 중인 위치에서 분리) 조각 모음을 중지하고 즉시 시작할 수 있다.[20]
- RISC OS와 이전 Atoric Computers가 사용하는 파일 시스템인 ADFS는 수동 조각 모음이 필요 없이 파일 조각화를 제어한다.[21]
참고 항목
- 조각 모음 소프트웨어 비교
- 조각화(컴퓨팅)
- 파일 시스템 조각화
- 가상 디스크 이미지
- 플래시 메모리 함량을 연장하는 유사한 기술인 웨어 레벨링
참조
- ^ 삭제된 파일의 현재 사용되지 않는 공간을 테이블에서 나중에 사용할 수 있는 것으로 표시하는 관행은 프로그램 삭제를 해제할 수 있는 이유로서, 디렉터리에서 이름이 삭제되었지만 아직 공간이 재사용되지 않은 파일을 복구한다.
- ^ Cwdixon.com Wayback Machine에 2010-10-06 보관.Cwdixon.com.2013-07-28에 검색됨.
- ^ 궁극의 디프레거 - 라루드의 장소.Larud.net (2012-01-19)2013-07-28에 검색됨.
- ^ "Archived copy". Archived from the original on 2010-02-16. Retrieved 2014-08-14.
{{cite web}}
: CS1 maint: 제목(링크)으로 보관된 복사본 대부분의 하드 디스크에서 하드 디스크의 시작은 종료보다 상당히 빠르며, 때로는 200%까지 빨라진다!HD Tune과 같은 유틸리티로 직접 측정할 수 있다.따라서 MyDefrag는 모든 파일을 디스크의 시작 부분으로 이동하도록 설계되어 있다. - ^ Serdar Yegulalp (20 September 2005). "New hard disk drives reduce need for disk defragmentation". SearchWindowsServer.com: Disk Defragmentation Fast Guide. Archived from the original on 3 June 2008. Retrieved 2008-12-27.
- ^ "Archived copy". Archived from the original on 2003-04-24. Retrieved 2006-12-19.
{{cite web}}
: CS1 maint: 제목(링크)으로 보관된 복사본 msdn.microsoft.com: "또 다른 큰 개선사항[Windows XP]은 MFT와 대부분의 디렉토리 및 파일 메타데이터의 온라인 조각 모음을 지원하는 것" - ^ Hanselman, Scott (3 December 2014). "The real and complete story - Does Windows defragment your SSD?". Scott Hanselman's blog. Microsoft. Archived from the original on 22 December 2014.
- ^ Norton, Peter (October 1994). Peter Norton's Complete Guide to DOS 6.22. Sams. p. 521.
- ^ M. Kozierok, Charles (2001-04-17). "NTFS Versions". PC Guide. Archived from the original on 2015-09-24. Retrieved 2015-02-20.
- ^ Wayback Machine에 아카이브된 윈도우즈용 타사 디스크 조각 모음 도구 2011-11-28.Support.microsoft.com (2011-08-23)2013-07-28에 검색됨.
- ^ "Disk Defragmentation – Background and Engineering the Windows 7 Improvements". Archived from the original on 2014-06-13. Retrieved 2014-06-15.
- ^ "New Defrag options in Windows 8". Archived from the original on 2015-02-20. Retrieved 2014-06-15.
- ^ "FreeBSD Man Pages". The FreeBSD Project. Archived from the original on 21 February 2015. Retrieved 21 February 2015.
- ^ "Linux kernel 3.0, Section 1.1. Btrfs: Automatic defragmentation, scrubbing, performance improvements". kernelnewbies.org. 2011-07-21. Archived from the original on 2016-03-30. Retrieved 2016-04-05.
- ^ "HTG Explains: Why Linux Doesn't Need Defragmenting". How-To Geek. Archived from the original on 2013-07-19. Retrieved 2013-08-01.
- ^ 5.10. Wayback Machine에 보관된 파일 시스템 2013-05-27.Tldp.org (2002-11-09)2013-06-22에 검색됨
- ^ Erik Berwalt: Wayback Machine에 보관된 2014-09-06 디스크의 데이터 조직 최적화
- ^ "Journaling File System Support". eComStation. Archived from the original on 2008-12-08. Retrieved 2008-12-27.
- ^ "Fragmentation in HFS Plus Volumes". Archived from the original on 18 November 2012. Retrieved 2 September 2020.
As we have seen, an HFS+ volume seems to resist fragmentation rather well on Mac OS X 10.3.x, and I don't envision fragmentation to be a problem bad enough to require proactive remedies (such as a defragmenting tool).
- ^ "Detecting a file fragmentation point for reconstructing fragmented files using sequential hypothesis testing". US8407192 B2. Archived from the original on 21 February 2015. Retrieved 21 February 2015.
- ^ Reeves, Nick (26 October 1990). "E format design document". Archived from the original on 7 April 2013. Retrieved 24 May 2013.
원천
- Norton, Peter(1994) Peter Norton의 DOS 6.22 전체 가이드(521페이지) – Sams(ISBN 067230614X)
- 우디 레온하드, 저스틴 레온하드(2005) 윈도우 XP 타임세이빙 기법 더미, 세컨드 에디션 456 – 더미(ISBN 0-764578-839)
- 젠슨, 크레이그(1994)조각화: 조건, 원인, 치료제ISBN 0-9640049-0-9)
- Dave Kleiman, Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G Altholz, Lawrence Abrams, Darren Windham, Tony Bradley and Brian Barber (2006) Winternals: Defragmentation, Recovery, and Administration Field Guide – Syngress (ISBN 1-597490-792)
- Windows 환경의 Robb, Drew(2003) 서버 디스크 관리 7장 – AUERBach(ISBN 0849324327)