탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: ZFS 파일 시스템 Oracle Solaris 11.1 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
미러링된 ZFS 저장소 풀 분할(zpool split)
Oracle Solaris ZFS와 전통적인 파일 시스템의 차이
3. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 파일 시스템 관리
6. Oracle Solaris ZFS 스냅샷 및 복제 작업
7. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
Oracle Solaris ZFS 파일 시스템은 현재 사용 가능한 다른 모든 파일 시스템에서는 제공되지 않는 다양한 기능과 이점을 통해 파일 시스템의 관리 방식을 근본적으로 바꿔 놓은 파일 시스템입니다. ZFS는 강력하고, 확장성이 뛰어나며, 쉽게 관리할 수 있습니다.
ZFS에는 실제 저장소의 관리를 위해 저장소 풀이라는 개념이 사용됩니다. 지금까지 파일 시스템은 단일 물리적 장치를 기반으로 만들어졌습니다. 다중 장치를 나열하고 데이터 중복성을 제공하기 위해 도입된 볼륨 관리자라는 개념은 단일 장치 표시를 제공함으로써 다중 장치의 이점을 활용하기 위해 파일 시스템을 수정할 필요가 없었습니다. 이러한 설계는 파일 시스템이 가상화된 볼륨에서 데이터의 물리적 배치를 제어할 수 있는 수단이 없기 때문에 또 다른 복잡성을 추가하고 궁극적으로 특정 파일 시스템의 발전을 저해한 원인이 되었습니다.
ZFS에는 볼륨 관리자가 없습니다. 사용자에게 가상 볼륨을 만들도록 강제하는 대신 ZFS는 장치를 저장소 풀로 결합합니다. 저장소 풀은 저장소의 물리적 특성(장치 레이아웃, 데이터 중복성 등)을 기술하고 파일 시스템을 만들 수 있는 모든 데이터 저장소 역할을 수행합니다. 파일 시스템은 더 이상 개별 장치로 제한되지 않기 때문에 풀의 모든 파일 시스템이 디스크 공간을 공유할 수 있습니다. 저장소 풀에 할당된 디스크 공간 내에서 파일 시스템 크기가 자동으로 증가하기 때문에 더 이상 파일 시스템의 크기를 미리 결정할 필요도 없습니다. 새 저장소가 추가되면 추가 작업 없이도 풀에 있는 모든 파일 시스템이 즉시 추가 공간을 사용할 수 있습니다. 많은 경우에 저장소 풀은 가상 메모리 시스템과 비슷하게 작동합니다. 메모리 DIMM이 시스템에 추가되면 사용자가 운영 체제에서 메모리를 구성하고 이를 개별 프로세스에 지정하기 위한 명령을 수행할 필요가 없습니다. 모든 시스템 프로세스에서 추가 메모리가 자동으로 사용됩니다.
ZFS는 트랜잭션 파일 시스템입니다. 즉, 디스크에서 파일 시스템 상태는 항상 일관적인 상태입니다. 기존의 파일 시스템은 제자리에서 데이터를 겹쳐 씁니다. 즉, 데이터 블록이 할당되는 시간과 이를 디렉토리에 연결하는 시간 사이에 시스템 전원이 꺼지면 파일 시스템이 일관적이지 않은 상태가 됩니다. 지금까지 이러한 문제는 fsck 명령을 사용하여 해결되었습니다. 이 명령은 파일 시스템 상태를 검토 및 확인하고 프로세스 중에 발견된 모든 비일관성을 복구하려고 시도합니다. 이러한 비일관적인 파일 시스템 문제는 관리자에게 많은 부담을 주었으며, fsck 명령으로는 모든 발생 가능한 문제에 대한 해결책을 보장할 수 없었습니다. 보다 최근에는 파일 시스템에 저널링이라는 개념이 도입되었습니다. 저널링 프로세스는 별도의 저널에 작업을 기록하여, 시스템 문제가 발생할 경우 안전하게 재생할 수 있도록 하는 프로세스입니다. 이 프로세스는 데이터를 두 번 기록해야 하기 때문에 불필요한 오버헤드를 가져왔으며, 저널을 올바르게 재생할 수 없는 등의 새로운 문제도 자주 발생했습니다.
트랜잭션 파일 시스템에서는 쓰기 작업 시 복사라는 개념을 사용하여 데이터가 관리됩니다. 데이터는 겹쳐 쓸 필요가 없으며, 어떠한 작업 시퀀스라도 완전히 커밋되거나 완전히 무시됩니다. 따라서 정전이 되거나 시스템 중단이 발생하더라도 파일 시스템이 손상될 가능성이 전혀 없습니다. 가장 최근에 작성된 데이터 일부는 손실될 수도 있지만 파일 시스템 자체는 항상 일관적인 상태로 유지됩니다. 또한 동기 데이터(O_DSYNC 플래그를 사용하여 기록된 데이터)는 항상 반환 전에 기록하도록 보장되므로 절대로 손실되지 않습니다.
ZFS에서는 모든 데이터 및 메타 데이터가 사용자가 선택 가능한 체크섬 알고리즘을 통해 확인됩니다. 체크섬 확인 기능을 제공하는 기존 파일 시스템에서는 볼륨 관리 계층과 기존의 파일 시스템 설계로 인한 필요로 블록별 기준으로 작업이 수행되었습니다. 따라서 이러한 기존 설계에서는 전체 블록을 잘못된 위치에 기록하는 등의 특정 문제로 인해 잘못되었지만 체크섬 오류가 없는 데이터가 발생할 수 있습니다. ZFS 체크섬은 이러한 오류를 감지하고 이를 올바르게 복구할 수 있는 방식으로 저장됩니다. 모든 체크섬 확인 및 데이터 복구는 파일 시스템 계층에서 수행되며 응용 프로그램에는 영향을 주지 않습니다.
또한 ZFS는 자체 치유 데이터를 제공합니다. ZFS는 저장소 풀에 다양한 레벨의 데이터 중복성을 지원합니다. 잘못된 데이터 블록이 감지되면 ZFS는 다른 중복 복사본에서 올바른 데이터를 가져와서 잘못된 데이터를 올바른 데이터로 교체합니다.
ZFS 파일 시스템의 핵심적인 디자인 요소는 확장성입니다. 파일 시스템 자체는 128비트이며, 저장소에 대해 256 쿼드릴리온 제타바이트가 허용됩니다. 모든 메타 데이터는 동적으로 할당되므로 inode를 미리 할당하거나 파일 시스템을 처음 만들 때 파일 시스템의 확장성을 미리 제한할 필요도 없습니다. 모든 알고리즘은 확장성을 염두에 두고 작성되었습니다. 디렉토리에는 최대 248(256 트릴리온)개의 항목을 포함할 수 있으며 파일 시스템 수 또는 하나의 파일 시스템 내에 포함할 수 있는 파일 수에도 제한이 없습니다.
스냅샷은 파일 시스템 또는 볼륨에 대한 읽기 전용 복사본입니다. 스냅샷은 쉽고 빠르게 만들 수 있습니다. 처음에 스냅샷은 풀 내에서 추가 디스크 공간을 소비하지 않습니다.
활성 데이터 세트 내의 데이터가 변경되면 이전 데이터를 계속 참조하기 때문에 스냅샷에서 디스크 공간이 소비됩니다. 결과적으로 스냅샷은 해당 데이터가 풀로 다시 돌아가지 않도록 방지합니다.
ZFS의 가장 중요한 특징은 매우 간소화된 관리 모델을 제공한다는 점입니다. 계층적인 파일 시스템 레이아웃 사용, 등록 정보 상속, 마운트 지점 및 NFS 공유 의미에 대한 자동 관리를 지원하는 ZFS에서는 여러 명령을 수행하거나 구성 파일을 편집할 필요 없이 파일 시스템을 쉽게 만들고 관리할 수 있습니다. 쿼터 또는 예약을 쉽게 설정하고, 압축을 설정 또는 해제하고, 여러 파일 시스템에 대한 마운트 지점을 관리하는 등의 작업을 단일 명령을 통해 쉽게 수행할 수 있습니다. 별도의 볼륨 관리자 명령을 배우지 않아도 장치를 검사하거나 교체할 수 있습니다. 파일 시스템 스냅샷 스트림을 전송 및 수신할 수 있습니다.
ZFS는 쿼터, 예약, 압축 및 마운트 지점과 같이 등록 정보에 대한 간소화된 관리를 지원하는 계층을 통해 파일 시스템을 관리합니다. 이 모델에서 파일 시스템은 중앙 제어 지점이 됩니다. 새로운 디렉토리를 만드는 것과 동일한 정도로 파일 시스템 자체가 매우 간단하므로 각 사용자, 프로젝트, 작업 공간 등에 따라 각각의 파일 시스템을 만드는 것이 좋습니다. 이러한 설계 덕분에 세밀하게 조정된 관리 지점을 정의할 수 있습니다.