Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Windows에서 ReFS란 무엇인가? 복원형 파일 시스템 완벽 가이드

ReFSResilient File System(복원 파일 시스템)의 약자로, Microsoft가 Windows 운영체제를 위해 개발한 파일 시스템입니다. ReFS는 NTFS(New Technology File System)의 여러 한계를 극복하기 위해 설계되었으며, 데이터 손상에 대한 복원력 강화, 특정 워크로드에서의 성능 향상, 그리고 초대형 파일 시스템에서의 뛰어난 확장성을 목표로 하고 있습니다.

ReFS의 역사

Microsoft는 2012년 9월 Windows Server 2012를 출시하면서 더욱 방대해진 데이터 저장 요구와 대규모 워크로드를 지원하기 위한 선택적 파일 시스템으로 ReFS를 처음 선보였습니다. 이후 2013년 10월 Windows 8.1부터 데스크톱용 Windows에도 ReFS가 추가되었지만, 드라이브 풀링 기능인 Storage Spaces(스토리지 공간)의 일부로만 사용할 수 있었습니다. Windows 10에도 포함되어 있으나, Microsoft는 2017년 Fall Creators Update에서 Windows 10 Pro for Workstations를 제외한 모든 에디션에서 ReFS 볼륨 생성 기능을 제거했습니다. 다만 운영체제 자체는 여전히 ReFS 볼륨을 읽을 수 있습니다.

ReFS의 작동 원리

ReFS는 NTFS와 높은 호환성을 유지하며, 일관성 향상과 더 나은 데이터 무결성을 위해 NTFS 코드베이스를 기반으로 구축되었습니다. 운영체제가 시스템 오류를 감지하여 데이터가 손실되거나 손상된 경우, ReFS는 해당 데이터를 복구할 수 있습니다. 또한 디스크 스크러빙 작업을 통해 데이터를 읽고 검증함으로써, 시간이 지나면서 발생하는 비트 단위 데이터 열화인 비트 로트(bit rot)에도 대응합니다. Microsoft는 NTFS 코드베이스의 일부를 활용해 ReFS를 만들었으며, Win32 API도 지원하도록 설계하여 기존 API와의 호환성을 확보했습니다. 덕분에 ReFS는 액세스 제어 목록(ACL), 파일 ID 등 여러 기능을 지원합니다.

NTFS에서는 전원 차단 중 갑작스러운 시스템 종료나 블록의 일부만 쓰여지는 상황 등 다양한 원인으로 파일 메타데이터가 손상될 수 있습니다. 이러한 데이터 훼손을 방지하기 위해 ReFS는 allocate-on-write(쓰기 시 할당) 기법을 사용하여 파일을 단일 명령으로 읽고 씁니다. 이 기법은 소스 데이터베이스의 씬 프로비저닝 클론(thin provision clone)을 활용해 손상 가능성을 줄입니다.

ReFS는 메타데이터 인덱싱을 통해 데이터를 관리하기 위해 B+ 트리 구조를 사용합니다. B+ 트리는 루트, 내부 노드, 리프로 구성되며, 분기 형태로 데이터를 저장합니다. 트리의 각 노드는 정렬된 키 목록과 하위 노드 또는 리프를 가리키는 포인터를 가지고 있고, 실제 레코드는 리프 레벨에 저장되어 더 많은 분기를 허용합니다. 이 과정은 디스크 I/O를 줄이고 성능을 향상시킵니다.

다만 ReFS는 NTFS의 직접적인 대체제는 아닙니다. MFT(마스터 파일 테이블), 페이지 파일 지원, 오브젝트 ID 등 일부 NTFS 기능은 지원하지 않으며, 일부 애플리케이션은 NTFS에만 있는 기능을 필요로 합니다. 대안 스트림, 명명된 스트림, 스파스 파일처럼 초기 버전에는 없던 많은 NTFS 기능들은 이후 업데이트를 통해 ReFS에 추가되었습니다.

