JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1 관리: ZFS 파일 시스템     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

1.  Oracle Solaris ZFS 파일 시스템(소개)

2.  Oracle Solaris ZFS 시작하기

3.  Oracle Solaris ZFS 저장소 풀 관리

4.  ZFS 루트 풀 구성 요소 관리

5.  Oracle Solaris ZFS 파일 시스템 관리

6.  Oracle Solaris ZFS 스냅샷 및 복제 작업

7.  ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호

8.  Oracle Solaris ZFS 위임 관리

9.  Oracle Solaris ZFS 고급 주제

ZFS 볼륨

ZFS 볼륨을 스왑 또는 덤프 장치로 사용

ZFS 볼륨을 iSCSI LUN으로 사용

영역이 설치된 Solaris 시스템에서 ZFS 사용

비전역 영역에 ZFS 파일 시스템 추가

비전역 영역에 데이터 세트 위임

비전역 영역에 ZFS 볼륨 추가

영역 내에서 ZFS 저장소 풀 사용

영역 내에서 ZFS 등록 정보 관리

zoned 등록 정보 이해

다른 시스템에 영역 복사

ZFS 대체 루트 풀 사용

ZFS 대체 루트 풀 만들기

대체 루트 풀 가져오기

10.  Oracle Solaris ZFS 문제 해결 및 풀 복구

11.  스냅샷 아카이브 및 루트 풀 복구

12.  Oracle Solaris ZFS 권장 방법

A.  Oracle Solaris ZFS 버전 설명

색인

영역이 설치된 Solaris 시스템에서 ZFS 사용

다음 절은 Oracle Solaris 영역이 있는 시스템에서 ZFS를 사용하는 방법을 설명합니다.

ZFS 데이터 세트를 영역과 연관시킬 때 다음 사항에 유의하십시오.

다음 절에서 ZFS 데이터 세트는 파일 시스템이나 복제본을 말합니다.

데이터 세트를 추가하면 (영역 관리자가 기본 파일 시스템 계층에서 등록 정보를 제어하거나 새 파일 시스템을 만들 수 없더라도) 비전역 영역에서 디스크 공간을 전역 영역과 공유할 수 있습니다. 이 작업은 다른 유형의 파일 시스템을 영역에 추가하는 것과 같으며, 주 목적이 전적으로 공통 디스크 공간을 공유하는 것일 때 사용해야 합니다.

ZFS에서는 데이터 세트가 비전역 영역에 위임되므로 영역 관리자로 데이터 세트와 모든 자식을 완전히 제어할 수 있습니다. 영역 관리자는 파일 시스템을 만들고 삭제하거나, 해당 데이터 세트 내에 복제하거나, 데이터 세트의 등록 정보를 수정할 수 있습니다. 영역 관리자는 위임된 데이터 세트에 설정된 최상위 레벨의 쿼터 초과를 비롯하여 영역에 추가되지 않은 데이터 세트에 영향을 미칠 수 없습니다.

Oracle Solaris 영역이 설치된 시스템에서 ZFS로 작업할 때 다음 사항을 고려하십시오.

비전역 영역에 ZFS 파일 시스템 추가

주 목적이 전적으로 전역 영역과 공간을 공유하는 것일 때 ZFS 파일 시스템을 일반 파일 시스템으로 추가할 수 있습니다. 비전역 영역에 추가된 ZFS 파일 시스템에서 mountpoint 등록 정보가 legacy로 설정되어야 합니다. 예를 들어, tank/zone/zion 파일 시스템을 비전역 영역에 추가할 경우 다음과 같이 전역 영역에 mountpoint 등록 정보를 설정합니다.

# zfs set mountpoint=legacy tank/zone/zion

zonecfg 명령의 add fs 하위 명령을 사용하여 비전역 영역에 ZFS 파일 시스템을 추가할 수 있습니다.

다음 예에서 전역 영역 관리자에 의해 전역 영역에서 비전역 영역으로 ZFS 파일 시스템이 추가됩니다.

