맥OS 새 파일시스템 'APFS' 파헤치기

컴퓨팅입력 :2017/06/19 16:34

애플은 이달초 개최한 '세계개발자대회(WWDC)17'에서 맥OS의 파일시스템 교체를 발표했다. 올 가을 나올 맥OS 하이시에라는 ’애플파일시스템(APFS)’이란 이름의 새 파일시스템을 장착하게 된다.

APFS는 지난해 WWDC에서 프리뷰로 공개된 파일시스템이다. 기존의 HFS+를 대체한다. HFS+는 만들어진지 30년 이상 된 파일시스템이다. 당연히 하드디스크드라이브에 맞게 설계됐다. 애플은 SSD 주류 시대에 맞게 새로운 파일시스템을 만들어야 했다고 APFS 개발이유를 설명한다.

맥OS의 유닉스 코어는 새로운 파일시스템을 쉽게 교체할 수 있도록 돼 있다. 때문에 APFS 역시 맥OS의 파일시스템을 큰 무리없이 대체하게 된다.

APFS는 현재 iOS의 파일시스템으로 쓰인다. 하이시에라부터 맥OS와 iOS가 동일한 파일시스템을 사용하게 되는 것이다.

애플은 맥OS 하이시에라부터 파일시스템을 HFS+에서 APFS로 교체한다.

APFS는 나노초 단위로 타임스탬프를 찍는다. 이는 적절한 저널링과 클러스터 시스템에 중요한 요소다.

APFS는 TRIM을 지원하는데, TRIM은 운영체제가 어느 블록의 데이터가 더 이상 사용되지 않고 내부적으로 삭제될 수 있는지를 솔리드 스테이트 드라이브 (SSD)에 알려주는 명령이다. APFS는 TRIM 운영을 비동기식으로 하고, 메타데이터는 영속적 미디어에 안전하게 보관된다.

APFS의 메타데이터는 카피온라이트 방식으로 운영된다. 데이터 작성 시 이전의 내용을 복제해 유지하는 것이다. 이는 심각한 시스템 손상 시에도 데이터를 유지시켜준다.

APFS는 기본적으로 모든 데이터를 암호화한다. 사용자는 암호화 스키마를 APFS 볼륨별로 다르게 선택할 수 있다.

비 애플 제품에서 네트워크 데이터 공유에 쓰이는 SMB 프로토콜을 기본으로 지원한다.

APFS는 64비트 아이노드를 사용해 단일 볼륨에 900경 이상의 파일을 담을 수 있다.

APFS는 파일시스템의 기본적인 설계특징과 더불어 SSD에 맞게 설계된 다양한 기능도 제공한다.

AFPS는 태생적으로 SSD에 맞게 고안된 파일시스템이다. 플래시 SSD 쓰기 성능에 대해 작은 크기의 개별 쓰기 작업을 그룹으로 합쳐 수행해 성능을 높였다.

APFS 볼륨은 동적으로 늘어나거나 줄어든다. 스토리지의 용량 제한 안에서 파티션 재할당 없이 이뤄진다.

파일이나 디렉토리의 복제(클론)가 드라이브 용량 추가없이 이뤄진다. 파일과 디렉토리를 추가 영역을 점유하지 않으면서 순간적인 복제본을 만들어준다. 복제된 파일이 수정됐을 때 수정된 블록만 스토리지의 새 위치에 쓰여진다. 파일시스템은 적은 공간을 차지하면서 동일 문서의 여러 버전을 저장하게 해준다.

복제본 하나가 생성될 때, 메타데이터만 복사된다. 이는 대용량 파일 복제도 즉시 이뤄진다는 것을 의미한다.

백업에 쓸 수 있는 스냅샷 기능은 복제 기능과 함께 작동한다. APFS의 스냅샷은 파일시스템 인스턴스 읽기만 가능하다. 파일시스템 안의 블록들이 변경됐을 때 이전의 블록이 파일시스템에 유지된다. 특정 시점으로 스냅샷을 이용해 되돌릴 수 있다.

APFS의 스냅샷은 복제와 유사한데, 특정 순간의 파일시스템 상태(State)를 유지한다. APFS는 모든 레퍼런스와 메타데이터를 기억한다.

맥OS 시에라와 그 이전의 맥OS는 타임머신 기능을 제공해왔다. 타임머신은 APFS에서도 지원될 뿐 아니라 더 개선된다. 타임머신 기능은 장시간 이용할수록 시스템 속도를 떨어뜨리는 단점을 갖고 있었다. APFS의 스냅샷 기능 덕에 타임머신 소프트웨어는 더 단순하고, 더 빨라진다. 또, 현재 20MB로 제한된 타임머신 백업파일 크기가 무제한으로 바뀐다.

APFS는 후기록캐시와 리드캐시뿐 아니라 퓨전드라이브의 SSD 일정부분에 메타데이터를 유지한다. 이로 인해 APFS의 디렉토리 색인 속도가 눈에 띄게 빨라질 수 있다.

맥OS 하이시에라는 OS 업데이트 과정에서 설치 프로세스의 일부분으로 파일시스템을 교체한다. 파일 데이터를 옮기지 않고, 파일시스템 메타데이터를 복제, 재포맷한다. 기존의 메타데이터는 재작성된 메타데이터 체크아웃 때까지 지워지지 않고 유지된다.

만약 맥 기기에 여러 드라이브를 사용하고 있다면, 디스크 유틸리티를 이용해 수동으로 업그레이드를 해야 한다. 업그레이드할 볼륨을 선택하고, 좌클릭하면 APFS 변환 옵션을 지정할 수 있다.

또, 맥OS의 암호화 기능인 파일볼트를 사용중이라면, 맥OS는 데이터 복호화 없이 APFS로 변환한다. 암호와 복구키는 유지된다.

SSD는 조각모음이 필요없다. 그러나 하드드라이브의 경우 조각모음이 필수적이다. APFS는 어느 파일이 조각모음을 통해 성능을 극대화할 수 있는지 이해한다. 시스템을 적게 사용하고 있을 때 뒷단에서 조각모음을 수행해 성능에 영향을 주지 않는다.

관련기사

APFS는 파일명이나 디렉토리명에 알파벳 대소문자를 구분하지 않는다. HFS+와 달리 파일명의 유니코드 정규화를 하지 않는다.

애플은 APFS를 iOS, 맥OS, tvOS, 워치OS 등에 모두 사용할 계획이다. 애플은 APFS의 오픈소스화 계획은 현재 없다고 밝혔다. 대신 APFS 볼륨 포맷 명세서를 공개할 계획이다.