주요 기능 및 변화

  1. ReFS는 Storage Spaces 기능과 통합되어 있습니다. 미러링된 Storage Space를 ReFS로 구성하면, Windows가 파일 시스템 손상을 감지하고 다른 드라이브에 있는 데이터 사본을 복사하여 자동으로 문제를 복구합니다. 이 기능은 Windows 10과 Windows 8.1 모두에서 사용할 수 있습니다.
  2. ReFS가 데이터 손상을 감지했는데 복구할 대체 사본이 없다면, 파일 시스템은 손상된 데이터를 즉시 드라이브에서 제거할 수 있습니다. NTFS에서처럼 시스템 재부팅이나 드라이브 오프라인 전환이 필요하지 않습니다.
  3. ReFS는 읽기·쓰기 시 파일의 손상 여부만 확인하는 것이 아니라, 자동화된 데이터 무결성 스캐너가 드라이브의 모든 파일을 주기적으로 점검하여 손상을 식별하고 수정하는 자가 교정 파일 시스템입니다. 따라서 chkdsk를 실행할 필요가 전혀 없습니다.
  4. ReFS는 다른 방식으로도 데이터 손상에 저항합니다. 예를 들어 NTFS에서 파일 이름 같은 메타데이터를 업데이트하면 메타데이터가 직접 수정되는데, 이 과정에서 컴퓨터 오류나 정전이 발생하면 데이터 손상이 생길 수 있습니다. 반면 ReFS는 메타데이터 업데이트 시 새로운 메타데이터 사본을 생성하고, 새 메타데이터가 완전히 기록된 후에야 파일이 이를 가리키도록 합니다. 이를 “copy-on-write(기록 시 복사)”라고 부르며, Linux의 ZFS·BtrFS, Apple의 APFS 같은 최신 파일 시스템에서도 동일하게 사용하는 기술입니다.
  5. ReFS는 메타데이터에 체크섬을 적용하며, 선택적으로 파일 데이터에도 체크섬을 사용할 수 있습니다. 파일을 읽거나 쓸 때마다 체크섬을 검사하여 정확성을 보장하므로, 파일 시스템 자체에 데이터 손상을 실시간으로 감지하는 내장 메커니즘이 있는 셈입니다.
  6. 무결성 기능 외에도 ReFS는 NTFS보다 훨씬 큰 볼륨 및 파일 크기까지 확장 가능하며, 장기적으로 매우 중요한 개선점입니다.
  7. ReFS는 최대 볼륨 크기 262,144엑사바이트(16엑스비바이트)를 지원하는 반면, NTFS는 16엑사바이트까지만 지원합니다. 파일 이름 길이도 ReFS는 최대 32,768자까지 허용하지만 NTFS는 255자로 제한됩니다.
  8. 그 외에도 Hyper-V 환경에서의 향상된 성능, 체크섬으로 데이터 상태를 평가하는 무결성 스트림(integrity stream) 지원, RAID와 유사한 성능을 위한 데이터 스트라이핑 등이 있습니다.
  9. Microsoft는 ReFS 버전 1.2에서 대체 데이터 스트림(alternate data stream) 지원을 추가해 Microsoft SQL Server 배포 환경과의 호환성을 확보했습니다. 2017년 10월 Semi-Annual Channel의 Windows Server 버전 1709 출시와 함께 공개된 ReFS 버전 3.2에서는 저장소 최적화 기능인 중복 제거(deduplication) 지원도 포함되었습니다.
  10. ReFS는 DOS 스타일 8.3 파일명(예: C:\Program Files\ → C:\PROGRA~1\)을 폐기했습니다. NTFS 볼륨에서는 구형 프로그램 호환성을 위해 이런 레거시 파일명에 접근할 수 있지만, ReFS에서는 지원되지 않습니다.
  11. ReFS는 단순한 NTFS 개선판이 아니라, 특정 상황에서 훨씬 나은 성능을 발휘하도록 몇 가지 핵심 최적화에 집중한 파일 시스템입니다.
  12. Storage Spaces와 함께 사용할 경우 ReFS는 “실시간 계층 최적화(real-time tier optimization)”를 지원합니다. 성능 최적화 드라이브와 용량 최적화 드라이브를 함께 묶은 드라이브 풀을 구성하면, ReFS는 항상 성능 계층의 드라이브에 먼저 기록해 성능을 극대화하고, 백그라운드에서 대용량 데이터를 장기 저장용 느린 드라이브로 자동 이동시킵니다.
  13. Windows Server 2016의 ReFS는 특정 가상 머신(VM) 기능에서 더 나은 성능을 제공하도록 개선되었습니다. Microsoft 자체의 Hyper-V 가상화 소프트웨어가 이를 활용하며(이론상 다른 가상화 소프트웨어도 지원 가능), 대표적으로 블록 클로닝(block cloning)을 통해 가상 머신 복제 및 체크포인트 병합 작업을 가속화합니다. 가상 머신의 클론을 생성할 때 ReFS는 디스크에 새 메타데이터 사본을 만들어 기존 데이터를 가리키기만 하면 됩니다. ReFS에서는 여러 파일이 동일한 디스크 데이터를 참조할 수 있기 때문인데, 가상 머신이 변경되어 새 데이터가 기록될 때는 다른 위치에 기록되고 원본 데이터는 그대로 유지됩니다. 덕분에 복제 프로세스가 훨씬 빨라지고 디스크 처리량도 크게 줄어듭니다.
  14. ReFS에는 대용량 파일에 빠르게 0을 기록할 수 있는 새로운 “sparse VDL” 기능도 추가되었습니다. 덕분에 빈 고정 크기 가상 하드 디스크(VHD) 파일 생성이 훨씬 빨라졌습니다. NTFS에서는 10분 걸릴 수 있는 작업이 ReFS에서는 몇 초 만에 완료됩니다.
  15. ReFS의 세부 정보와 지원 기능에 대한 자세한 내용은 Microsoft 공식 웹사이트에서 확인할 수 있습니다.