# zonecfg -z zion
zonecfg:zion> add fs
zonecfg:zion:fs> set type=zfs
zonecfg:zion:fs> set special=tank/zone/zion
zonecfg:zion:fs> set dir=/opt/data
zonecfg:zion:fs> end

이 구문은 ZFS 파일 시스템 tank/zone/zion을 이미 구성된 zion 영역에 추가합니다. 이 영역은 /opt/data에 마운트되어 있습니다. 파일 시스템의 mountpoint 등록 정보는 legacy로 설정해야 하고 파일 시스템은 다른 위치에 이미 마운트될 수 없습니다. 영역 관리자는 파일 시스템 내에서 파일을 만들고 삭제할 수 있습니다. 파일 시스템은 다른 위치에 다시 마운트할 수 없고 영역 관리자가 atime, readonly, compression 등의 등록 정보를 파일 시스템에서 변경할 수 없습니다. 전역 영역 관리자는 파일 시스템의 등록 정보를 설정하고 제어할 책임이 있습니다.

zonecfg 명령 및 zonecfg를 사용한 리소스 유형 구성에 대한 자세한 내용은 Oracle Solaris 관리: Oracle Solaris Zones, Oracle Solaris 10 Zones 및 리소스 관리의 제II부, Oracle Solaris Zones을 참조하십시오.

비전역 영역에 데이터 세트 위임

저장소 관리를 영역에 위임하는 주 목적을 충족하기 위해 ZFS는 zonecfg 명령의 add dataset 하위 명령을 통해 비전역 영역에 데이터 세트를 추가할 수 있도록 지원합니다.

다음 예에서 전역 영역 관리자에 의해 전역 영역에서 비전역 영역으로 ZFS 파일 시스템이 위임됩니다.

# zonecfg -z zion
zonecfg:zion> add dataset
zonecfg:zion:dataset> set name=tank/zone/zion
zonecfg:zion:dataset> set alias=tank
zonecfg:zion:dataset> end

파일 시스템 추가와 달리, 이 구문에서 ZFS 파일 시스템 tank/zone/zion이 이미 구성된 zion 영역에 표시됩니다. zion 영역 내에서 이 파일 시스템은 tank/zone/zion으로 액세스할 수 없지만 tank라는 가상 풀로 액세스할 수 있습니다. 위임된 파일 시스템 별칭은 원래 풀의 뷰를 영역에 가상 풀로 제공합니다. 별칭 등록 정보는 가상 풀의 이름을 지정합니다. 별칭을 지정하지 않으면 파일 시스템 이름의 마지막 구성 요소와 일치하는 기본 별칭이 사용됩니다. 특정 별칭을 제공하지 않은 경우 위 예의 기본 별칭은 zion입니다.

위임된 데이터 세트 내에서 영역 관리자는 파일 시스템 등록 정보를 설정하고 종속 파일 시스템을 만들 수 있습니다. 더불어, 영역 관리자는 스냅샷을 만들거나 복제하고, 아니면 전체 파일 시스템 계층을 제어할 수 있습니다. 위임된 파일 시스템 내에 ZFS 볼륨을 만들 경우 장치 리소스로 추가된 ZFS 볼륨과 충돌할 수 있습니다. 자세한 내용은 다음 절 및 dev(7FS)를 참조하십시오.

비전역 영역에 ZFS 볼륨 추가

다음과 같은 방법으로 비전역 영역에 ZFS 볼륨을 추가 또는 생성하거나 비전역 영역의 볼륨 데이터에 대한 액세스를 추가할 수 있습니다.

영역 내에서 ZFS 저장소 풀 사용

