저널링 파일 시스템이란 무엇인가요?

모든 운영 체제는 데이터를 저장하기 위해 자체 파일 시스템을 사용합니다. Windows는 NTFS를 사용하고, macOS는 APFS를 사용하며, 대부분의 리눅스 배포판은 Ext4를 사용합니다. 이러한 파일 시스템은 본질적으로 서로 다르지만, 모든 파일 시스템에 존재하는 하나의 공통된 기능은 저널링입니다.
저널링 파일 시스템에 대해 더 알아보고, 그것이 일상적인 컴퓨팅에 미치는 영향을 살펴보겠습니다.
저널링이란 무엇인가요?
컴퓨터의 모든 파일을 저널, 정기 간행물 또는 문서의 고유한 도서관 카탈로그로 상상해 보세요. 카탈로그에 새로 추가된 모든 항목은 약간의 정보를 변경합니다. 항목을 찾기 위해 도서관을 검색하는 대신, 해당 카탈로그만 확인하면 됩니다.
컴퓨터 파일 시스템의 저널링은 아주 유사하게 작동합니다. 그 목적은 파일 시스템에 아직 커밋되지 않은 변경 사항을 추적하는 것입니다. 충돌이나 예기치 않은 종료가 발생한 후에도, 손상될 가능성이 낮은 최신 파일 버전을 여전히 액세스할 수 있습니다.

“저널”이라는 용어는 일기장 비유에서 유래되었습니다. 일기 항목에 기록한 모든 변경 사항은 날짜 및 시간으로 저장됩니다. 유사하게, 저널링은 파일에 대한 모든 업데이트를 디스크의 연속적인 부분에 저장할 수 있게 합니다.
이 업데이트는 서로 물리적으로 근접해 있을 필요는 없습니다: 사실, 저널 파일 항목은 디스크의 여러 군데에 흩어져 있습니다. 하지만 무작위로 액세스하는 대신, 수천 배 더 빠른 일기장과 같은 순서로 제공됩니다.

저널링은 연속적인 메모리 할당 덕분에 파일 저장 검색에 많은 시간을 절약합니다.
정의
운영 체제에 따라 다양한 종류의 저널링 항목이 있으며, 아래에서 이에 대해 논의하겠습니다. 그 전에 몇 가지 숫자 용어를 명확히 할 필요가 있습니다.
테비바이트(TiB): 기가바이트가 어느 정도인지 모두 알고 있습니다. 테비바이트(TiB)는 1024(= 210) 기가바이트에 해당합니다. TiB는 파일 저장에서 큰 값을 표현하는 기본 단위 중 하나입니다. 또한, 1 TiB = 1.09951 테라바이트(TB)입니다.
페비바이트(PiB): 페비바이트(PiB)는 1024 TiB 또는 약 백만 기가바이트로, 매우 큰 값입니다.
클러스터: 데이터 클러스터는 파일을 저장하는 데 사용될 수 있는 디스크 공간의 가장 작은 단위입니다. 단일 섹터는 512바이트에서 128섹터는 64KB까지 다양합니다.
1. NTFS
새로운 기술 파일 시스템(NTFS)은 Microsoft의 Windows 및 Windows Server의 기본 저널링 시스템입니다. 로그 파일과 체크포인트 정보를 사용하여 재시작 후 파일 시스템의 안정적인 값을 복원합니다.
NTFS는 대량의 데이터를 지원합니다: 4KB 클러스터 크기의 경우, 16 TiB의 데이터를 수용할 수 있습니다. 64KB 클러스터 크기(최대)의 경우, 최대 파일 크기와 함께 256 TiB의 데이터를 의미합니다.
현재 NTFS는 “자체 복구 NTFS”로 알려진 기능을 통해 온라인에서 파일의 어떠한 손상도 수정합니다. Windows 10 사용자는 예전 Windows 버전에서 문제가 되었던 Chkdsk로 인한 다운타임 경험을 기억할 수 있습니다. 최신 자체 복구 NTFS 업데이트에서, 문제는 온라인으로 해결되었으며, 다운타임이 발생하지 않습니다.
또한 읽기: FAT32 vs. exFAT vs. NTFS: 차이점은 무엇인가요?
2. Ext
확장된 파일 시스템(ext)은 리눅스의 저널링 시스템으로 처음부터 사용되어 왔습니다. 유닉스 파일 시스템(UFS)에서 영감을 받아 90년대 초 왔으며 이후 세 가지 다른 반복이 있습니다.
- ext2: 원래 Debian 및 Red Hat 리눅스에서 사용된 ext2는 SD 카드와 USB 드라이브와 같은 플래시 미디어에서 여전히 사용됩니다. 최대 8KB의 클러스터 크기로 2에서 32 TiB의 데이터를 수용할 수 있습니다.
- ext3: 세 번째 확장 파일 시스템인 ext3는 리눅스, BSD, ReactOS와 함께 사용되어 왔습니다. 크기 제한은 ext2와 유사합니다.
- ext4: 확장 파일 시스템의 최신 버전으로, Google 파일 저장소, BSD, PowerPC 및 대부분의 최신 리눅스 배포판에서 사용됩니다. 크기 제한은 1024 PiB 또는 약 백만 TiB입니다. 가장 큰 클러스터 크기는 64KB입니다.
ext4는 저널의 체크섬을 사용하여 신뢰성을 향상 시키며, 저널링 중 디스크 I/O 대기를 안전하게 피할 수 있고 디스크의 성능을 약간 향상시킵니다.
3. APFS
Apple 파일 시스템(APFS)은 macOS High Sierra, iOS 10.3 이상 및 몇몇 다른 시스템에서 사용됩니다. 최대 8000 PiB(263 바이트)를 지원하며, 이는 ext4보다 약 여덟 배 더 큽니다.

APFS의 핵심 기능은 다양합니다: 특정 시점의 시스템 복사본인 “스냅샷”을 생성하는 기능이 포함됩니다. NTFS와 마찬가지로, 데이터 무결성을 보장하기 위해 체크섬을 사용하며, “작가 복사(copy on writer)”라는 접근 방식으로 시스템 충돌로부터 보호합니다. APFS는 전체 디스크 암호화를 사용합니다.
결론
파일 시스템에서의 저널링은 시스템 충돌 및 예기치 않은 종료에 대한 기본적인 보험입니다. 변경 사항을 저널에 신속하게 작성함으로써, 전원 종료나 컴퓨터 충돌 중에 파일의 모든 변경 사항이 기록되고 손실되지 않도록 보장할 수 있습니다.
여기에서 논의한 것 외에도 많은 저널링 파일 시스템이 존재합니다. Oracle, VMware, BSD, Cisco, Solaris 등 많은 시스템이 각자의 독점적인 저널 단위를 가지고 있습니다.