ReFS의 단점

이렇게 훌륭한 기능들이 많지만, NTFS에서 ReFS로 바로 전환할 수는 없습니다.

  1. Windows는 ReFS로 부팅할 수 없으며, 반드시 NTFS가 필요합니다.
  2. ReFS는 NTFS에 비해 더 많은 시스템 리소스를 소비합니다.
  3. 디스크 배열이 커질수록 파일 무결성 검증을 위해 더 많은 RAM과 IOPS를 사용합니다.
  4. NTFS 데이터를 ReFS로 변환할 수 없습니다.
  5. ReFS는 파일 시스템 압축·암호화, 하드 링크, 확장 특성, 중복 제거, 디스크 할당량 같은 NTFS 기능들도 지원하지 않습니다. 다만 파일 시스템 수준의 개별 데이터 암호화는 불가능하지만, BitLocker 전체 디스크 암호화와는 호환됩니다.
  6. Windows 10에서는 기존 파티션을 ReFS로 포맷할 수도 없습니다. 현재로선 Storage Spaces와 함께 사용할 때만 ReFS를 활용할 수 있으며, 이때 무결성 기능이 데이터 손상을 방지하는 데 도움이 됩니다. Windows Server 2016에서는 가상 머신을 저장할 볼륨 등을 NTFS 대신 ReFS로 포맷할 수 있지만, 부팅 볼륨에는 사용할 수 없습니다. Windows는 오직 NTFS 드라이브에서만 부팅됩니다.
  7. ReFS 드라이브는 애플리케이션이나 프로그램 설치를 지원하지 않습니다. 그 이유는 ReFS가 하드 링크를 지원하지 않기 때문이며, 소수의 프로그램만 ReFS 볼륨에 설치를 허용하고, 설치가 되더라도 실행 중 문제가 발생하는 경우가 많습니다.

ReFS 사용 방법

  1. Windows Server에서는 일반 디스크 관리 도구를 통해 일부 볼륨을 ReFS로 포맷할 수 있으며, 특히 해당 드라이브에 가상 머신을 사용하는 경우 유용합니다. 다만 부팅 드라이브는 ReFS로 포맷할 수 없고, 일부 NTFS 기능에 대한 접근권도 잃게 됩니다.
  2. 데스크톱 환경에서는 Windows 10 Pro for Workstations에서 ReFS 기능을 사용할 수 있습니다.