ZFS 저장소 풀은 영역 내에서 만들거나 수정할 수 없습니다. 위임 관리 모델은 중앙집중 방식으로 전역 영역 내에서 실제 저장 장치를 제어하고 비전역 영역에서 가상 저장소를 제어합니다. 풀 레벨 데이터 세트를 영역에 추가할 수 있더라도 장치 만들기, 추가, 제거 등 풀의 물리적 특성을 수정하는 명령은 영역 내에서 허용되지 않습니다. zonecfg 명령의 add device 하위 명령을 사용하여 물리적 장치를 영역에 추가하거나 파일을 사용하더라도 zpool 명령으로 영역 내에서 새 풀을 만들 수 없습니다.

영역 내에서 ZFS 등록 정보 관리

데이터 세트가 영역에 위임된 후에 영역 관리자가 특정 데이터 세트 등록 정보를 제어할 수 있습니다. 데이터 세트가 영역에 위임된 후에는 모든 조상이 읽기 전용 데이터 세트로 표시되고, 모든 자손인 데이터 세트 자체가 쓰기 가능합니다. 예를 들어, 다음 구성을 고려하십시오.

global# zfs list -Ho name
tank
tank/home
tank/data
tank/data/matrix
tank/data/zion
tank/data/zion/home

tank/data/zion이 기본 zion 별칭으로 영역에 추가된 경우 각 데이터 세트는 다음 등록 정보를 갖게 됩니다.

데이터 세트
표시 가능
쓰기 가능
변경할 수 없는 등록 정보
tank
아니오
-
-
tank/home
아니오
-
-
tank/data
아니오
-
-
tank/data/zion
zoned, quota, reservation
tank/data/zion/home
zoned

tank/zone/zion의 모든 부모는 보이지 않으며 모든 자손은 쓰기 가능합니다. 영역 관리자는 zoned 등록 정보를 변경할 수 없습니다. 그러면 다음 절에 설명된 보안 위험에 노출되기 때문입니다.

영역의 권한 사용자는 quotareservation 등록 정보를 제외한, 다른 설정 가능한 등록 정보를 변경할 수 있습니다. 이 동작으로 전역 영역 관리자가 비전역 영역에서 사용된 모든 데이터 세트의 디스크 공간 소비를 제어할 수 있습니다.

더불어, 데이터 세트가 비전역 영역에 위임된 후에는 전역 영역 관리자가 share.nfsmountpoint 등록 정보를 변경할 수 없습니다.

zoned 등록 정보 이해

데이터 세트가 비전역 영역에 위임될 때 특정 등록 정보가 전역 영역의 컨텍스트에서 해석되지 않도록 데이터 세트를 특별히 표시해야 합니다. 데이터 세트가 비전역 영역에 위임된 후에 전역 관리자의 통제 아래에 있으면 해당 컨텐츠를 더 이상 신뢰할 수 없습니다. 다른 파일 시스템과 마찬가지로, 전역 영역의 보안에 악영향을 미치는 setuid 이진, 심볼릭 링크나 의심스러운 컨텐츠가 있을 수 있습니다. 더불어, mountpoint 등록 정보는 전역 영역의 컨텍스트에서 해석할 수 없습니다. 그렇지 않으면 영역 관리자가 전역 영역의 이름 공간에 영향을 미칠 수 있습니다. 후자를 처리하기 위해 ZFS는 zoned 등록 정보를 사용하여 특정 시점에 데이터 세트가 비전역 영역에 위임되었는지 나타냅니다.

zoned 등록 정보는 ZFS 데이터 세트를 포함하는 영역을 처음 부트할 때 자동으로 켜지는 부울값입니다. 영역 관리자가 이 등록 정보를 수동으로 켤 필요가 없습니다. zoned 등록 정보가 설정된 경우 전역 영역에서 데이터 세트를 마운트하거나 공유할 수 없습니다. 다음 예에서 tank/zone/zion은 영역에 위임되었고 tank/zone/global은 위임되지 않았습니다.

# zfs list -o name,zoned,mountpoint -r tank/zone
NAME                  ZONED  MOUNTPOINT
tank/zone/global        off  /tank/zone/global
tank/zone/zion           on  /tank/zone/zion
# zfs mount
tank/zone/global           /tank/zone/global
tank/zone/zion             /export/zone/zion/root/tank/zone/zion

