Oracle® Solaris 11.2의 ZFS 파일 시스템 관리

인쇄 보기 종료

업데이트 날짜: 2014년 12월
 
 

트랜잭션 개념

ZFS는 트랜잭션 파일 시스템입니다. 즉, 디스크에서 파일 시스템 상태는 항상 일관적인 상태입니다. 기존의 파일 시스템은 제자리에서 데이터를 덮어 씁니다. 즉, 데이터 블록이 할당되는 시간과 이를 디렉토리에 연결하는 시간 사이에 시스템 전원이 꺼지면 파일 시스템이 일관적이지 않은 상태가 됩니다. 지금까지 이러한 문제는 fsck 명령을 사용하여 해결되었습니다. 이 명령은 파일 시스템 상태를 검토 및 확인하고 프로세스 중에 발견된 모든 비일관성을 복구하려고 시도합니다. 이러한 비일관적인 파일 시스템 문제는 관리자에게 많은 부담을 주었으며, fsck 명령으로는 모든 발생 가능한 문제에 대한 해결책을 보장할 수 없었습니다. 보다 최근에는 파일 시스템에 저널링이라는 개념이 도입되었습니다. 저널링 프로세스는 별도의 저널에 작업을 기록하여, 시스템 문제가 발생할 경우 안전하게 재생할 수 있도록 하는 프로세스입니다. 이 프로세스는 데이터를 두 번 기록해야 하기 때문에 불필요한 오버헤드를 가져왔으며, 저널을 올바르게 재생할 수 없는 등의 새로운 문제도 자주 발생했습니다.

트랜잭션 파일 시스템에서는 쓰기 작업 시 복사라는 개념을 사용하여 데이터가 관리됩니다. 데이터는 겹쳐 쓸 필요가 없으며, 어떠한 작업 시퀀스라도 완전히 커밋되거나 완전히 무시됩니다. 따라서 정전이 되거나 시스템 중단이 발생하더라도 파일 시스템이 손상될 가능성이 전혀 없습니다. 가장 최근에 작성된 데이터 일부는 손실될 수도 있지만 파일 시스템 자체는 항상 일관적인 상태로 유지됩니다. 또한 동기 데이터(O_DSYNC 플래그를 사용하여 기록된 데이터)는 항상 반환 전에 기록하도록 보장되므로 절대로 손실되지 않습니다.