mountpoint 등록 정보와 tank/zone/zion 데이터 세트가 현재 마운트된 디렉토리의 차이점에 유의하십시오. mountpoint 등록 정보는 데이터 세트가 현재 시스템에 마운트된 위치가 아니라, 디스크에 저장할 당시의 등록 정보를 반영합니다.

데이터 세트를 영역에서 제거하거나 영역을 삭제할 때 zoned 등록 정보가 자동으로 지워지지 않습니다. 이 동작은 이러한 작업과 연관된 고유의 보안 위험 때문입니다. 신뢰할 수 없는 사용자가 데이터 세트와 그 자손에 전체 액세스할 수 있기 때문에 mountpoint 등록 정보가 잘못된 값으로 설정되거나 setuid 이진이 파일 시스템에 존재할 수 있습니다.

돌발적 보안 위험을 방지를 위해, 어떤 식으로든 데이터 세트를 재사용하려면 전역 영역 관리자가 zoned 등록 정보를 수동으로 지워야 합니다. zoned 등록 정보를 off로 설정하기 전에 데이터 세트와 모든 자손에 대한 mountpoint 등록 정보가 적합한 값으로 설정되고 setuid 이진이 존재하지 않거나 setuid 등록 정보가 꺼져 있는지 확인하십시오.

보안 취약점이 없는지 확인한 후에 zfs set 또는 zfs inherit 명령을 사용하여 zoned 등록 정보를 끌 수 있습니다. zoned 등록 정보를 껐지만 데이터 세트가 영역 내에서 사용 중인 경우 시스템 동작을 예측할 수 없습니다. 데이터 세트가 비전역 영역에서 더 이상 사용되지 않는 경우에만 등록 정보를 변경하십시오.

다른 시스템에 영역 복사

하나 이상의 영역을 다른 시스템으로 마이그레이션해야 하는 경우 zfs sendzfs receive 명령을 사용합니다. 시나리오에 따라 복제 스트림 또는 순환적 스트림을 사용하는 것이 좋습니다.

이 절의 예에서는 시스템 간에 영역 데이터를 복사하는 방법에 대해 설명합니다. 각 영역의 구성을 전송하고 각 영역을 새 시스템에 연결하려면 추가 단계를 수행해야 합니다. 자세한 내용은 Oracle Solaris 11.1 관리: Oracle Solaris 영역, Oracle Solaris 10 영역 및 리소스 관리의 제II부, Oracle Solaris 영역을 참조하십시오.

한 시스템의 모든 영역을 다른 시스템으로 이동해야 하는 경우 스냅샷과 복제가 유지되므로 복제 스트림을 사용합니다. 스냅샷과 복제는 pkg update, beadm createzoneadm clone 명령에서 광범위하게 사용됩니다.

다음 예에서 sysA의 영역은 rpool/zones 파일 시스템에 설치되며 systank/zones 파일 시스템에 복사해야 합니다. 다음 명령은 스냅샷을 만들고 복제 스트림을 사용하여 데이터를 sysB에 복사합니다.

sysA# zfs snapshot -r rpool/zones@send-to-sysB
sysA# zfs send -R rpool/zones@send-to-sysB | ssh sysB zfs receive -d tank

다음 예에서 여러 영역 중 하나는 sysC 에서 sysD로 복사됩니다. ssh 명령을 사용할 수 없지만 NFS 서버 인스턴스를 사용할 수 있다고 가정합니다. 다음 명령을 사용하면 영역이 다른 영역의 복제본인지 여부에 관계없이 순환적 zfs send 스트림을 생성할 수 있습니다.

sysC# zfs snapshot -r rpool/zones/zone1@send-to-nfs
sysC# zfs send -rc rpool/zones/zone1@send-to-nfs > /net/nfssrv/export/scratch/zone1.zfs
sysD# zfs create tank/zones
sysD# zfs receive -d tank/zones < /net/nfssrv/export/scratch/zone1.zfs