# 관리 안내서

# 볼륨 관리

이 장에서는 파일 서버 시스템에 저장된 볼륨을 관리하는 방법을 설명합니다. 볼륨은 AFS에서 관리 단위로 지정되어 있으므로 이 작업은 관리자의 업무 중 많은 부분을 차지합니다.

## 명령어(instruction) 요약

이 장에서는 지정된 명령을 사용하여 다음 타스크를 수행하는 방법을 설명합니다.

읽기/쓰기 볼륨 작성 | vos create
읽기 전용 볼륨 작성 | vos addsite 및 vos release
백업 볼륨 작성 | vos backup
한 번에 여러 백업 볼륨 작성 | vos backupsys
VLDB 항목 검토 | vos listvldb
볼륨 헤더 검토 | vos listvol
VLDB 항목과 볼륨 헤더 검토 | vos examine
볼륨의 이름 표시 | fs listquota 또는 fs examine
볼륨 ID 번호 표시 | fs examine 또는 vos examine 또는 vos listvol
파티션 크기 및 여유 공간 표시 | vos partinfo
볼륨 위치 표시 | fs whereis 또는 vos examine
마운트 포인트 작성 | fs mkmount
마운트 포인트 제거 | fs rmmount
마운트 포인트 표시 | fs lsmount
읽기/쓰기 볼륨 이동 | vos move
볼륨 헤더와 VLDB 동기화 | vos syncvldb 및 vos syncserv
볼륨 할당량 설정 | fs setvol 또는 fs setquota
볼륨 할당량 표시 | fs quota 또는 fs listquota 또는 fs examine
볼륨 현재 크기 표시 | fs listquota 또는 fs examine
시스템/파티션의 볼륨 목록 표시 | vos listvol
읽기/쓰기 볼륨 제거 | vos remove 및 fs rmmount
읽기 전용 볼륨 제거 | vos remove
백업 볼륨 제거 | vos remove 및 fs rmmount
볼륨 제거, VLDB 변경사항 없음 | vos zap
읽기 전용 사이트 정의 제거 | vos remsite
VLDB 항목 제거, 볼륨 변경사항 없음 | vos delentry
볼륨 덤프 | vos dump
덤프된 볼륨 복원 | vos restore
볼륨 이름 변경 | vos rename, fs rmmount 및 fs mkmount
볼륨 잠금 해제 | vos unlock
다중 볼륨 잠금 해제 | vos unlockvldb
볼륨 잠금 | vos lock

## 볼륨에 대하여

AFS 볼륨은 AFS 디렉토리의 파일에 대한 컨테이너와 같이 기능하는 디스크 공간의 논리적 단위로 파일들을 파일 서버 시스템의 한 파티션에 모두 보관합니다. 볼륨의 내용을 셀의 파일 트리에서 볼 수 있게 하고 사용자가 액세스할 수 있게 하려면 AFS 파일 공간의 디렉토리 위치로 볼륨을 마운트해야 합니다. 볼륨과 파일 공간에서의 그 위치와의 관계를 마운트 포인트라고 합니다. 왜냐하면 볼륨이 작동하는 AFS 내부가 표준 디렉토리 요소와 같이 보이고 수행되기 때문입니다. 사용자는 표준 UNIX 디렉토리의 내용을 액세스하고 처리하는 것과 같은 방식으로 볼륨의 내용을 액세스하고 처리할 수 있습니다. 볼륨과 디렉토리 간의 관계에 대한 자세한 정보를 보려면 볼륨 마운트에 대하여를 참조하십시오.

관리자들의 일상적인 작업 중 많은 부분은 기본적인 기억영역이며 AFS의 관리 단위인 볼륨을 처리하는 작업과 관련되어 있습니다. 볼륨이 어떤 방식으로 작업을 보다 용이하게 해줄 수 있는가에 대한 설명을 보려면 볼륨이 AFS 효율을 높이는 방법을 참조하십시오.

### 세 가지 유형의 볼륨

AFS에는 다음 목록에서 설명하는 것처럼 세 가지 유형의 볼륨이 있습니다.

- 단일 읽기/쓰기 버전의 볼륨은 볼륨에 수정할 수 있는 파일 및 디렉토리 버전이 들어 있습니다. 이 볼륨은 다른 두 가지 유형의 볼륨이 클론이라는 복사 절차로부터 이 볼륨에서 파생되기 때문에 읽기/쓰기 원본으로 참조됩니다. 읽기/쓰기 볼륨 작성에 대한 지침을 보려면 읽기/쓰기 볼륨 작성을 참조하십시오.
- 읽기 전용 볼륨은 읽기/쓰기 원본 볼륨의 사본이며 여러 사이트(사이트는 특정 파일 서버 시스템에 있는 특정 파티션임)에 존재할 수 있습니다. 둘 이상의 사이트에 동일한 데이터를 배치하는 것을 복제라고 합니다. 볼륨이 AFS 효율을 높이는 방법을 참조하십시오. 그 이름에서 알수 있듯이 읽기 전용 볼륨의 내용은 읽기/쓰기 원본이 변경될 때 자동으로 변경되지 않으며 관리자가 vos release 명령을 실행할 때만 변경됩니다. 사용자가 AFS 파일 공간을 일관된 형태로 볼 수 있으려면 모든 읽기 전용 볼륨 사본이 서로 그리고 읽기/쓰기 원본과 일치해야 합니다. 모든 읽기 전용 볼륨은 동일한 이름을 가지며 이 이름은 읽기/쓰기 원본 이름에 .readonly 확장자를 추가하여 생성됩니다. 읽기 전용 볼륨 작성에 대한 지침을 보려면 볼륨 복제(읽기 전용 볼륨 작성)를 참조하십시오.
- 백업 볼륨은 읽기/쓰기 원본 볼륨의 클론이로 원본과 동일한 사이트에 저장됩니다. 백업 버전은 특정 시간에 읽기/쓰기 원본의 상태를 기록하기 때문에 나중에 실수로 변경되었거나 삭제된 데이터를 복구할 수 있게 하므로 유용합니다. (자세한 설명을 보려면 볼륨이 AFS 효율을 높이는 방법을 참조하십시오.) 백업 볼륨 이름은 .backup 확장자를 읽기/쓰기 원본 이름에 추가하여 생성됩니다. 백업 볼륨 작성에 대한 지침을 보려면 백업 볼륨 작성을 참조하십시오.

  주: | 백업 볼륨은 볼륨의 백업 버전이 보통 볼륨을 테이프로 백업하는 프로세스의 한 단계에 해당한다고 해도 AFS 백업 시스템을 사용하여 테이프에 전송되는 볼륨의 백업과 동일하지 않습니다. AFS 백업 시스템을 사용한 볼륨 백업에 대한 정보를 보려면 데이터 백업을 참조하십시오.

앞서 설명한 것처럼 세 가지 유형의 볼륨은 서로 관련되어 있습니다. 즉 읽기 전용 및 백업 볼륨은 모두 클론이라는 프로세스를 통해 읽기/쓰기 볼륨으로부터 생성된 것입니다. 읽기 전용 및 백업 볼륨은 작성되었을 때의 읽기/쓰기 원본의 정확한 사본에 해당합니다.

### 볼륨이 AFS 효율을 높이는 방법

볼륨을 사용하면 다음의 세 가지 방식으로 셀을 보다 쉽게 관리하고 보다 효율적으로 만들 수 있습니다.

- 볼륨은 정의에 의하면 파티션보다 더 작으므로 동일하거나 다른 시스템의 파티션 간을 쉽게 이동합니다. 볼륨을 이동하는 가장 일반적인 원인은 파일 서버 시스템 사이에서 로드 밸런스를 이루고 특정 시스템에서 좀더 확보된 디스크 용량을 활용하는 것입니다. 볼륨 이동 중에 몇 초 동안만 볼륨의 내용이 사용 불가능해지므로 볼륨 내용에 대한 사용자 액세스를 방해하지 않고 필요한 만큼 자주 볼륨을 이동할 수 있습니다. VLDB(Location Database)의 자동 볼륨 위치 추적 기능은 액세스가 가시적으로 유지되게 합니다. 볼륨 이동에 대한 지침을 보려면 볼륨 이동을 참조하십시오.
- 볼륨은 AFS에서 복제본 단위입니다. 복제는 읽기/쓰기 원본에서 읽기 전용 클론을 작성하고 클론을 하나 이상의 사이트에 분배하는 과정을 나타냅니다. 복제는 둘 이상의 시스템이 자주 사용되는 파일에 대한 요청을 받을 수 있으므로 시스템 효율을 높입니다. 또한 시스템 또는 서버 프로세스 작동 중단 상태에 직면했을 때 데이터를 사용 가능하게 유지하는 데 도움을 줌으로써 시스템 신뢰성도 높입니다. 일반적으로 자주 사용되는 응용 프로그램과 자주 변경되지 않는 파일을 포함하는 볼륨은 복제될 가능성이 가장 높지만 어떠한 읽기/쓰기 볼륨도 복제할 수 있습니다. 볼륨 복제(읽기 전용 볼륨 작성)를 참조하십시오.
- 볼륨은 두 가지 측면에서 AFS의 백업 단위입니다. 백업 볼륨 버전을 작성하여 지정된 시간에 읽기/쓰기 원본 볼륨의 상태를 보존할 수 있습니다. AFS 파일 공간에 백업 버전을 마운트하여 사용자들이 실수로 변경했거나 삭제한 데이터를 관리자의 도움을 받아 복원할 수 있게 하여 다른 중요한 작업에 좀더 시간을 할애할 수 있습니다. 하루에 한번씩 새로운 사용자 볼륨 백업 버전을 만드는 경우 (이전 백업을 덮어쓰는 것으로 가정) 사용자는 항상 전날의 파일 버전을 검색할 수 있습니다. 지침을 보려면 백업 볼륨 작성을 참조하십시오.

  백업은 또한 AFS 백업 시스템을 사용하여 볼륨의 내용 사본을 테이프나 특수 백업 데이터에 영구히 저장는 것을 나타내기도 합니다. AFS 백업 시스템 구성 및 AFS 데이터 백업 및 복원을 참조하십시오.

### VLDB의 볼륨 정보

VLDB(Location Database)에는 셀의 모든 볼륨에 대한 항목이 들어 있습니다. 항목에서 가장 중요한 정보는 AFS 데이터를 가시적으로 액세스하는 데 있어서 핵심적인 요소인 볼륨 위치일 것입니다. 사용자가 파일을 열면 캐쉬 관리 프로그램은 VLDB를 유지 관리하는 볼륨 위치(VL) 서버에 해당 파일을 포함하는 볼륨이 있는 파일 서버 시스템의 목록을 문의합니다. 그런 다음 캐쉬 관리 프로그램은 해당 파일 서버 시스템에서 실행되는 파일 서버로부터 파일을 요청합니다. 파일 위치는 사용자가 볼 수 없으며 사용자는 파일의 경로 이름만 알면 됩니다.

읽기/쓰기 볼륨에 대한 VLDB 볼륨 항목에는 자체의 VLDB 항목을 가지고 있지 않은 읽기 전용 및 백업 버전에 대한 정보도 들어 있습니다(드문 예외로 읽기 전용 원본이 제거되었으므로 자체의 VLDB 항목을 가지고 있는 읽기 전용 볼륨을 들 수 있습니다). 볼륨의 VLDB 항목은 볼륨 이름, 각 버전(읽기/쓰기, 읽기 전용, 백업 및 releaseClone)에 대한 고유한 볼륨 ID 번호, 읽기/쓰기 또는 읽기 전용 버전을 저장하는 사이트의 수, 사이트의 목록을 기록합니다.

하나 이상의 볼륨에 대해 VLDB 항목을 표시하려면 VLDB 항목을 표시하려면에서 설명하는 것처럼 vos listvldb 명령을 사용하십시오. 그 볼륨 헤더와 함께 단일 볼륨에 대한 VLDB 항목을 표시하려면 볼륨의 VLDB 항목 및 볼륨 헤더를 표시하려면에서 설명하는 것처럼 vos examine 명령을 사용하십시오(볼륨 헤더에 대한 설명을 보려면 다음 절을 참조하십시오).

### 볼륨 헤더의 정보

볼륨의 모든 버전이 하나의 VLDB 항목을 공유하는 반면 한 AFS 서버 파티션의 각 볼륨은 볼륨의 파일 및 디렉토리를 이들이 저장되어 있는 파티션에 대한 실제 메모리 주소에 맵핑하는 데이터 구조인 자체의 볼륨 헤더를 가집니다. 볼륨 헤더는 볼륨을 연속 메모리 블록에 저장되도록 요구하지 않으면서 볼륨의 내용을 논리 장치로 바인드합니다. 볼륨 헤더는 또한 볼륨에 대한 다음 정보를 제공합니다. 일부 항목은 VLDB 항목과 중복됩니다. 이름, 볼륨 ID 번호, 유형, 크기, 상태(온라인, 오프라인, 사용중), 공간 할당량, 작성 날짜와 마지막 수정 날짜에 대한 시간 소인 및 현재 날짜 중의 액세스 횟수.

하나 이상의 파티션에 볼륨 헤더를 표시하려면 볼륨 헤더를 표시하려면에서 설명하는 것처럼 vos listvol 명령을 사용하십시오. 그 볼륨 헤더와 함께 단일 볼륨에 대한 VLDB 항목을 표시하려면 볼륨의 VLDB 항목 및 볼륨 헤더를 표시하려면에서 설명하는 것처럼 vos examine 명령을 사용하십시오.

### VLDB 및 볼륨 헤더의 동기화 상태 유지

VLDB의 정보는 서버에 있는 가능한한 많은 수의 실제 볼륨의 상태(볼륨 헤더에 기록)와 일치하는 것이 중요합니다. VLDB에 있는 볼륨의 위치 정보가 잘못되면 캐쉬 관리 프로그램은 그 내용을 액세스할 수 없습니다. 볼륨의 상태를 변경하는 vos 명령을 실행할 때마다 볼륨 서버와 VL 서버는 공조하여 볼륨 헤더와 VLDB를 동기화 상태로 유지합니다. 드문 경우지만 vos 조작이 미리 중단된 경우와 같이 헤더와 VLDB가 달라지는 상황도 발생할 수 있습니다. 이들의 재동기화에 대한 지침을 보려면 VLDB 및 볼륨 헤더 동기화를 참조하십시오.

### 볼륨 마운트에 대하여

볼륨의 내용을 셀의 파일 트리에서 볼 수 있게 하고 사용자가 액세스할 수 있게 하려면 AFS 파일 공간의 디렉토리 위치로 볼륨을 마운트해야 합니다. 볼륨과 파일 공간에서의 그 위치와의 관계를 마운트 포인트라고 합니다. AFS 마운트 포인트는 보통의 UNIX 파일 시스템 디렉토리와 같이 보이고 기능도 하지만 구조적으로는 캐쉬 관리 프로그램에 디렉토리와 연관된 볼륨의 이름을 알려 주는 기호 연결에 가깝습니다. 마운트 포인트는 캐쉬 관리 프로그램이 그 마운트 포인트를 해석하는 방법을 알고 있을 때만 디렉토리로 보이고 작동할 수 있습니다.

캐쉬 관리 프로그램이 응용프로그램에서 요청한 파일을 검색해야 하는 일반적인 경우를 고려해 보십시오. 캐쉬 관리 프로그램은 AFS 루트(보통 /afs 디렉토리에 마운트되어 있음)에서 해당 파일까지 계속되는 파일의 완전한 경로 이름을 따라 진행합니다. 캐쉬 관리 프로그램이 진행 도중에 마운트 포인트를 만나면(또는 가로지르면) 마운트 포인트를 읽고 해당 디렉토리 위치에 마운트된 볼륨의 이름을 알아 냅니다. 캐쉬 관리 프로그램은 볼륨 위치(VL) 서버에 대한 위치 정보를 얻은 후에 지정된 볼륨을 페치하고 루트 디렉토리를 엽니다. 볼륨의 루트 디렉토리는 포함되어 있는 모든 파일, 하위 디렉토리 및 마운트 포인트를 나열합니다. 캐쉬 관리 프로그램은 경로 이름의 그 다음 요소에 대한 루트 디렉토리 목록을 스캔합니다. 또한 경로를 계속 따라가면서 요청된 파일이 있는 볼륨에 도착할 때까지 이 방법을 사용하여 다른 마운트 포인트를 해석합니다.

마운트 포인트는 AFS 파일 공간을 연결하는 실마리가 되어 볼륨이 여러 다른 파일 서버 시스템에 잇는 경우에도 하나의 심리스(seamless) 파일 트리 형태를 작성합니다. 볼륨의 내용은 볼륨이 디렉토리 위치에 마운트될 때 보고 액세스할 수 있으며 볼륨이 마운트되지 않으면 절대 액세스할 수 없습니다.

파일 트리의 둘 이상의 위치에 볼륨을 마운트할 수 있으나 이것은 두 가지 이유로 권장되지 않습니다. 먼저 파일 공간의 계층적 성향을 파괴할 수 있습니다. 둘째, 캐쉬 관리 프로그램은 파일에 도달하기 위해 추적하는 경로 이름에 혼동을 일으킬 수 있습니다 (예를 들어 pwd 명령의 예측치 못한 출력 야기). 그러나 둘 이상의 디렉토리에 볼륨을 마운트하면 해당 볼륨의 루트 디렉토리와 연관된 액세스 제어 목록(ACL)이 모든 마운트 포인트에 적용됩니다.

여러 유형의 마운트 포인트가 있으며 캐쉬 관리 프로그램은 각 마운트 포인트를 다른 방식으로 처리하며 각 마운트 포인트는 다른 목적에 적합합니다. 볼륨 마운트를 참조하십시오.

### 볼륨 이름에 대하여

읽기/쓰기 볼륨의 이름은 최대 22자까지 사용할 수 있습니다. 볼륨 서버는 자동으로 .readonly 및 .backup 확장자를 각각 읽기 전용 볼륨과 백업 볼륨에 추가합니다. 적절한 경우에도 볼륨 이름에 확장자를 명시적으로 추가하지 마십시오.

일반적으로 볼륨이 포함하는 데이터의 유형이 볼륨 이름에 지정됩니다. 예를 들어 모든 사용자 볼륨을 user.username으로 명명하는 것이 일반적이며 여기서 username은 사용자의 로그인 이름입니다. 이와 마찬가지로 많은 셀들은 시스템 유형 코드로 시작되는 이름을 가진 볼륨에 시스템 2진 파일을 추가합니다. 다른 명명 규칙에 대한 목록을 보려면 볼륨을 작성하여 관리 간편화하기를 참조하십시오.

## 읽기/쓰기 볼륨 작성

읽기/쓰기 볼륨은 가장 기본적인 볼륨 유형으로 읽기 전용 또는 백업 버전을 작성하기 위해 반드시 먼저 존재해야 합니다. vos create 명령을 실행하여 읽기/쓰기 볼륨을 작성할 경우 VL 서버는 사용자가 지정한 이름을 기록하는 VLDB 항목을 작성하고, 읽기/쓰기 볼륨 ID 번호를 지정하고, 나중에 작성될 수 있는 읽기 전용 및 백업 버전에 대한 두 개의 연속 볼륨 ID 번호를 예약해 둡니다. 동시에 볼륨 서버는 사용자가 지정하는 사이트에 볼륨 헤더를 작성하고 디스크에 볼륨 루트 디렉토리의 이름을 기록할 공간을 할당합니다. 이 이름은 사용자가 fs mkmount 명령을 실행하여 볼륨을 마운트할 때 채워지고 마운트 포인트 이름과 일치합니다. 다음은 볼륨 헤더에도 기록됩니다.

- 볼륨의 루트 디렉토리와 연관된 초기 ACL. 기본적으로 이것은 7개의 모든 액세스 권한을 system:administrators 그룹에 부여합니다. 볼륨을 마운트한 후에 fs setacl 명령을 사용하여 system:administrators 그룹에 대해 다른 항목을 추가 및 제거하거나 항목을 변경할 수 있습니다. ACL 항목 설정을 참조하십시오.
- 볼륨의 읽기/쓰기 버전이 파일 서버 파티션에서 사용할 수 있는 디스크 공간의 양을 제한하는 공간 할당량. 기본값은 5000 킬로바이트 블록이지만 vos create에 대해 -maxquota 인수를 사용하여 다른 할당량을 설정할 수 있습니다.

  작성 후에 할당량을 변경하려면 볼륨 할당량과 현재 크기 설정 및 표시에서 설명하는 것처럼 fs setquota 명령을 사용하십시오.

### 읽기/쓰기 볼륨을 작성(마운트)하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 볼륨을 마우트하려는 디렉토리의 ACL에 대해 a(administer), i(insert) 및 l(lookup) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. 새 볼륨에 대한 사이트(파일 서버 시스템의 디스크 파티션)를 선택하십시오. 사이트에 볼륨이 위치할 충분한 여유 공간이 있는지 확인하려면(현재 또는 전체 할당량을 사용할 수 있을 만큼 커진 상태에서) vos partinfo 명령을 실행하십시오.

   주: | 이 명령의 출력에서 파티션 관련 통계가 항상 표준 UNIX df 명령 출력의 해당 값과 일치하는 것은 아닙니다. 이 명령에서 보고한 통계는 캐쉬 관리 프로그램이 5분 간격으로 파티션 정보에 대해 파일 서버를 폴링하므로 생성된 이후에 최대 5분까지 경과될 수 있습니다. 또한 일부 운영 체제에서 df 명령의 파티션 크기 보고에는 이 명령의 계산에는 포함되어 있지 않은 예약된 공간이 포함되므로 약 10%가 더 커질 수 있습니다.

          % vos partinfo <machine name> [<partition name>]

   여기서

   p
     허용되는 partinfo의 가장 짧은 축약형입니다.

   machine name
     파티션 크기 및 사용도를 표시할 파일 서버 시스템을 지정합니다.

   partition name
     파티션 크기 및 사용도를 표시할 하나의 파티션을 명명합니다. 이 항목을 생략하면 출력은 시스템의 모든 파티션에 대해 사용할 수 있는 크기와 여유 공간을 표시합니다.
4. 볼륨 이름에 대하여의 정보에 유의하여 볼륨 이름을 선택하십시오.
5. vos create 명령을 실행하여 볼륨을 작성하십시오.

          % vos create <machine name> <partition name> <volume name>  \
                       [-maxquota <initial quota (KB)>]

   여기서

   cr
     허용되는 create의 가장 짧은 축약형입니다.

   machine name
     볼륨을 배치할 파일 서버 시스템을 지정합니다.

   partition name
     볼륨을 배치할 디스크 파티션을 지정합니다.

   volume name
     볼륨을 명명합니다. 최대 22자까지의 영숫자 및 마침표를 사용할 수 있습니다. 셀에는 문자열 user로 사용자 볼륨 이름을 시작하고 마침표를 사용하여 이름의 부분을 분리하는 등의 볼륨에 대한 명명 규칙이 있을 것입니다.

   -maxquota
     킬로바이트 블록 수 단위로 볼륨의 할당량을 설정합니다. 이 인수를 생략하는 경우 할당량은 5000 킬로바이트 블록으로 설정됩니다.
6. (선택적) fs mkmount 명령을 실행하여 파일 공간에 볼륨을 마운트하십시오. 자세한 구문을 보려면 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면을 참조하십시오.

          % fs mkmount <directory> <volume name>

7. (선택적) fs lsmount 명령을 실행하여 마운트 포인트가 올바른 볼륨을 참조하는지 확인하십시오. 마운트 포인트를 표시하려면에 나타난 지시를 따르십시오.

          % fs lsmount <directory>

8. (선택적) 볼륨 헤더에 볼륨에 대한 보조 정보를 기록하려면 -offlinemsg 인수와 함께 fs setvol 명령을 실행하십시오. 예를 들어 볼륨을 소유하는 사람이나 파일 공간에서 볼륨을 마운트한 위치를 기록할 수 있습니다. 이 정보를 표시하려면 fs examine 명령을 사용하십시오.

          % fs setvol <dir/file path>
       -offlinemsg <offline message>

   여기서

   sv
     허용되는 setvol의 별명(그리고 setv는 허용되는 가장 짧은 축약형)입니다.

   dir/file path
     메시지를 연관지을 볼륨의 마운트 포인트를 명명합니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다.

     마운트 포인트에 대한 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨을 변경하려고 할 때 발생하는 장애를 피하십시오. 일반적으로 경로 이름의 두 번째 레벨의 셀 이름 앞에 마침표를 사용하여 읽기/쓰기 경로를 나타내십시오(예를 들어 /afs/.abc.com). 파일 경로를 통한 읽기/쓰기 및 읽기 전용 경로의 개념에 대해 좀더 살펴 보려면 마운트 포인트 통과 규칙을 참조하십시오.

   -offlinemsg
     볼륨 헤더에 기록할 보조 정보를 128자까지 지정합니다.

## 클론 및 클로닝에 대하여

백업 또는 읽기 전용 볼륨을 작성하기 위해 볼륨 서버는 읽기/쓰기 원본 볼륨을 클로닝하여 클론을 작성하기 시작합니다. 볼륨 서버는 vos backup 또는 vos backupsys 명령(백업 볼륨의 경우) 또는 vos release 명령(읽기 전용 볼륨의 경우)을 실행하여 자동으로 클론을 작성합니다. 사용자가 해야 할 특정 작업은 없습니다.

클론은 읽기/쓰기 원본 볼륨의 데이터 사본이 아니고 읽기/쓰기 볼륨의 vnode 색인 사본입니다. vnode 색인은 데이터가 있는 파티션의 물리적 디스크 블록과 볼륨에 있는 파일 및 디렉토리 간의 포인터의 테이블입니다. 다음 방식으로 클론으로부터 백업 및 읽기 전용 볼륨이 작성됩니다.

- 읽기/쓰기 원본과 동일한 파티션을 차지하는 읽기 전용 볼륨(읽기 전용 클론이라고도 함)과 백업 볼륨은 볼륨 헤더를 클론에 부착하여 작성됩니다. 이들 볼륨은 이 클론 부분(vnode 색인)이 그림 1에서 설명하는 것처럼 읽기/쓰기 볼륨과 정확히 동일한 파일을 가리키기 때문에 처음에는 거의 디스크 공간을 차지하지 않습니다. 파일 공유는 클론이 읽기/쓰기 원본 볼륨과 동일한 파티션에 있을 때만 가능합니다. 읽기/쓰기 볼륨의 파일은 삭제되어도 백업 또는 읽기 전용 클론이 여전히 그 파일을 가리키므로 파티션에서 실제로 제거되지 않습니다. 이와 마찬가지로 읽기/쓰기 볼륨의 파일이 변경되면 전체 원본 파일은 클론이 여전히 해당 파일을 가리키고 있으며 읽기/쓰기 볼륨의 vnode 색인이 변경된 파일에 대한 새 공간을 가리키도록 변경되므로 디스크에 그대로 보유됩니다. 이 경우 백업 또는 읽기 전용 볼륨은 실제 디스크 공간을 차지하도록 커집니다.
- 읽기/쓰기 원본과 동일한 사이트를 차지하지 않는 읽기 전용 볼륨은 클론 및 읽기/쓰기 원본 볼륨에 있는 모든 데이터의 사본입니다. 이것은 읽기 전용 볼륨이 작성되었을 때 읽기/쓰기 볼륨이 차지했던 것과 동일한 디스크 공간을 차지합니다.

그림 1. 읽기/쓰기 원본 및 클론 볼륨 간의 파일 공유

## 볼륨 복제(읽기 전용 볼륨 작성)

복제는 읽기/쓰기 볼륨의 읽기 전용 사본의 작성과 이 복사본을 하나 이상의 추가 파일 서버 시스템에 분배하는 것을 의미합니다. 복제를 수행하면 둘 이상의 파일 서버 시스템에서 볼륨의 내용을 액세스할 수 있으므로 데이터 사용 효율이 증가됩니다. 또한 네트워크 및 파일 서버의 작업 로드를 줄임으로써 시스템 효율성을 증가시킬 수 있습니다. 클라이언트 시스템의 서버 선호도에 따라 캐쉬 관리 프로그램이 가장 가까운 파일 서버 시스템에 저장된 볼륨 사본을 액세스하게 되는 경우 네트워크 로드가 줄어듭니다. 파일 서버 상의 로드는 읽기/쓰기 볼륨으로부터 페치된 각 파일에 대한 콜백의 경우와 반대로 읽기 전용 볼륨에서 페치된 모든 데이터에 대한 한 번의 콜백만 실행하므로 역시 줄어듭니다. 볼륨이 관리자 조치에 따라 달라지는 경우를 제외하고 변경되지 않으므로 전체 읽기 전용 볼륨에 대해 단일 콜백만으로도 충분합니다.

볼륨을 복제할 때는 두 가지 명령을 실행해야 합니다. 먼저 vos addsite 명령을 실행하여 볼륨의 VLDB 항목에 하나 이상의 사이트 정의를 추가하십시오(사이트는 파일 서버 시스템의 특정 파티션임). 그런 다음 vos release 명령을 사용하여 읽기/쓰기 원본 볼륨을 복제하고 클론을 정의된 읽기 전용 사이트에 분배하십시오. 각 읽기 전용 사이트에 대해 한번씩만 vos addsite 명령을 실행하면 되지만 읽기/쓰기 볼륨의 내용이 변경되고 사용자가 읽기 전용 볼륨을 갱신하기 원할 때마다 vos release 명령을 재실행해야 합니다.

사용자가 일관된 파일 시스템 보기를 원하는 경우 읽기 전용 사이트에 대해 갱신된 볼륨의 릴리스가 원자 형태여야 합니다. 즉 모든 읽기 전용 사이트는 새 버전의 볼륨을 받거나 모든 사이트가 현재 가지고 있는 버전을 그대로 유지해야 할 것입니다. vos release 명령은 볼륨의 읽기 전용 버전의 모든 사본이 읽기/쓰기 원본 및 서로 간에 일치할 수 있게 만들도록 설계되었습니다. 시스템 또는 서버 프로세스 작동 중지와 같은 문제점이 릴리스 조작의 성공적인 완료를 방해하는 경우 AFS는 두 가지 메카니즘을 사용하여 사용자에게 경고합니다.

첫째로 명령 인터프리터는 새 볼륨 버전을 수신하지 못한 각 읽기 전용 사이트를 명명하는 표준 오류 스트림에 오류 메시지를 생성합니다. 둘째로 릴리스 조작 중에 볼륨 위치(VL) 서버는 해당 사이트가 새 볼륨 버전을 가지고 있는지 여부를 나타내는 플래그(`New release` 및 `Old release`)로 VLDB 항목의 사이트 정의를 표시합니다. 조작이 완료된 후에 플래그가 남아 있으면 작업은 성공적으로 완료되지 못한 것입니다. 캐쉬 관리 프로그램은 `New release` 플래그로 표시된 사이트보다 더 큰 작업 부하를 초래할 수 있으므로 `Old release` 플래그로 표시된 읽기 전용 사이트의 액세스를 거부합니다. 장애의 원인을 조사하여 없앤 다음 오류 없이 릴리스가 완료되는 데 필요한 만큼 vos release 명령을 실행하는 것은 중요합니다.

실패한 릴리스 조작 이후에 볼륨의 VLDB 항목에 남아 있는 사이트 플래그의 패턴은 조작이 실패하는 시점을 알아내는 데 도움이 될 수 있습니다. vos examine 또는 vos listvldb 명령을 사용하여 VLDB 항목을 표시하십시오. VL 서버는 볼륨 서버의 조작과 관련하여 다음과 같이 플래그를 설정합니다.

1. 조작이 시작되기 전에 VL 서버는 VLDB 항목의 읽기/쓰기 사이트 정의에 `New release` 플래그를 설정하고 읽기 전용 사이트 정의에는 `Old release` 플래그를 설정합니다(마지막 릴리스 조작 이후에 읽기 전용 사이트가 정의되지 않은 경우와 실제 볼륨이 없는 경우. 실제 볼륨이 없는 경우에는 그 사이트 플래그가 `Not released`로 남아 있습니다).
2. 필요하면 볼륨 서버는 ReleaseClone이라는 읽기/쓰기 원본의 임시 사본(클론)을 작성합니다(볼륨 서버가 새 ReleaseClone을 작성하거나 작성하지 않을 때에 대한 다음 설명을 참조하십시오). 볼륨 서버는 ReleaseClone에 VL 서버가 원본 볼륨의 VLDB 항목의 `RClone` 필드에 기록하는 자체의 볼륨 ID 번호를 지정합니다.
3. 볼륨 서버는 VLDB 항목에 정의된 각 읽기 전용 사이트에 ReleaseClone 사본을 분배합니다. 사이트가 성공적으로 새 클론을 수신하면 VL 서버는 VLDB 항목의 사이트 플래그를 `New release`로 설정합니다.
4. 모든 읽기 전용 사본이 성공적으로 릴리스되면 VL 서버는 모든 `New release` 사이트 플래그를 지웁니다. ReleaseClone은 더 이상 필요하지 않으므로 볼륨 서버는 이를 삭제하고 VL 서버는 VLDB 항목에서 그 ID를 지웁니다.

기본적으로 볼륨 서버는 새 ReleaseClone을 작성해야 할지 여부를 자동적으로 결정합니다.

- VLDB 항목의 사이트 정의에 플래그(`New release`, `Old release` 또는 `Not released`)가 없으면 이전에 수행한 vos release 명령이 성공적으로 완료되고 모든 읽기 전용 사이트가 현재 동일한 볼륨을 가지게 됩니다. 볼륨 서버는 읽기 쓰기 볼륨이 변경되었으므로 현재의 vos release 명령이 실행되었다고 가정합니다. 볼륨 서버는 새 ReleaseClone을 작성하고 이를 모든 읽기 전용 사이트에 분배합니다.
- VLDB 항목의 사이트 정의에 플래그가 설정되어 있으면 이전의 릴리스 조작은 성공적으로 완료되지 못했거나 새로운 읽기 전용 사이트가 마지막 릴리스 이후에 정의된 것입니다. 볼륨 서버는 새 ReleaseClone을 작성하지 않고 대신 기존의 ReleaseClone을 `Old release` 또는 `Not released` 플래그가 설정된 사이트에 분배합니다. 앞서 설명한 것처럼 VL 서버는 사이트가 ReleaseClone을 수신할 때 각 VLDB 사이트 정의에 `New release` 플래그를 설정하고 모든 사이트가 성공적으로 ReleaseClone을 수신한 후에 모든 플래그를 지웁니다.

기본 동작을 무시하고 강제로 볼륨 서버가 새로운 ReleaseClone을 작성하여 읽기 전용 사이트에 릴리스하게 하려면 -f 플래그를 포함시키십시오. 이것은 예를 들어 읽기/쓰기 사이트의 데이터가 기존의 ReleaseClone이 이전의 릴리스 조작 중에 작성된 이후에 변경되었을 때 적절합니다.

### 읽기 전용 볼륨의 효율적 사용

최대 효율을 위해 두 가지 기준을 만족하는 볼륨만 복제하십시오.

- 볼륨의 내용이 많이 사용되고 있습니다. 문서 편집기나 자주 사용되는 다른 응용프로그램에 대한 2진 파일을 저장하는 볼륨, 사용자 홈 디렉토리로 진행되는 경로와 같이 복잡하게 진행되는 디렉토리 경로에 따라 마운트되는 볼륨 등을 예로 들 수 있습니다. 이 경우는 단일 파일 서버가 모든 요청을 쉽게 처리할 수 있을 만큼 요구가 낮은 볼륨을 복제하는 것은 불필요한 디스크 공간의 사용입니다.
- 볼륨의 내용은 자주 변경되지 않습니다. 앞서 설명한 것처럼 파일 시스템 일관성을 위해 읽기 전용 볼륨의 내용이 읽기/쓰기 원본과 서로 간에 항상 일치해야 합니다. 읽기/쓰기 볼륨이 변경될 때마다 vos release 명령을 실행하여 읽기 전용 볼륨을 갱신해야 합니다. 이것은 읽기/쓰기 볼륨이 자주 변경되는 경우 짜증나는(잊어버리기 쉬운) 작업이 될 수 있습니다.

읽기 전용 볼륨을 명시적으로 마운트하는 것은 (.readonly 확장자를 사용하여 볼륨을 명명하는 마운트 포인트를 작성) 일반적으로 불필요하며 적절하지 않습니다. 캐쉬 관리 프로그램은 가능할 때마다 복제된 볼륨의 읽기 전용 볼륨을 액세스하는 기본적인 성향을 가지고 있습니다. 마운트 포인트 통과 규칙에서 좀더 자세히 설명하는 것처럼 캐쉬 관리 프로그램은 내부에서 볼륨 이름을 읽을 때 마운트 포인트를 만날 때 VL 서버에 접속하여 해당 볼륨이 있는 사이트의 목록을 확인합니다. 정상적인 경우에 마운트 포인트가 읽기 전용 볼륨에 있고 읽기/쓰기 볼륨을 명명하면 (.readonly 또는 .backup 확장자를 가지지 않는 볼륨) 캐쉬 관리 프로그램은 항상 볼륨의 읽기 전용 사본을 액세스하려고 합니다. 따라서 강제로 읽기 전용 볼륨을 마운트함으로써 캐쉬 관리 프로그램이 읽기 전용 볼륨을 액세스하게 할 필요가 없습니다.

몇 가지 이유로 인해 읽기/쓰기 사이트에 읽기 전용 볼륨을 두는 것이 좋습니다. 먼저 읽기/쓰기 사이트의 읽기 전용 볼륨은 모든 데이터의 사본에 해당하는 클론이므로 적은 디스크 공간만 요구합니다(클론 및 클로닝에 대하여 참고). 읽기/쓰기 볼륨에서 많은 수의 파일이 제거되거나 변경되는 경우에만 읽기 전용 사본이 많은 디스크 공간을 차지합니다. 이러한 상황은 복제된 읽기/쓰기 볼륨의 변경에 대한 대처 방안이 이 볼륨을 재복제하는 것이므로 별로 자주 발생하지 않습니다. 읽기/쓰기 사이트에 읽기 전용 볼륨을 두는 또 다른 이유는 캐쉬 관리 프로그램이 모든 읽기 전용 사본을 액세스할 수 없게 되는 경우 복제된 볼륨의 읽기/쓰기 버전을 액세스하려고 시도하지 않는다는 것입니다. 읽기/쓰기 볼륨이 있는 파일 서버 시스템만 액세스가 가능한 유일한 시스템인 경우 캐쉬 관리 프로그램은 읽기/쓰기 사이트에 읽기 전용 사본이 있을 때만 이 데이터를 액세스할 수 있습니다.

정의할 읽기 전용 사이트의 수는 여러 요소에 따라 달라집니다. 볼륨의 내용에 대한 요구 수준과 사용자가 볼륨의 여러 사본에 대해 사용하려는 디스크 공간의 크기를 통해 사이트 수가 결정될 것입니다. 물론 예상되는 각 읽기 전용 사이트에는 볼륨을 포함하는데 사용할 수 있는 충분한 공간이 있어야 합니다. 볼륨의 읽기 전용 사본 수에 대한 제한은 AFS 릴리스 노트에 정의되어 있는 볼륨의 VLDB 항목에 있는 최대 사이트 수 정의에 의해 결정됩니다. 볼륨의 읽기/쓰기 및 백업 버전을 포함하는 사이트는 하나의 사이트로 계산되고 각 읽기 전용 사이트는 추가 사이트로 계산됩니다(읽기/쓰기 사이트와 동일한 파일 서버 시스템 및 파티션에 정의된 읽기 전용 사이트는 별도의 사이트로 계산됨). 또한 볼륨 서버가 파일 서버 시스템 당 하나의 읽기 전용 볼륨 사본만 허용한다는 사실을 알아 두십시오.

### 복제 시나리오

다음 절의 지침은 읽게 전용 사이트가 현재 정의되어 있지 않은 볼륨을 복제하는 방법을 설명합니다. 그러나 다른 일반적인 상황에서 이 지침을 사용할 수도 있습니다.

- 이미 존재하는 사이트에 새 클론을 릴리스하는 경우 단계 2를 건너뛸 수 있습니다. 그러나 vos examine 명령을 실행하여 원하는 읽기 전용 사이트가 정의되어 있는지 확인하는 것은 유용한 방법입니다.
- 기존 사이트에 새로운 읽기 전용 사이트를 추가하는 경우 모든 단계를 수행하십시오. 단계 3에서 새로운 사이트에 대해서만 vos addsite 명령을 실행하십시오.
- 사이트를 정의하지만 아직 클론을 릴리스하지 않으려면 단계 3 다음에서 정지하고 준비될 때 계속하십시오.
- 새 클론을 나머지 사이트에 릴리스하기 전에 하나 이상의 사이트를 제거하는 경우 볼륨 및 마운트 포인트 제거에서 사이트 제거에 대한 지침을 참고하고 단계 4에서 시작하십시오.

### 읽기/쓰기 볼륨을 복제하려면 (읽기 전용 볼륨 작성)

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 볼륨을 복제할 하나 이상의 사이트를 선택하십시오. 다음 사항을 고려해야 합니다.
   - 이미 정의되어 있는 사이트의 수. 앞서 언급한 것처럼 읽기/쓰기 사이트에서 읽기 전용 사이트를 정의하는 것은 적절합니다. 또한 볼륨 서버는 파일 서버 시스템 당 하나의 읽기 전용 볼륨 사본만 허용합니다. 볼륨의 현재 사이트를 표시하려면 볼륨의 VLDB 항목 및 볼륨 헤더 표시에서 설명하는 것처럼 vos examine 명령을 실행하십시오.

            % vos examine <volume name or  ID>

     출력의 마지막 행에는 VLDB로부터의 볼륨 사이트 정의가 표시됩니다.

   - 셀에서 읽기 전용 볼륨만을 저장하기 위해 파일 서버 시스템을 전용으로 사용하는지 여부. 보통 아주 큰 셀에서만 읽기 전용 서버 시스템을 사용합니다.
   - 사이트에 볼륨을 저장할만한 충분한 공간이 있는지 여부. 읽기 전용 볼륨은 읽기/쓰기 버전과 동일한 공간을 요구합니다(이 볼륨이 읽기/쓰기 사이트에 있는 경우에도). vos examine 명령의 첫째 출력 행은 볼륨의 VLDB 항목 및 볼륨 헤더 표시에서 볼 수 있는 것처럼 읽기/쓰기 볼륨의 현재 크기를 킬로바이트 블록 단위로 표시합니다.

     파일 서버 시스템의 파티션에서 사용할 수 있는 공간의 양을 표시하려면 읽기/쓰기 볼륨 작성에서 자세히 설명하는 것처럼 vos partinfo 명령을 사용하십시오.

            % vos partinfo <machine name> [<partition name>]

3. vos addsite 명령을 실행하여 VLDB에 새로운 각 읽기 전용 사이트를 정의하십시오.

          % vos addsite <machine name> <partition name> <volume name or ID>

   여기서

   ad
     허용되는 addsite의 가장 짧은 축약형입니다.

   machine name
     새 사이트에 대한 파일 서버 시스템을 정의합니다.

   partition name
     시스템 machine name의 디스크 파티션을 명명합니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 복제할 읽기/쓰기 볼륨을 식별합니다.
4. (선택적) 읽기 전용 사이트를 정의한 각 파일 서버 시스템에서 fs 프로세스(볼륨 서버 통합)가 제대로 작동하는지 vlserver 프로세스(볼륨 위치 서버)가 각 데이터베이스 서버 시스템에서 제대로 작동하는지 확인하십시오. 이들이 제대로 기능할 경우 릴리스의 두 가지 실패 요인이 해결됩니다. 이 볼륨에 대한 읽기 전용 사이트가 있는 각 파일 서버 시스템과 각 데이터베이스 서버 시스템에 대해 bos status 명령을 실행하십시오. 이 명령은 프로세스 상태와 BosConfig 파일의 정보 표시하기에서 자세히 설명합니다.

          % bos status <machine name> fs vlserver

5. vos release 명령을 실행하여 읽기/쓰기 원본 볼륨을 클론하고 클론을 각 읽기 전용 사이트에 분배하십시오.

          % vos release <volume name or ID> [-f]

   여기서

   rel
     허용되는 release의 가장 짧은 축약형입니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 복제할 읽기/쓰기 볼륨을 식별합니다. 읽기 전용 버전에는 .readonly 확장자가 붙은 동일한 이름이 부여됩니다. 모든 읽기 전용 사본은 동일한 읽기 전용 볼륨 ID 번호를 공유합니다.

   -f
     완전히 새로운 클론을 작성하고 릴리스합니다.
6. (선택적) vos examine 명령을 실행하여 VLDB 항목에 `Old release` 또는 `New release` 플래그가 설정된 사이트 정의가 없는지 확인하십시오. 이 명령은 볼륨의 VLDB 항목 및 볼륨 헤더 표시에서 자세히 설명합니다.

          % vos examine <volume name or  ID>

단계 6의 출력에 플래그가 나타나는 경우 볼륨 서버가 릴리스 조작 중에 오류 메시지를 생성하지 않고 플래그가 더 이상 나타나지 않을 때까지 단계 4 및 5를 반복하십시오. 네트워크, 시스템 또는 서버 프로세스 작동 중지로 인해 읽기/쓰기 사이트나 읽기 전용 사이트를 액세스할 수 없다는 사실을 알고 있을 경우에는 vos release 명령을 실행하지 마십시오.

## 백업 볼륨 작성

백업 볼륨은 읽기/쓰기 원본이 있는 동일한 사이트에 있는 클론입니다(클로닝 개념을 살펴 보려면 클론 및 클로닝에 대하여를 참조하십시오). 다음의 두 가지 목적으로 볼륨의 백업 버전을 작성하게 됩니다.

- 일반적으로 AFS 백업 시스템을 사용하여 볼륨의 내용을 테이프로 덤프하는 것이 첫번째 단계입니다. 볼륨은 덤프되는 동안 액세스할 수 있으므로 읽기/쓰기 볼륨을 덤프하는 대신 백업 버전을 작성하여 덤프해야 합니다. 사용자는 보통 백업 버전을 액세스하지 않으므로 백업 버전의 덤프는 사용자에게 별 문제를 발생하지 않습니다. 자세한 정보를 보려면 데이터 백업을 참조하십시오.
- 백업 볼륨을 사용하면 사용자는 실수로 삭제했거나 변경한 데이터를 복원할 수 있으므로 다른 중요한 작업에 시간을 할애할 수 있습니다. 백업 버전은 백업이 작성된 시점에서 읽기/쓰기 원본의 상태를 캡처하며 그 내용은 변경할 수 없습니다. 사용자가 백업을 만든 시점의 상태로 파일을 복원할 수 있도록 파일 공간에 백업 버전을 마운트하십시오. 백업 볼륨의 내용을 사용자가 사용할 수 있게 만들기를 참조하십시오.

### 한 번에 여러 볼륨 백업

vos backupsys 명령을 사용하면 한 번에 여러 읽기/쓰기 볼륨의 백업 버전이 작성됩니다. 이 명령은 AFS 백업 시스템을 사용하여 테이프로의 대규모의 백업을 계획할 때 유용합니다.

VLDB에 나열된 모든 읽기/쓰기 볼륨을 클론하려면 모든 명령 옵션을 생략하십시오. 그렇지 않은 경우 다양한 볼륨 그룹을 클론하도록 명령 옵션을 조합하십시오. 옵션은 볼륨을 선택할 때 두 가지 기본적인 기준 중 하나를 사용합니다. 기준에는 위치(-server 및 -partition 인수) 또는 볼륨 이름에서 지정된 문자 스트링 집합 중 하나가 존재하는지 여부(-prefix, -exclude 및 -xprefix 옵션)가 있습니다.

하나의 파일 서버 시스템에 위치하는 볼륨만 클론하려면 -server 인수를 포함시키십시오. 하나의 파티션에 위치하는 볼륨만 클론하려면 -server 및 -partition 인수를 조합하여 사용하십시오. -partition 인수는 모든 파일 서버 시스템의 지정된 파티션에 위치하는 볼륨을 클론하는데도 단독으로 사용할 수 있습니다. 이들 인수는 그 이름에 기반하여 볼륨을 선택하는 인수와 함께 사용할 수 있습니다.

이름에 포함된 문자 스트링에 기반하여 볼륨을 선택하려면 지정된 방식으로 -prefix, -exclude 및 -xprefix 옵션을 조합하여 사용하십시오( -server 및 -partition 인수 사용 여부에 관계 없음).

- 그 이름에 지정된 문자 스트링 집합 중 하나가 들어 있는 모든 읽기/쓰기 볼륨을 지정된 위치에 클론하려면(예를 들어 user.에서 시작하거나 문자 스트링 afs를 포함) -prefix 인수를 사용하거나 -xprefix 및 -exclude 옵션을 조합해서 사용하십시오.
- 그 이름에 지정된 문자 스트링 집합 중 하나가 들어 있는 볼륨을 제외하고 모든 읽기/쓰기 볼륨을 지정된 위치에 클론하려면 -xprefix 인수를 사용하거나 -prefix 및 -exclude 옵션을 조합해서 사용하십시오.
- 그 이름에 지정된 문자 스트링 집합 중 하나가 들어 있는 볼륨을 제외하고 다른 문자 스트링 집합 중 하나가 들어 있는 모든 읽기/쓰기 볼륨을 지정된 위치에 복제하려면 -prefix 및 -xprefix 인수를 조합해서 사용하십시오. 이 명령은 -prefix 인수에 해당하는 모든 볼륨 목록을 작성한 다음 -xprefix 인수에 해당하는 볼륨 목록에서 해당 볼륨을 제거합니다. 효과적인 결과를 얻기 위해 -xprefix 인수에서 지정한 문자 스트링은 -prefix 인수에서 지정한 볼륨의 서브세트를 지정해야 합니다.

  -exclude 플래그를 -prefix 및 -xprefix 인수와 조합해서 사용하면 명령은 -prefix 인수에 해당하지 않는 모든 볼륨의 목록을 작성한 다음 이 목록에 -xprefix 인수에 해당하는 볼륨을 추가합니다. -exclude 플래그가 사용되지 않을 때는 -xprefix 인수에서 지정한 문자 스트링이 -prefix 인수에서 지정한 볼륨의 서브세트를 지정하는 경우에만 결과가 효과적이 됩니다.

-prefix 및 -xprefix 인수는 모두 여러 개의 값을 허용하며 볼륨 그룹을 해체하는 데 사용할 수 있습니다. 각 값은 다음의 두 가지 유형 중 하나를 가집니다.

1. 그 이름이 해당 문자열로 시작되는 볼륨에 해당하는 단일 문자 스트링. 모든 문자는 문자 그대로 해석됩니다(즉 마침표와 같이 명령 쉘에서 특수한 의미를 가질 수 잇는 문자는 문자 자체의 의미만 가집니다).
2. 그 이름에 표현식이 들어 있는 볼륨에 해당하는 일반 표현식. 표현식 맨 앞에 캐럿( ^ )을 사용하고 전체 문자열을 작은 따옴표(' ')로 묶으십시오. 일반 표현식을 설명하는 것은 이 참조 페이지 범위를 벗어납니다. UNIX 설명서 페이지에서 regexp(5)를 참고하거나 간단한 소개가 제공되는 볼륨 세트와 볼륨 항목의 정의 및 표시를 참조하십시오. 예를 들어 다음 표현식은 그 이름의 아무 위치에 문자열 aix를 가지는 볼륨에 해당합니다.

          -prefix  '^.*aix'

실제로 볼륨을 클론하지는 않으면서 클론될 볼륨 목록을 표시하려면 -dryrun 플래그를 포함시키십시오. 볼륨을 선택하는 데 사용되는 기준을 요약하는 문장을 표시하려면 -verbose 플래그를 포함시키십시오.

단일 볼륨을 백업하려면 vos backup 명령을 사용하십시오. 이 명령은 단일 볼륨을 찾기 위한 보다 간편한 기술을 제공합니다.

### 백업 볼륨 작성 자동화

대부분의 셀은 매일 관련된 볼륨의 새로운 백업 버전을 작성하는 것이 바람직한 일이라는 것을 알고 있습니다. 백업 조작은 읽기/쓰기 볼륨을 일시적으로 사용 불가능하게 하므로 사용도가 낮을 때 백업 버전을 작성하는 것이 좋습니다.

콘솔에서 vos backupsys 또는 vos backup 명령을 실행하거나 파일 서버 시스템의 BosConfig 파일에 클론 항목을 작성하여 관리자가 백업 조작을 초기화할 필요를 없앨 수 있습니다.

다음 예제 명령은 시스템 fs3.abc.com의 /usr/afs/local/BosConfig 파일에 backupusers라는 cron 프로세스를 작성합니다. 이 프로세스는 매일 새벽 1시에 실행되어 그 이름이 문자열 user.로 시작하는 모든 볼륨의 백업 버전을 셀에 작성합니다. -localauth 플래그를 사용하면 프로세스는 인증을 받지 못한 상태에서 권한 있는 vos backupsys 명령을 호출할 수 있게 됩니다. -cmd 인수는 BOS 서버(로컬 수퍼유저 루트로 실행)에 대한 PATH 환경 변수에 보통 AFS 2진 파일로의 경로가 들어 있지 않으므로 vos 2진 파일에 대한 완전한 경로 이름을 지정한다는 점을 알아 두십시오.

       % bos create fs3.abc.com backupusers cron  \
         -cmd "/usr/afs/bin/vos backupsys  -prefix user -localauth" "1:00"

### 백업 볼륨의 내용을 사용자가 사용할 수 있게 만들기

앞서 설명한 것처럼 백업 볼륨은 백업이 작성되었을 때의 읽기/쓰기 원본의 상태를 보존합니다. 많은 셀은 사용자가 관리자의 도움을 요청하지 않고 마지막 백업이 작성된 후에 실수로 삭제했거나 변경한 데이터를 액세스하고 복원할 수 있도록 백업 볼륨을 마운트하도록 선택합니다. 사용자 볼륨의 백업 버전을 마운트하기 가장 적절한 위치는 사용자의 홈 디렉토리의 하위 디렉토리입니다. 이 디렉토리에 대한 적절한 이름에는 OldFiles와 Backup이 포함됩니다. 이 하위 디렉토리는 백업이 작성되었을 때의 형태 그대로 사용자 자신의 홈 디렉토리와 같은 모양을 가지며 모든 파일과 디렉토리가 동일한 상대적 위치에 있습니다.

사용자를 위한 백업 볼륨을 작성하여 마운트하는 경우 사용자에게 백업 볼륨이 작성되었음을 알리십시오. AFS 사용자 안내서에서는 사용자가 백업 볼륨을 사용할 수 있게 하는지 여부가 선택적이므로 백업 볼륨을 언급하지 않습니다. 새 백업을 생성하는 빈도를 사용자에게 알려서 복구할 수 있는 볼륨을 알 수 있게 하십시오. 백업 볼륨의 데이터는 변경될 수 없다는 점을 상기시켜 표준 UNIX cp 명령을 사용하여 홈 볼륨으로 그 데이터를 복사하고 거기에서 수정할 수 있게 하십시오. 백업 볼륨에 데이터가 읽기/쓰기 볼륨 할당량에 포함되지 않는다는 점을 다시 한번 알려 주십시오.

### 백업 볼륨을 작성 및 마운트하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 볼륨을 마운트하려는 디렉토리의 ACL에 대해 insert(i) 및 administer (a) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. vos backup 명령을 실행하여 읽기/쓰기 원본 볼륨의 백업 버전을 작성하십시오. 표시되는 메시지는 백업 조작의 성공을 확인해 줍니다.

          % vos backup <volume name or ID>
          Created backup volume for volume name or ID

   여기서

   backup
     전체를 입력해야 합니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 백업할 읽기/쓰기 볼륨을 식별합니다. 백업 볼륨은 .backup 확장자를 추가한 동일한 이름을 가집니다. 또한 자체의 볼륨 ID 번호를 가집니다.
4. (선택적) fs mkmount 명령을 실행하여 백업 볼륨을 마운트하십시오. 이 단계가 선택적이지만 캐쉬 관리 프로그램은 볼륨이 마운트되지 않으면 볼륨의 내용을 액세스할 수 없다는 점을 알아 두십시오.

          % fs mkmount <directory> <volume name>.backup

   여기서

   mk
     허용되는 mkmount의 가장 짧은 축약형입니다.

   directory
     작성할 마운트 포인트를 명명합니다. 미리 동일한 이름을 가진 파일이나 디렉토리를 작성하지 마십시오. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다. 사용자 볼륨의 백업 버전의 경우 일반적인 위치는 사용자의 홈 디렉토리입니다.

   volume name.backup
     백업 볼륨의 전체 이름입니다.
5. (선택적) fs lsmount 명령을 실행하여 마운트 포인트가 올바른 볼륨을 참조하는지 확인하십시오. 마운트 포인트를 표시하려면에 나타난 지시를 따르십시오.

          % fs lsmount <directory>

### 한 번에 여러 백업 볼륨을 작성하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos backupsys 명령을 실행하여 동일한 접두어나 사이트를 공유하는 모든 읽기/쓰기 볼륨의 백업 버전을 작성하십시오. 세 가지 인수를 조합해서 사용할 때의 결과는 한 번에 여러 볼륨 백업에서 설명합니다.

          % vos backupsys [-prefix <common prefix on volume(s)>+]   \
               [-server <machine name>]
       [-partition <partition name>]  \
               [-exclude]   [-xprefix <negative prefix on volume(s)>+]
               [-dryrun]  [-verbose]

   여기서

   backups
     허용되는 backupsys의 가장 짧은 축약형입니다.

   -prefix
     임의의 길이를 가진 하나 이상의 단순 문자 스트링이나 볼륨 표현식을 지정합니다. 그 이름에 해당 문자열이 들어 있는 볼륨은 클론될 볼륨의 목록에 추가됩니다. 적절한 경우 필드 분리자(예: 마침표)를 포함시키십시오. 이 인수는 -server, -partition, -exclude 및 -xprefix 옵션을 임의로 조합하여 함께 사용할 수 있습니다.

   -server
     백업할 볼륨을 저장하는 파일 서버 시스템을 지정합니다. 이 인수는 -prefix, -partition, -exclude 및 -xprefix 옵션을 조합하여 함께 사용할 수 있습니다.

   -partition
     백업하려는 볼륨이 있는 파티션을 지정합니다. 이 인수는 -prefix, -server, -exclude 및 -xprefix 옵션을 조합해서 함께 사용할 수 있습니다.

   -exclude
     -prefix 인수가 설정된 볼륨을 제외한 모든 볼륨이 백업되도록 지정합니다. -prefix 인수를 이 인수와 함께 사용해야 합니다. 또한 -prefix, -server 및 -partition 인수와 조합해서 또는 -prefix 및 -xprefix 인수를 모두 사용해서 사용할 수 있으나 -xprefix 인수만 사용하면 안됩니다.

   -xprefix
     임의의 길이를 가진 하나 이상의 단순 문자 스트링이나 볼륨 표현식을 지정합니다. 그 이름에 해당 문자열이 들어 있지 않은 볼륨이 클론될 볼륨의 목록에 추가됩니다. -prefix, -server 및 -partition 인수와 함께 조합해서 사용할 수 있으며 -prefix와 -exclude 옵션을 함께 사용해야 하지만 -exclude 플래그만 단독으로 포함시킬 수는 없습니다.

   -dryrun
     실제로 볼륨을 클론하지는 않으면서 클론될 볼륨 목록을 표준 출력 스트림에 표시합니다.

   -verbose
     -dryrun 플래그와 함께 사용되는 경우 볼륨을 선택하는 데 사용되는 기준을 요약하는 문장을 표준 출력 스트림에 표시합니다. 이 플래그와 함께 사용되지 않으면 각 볼륨에 대한 클로닝 조작을 추적합니다.

## 볼륨 마운트

마운트 포인트는 볼륨 마운트에 대하여에서 설명하는 것처럼 AFS 파일 공간에서 AFS 볼륨의 내용을 볼 수 있고 액세스할 수 있게 해 줍니다. 이 절에서는 캐쉬 관리 프로그램이 파일 공간을 지나갈 때 마운트 포인트를 처리하는 방법을 좀 더 자세히 설명합니다. 또한 세 가지 유형의 마운트 포인트, 그 목적 및 이들 유형을 구별하는 방법을 설명하고 마운트 포인트를 작성, 제거 및 검토하는 지침을 제공합니다.

### 마운트 포인트 통과 규칙

캐쉬 관리 프로그램은 AFS 파일을 통과하여 마운트 포인트를 만났을 때 다음의 세 가지 기본 규칙을 준수합니다.

- 규칙 1: 지정될 때 백업 및 읽기 전용 볼륨 액세스

  캐쉬 관리 프로그램이 .readonly 또는 .backup 확장자를 사용하여 볼륨을 지정하는 마운트 포인트를 만날 때 해당 유형의 볼륨만 액세스합니다. 마운트 포인트에 .backup 또는 .readonly 확장자가 없으면 캐쉬 관리 프로그램은 규칙 2와 3을 사용합니다.

  예를 들어 캐쉬 관리 프로그램은 마운트 포인트가 백업 버전을 명명하는 경우 볼륨의 읽기/쓰기 버전을 절대로 액세스하지 않습니다. 지정된 버전을 액세스할 수 없는 경우 캐쉬 관리 프로그램은 오류를 보고합니다.

- 규칙 2: 가능할 때 읽기 전용 경로를 따라가기

  마운트 포인트가 읽기 전용 볼륨에 위치하고 참조하는 볼륨이 복제되면 캐쉬 관리 프로그램은 볼륨의 읽기 전용 사본을 액세스하려고 합니다. 참조된 볼륨이 복제되지 않으면 캐쉬 관리 프로그램은 읽기/쓰기 사본을 액세스합니다. 따라서 캐쉬 관리 프로그램은 파일 공간을 통한 읽기 전용 경로를 선호하여 가능할 때 읽기 전용 볼륨을 액세스합니다.

  캐쉬 관리 프로그램은 root.afs 볼륨의 읽기 전용 사본이 있는 경우 이 사본을 항상 액세스하므로 처음에는 읽기 전용 경로에서 시작합니다. 볼륨은 셀의 AFS 파일 공간의 루트(일반적으로 /afs라고 명명됨)에 마운트됩니다. 즉 root.afs 볼륨이 복제되면 캐쉬 관리 프로그램은 읽기/쓰기 사본이 아닌 읽기 전용 사본을 액세스하려고 합니다. 이 규칙은 연속되는 각 볼륨이 복제되는 한 캐쉬 관리 프로그램이 읽기 전용 경로를 계속 따라가게 합니다. 이것은 캐쉬 관리 프로그램이 AFS 파일 공간 아래에 마운트된 복제 복륨을 액세스하기 위해 root.afs 및 root.cell 볼륨이 복제되어야 함을 의미합니다. 볼륨은 일반적으로 각각 /afs 및 /afs/cellname 디렉토리에 마운트됩니다.

- 규칙 3: 읽기/쓰기 경로에만 위치

  마운트 포인트가 읽기/쓰기 볼륨에 위치하고 볼륨 이름에 .readonly 또는 .backup 확장자가 없는 경우 캐쉬 관리 프로그램은 볼륨의 읽기/쓰기 버전만 액세스하려고 합니다. 이 액세스 시도는 읽기 전용 버전을 액세스할 수 있는 경우에도 읽기/쓰기 버전을 액세스할 수 없는 경우 오류를 발생하면서 실패합니다. 이 상황에서 캐쉬 관리 프로그램은 읽기/쓰기 경로에 위치하며 마운트 포인트가 .readonly 확장자를 사용하여 볼륨을 명시적으로 명명하지 않는 한 읽기 전용 경로로 다시 되돌아갈 수 없습니다(셀 방식의 마운트 포인트는 다음에서 설명하는 것처럼 이 규칙의 중요한 예외 상황이 됩니다).

### 세 가지 유형의 마운트 포인트

AFS는 캐쉬 관리 프로그램에서 처리하는 방식으로 인해 각각이 다른 목적에 적합한 세 가지 유형의 마운트 포인트를 사용합니다.

- 캐쉬 관리 프로그램은 일반 마운트 포인트를 통과할 때 앞서 설명한 세 가지 마운트 포인트 통과 규칙을 모두 준수합니다.

  AFS는 파일 공간의 대다수의 마운트 포인트가 일반 마운트 포인트일 때 최상으로 수행됩니다. 왜냐하면 마운트 포인트 통과 규칙은 복제 및 비복제 볼륨의 사용을 가장 효율적으로 만들어주기 때문입니다. 복제된 볼륨의 읽기 전용 사본이 여러 개 있을 확률이 있으므로 캐쉬 관리 프로그램이 단일 읽기/쓰기 버전을 액세스하는 것보다 읽기 전용 사본 중 하나를 액세스하는 것이 더 쉬운 것으로 생각되며 두 번째 규칙은 이러한 경향을 유도합니다. 볼륨이 복제되지 않은 경우 세 번째 규칙은 사용할 수 있는 읽기/쓰기 볼륨 유형이 하나만 있을 때 이 읽기/쓰기 볼륨을 여전히 액세스할 수 있음을 의미합니다. 즉, 일반 마운트 포인트는 강제로 캐쉬 관리 프로그램이 읽기 전용 볼륨(명시적으로는 "읽기 전용 마운트 포인트"이 아님)을 항상 액세스하게 하지 않습니다.

  일반 마운트 포인트를 작성하려면 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면에서 설명하는 것처럼 fs mkmount 명령을 사용하십시오.

  주: | 캐쉬 관리 프로그램이 일반 마운트 포인트에 의해 명명된 복제 볼륨의 읽기 전용 버전을 액세스할 수 있게 하려면 경로 이름에서 그 위에 마운트된 모든 볼륨 역시 복제되어야 합니다. 이것은 캐쉬 관리 프로그램이 목표 볼륨으로의 읽기 전용 경로에만 계속 위치할 수 있는 유일한 방법입니다.

- 캐쉬 관리 프로그램은 읽기/쓰기 마운트 포인트를 통과할 때 마운트 포인트에 명명된 볼륨 버전만 액세스하려고 합니다. 볼륨 이름이 기본(읽기/쓰기) 양식으로 .readonly 또는 .backup 확장자를 가지지 않은 경우 캐쉬 관리 프로그램은 볼륨이 복제된 경우에도 볼륨의 읽기/쓰기 버전을 액세스합니다. 즉 캐쉬 관리 프로그램은 읽기/쓰기 마운트 포인트를 통과할 때 두 번째 마운트 포인트 통과 규칙을 무시하고 파일 공간을 통한 읽기/쓰기 경로로 전환합니다.

  셀의 파일 공간에 하나의 읽기/쓰기 마운트 포인트만 작성하고 이를 사용하여 셀의 root.cell 볼륨을 AFS 파일 공간 루트(일반적으로 /afs/.cellname) 바로 아래에 마운트하는 것이 일반적입니다. 앞서 지적한 것처럼 읽기/쓰기 마운트 포인트 이름 맨 앞에 마침표를 두는 것이 일반적입니다(예: /afs/.abc.com). 이 마침표는 읽기/쓰기 마운트 포인트를 동일한 레벨의 root.cell 볼륨에 대한 일반 마운트 포인트와 구분해 줍니다. 이것은 동일한 볼륨에 대해 두 개의 마운트 포인트를 작성하는 것이 일반적인 유일한 경우에 해당합니다. 이러한 읽기/쓰기 마운트 포인트에 대한 명명 규칙이 제시하는 바람직한 부가 효과는 마운트 포인트가 -a 플래그가 포함되지 않는 한 UNIX ls 명령의 출력에 나타나지 않으므로 이 지점을 사용하지 않는 일반 사용자들은 볼 수 없다는 것입니다.

  파일 공간의 이 지점에 하나의 읽기/쓰기 지점이 있는 경우 캐쉬 관리 프로그램이 파일 공간 맨 위의 읽기/쓰기 경로를 따라가게 되므로 필요할 때 모든 볼륨의 읽기/쓰기 버전을 액세스할 수 있게 됩니다. 동시에 root.cell 볼륨에 대한 일반 마운트 포인트는 대부분의 경우에 캐쉬 관리 프로그램이 읽기 전용 경로를 따라가게 합니다.

  읽기 전용 또는 백업 볼륨에 대해 하나의 읽기/쓰기 마운트 포인트를 사용하는 것은 가능하지만 반드시 그렇게 할 필요는 없습니다. 첫 번째 마운트 포인트 통과 규칙에서는 일반 마운트 포인트의 볼륨 이름이 .readonly 또는 .backup 확장자를 가지는 경우 캐쉬 관리 프로그램이 이들 볼륨을 액세스하도록 지정하고 있습니다.

  읽기/쓰기 마운트 포인트를 작성하려면 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면에서 설명하는 것처럼 fs mkmount 명령에서 -rw 플래그를 사용하십시오.

- 캐쉬 관리 프로그램은 셀 방식 마운트 포인트를 통과할 때 일반적으로 외부 셀에 해당하는 지정된 셀에 있는 지정된 볼륨을 액세스합니다(마운트 포인트가 볼륨과 함께 셀을 명명하지 않는 경우 캐쉬 관리 프로그램은 마운트 포인트가 위치하는 셀에 있는 볼륨을 액세스합니다). 일반 셀 방식의 마운트 포인트를 통과할 때 캐쉬 관리 프로그램은 세 번째 마운트 포인트 통과 규칙을 무시합니다. 대신 마운트 포인트가 있는 볼륨이 읽기/쓰기 볼륨인 경우에도 볼륨이 복제되었으면 읽기 전용 버전을 액세스합니다.

  읽기/쓰기 경로를 통과하면 외부 셀의 서버 시스템에 불필요한 부하가 부과되므로 읽기/쓰기 셀 방식의 마운트 포인트를 작성하여 이 동작을 무시하는 것은 바람직하지 않습니다. 파일 서버는 읽기 전용 볼륨에 필요한 단일 콜백 대신 읽기/쓰기 볼륨으로부터 페치된 각 파일에 대해 콜백을 실행해야 합니다. 두 경우 모두 셀 자체의 관리자는 복제된 볼륨의 읽기/쓰기 버전을 액세스해야 합니다.

  셀의 파일 공간의 두 번째 레벨에만 셀 방식의 마운트 포인트를 작성하고 이를 사용하여 AFS 파일 공간 루트(일반적으로 /afs/foreign_cellname) 바로 아래에 외부 셀의 root.cell 볼륨을 마운트하는 것이 일반적입니다. 마운트 포인트를 사용하면 데이터베이스 서버 시스템 정보 유지에서 설명하는 것처럼 로컬 사용자들은 외부 셀의 파일 공간을 액세스할 수 있으며 볼륨의 루트 디렉토리의 ACL에 대해 필요한 권한이 있으며 로컬 클라이언트 시스템의 /usr/vice/etc/CellServDB 파일에 외부 셀에 대한 항목이 있다고 가정합니다.

  파일 공간의 다른 레벨에 셀 방식의 마운트 포인트를 작성하고 root.cell 볼륨 이외의 외부 볼륨을 마운트하는 것은 별로 적절하지 않습니다. 캐쉬 관리 프로그램은 경로 이름의 다양한 지점에 있는 셀 간을 전환하는 경우 사용자에게 혼란을 줄 수 있습니다.

  일반 셀 방식의 마운트 포인트를 작성하려면 셀 방식 마운트 포인트를 작성하려면에서 설명하는 것처럼 -cell 인수를 사용하여 셀 이름을 지정하십시오.

마운트 포인트를 검토하려면 마운트 포인트를 표시하려면에서 설명하는 것처럼 fs lsmount 명령을 사용하십시오. 명령의 출력은 구분 표기를 사용하여 일반, 읽기/쓰기 및 셀 방식의 마운트 포인트를 식별합니다. 마운트 포인트를 제거하려면 마운트 포인트를 제거하려면에서 설명하는 것처럼 fs rmmount 명령을 사용하십시오.

### 외부 셀에 마운트 포인트 작성

외부 셀의 파일 공간에 마운트 포인트를 작성하는 것은(로컬 셀에 외부 볼륨을 마운트하는 것과는 반대임) 로컬 파일 공간에 마운트 포인트를 작성하는 것과 동일합니다. 차이점은 fs mkmount 명령의 directory 인수가 로컬 셀이 아닌 외부 셀의 경로 이름을 지정한다는 것과 마운트 포인트를 작성하는 외부 디렉토리의 ACL에 대해 필요한 권한이 있어야 한다는 것입니다. fs mkmount 명령의 -cell 인수는 항상 마운트 포인트를 작성할 셀이 아니라 볼륨이 위치하는 셀을 지정합니다.

### 마운트 포인트를 표시하려면

1. fs lsmount 명령을 실행하십시오.

          % fs lsmount <directory>

   여기서

   ls
     허용되는 lsmount의 가장 짧은 축약형입니다.

   directory
     표시할 마운트 포인트를 명명합니다.

지정된 디렉토리가 마운트 포인트이면 출력은 다음 양식을 가집니다.

       'directory' is a mount point for volume 'volume name'

일반 마운트 포인트의 경우 abc.com 셀의 클라이언트 시스템에 대해 실행된 다음 예제 명령에서처럼 숫자 기호(`#`)가 volume name 문자열 앞에 사용됩니다.

       % fs lsmount /afs/abc.com/usr/terry
       '/afs/abc.com/usr/terry' is a mount point for volume '#user.terry'

읽기/쓰기 마운트 포인트의 경우 abc.com 셀의 클라이언트 시스템에 대해 실행된 다음 예제 명령에서처럼 퍼센트 기호(`%`)가 volume name 문자열 앞에 사용됩니다. 셀의 관리자는 읽기/쓰기 마운트 포인트의 이름 앞에 마침표를 사용하는 규칙을 따라 왔습니다.

       % fs lsmount /afs/.abc.com
       '/afs/.abc.com' is a mount point for volume '%root.cell'

셀 방식의 마운트 포인트의 경우 abc.com 셀의 클라이언트 시스템에 대해 실행된 다음 예제 명령에서처럼 셀 이름과 콜론(`:`)이 숫자 다음에 나오고 volume name 문자열 앞에 사용됩니다.

        % fs lsmount /afs/ghi.gov
       '/afs/ghi.gov' is a mount point for volume '#ghi.gov:root.cell'

마운트 포인트로의 기호 연결의 경우 출력은 abc.com 셀의 클라이언트 시스템에 대해 실행된 다음 예제 명령에서 볼 수 있는 양식을 가집니다.

       % fs lsmount /afs/abc
       '/afs/abc' is a symbolic link, leading to a mount point for volume '#root.cell'

디렉토리가 마운트 포인트가 아니고 AFS에 있지 않으면 출력은 다음과 같이 나타납니다.

       'directory' is not a mount point.

출력이 뒤죽박죽되는 경우 마운트 포인트가 로컬 캐쉬에서 손상된 것일 수 있습니다. 하나 이상의 마운트 포인트 플러쉬하기에서 설명하는 것처럼 fs flushmount 명령을 사용하십시오. 이 명령은 강제로 캐쉬 관리 프로그램이 마운트 포인트를 다시 페치하게 합니다.

### 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면

1. 마운트 포인트를 배치하려는 디렉토리의 ACL에 대해 i(insert) 및 a(administer) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

2. fs mkmount 명령을 실행하여 마운트 포인트를 작성하십시오. 읽기/쓰기 마운트 포인트를 작성하는 경우 -rw 플래그를 포함시키십시오.

          % fs mkmount <directory> <volume name>  [-rw]

   여기서

   mk
     허용되는 mkmount의 가장 짧은 축약형입니다.

   directory
     작성할 마운트 포인트를 명명합니다. 동일한 이름을 가진 파일이나 디렉토리는 존재하면 안됩니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다.

     마운트 포인트에 대한 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에 새 마운트 포인트를 작성하려고 할 때 발생하는 장애를 피하십시오. 일반적으로 경로 이름의 두 번째 레벨의 셀 이름 앞에 마침표를 사용하여 읽기/쓰기 경로를 나타내십시오(예를 들어 /afs/.abc.com). 파일 경로를 통한 읽기/쓰기 및 읽기 전용 경로의 개념에 대해 좀더 살펴 보려면 마운트 포인트 통과 규칙을 참조하십시오.

   volume name
     .backup 또는 .readonly 확장자를 백업 또는 읽기 전용 볼륨에 포함시켜 볼륨의 전체 이름을 지정합니다.

   -rw
     읽기/쓰기 마운트 포인트를 작성합니다.

### 셀 방식 마운트 포인트를 작성하려면

1. 마운트 포인트를 배치하려는 디렉토리의 ACL에 대해 i(insert) 및 a(administer) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

2. 파일 공간의 두 번째 레벨에 하나 이상의 외부 셀의 root.cell 볼륨을 마운트하며 셀의 root.afs 볼륨이 복제된 경우 ACL이 사용자에게 i 및 a 권한을 부여한 디렉토리에 root.afs 볼륨의 읽기/쓰기 버전에 대한 임시 마운트 포인트를 작성해야 합니다. 다음 명령은 셀의 /afs/.cellname 디렉토리에 new_cells라는 마운트 포인트를 작성합니다(셀의 읽기/쓰기 경로에 대한 진입점).

   cellname을 셀 이름으로 대체하십시오.

          % cd /afs/.cellname

          % fs  mkmount  new_cells  root.afs

          % cd  new_cells

3. fs mkmount 명령을 -cell 인수와 함께 실행하여 셀 방식의 마운트 포인트를 작성하십시오. 필요한 만큼 각 셀 방식의 마운트 포인트에 대해 이 명령을 반복하십시오.

          % fs mkmount <directory> <volume name> -cell <cell name>

   여기서

   mk
     허용되는 mkmount의 가장 짧은 축약형입니다.

   directory
     작성할 마운트 포인트를 명명합니다. 동일한 이름을 가진 파일이나 디렉토리는 존재하면 안됩니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다. 외부 셀의 root.cell 볼륨을 마운트하는 경우 이 인수의 표준 값은 셀의 완전한 인터넷 도메인 이름입니다.

   volume name
     볼륨의 전체 이름을 지정하는 데 보통 셀 방식의 마운트 포인트의 경우 root.cell이 됩니다.

   -cell
     볼륨이 위치하는 셀의 완전한 인터넷 도메인 이름을 지정합니다.
4. 단계 2의 지침을 따른 경우 vos release 명령을 실행하여 root.afs 볼륨의 새 버전을 읽기 전용 사이트로 릴리스하십시오(이 명령을 사용하려면 사용자가 셀의 /usr/afs/etc/UserList 파일에 나열되어 있어야 합니다. 필요하면 UserList 파일에서 사용자를 표시하려면에서 설명하는 것처럼 bos listusers 명령을 실행하여 확인하십시오).

   또한 fs checkvolumes 명령을 실행하여 강제로 캐쉬 관리 프로그램이 root.afs 볼륨의 새 복사본을 액세스하게 하십시오. 원하는 경우 또한 /afs/.cellname 디렉토리로부터 new_cells 마운트 포인트를 제거할 수도 있습니다.

          % vos release root.afs

          %  fs checkvolumes

          % cd /afs/.cellname

          % fs rmmount new_cells

   사용자가 새로 마운트된 외부 셀을 액세스하게 하려면 각 클라이언트 시스템의 로컬 /usr/vice/etc/CellServDB 파일에 이에 대한 항목을 작성하고 시스템을 재부트하거나 fs newcell 명령을 사용하여 이 항목을 직접 커널 메모리에 삽입해야 합니다. 데이터베이스 서버 시스템 정보 유지의 지침을 따르십시오.

### 마운트 포인트를 제거하려면

1. 마운트 포인트를 제거하려는 디렉토리의 ACL에 대해 d(delete) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

2. fs rmmount 명령을 실행하여 마운트 포인트를 제거하십시오. 해당 볼륨이 여전히 존재하면 이것이 유일한 마운트 포인트인 경우 그 내용을 액세스할 수 없습니다.

          % fs rmmount <directory>

   여기서

   rm
     허용되는 rmmount의 가장 짧은 축약형입니다.

   directory
     제거할 마운트 포인트를 명명합니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다.

     마운트 포인트에 대한 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 마운트 포인트를 삭제하려고 할 때 발생하는 장애를 피하십시오. 일반적으로 경로 이름의 두 번째 레벨의 셀 이름 앞에 마침표를 사용하여 읽기/쓰기 경로를 나타내십시오(예를 들어 /afs/.abc.com). 파일 경로를 통한 읽기/쓰기 및 읽기 전용 경로의 개념에 대해 좀더 살펴 보려면 마운트 포인트 통과 규칙을 참조하십시오.

## 볼륨 정보 표시

이 절에서는 볼륨에 대한 정보를 표시하는 방법을 설명합니다. 볼륨의 이름이나 볼륨의 ID 번호를 아는 경우 VLDB 항목, 볼륨 헤더 또는 둘다를 표시하기 위한 명령이 있습니다. 다른 명령은 지정된 파일이나 디렉토리를 포함하는 볼륨의 이름이나 위치를 표시합니다.

볼륨의 할당량을 표시하는 것에 대한 지침을 보려면 볼륨 할당량과 현재 크기 설정 및 표시를 참조하십시오.

### VLDB 항목 표시

vos listvldb 명령은 사용자가 제공하는 인수 조합에 따라 볼륨에 대한 VLDB 항목을 표시합니다. 다음은 가장 가능성이 높은 경우부터 가장 낮은 경우까지를 설명한 것입니다.

- VLDB의 모든 항목을 표시하려면 인수를 제공하지 마십시오. 항목의 수에 따라 출력을 생성하는 데 시간이 오래 소요될 수 있습니다.
- 특정 파일 서버 시스템을 볼륨의 사이트로 언급하는 모든 VLDB 항목을 표시하려면 -server 인수를 사용하여 시스템의 이름을 지정하십시오.
- 임의의 파일 서버 시스템의 특정 파티션을 볼륨의 사이트로 언급하는 모든 VLDB 항목을 표시하려면 -partition 인수를 사용하여 파티션 이름을 지정하십시오.
- 특정 파일 서버 시스템의 특정 파티션을 볼륨의 사이트로 언급하는 모든 VLDB 항목을 표시하려면 -server 및 -partition 인수를 함께 사용하십시오.
- 단일 VLDB 항목을 표시하려면 -name 인수를 사용하여 볼륨 이름이나 ID 번호를 지정하십시오.
- 잠겨져 있는 VLDB 항목이 있는 볼륨에 대해서만 VLDB 항목을 표시하려면 앞서 언급된 사이트 정의와 함께 -locked 플래그를 사용하십시오.

### VLDB 항목을 표시하려면

1. vos listvldb 명령을 실행하십시오.

          % vos listvldb  [-name <volume name or ID>] [-server <machine name>] \
                         [-partition <partition name>] [-locked]

   여기서

   listvl
     허용되는 listvldb의 가장 짧은 축약형입니다.

   -name
     완전한 이름이나 볼륨 ID 번호로 하나의 볼륨을 식별합니다. 이 인수를 -server 또는 -partition 인수와 함께 사용하지 마십시오.

   -server
     파일 서버 시스템을 지정합니다. 원하는 경우 이 인수를 -partition 인수와 함께 사용해도 좋지만 -name 인수와 함께 사용하지는 않도록 하십시오.

   -partition
     파티션을 지정합니다. 원하는 경우 이 인수를 -server 인수와 함께 사용해도 좋지만 -name 인수와 함께 사용하지는 않도록 하십시오.

   -locked
     잠겨진 VLDB 항목만 표시합니다. 이 플래그를 다른 옵션과 조합해서 사용할 수 있습니다.

각 볼륨에 대한 VLDB 항목은 다음 정보를 포함합니다.

- 기본 (읽기/쓰기) 볼륨 이름. 읽기 전용 및 백업 버전은 각각 .readonly 및 .backup 확장자를 가진 동일한 이름을 가집니다.
- 읽기/쓰기에 경우 `RWrite`, 읽기 전용의 경우 `ROnly`, 백업의 경우 `Backup` 및 ReleaseClone의 경우 `RClone`이라는 필드에서 이미 존재하는 볼륨의 버전에 할당된 볼륨 ID 번호(필드가 나타나지 않으면 해당 버전의 볼륨이 존재하지 않는 것입니다). `RClone` 필드의 모양은 보통 릴리스 조작이 성공적으로 완료되지 못했음을 나타냅니다. `Old release` 및 `New release` 플래그는 다음에서 설명하는 하나 이상의 사이트 정의 행에도 나타납니다.
- 볼륨의 읽기/쓰기 또는 읽기 전용 사본이 있는 사이트의 수로 문자열 `number of sites ->` 다음에 나옵니다.
- 볼륨의 읽기/쓰기 또는 읽기 전용 사본이 있는 각 사이트에 대한 행으로 파일 서버 시스템, 파티션 및 볼륨 유형을 지정합니다(읽기/쓰기의 경우 `RW` 또는 읽기 전용의 경우 `RO`). 백업 버전이 있는 경우 이 버전은 읽기/쓰기 사이트를 공유하는 것으로 인식됩니다. 사이트 정의에는 다음과 같은 몇몇 플래그가 사용될 수 있습니다.

  `Not released`
    vos addsite 명령이 읽기 전용 사이트를 정의하는 데 사용된 이후에 vos release 명령이 실행되지 않았음을 나타냅니다.

  `Old release`
    vos release 명령이 성공적으로 완료되지 못했으며 이 사이트에 불필요한 이전 버전이 남이 있음을 나타냅니다.

  `New release`
    vos release 명령이 성공적으로 완료되지 못했으나 이 사이트가 올바른 새 볼륨 버전을 수신했음을 나타냅니다.
- VLDB 항목이 잠겨 있으면 문자열 `Volume is currently LOCKED`가 나타납니다.

`New release` 및 `Old release` 플래그에 대한 자세한 설명을 보려면 볼륨 복제(읽기 전용 볼륨 작성)를 참조하십시오.

이 명령의 예와 단일 볼륨에 대한 출력 결과는 다음과 같습니다.

       % vos listvldb user.terry
       user.terry
           RWrite: 50489902    Backup: 50489904
           number of sites -> 1
              server fs3.abc.com partition /vicepc RW Site

### 볼륨 헤더 표시

vos listvol 명령은 파일 서버 시스템의 하나 또는 전체 파티션의 모든 볼륨에 대한 볼륨 헤더를 표시합니다. vos 명령 인터프리터는 지정된 시스템의 볼륨 서버로부터 정보를 얻습니다. 볼륨 헤더를 표시하려면의 지침에 따라 -fast, -long 또는 -extended 플래그 중 하나를 포함시켜 표시되는 정보의 양을 제어할 수 있습니다.

단일 볼륨의 헤더만 표시하려면 볼륨의 VLDB 항목 및 볼륨 헤더 표시에서 설명하는 것처럼 vos examine 명령을 실행하십시오.

### 볼륨 헤더를 표시하려면

1. vos listvol 명령을 실행하십시오.

          % vos listvol <machine name> [<partition name>] [-fast] [-long] [-extended]

   여기서

   listvo
     허용되는 listvol의 가장 짧은 축약형입니다.

   machine name
     볼륨 헤더를 표시할 파일 서버 시스템을 명명합니다. 이 인수를 단독으로 또는 partition name 인수와 함께 사용하십시오.

   partition name
     machine name 인수에 의해 명명되는 파일 서버 시스템의 하나의 파티션을 명명합니다. machine name 인수는 반드시 함께 사용되어야 합니다.

   -fast
     관련된 볼륨의 볼륨 ID 번호만 표시합니다. 이 플래그를 -long 또는 -extended 플래그와 함께 사용하지 마십시오.

   -long
     각 볼륨에 대한 보다 상세한 정보를 표시합니다. 이 플래그를 -fast 또는 -extended 플래그와 함께 사용하지 마십시오.

   -extended
     -long 플래그에 의해 표시되는 모든 정보와 볼륨의 파일에 대한 읽기 및 쓰기에 관한 통계 테이블을 표시합니다. 이 플래그를 -fast 또는 -long 플래그와 함께 사용하지 마십시오.

출력은 볼륨 이름의 알파벳 순서대로 정렬되며 기본적으로 각 볼륨에 대해 단일 행으로 다음 정보가 제공됩니다.

- 이름
- 볼륨 ID 번호
- 유형(플래그는 읽기/쓰기의 경우 `RW`, 읽기 전용의 경우 `RO`, 백업의 경우 `BK`임)
- 킬로바이트 단위의 크기(`1024`는 1BM와 같음)
- -extended 플래그가 제공된 경우 볼륨의 파일 수
- 파일 서버 시스템의 상태로 다음 중 하나가 될 수 있습니다.

  `On-line`
    캐쉬 관리 프로그램에서 해당 볼륨을 완전히 액세스할 수 있습니다.

  `Off-line`
    캐쉬 관리 프로그램에서 볼륨을 액세스할 수 없으나 손상된 것처럼 보이지는 않습니다. 이 상태는 예를 들어 볼륨이 덤프 중일 때 나타납니다.

  `Off-line**needs salvage**`
    이 볼륨은 손상된 것처럼 보이므로 캐쉬 관리 프로그램에서 액세스할 수 없습니다. bos salvage 또는 salvager 명령을 사용하여 손상된 부분을 수정하십시오.

다음 메시지가 이전에 나열된 정보 대신 나타나면 이것은 클론이 작성되고 있는 상황과 같은 이유로 인해 캐쉬 관리 프로그램이나 vos 명령 인터프리터가 볼륨을 액세스할 수 없음을 나타냅니다.

       **** Volume volume_ID is busy ****

다음 메시지가 이전에 나열된 정보 대신 나타나면 이것은 볼륨이 심각하게 손상된 경우와 같은 상황에서 파일 서버가 볼륨을 접속할 수 없음을 나타냅니다. 파일 서버 시스템의 /usr/afs/logs 디렉토리에 있는 FileLog 및 VolserLog 로그 파일이 추가 정보를 제공할 수 있습니다. bos getlog 명령을 사용하여 이들 로그 파일을 표시하십시오.

       **** Could not attach volume volume_ID ****

(손상되었거나 접속할 수 없는 볼륨을 구조하는 방법에 대해서는 볼륨 구조를 참조하십시오.)

개별 볼륨에 대한 정보는 요약 행으로 각괄호로 묶여서 표시됩니다. 출력의 첫째 행은 목록의 볼륨 수를 지정합니다. 출력의 마지막 행은 다음 예에서처럼 온라인, 오프라인 및 사용중 상태에 있는 볼륨의 수를 요약합니다.

       % vos listvol  fs2.abc.com /vicepb
       Total number of volumes on server fs2.abc.com \
                                           partition /vicepb : 66
       sys                  1969534847 RW       1582 K On-line
       sys.backup           1969535105 BK       1582 K On-line
             .                   .     .         .   .    .
             .                   .     .         .   .    .
       user.pat             1969534536 RW      17518 K On-line
       user.pat.backup      1969534538 BK      17537 K On-line
       Total volumes onLine 66 ; Total volumes offLine 0 ;  Total busy 0

-fast 플래그를 사용한 출력

-fast 플래그를 포함시키면 다음 예에서처럼 숫자 순서 크기대로 정렬되는 각 볼륨의 볼륨 ID 번호만 표시됩니다. 마지막 행(온라인, 오프라인 및 사용중 볼륨의 수 요약)은 생략됩니다.

       % vos listvol fs3.abc.com /vicepa -f
       Total number of volumes on server fs3.abc.com  \
                                           partition /vicepa: 37
       50489902
       50489904
          .
          .
       35970325
       49732810

-long 플래그를 사용한 출력

-long 플래그를 포함시키면 각 볼륨의 출력에는 다음 사항과 함께 기본 목록에 모든 정보가 포함됩니다. 이 목록의 각 항목은 별도의 출력 행에 해당합니다.

- VLDB 또는 볼륨 헤더에 의해 파생된 것이 아니라 명령이 실행될 때 명령 인터프리터에 의해 결정된 대로 볼륨을 저장하는 파일 서버 시스템 및 파티션.
- 다양한 버전의 볼륨, 즉 읽기/쓰기(`RWrite`), 읽기 전용(`ROnly`), 백업(`Backup`) 및 ReleaseClone(`RClone`)과 연관된 볼륨 ID 번호. 이들 중 하나는 볼륨 출력의 첫째 행에 나타나는 볼륨 ID 번호와 일치합니다. `RWrite`, `ROnly` 또는 `Backup` 필드의 값이 `0`이면 해당 유형의 볼륨이 없는 것입니다. 현재 ReleaseClone이 없으면 `RClone` 필드는 나타나지 않습니다.
- 볼륨의 읽기/쓰기 사본에 할당된 최대 공간 할당량으로 `MaxQuota` 필드에 킬로바이트 블록 단위로 표시됩니다.
- `작성` 필드에 나오는 볼륨이 작성될 날짜 및 시간. 볼륨이 backup diskrestore, backup volrestore 또는 vos restore 명령을 통해 복원된 경우 이것은 복원 시간이 됩니다.
- `최종 갱신` 필드에 나오는 볼륨의 내용이 마지막으로 변경된 날짜 및 시간. 읽기 전용 및 백업 볼륨의 경우 이 필드는 `작성` 필드의 시간 소인과 일치합니다.
- 다음의 두 시간 중 두 번째 시간 이후에 발생한 페치 또는 저장 조작을 위해 볼륨을 액세스한 횟수
  - 명령이 실행된 날의 오전 12시
  - 볼륨이 위치를 변경한 마지막 시간

-long 플래그가 포함될 때 출력의 예는 다음과 같습니다.

       % vos listvol fs2.abc.com b -long
       Total number of volumes on server fs2.abc.com
                                           partition /vicepb: 66
             .                   .      .         .   .    .
             .                   .      .         .   .    .
       user.pat             1969534536 RW      17518 K On-line
            fs2.abc.com /vicepb
            RWrite 1969534536 ROnly 0        Backup 1969534538
            MaxQuota      20000 K
            Creation    Mon Jun 12 09:02:25 1989
            Last Update Thu Jan  4 17:39:34 1990
            1573 accesses in the past day (i.e., vnode references)
       user.pat.backup      1969534538 BK      17537 K On-line
            fs2.abc.com /vicepb
            RWrite 1969534536 ROnly 0        Backup 1969534538
            MaxQuota      20000 K
            Creation    Fri Jan  5 06:37:59 1990
            Last Update Fri Jan  5 06:37:59 1990
            0 accesses in the past day (i.e., vnode references)
    	    .               .         .     .       .
    	    .               .         .     .       .
       Total volumes onLine 66 ; Total volumes offLine 0 ; Total busy 0

-extended 플래그를 사용한 출력

-extended 플래그를 포함시키면 각 볼륨의 출력에는 -long 플래그를 사용했을 때 보고된 모든 정보와 다음의 통계 테이블이 포함됩니다.

- `Raw Read/Write Stats` 테이블은 읽기 또는 쓰기를 위해 볼륨을 액세스한 회수를 요약합니다.
- `Writes Affecting Authorship` 테이블에는 지정된 볼륨의 파일 및 디렉토리에 대해 수행된 쓰기 작업에 대한 정보가 포함되어 있습니다.

-extended 플래그가 포함될 때 출력의 예는 다음과 같습니다.

       % vos listvol fs3.abc.com a -extended
       common.bboards   1969535592 RW    23149 K used 9401 files On-line
           fs3.abc.com /vicepa
           RWrite 1969535592 ROnly          0 Backup 1969535594
           MaxQuota      30000 K
           Creation    Mon Mar  8 14:26:05 1999
           Last Update Mon Apr 26 09:20:43 1999
           11533 accesses in the past day (i.e., vnode references)

                             Raw Read/Write Stats
                 |-------------------------------------------|
                 |    Same Network     |    Diff Network     |
                 |----------|----------|----------|----------|
                 |  Total   |   Auth   |   Total  |   Auth   |
                 |----------|----------|----------|----------|
       Reads     |      151 |      151 |     1092 |     1068 |
       Writes    |        3 |        3 |      324 |      324 |
                 |-------------------------------------------|

                          Writes Affecting Authorship
                 |-------------------------------------------|
                 |   File Authorship   | Directory Authorship|
                 |----------|----------|----------|----------|
                 |   Same   |   Diff   |    Same  |   Diff   |
                 |----------|----------|----------|----------|
       0-60 sec  |       92 |        0 |      100 |        4 |
       1-10 min  |        1 |        0 |       14 |        6 |
       10min-1hr |        0 |        0 |       19 |        4 |
       1hr-1day  |        1 |        0 |       13 |        0 |
       1day-1wk  |        1 |        0 |        1 |        0 |
       > 1wk     |        0 |        0 |        0 |        0 |
                 |-------------------------------------------|

### 볼륨의 VLDB 항목 및 볼륨 헤더 표시

vos examine 명령은 단일 볼륨에 대한 VLDB 및 볼륨 헤더의 정보를 표시합니다. 두 원본의 정보가 약간 중복될 수 있으므로 VLDB와 볼륨 헤더를 비교할 수 있습니다.

각 볼륨 버전(읽기/쓰기, 읽기 전용 및 백업)에 대한 볼륨 헤더가 다르므로 표시할 볼륨 버전을 지정할 수 있습니다. .readonly 또는 .backup 확장자를 volume name 또는 ID 인수에 포함시키십시오. VLDB의 정보는 세 가지 버전에서 모두 동일합니다.

### 볼륨의 VLDB 항목 및 볼륨 헤더를 표시하려면

1. vos examine 명령을 실행하십시오.

          % vos examine <volume name or ID>

   여기서

   e
     허용되는 examine의 가장 짧은 축약형입니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 하나의 볼륨을 식별합니다. 읽기/쓰기, 읽기 전용 또는 백업 유형일 수 있습니다. 적절하게 .backup 또는 .readonly 확장자를 사용하십시오.

출력의 맨 위 부분에는 볼륨 헤더를 표시하려면의 지침에서 설명하는 것처럼 -long 플래그와 함께 vos listvol 명령을 사용할 때와 동일한 볼륨 헤더의 정보가 표시됩니다. 볼륨의 읽기 전용 버전을 지정하고 이 버전이 둘 이상의 사이트에 존재하는 경우 출력은 모든 경우를 포함합니다. 출력의 맨 아래 부분에는 VLDB 항목을 표시하려면에서 설명하는 것처럼 vos listvldb 명령을 사용할 때와 동일한 VLDB의 정보가 나열됩니다.

다음은 그 VLDB 항목이 현재 잠겨 있는 볼륨에 대한 예입니다.

       % vos examine user.terry
       user.terry                    536870981 RW   3459 K On-line
           fs3.abc.com /vicepa
           Write 5360870981   ROnly          0  Backup 536870983
           MaxQuota      40000 K
           Creation    Mon Jun 12 15:22:06 1989
           Last Update Fri Jun 16 09:34:35 1989
           5719 accesses in the past day (i.e., vnode references)
           RWrite: 5360870981   Backup: 536870983
           number of sites -> 1
              server fs3.abc.com partition /vicepa RW Site
           Volume is currently LOCKED

### 파일이 들어 있는 볼륨의 이름 또는 위치 표시

이 절은 파일이나 디렉토리를 포함하는 볼륨의 이름, 볼륨 ID 번호 또는 위치를 알아내는 방법을 설명합니다.

또한 볼륨에 대한 정보(예: 볼륨 이름)를 사용하여 관련된 다른 정보(예: 볼륨 위치)를 얻을 수도 있습니다. 다음 목록은 사용자에게 적절한 지침을 알려 줍니다.

- 볼륨의 이름을 사용하여 기존의 모든 버전에 대한 볼륨 ID 번호를 알아 내려면 볼륨의 VLDB 항목 및 볼륨 헤더를 표시하려면에서 설명하는 것처럼 vos examine 명령을 사용하십시오.

  또한 이 명령을 사용하여 그 ID 번호를 제공하여 볼륨의 이름을 알아낼 수도 있습니다.

- 볼륨의 이름이나 ID 번호를 사용하여 그 위치를 알아내려면 VLDB 항목을 표시하려면에서 설명하는 것처럼 vos listvldb 명령을 사용하십시오.

#### 파일이 들어 있는 볼륨의 이름을 표시하려면

1. fs listquota 명령을 실행하십시오.

          % fs listquota [<dir/file path>]

   여기서

   lq
     허용되는 listquota의 별명(그리고 listq는 허용되는 가장 짧은 축약형)입니다.

   dir/file path
     이름을 표시할 볼륨에 있는 디렉토리나 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

다음은 출력의 예입니다.

       % fs listquota /afs/abc.com/usr/terry
       Volume Name     Quota    Used    % Used   Partition
       user.terry      15000    5071       34%         86%

#### 파일이 들어 있는 볼륨의 ID 번호를 표시하려면

1. fs examine 명령을 실행하십시오.

          % fs examine [<dir/file path>]

   여기서

   exa
     허용되는 examine의 가장 짧은 축약형입니다.

   dir/file path
     볼륨 ID를 표시할 볼륨에 있는 디렉토리나 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

다음 예제는 출력이 `vid` 필드에 볼륨 ID 번호를 보고하는 방법을 보여 줍니다.

       % fs examine /afs/abc.com/usr/terry
       Volume status for vid = 50489902 named user.terry
       Current maximum quota is 15000
       Current blocks used are 5073
       The partition has 46383 blocks available out of 333305

주: | 이 명령의 출력에서 파티션 관련 통계가 항상 표준 UNIX df 명령 출력의 해당 값과 일치하는 것은 아닙니다. 이 명령에서 보고한 통계는 캐쉬 관리 프로그램이 5분 간격으로 파티션 정보에 대해 파일 서버를 폴링하므로 생성된 이후에 최대 5분까지 경과될 수 있습니다. 또한 일부 운영 체제에서 df 명령의 파티션 크기 보고에는 이 명령의 계산에는 포함되어 있지 않은 예약된 공간이 포함되므로 약 10%가 더 커질 수 있습니다.

#### 파일이 들어 있는 볼륨의 위치를 표시하려면

1. fs whereis 명령을 실행하여 파일이나 디렉토리가 들어 있는 볼륨을 저장하는 파일 서버 시스템의 이름을 표시하십시오.

          % fs whereis [<dir/file path>]

   여기서

   whe
     허용되는 whereis의 가장 짧은 축약형입니다.

   dir/file path
     위치를 보고할 디렉토리 또는 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

   출력은 다음 예에서처럼 해당 파일을 포함하는 볼륨이 있는 파일 서버 시스템을 표시합니다.

          % fs whereis /afs/abc.com/user/terry
          File /afs/abc.com/usr/terry is on host fs2.abc.com

2. 또한 해당 볼륨이 있는 파티션을 알기 원하는 경우 먼저 fs listquota 명령을 실행하여 볼륨의 이름을 표시하십시오. 자세한 구문을 보려면 파일이 들어 있는 볼륨의 이름을 표시하려면을 참조하십시오.

          % fs listquota [<dir/file path>]

   그런 다음 vos listvldb 명령을 실행하십시오. 이 때 볼륨 이름을 volume name 또는 ID 인수로 제공하십시오. 자세한 구문이나 출력에 대한 설명을 보려면 VLDB 항목을 표시하려면을 참조하십시오.

          % vos listvldb <volume name or ID>

## 볼륨 이동

다음과 같은 세 가지 주요 이유로 인해 볼륨을 이동하게 됩니다.

- 디스크 또는 파일 서버 시스템을 복구하거나 교체하는 동안 다른 파티션이나 시스템에 볼륨을 일시적으로 배치하기 위해.
- 포화 상태의 파티션에 공간을 확보하기 위해. 포화 상태를 나타내는 한 가지 증상은 해당 볼륨이 아직 할당량에 도달하지 않은 경우에도 사용자가 파일을 저장할 수 없는 것입니다. 다음 오류 메시지가 나타나서 이러한 문제점이 발생했음을 확인해 줍니다.

         afs: failed to store file (partition full)

  AFS 성능 모니터 및 감사에서 설명하는 것처럼 scout 또는 afsmonitor 프로그램을 사용하여 AFS 서버 파티션의 여유 공간을 추적할 수 있습니다.

- 파일 서버 시스템은 동일한 크기의 다른 시스템보다 더 많은 볼륨을 포함하거나 자주 사용되는 파일이 많이 들어 있는 볼륨을 가지고 있으므로 과부하 상태가 됩니다.

읽기/쓰기 볼륨을 이동하려면 다음 지침에 따라 vos move 명령을 사용하십시오. 볼륨을 이동하려고 하기 전에 vos 명령 인터프리터는 목적지 파티션에 충분한 여유 공간이 있는지 확인합니다. 공간이 충분하지 않으면 이동 조작을 시도하지 않고 다음 메시지를 출력합니다.

       vos: no space on target partition destination_part to move volume volume

읽기 전용 볼륨을 이동하려면 볼륨을 제거하고 언마운트하려면에서 설명하는 것처럼 vos remove 명령을 실행하여 현재 사이트에서 실제로 볼륨을 제거하십시오. 그런 다음 읽기/쓰기 볼륨을 복제하려면 (읽기 전용 볼륨 작성)에서 설명하는 것처럼 vos addsite 및 vos release 명령을 실행하여 새 사이트를 정의하고 이 사이트에 해당 볼륨을 릴리스하십시오.

백업 볼륨은 읽기/쓰기 원본이 있는 동일한 사이트에 항상 위치하므로 읽기/쓰기 원본을 이동할 때 함께 이동하는 경우를 제외하고는 백업 볼륨을 이동할 수 없습니다. vos move 명령은 사용자가 읽기/쓰기 볼륨을 이동할 때 자동으로 백업 버전을 삭제합니다. 이동 조작이 완료되는 즉시 새로운 사이트에 새 백업 볼륨을 작성하려면 백업 볼륨을 작성 및 마운트하려면에서 설명하는 것처럼 vos backup 명령을 실행하십시오.

### 읽기/쓰기 볼륨을 이동하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos move 명령을 실행하여 볼륨을 이동하십시오. 이 명령은 단일 행에 입력하십시오. 아래에서는 읽기 편리하도록 여러 행으로 표현한 것에 불과합니다.

          % vos move <volume name or ID>  \
              <machine name on source>  <partition name on source >  \
              <machine name on destination>  <partition name on destination>

   여기서

   m
     허용되는 move의 가장 짧은 축약형입니다.

   volume name 또는 ID
     이동할 읽기/쓰기 볼륨의 이름이나 볼륨 ID 번호를 지정합니다.

   machine name on source
     볼륨이 현재 들어 있는 파일 서버 시스템을 명명합니다.

   partition name on source
     볼륨이 현재 들어 있는 파티션을 명명합니다.

   machine name on destination
     볼륨을 이동할 파일 서버 시스템을 명명합니다.

   partition name on destination
     볼륨을 이동할 파티션을 명명합니다.

   주: | 완료되기 전에 vos move 조작을 멈추지 않도록 하십시오. 왜냐하면 볼륨의 일부가 원본 및 목적지 시스템에 모두 남을 수 있기 때문입니다. 자세한 정보를 보려면 AFS Administration Reference에서 명령의 참조 페이지를 참조하십시오.

3. (선택적) vos listvldb 명령을 실행하여 이동이 성공적인지 확인하십시오. VLDB 항목을 표시하려면에 나타난 지시를 따르십시오.

          % vos listvldb <volume name or ID>

4. 읽기/쓰기 볼륨의 이전 사이트에 백업 버전이 존재한 경우 백업 볼륨을 작성 및 마운트하려면에서 설명하는 것처럼 vos backup 명령을 실행하여 새 사이트에 새 백업을 작성하십시오.

          % vos backup <volume name or ID>

## VLDB 및 볼륨 헤더 동기화

AFS는 VLDB(Location Database)가 볼륨 위치를 계속 추적하므로 가시적인 파일 액세스를 제공할 수 있습니다. 캐쉬 관리 프로그램은 파일이 필요할 때 해당 파일을 포함하는 볼륨의 현재 위치를 VLDB에서 읽어 오는 볼륨 위치(VL) 서버에 접속합니다. 따라서 VLDB는 항상 파일 서버 시스템의 볼륨 상태를 정확하게 반영해야 합니다. 볼륨 서버와 VL 서버는 다음의 단계를 수행하여 vos 조작 중에 상태가 변경될 때 볼륨의 VLDB 항목을 자동적으로 갱신합니다.

1. VL 서버는 VLDB 항목을 잠급니다. 이 잠금을 통해 다른 조작은 볼륨 버전(읽기/쓰기, 읽기 전용 또는 백업)을 조작하지 않게 되어 복수의 동시 조작으로 유발될 수 있는 비일관성을 막을 수 있습니다.
2. VL 서버는 수행할 조작 유형을 나타내는 intention 플래그를 VLDB 항목에 설정합니다.

   이 플래그는 내부 사용만을 목적으로 하므로 VLDB 목록에 나타나지 않습니다. 조작이 미리 종료되는 경우 이 플래그는 구조 프로그램에게 중단된 조작을 알려 줍니다(그러면 구조 프로그램은 조작을 완료하거나 볼륨의 이전의 일관된 상태로 되돌리는 데 필요한 단계를 결정합니다). 구조에 대한 자세한 정보를 보려면 볼륨 구조를 참조하십시오.

3. 볼륨 서버는 볼륨을 처리합니다. 보통 볼륨 헤더에서 `Off-line` 플래그를 설정하는 데 이 플래그는 처리 중에 파일 서버 및 다른 볼륨 서버 조작에서 해당 볼륨을 액세스하지 못하게 합니다. 조작이 완료되면 볼륨은 다시 `On-line`으로 설정됩니다.
4. VL 서버는 VLDB 항목의 조작의 결과로 생성되는 변경사항을 기록합니다. 일단 조작이 완료되면 단계 2에서 설정한 intention 플래그를 제거하고 단계 1에서 설정된 잠금을 해제합니다.

볼륨 서버가 볼륨을 처리하는 중에 vos 조작이 실패하면(단계 3에 해당) 볼륨은 중간 상태에 그대로 남아 있으며 이를 손상 상태라고 합니다. 이 경우 `Off-line` 또는 `Off-line**needs salvage**` 표시자가 vos examine 명령의 출력 첫째 행 맨 끝에 나타납니다. 손상 상태를 수정하려면 VLDB와 볼륨 헤더를 재동기화하기 전에 구조 프로그램을 실행하십시오. 구조 지침을 보려면 볼륨 구조를 참조하십시오.

좀더 일반적으로 보면 플래그가 설정되거나 제거되는 동안 발생하는 인터럽션은 (단계 1, 단계 2 또는 단계 4에 해당) VLDB와 볼륨 헤더 간의 불일치 상태를 유발합니다. VLDB와 볼륨을 재동기화하려면 vos syncvldb 및 vos syncserv 명령을 사용하십시오. 완전한 VLDB 일관성을 이루기 위해서는 셀의 모든 파일 서버에 대해 vos syncvldb 명령을 실행한 다음 셀의 모든 파일 서버 시스템에 대해 vos syncserv 명령을 실행하는 것이 가장 좋습니다.

볼륨 조작이 실패했음을 나타내는 다음과 같은 몇 가지 증상이 있습니다.

- 표준 오류 스트림이나 서버 프로세스 로그 파일의 오류 메시지는 조작이 비정상적으로 종료되었음을 나타냅니다. 조작을 완료하기 전에 중단했거나(예를 들어 Ctrl-c와 같은 신호 사용) 조작이 실행되고 있을 때 파일 서버 시스템이나 서버 프로세스가 기능하지 않았기 때문일 것입니다. 시스템이나 프로세스가 여전히 기능하지 않는 것으로 생각되면 프로세스 상태와 BosConfig 파일의 정보 표시하기에서 설명하는 것처럼 bos status 명령을 실행하십시오.
- 이전의 실패 상태가 VLDB 항목을 잠금 상태로 두었으므로 후속 vos 조작은 실패합니다. 경우에 따라 볼륨이 잠겨 있다는 사실을 오류 메시지에서 보고하기도 합니다. 잠겨진 볼륨 목록을 표시하려면 VLDB 항목 표시에서 설명하는 것처럼 vos listvldb 명령에 대해 -locked 플래그를 사용하십시오.

  볼륨에 발생한 문제점이 VLDB 항목이 잠겨 있다는 것에 불과하면 전체 VLDB를 동기화할 필요가 없을 수 있습니다. 대신 VLDB 항목 잠금 해제 및 잠금에서 설명하는 것처럼 vos unlock 또는 vos unlockvldb 명령을 사용하십시오.

- 이전 실패 상태가 볼륨을 offline으로 표시하고 있으므로 후속 vos 조작은 실패합니다. 볼륨의 VLDB 항목 및 볼륨 헤더 표시에서 설명하는 것처럼 볼륨의 현재 상태를 확인하려면 vos examine 명령의 출력 첫째 행을 확인하십시오.

vos syncvldb 명령은 VLDB(Location Database)에 있는 파일 서버 시스템에 있는 모든 볼륨, 한 파티션에 있는 볼륨 또는 단일 볼륨에 대한 정보를 수정합니다. 하나 이상의 파티션에 대한 정보를 확인하면 이 명령은 볼륨 서버에 접속하여 실제 각 파티션에 있는 볼륨의 목록을 얻습니다. 그런 다음 VL 서버로부터 각 볼륨에 대한 VLDB 항목을 얻습니다. 이 명령은 필요에 따라 파티션에 있는 볼륨의 상태를 반영하도록 VLDB 항목을 변경합니다. 예를 들어 VLDB 항목이 없거나 완전하지 않은 볼륨을 찾을 때 VLDB 항목을 작성하거나 갱신합니다. 그러나 볼륨의 다른 위치를 정의하는 VLDB 항목이 이미 있거나 다른 VLDB 항목과 절충할 수 없는 충돌이 발생하면 대신 표준 오류 스트림에 충돌에 대한 메시지를 씁니다. 이 명령은 파일 서버 시스템에서 볼륨을 제거하지는 않습니다.

단일 볼륨의 VLDB 항목을 확인할 때 명령은 vos syncserv 명령에서 호출한 조작을 자동으로 수행합니다. VLDB 항목이 지정된 볼륨 유형(읽기/쓰기, 백업 또는 읽기 전용)에 대해 올바른지 확인할 뿐 아니라 VLDB 항목에 언급된 관련 볼륨 유형이 항목에 나열된 사이트에 실제로 존재하는지도 확인합니다.

vos syncserv 명령은 VLDB 항목에 언급된 각 볼륨 유형(읽기/쓰기, 읽기 전용 및 백업)이 실제로 항목에 지정된 사이트에 존재하는지 확인합니다. 또한 파일 서버 시스템의 파티션이나 하나의 파티션에 있는 사이트를 언급하는 모든 VLDB 항목을 확인합니다. 읽기/쓰기 사이트 이외에 볼륨의 읽기 전용 버전이 있는 경우 명령은 지정된 시스템이나 파티션 이외의 사이트를 조사하는 것을 중단할 수 있습니다.

이 명령은 다른 VLDB 항목과 절충할 수 없는 충돌이 없다면 VLDB의 잘못된 정보를 수정합니다. 이 경우 표준 오류 스트림에 메시지를 씁니다. 이 명령은 사이트에서 볼륨을 제거하지는 않습니다.

### 볼륨 헤더와 VLDB를 동기화하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos syncvldb 명령을 실행하여 VLDB가 시스템이나 파티션에 있는 모든 볼륨의 실제 상태 또는 한 볼륨의 상태를 반영하게 하십시오.

   주: | VLDB를 완전히 동기화하려면 이 명령을 반복적으로 실행하고, 셀에서 각 파일 서버 시스템을 -server 인수로 차례대로 바꾸고 단계 3을 계속하기 전에 -partition 및 -volume 인수를 생략하십시오.

          % vos syncvldb -server <machine name>
       [-partition <partition name>]  [-volume <volume name or ID>]  [-verbose >> file]

   여기서

   syncv
     허용되는 syncvldb의 가장 짧은 축약형입니다.

   -server
     VLDB 항목을 확인할 볼륨이 들어 있는 파일 서버 시스템을 명명합니다. -volume 인수도 제공하는 경우 이 인수는 볼륨이 실제로 위치하는 시스템을 명명해야 합니다.

   -partition
     VLDB 항목을 확인할 볼륨이 들어 있는 파티션(-server 인수에서 지정하는 파일 서버 시스템에 위치)을 식별합니다. 일반적으로 서버 시스템의 모든 볼륨에 대한 VLDB 항목이 수정되거나(-volume 인수를 제공하지 않는 경우) 파티션이 -volume 인수에서 명명하는 볼륨을 실제로 가지고 있는지 보장할 필요가 없도록 이 인수를 생략하는 것이 가장 바람직합니다.

   -volume
     VLDB 항목을 확인할 단일 볼륨의 이름이나 볼륨 ID 번호를 지정합니다.

   -verbose >> file
     명령을 실행하는 AFS 또는 시스템의 로컬 디스크에 있을 수 있는 file이라는 파일에 대한 상세한 추적을 지시합니다. 이 명령은 표준 출력 스트림에 많은 양의 출력을 쓰기도 합니다. 파일에 출력을 쓰면 출력 결과를 좀 더 주의깊게 검토할 수 있습니다.
3. vos syncserv 명령을 실행하여 지정된 사이트에서 VLDB가 버전을 나열하는 각 볼륨을 검토하십시오.

   주: | VLDB를 완전히 동기화하려면 이 명령을 반복적으로 실행하고, 셀에서 각 파일 서버 시스템을 machine name 인수로 차례대로 바꾸고 partition name 인수는 생략하십시오.

          % vos syncserv <machine name> [<partition name>] [-v >> file]

   여기서

   syncs
     허용되는 syncserv의 가장 짧은 축약형입니다.

   machine name
     확인할 각 VLDB 항목에 언급된 파일 서버 시스템을 명명합니다.

   partition name
     확인할 각 VLDB 항목에 언급된 파티션을 식별합니다. 전체 VLDB를 동기화하는 경우 이 인수를 생략하십시오.

   -v >> file
     명령을 실행하는 AFS 또는 시스템의 로컬 디스크에 있을 수 있는 file이라는 파일에 대한 상세한 추적을 지시합니다. 이 명령은 표준 출력 스트림에 많은 양의 출력을 쓰기도 합니다. 파일에 출력을 쓰면 출력 결과를 좀 더 주의깊게 검토할 수 있습니다.

## 볼륨 구조

볼륨 서버나 파일 서버가 볼륨의 데이터를 처리하는 동안 예상치 못한 인터럽션이 발생하여 VLDB 및 볼륨 헤더의 정보 간의 불일치를 발생하는 데서 그치지 않고 볼륨을 중간 상태(손상)로 남겨둘 수 있습니다. 예를 들어 파일에 변경사항을 저장하는 조작(이전 데이터를 새 데이터로 덮어씀)이 실패할 경우 디스크에서 이전 데이터와 새 데이터가 혼합된 상태로 존재할 수 있습니다.

볼륨 서버나 파일 서버가 예상치 못한 상태에서 종료되었으므로 조작이 중단되는 경우 BOS 서버는 자동으로 fs 프로세스의 모든 구성요소를 종료하고 구조 프로그램을 호출합니다. 구조 프로그램은 불일치 상태를 확인하여 수정합니다. 그러나 경우에 따라 다음과 같이 분류되는 증상을 나타내는 경우가 있습니다. 이러한 유형의 증상은 문제점을 작성할만큼 충분히 심각한 손상 상태를 나타내지만 파일 서버 구성요소가 실패될만큼 심각한 증상은 아닙니다. 이러한 경우 직접 bos salvage 명령을 실행하여 구조 프로그램을 호출할 수 있습니다.

- 증상: 파일이 ls 명령의 출력에 나타나지만 파일을 액세스하려는 시도는 파일이 존재하지 않음을 나타내는 메시지를 표시하며 실패합니다.

  가능한 원인: 볼륨 서버나 파일 서버는 파일 작성 조작 중간에, 디렉토리 구조가 변경된 후에, 실제로 데이터를 저장하기 전에 종료되었습니다(다른 가능한 원인은 디렉토리의 ACL이 사용자가 파일을 액세스하는 데 필요한 권한을 부여하지 않거나 프로세스, 시스템 또는 네트워크 작동 중단 상태가 발생한 것입니다. 파일이 손상되었다고 가정하기 전에 이러한 원인이 있는지 확인해 보십시오).

  구조 프로그램 해결 방법: 디렉토리 구조에서 파일의 항목을 제거하십시오.

- 증상: vos examine 및 vos listvol 명령의 출력에서 볼륨이 `Off-line`로 설정되어 있거나 볼륨 액세스 시도가 실패했습니다.

  가능한 원인: 두 파일 또는 파일의 두 버전이 중단된 조작으로 인해 동일한 디스크 블록을 공유하게 됩니다. 파일 서버 및 볼륨 서버는 보통 이러한 유형의 손상은 매우 심각할 수 있으므로 이러한 손상을 나타내는 볼륨에 접속하는 것을 거부합니다. 볼륨 서버나 파일 서버가 이 볼륨에 접속했으나 영향 받는 디스크 블록의 상태를 확실히 모르는 경우 이 볼륨에 더 많은 데이터를 쓰려고 시도합니다. 쓰기를 수행할 수 없을 때 데이터를 유실됩니다. 이 결과는 연속적으로 발생하여 파티션의 모든 데이터를 손실할 수 있습니다.

  구조 프로그램 해결 방법: 전체 파티션을 손실하기 전에 손상 받은 디스크 블록에서 데이터를 삭제하십시오.

- 증상: vos listvol 명령에 의해 각 볼륨에 대해 보고된 크기 통계를 토대로 사용자가 기대한 것보다 더 적은 여유 공간이 파티션에 있습니다.

  가능한 원인: 고립된 파일 및 디렉토리가 있습니다. 고립된 요소는 그 상위 요소로 작동할 수 있는(파일 트리에서 상위 항목) 디렉토리에 의해 참조되지 않으므로 완전히 액세스가 불가능합니다. 고립된 요소는 서버 파티션에서 공간을 차지한다고 해도 볼륨 크기 계산에(또는 할당량 계산에) 포함되지 않습니다.

  구조 프로그램 해결 방법: 기본적으로 발견된 고립된 요소의 수와 이들이 차지하는 공간의 대략적인 킬로바이트 수를 보고하는 메시지를 /usr/afs/logs/SalvageLog 파일에 출력하십시오. -orphans 인수를 사용하여 고립된 요소를 제거하거나 추가할 수 있습니다. 볼륨을 구조하려면을 참조하십시오.

이러한 증상을 확인하면 손상 상태가 확산되기 전에 bos salvage 명령을 사용하여 구조 프로그램을 호출하십시오(이 명령이 볼륨에 대해 작동되기는 하지만 BOS 서버가 볼륨 서버 및 파일 서버의 종료와 재시작을 구조 프로그램에 따라 조정해야 하므로 bos 집합에 속해 있습니다. 이 명령은 구조 프로그램이 시작되기 전에 이들 서버를 종료하고 구조 조작이 끝날 때 이들 서버를 자동으로 재시작합니다).

파일 서버 시스템에 저장된 모든 AFS 데이터는 하나 이상의 파티션에 대한 구조 작업 중에 액세스할 수 없습니다. 하나의 볼륨만 구조하는 경우 해당 볼륨만 액세스할 수 없습니다.

하나 이상의 파티션을 처리할 때 이 명령은 손상된 읽기/쓰기 볼륨에 대한 일관된 상태를 복원해 줍니다. 읽기 전용 또는 백업 볼륨의 경우 다음과 같이 볼륨 헤더만 검토합니다.

- 볼륨 헤더가 손상된 경우 구조 프로그램은 볼륨을 완전히 제거하고 로그 파일 /usr/afs/logs/SalvageLog에 제거 내용을 기록합니다. vos release 또는 vos backup 명령을 실행하여 읽기 전용 또는 백업 볼륨을 다시 작성할 수 있습니다.
- 볼륨 헤더가 손상되지 않았으면 구조 프로그램은 볼륨을 건너뜁니다(내용에 손상된 부분이 있는지 확인하지 않음). 그러나 파일 서버가 초기화될 때 손상 상태를 확인하면 볼륨을 추가하거나 온라인 상태로 설정하는 것을 거부하기도 합니다. 이 경우 vos remove 또는 vos zap 명령을 실행하여 볼륨을 제거하는 것이 가장 간단한 방법입니다. 그런 다음 vos release 또는 vos backup 명령을 실행하여 다시 작성할 수 있습니다.

다음과 같이 bos salvage 명령의 인수들을 조합해서 다른 수의 볼륨을 구조할 수 있습니다.

- 파일 서버 시스템의 모든 볼륨을 구조하려면 -server 인수와 -all 플래그를 함께 사용하십시오.
- 한 파티션의 모든 볼륨을 구조하려면 -server 및 -partition 인수를 함께 사용하십시오.
- 하나의 읽기/쓰기 볼륨만 구조하려면 -server, -partition 및 -volume 인수를 함께 사용하십시오. BOS 서버가 단일 볼륨의 구조 작업 중에는 파일 서버 및 볼륨 서버 프로세스를 종료하지 않으므로 캐쉬 관리 프로그램은 해당 볼륨만 액세스할 수 없습니다. -volume 인수와 함께 읽기 전용 또는 백업 볼륨을 지정하지 마십시오. 대신 vos remove 또는 vos zap 명령을 사용하여 볼륨을 제거하십시오. 그런 다음 vos release 또는 vos backup 명령을 사용하여 볼륨의 새 사본을 작성하십시오.

구조 프로그램은 항상 실행 중인 파일 서버 시스템의 /usr/afs/logs/SalvageLog 파일에 추적 내용을 씁니다. 다른 파일에 추적 내용을 기록하려면(AFS 또는 bos salvage 명령을 실행하는 시스템의 로컬 디스크에) -file 인수를 사용하여 파일을 명명하십시오. 또는 /usr/afs/logs/SalvageLog 파일에 추적 내용이 기록될 때 추적 결과를 표준 출력 스트림에 표시하려면 -showlog 플래그를 포함시키십시오.

기본적으로 복수의 구조 프로그램 서브프로세스가 병렬로 실행되는 데 최대 네 개의 파티션 각각에 대해서는 하나씩, 네 개 이상의 파티션에 대해서는 네 개의 서브프로세스가 실행됩니다. 병렬로 실행되는 서브프로세스의 수를 늘리거나 줄이려면 -parallel 인수 값에 대해 양의 정수값을 제공하십시오.

하나의 물리적 디스크에 둘 이상의 서버 파티션이 있으면 구조 프로그램은 기본적으로 파티션을 순차적으로 구조하여 한 파티션에서 다른 파티션으로 디스크 헤드가 자주 이동되는 비효율성을 피합니다. 그러나 이러한 전략은 파티션이 여러 디스크에 걸쳐 있는 논리 볼륨으로 구성된 경우에는 별로 이상적이지 않을 수 있습니다. 강제로 구조 프로그램이 병렬로 논리 볼륨을 구조하게 하려면 -parallel 인수의 값으로 all을 제공하십시오. 구조되는 논리 프로세스의 수에 따라 병렬로 실행될 서브프로세스의 수를 지정하려면 양의 정수를 제공하고(예를 들어 다섯 개의 서브프로세스의 경우 -parallel 5all) 네 개까지 서브프로세스를 실행하려면 해당 정수를 생략하십시오.

구조 프로그램은 실행될 때 임시 파일을 작성하여 기본적으로 이 임시 파일을 구조하는 파티션에 씁니다. 파일의 수는 매우 클 수 있으며 파티션이 너무 꽉 차서 이들 파일을 저장할 수 없는 경우 구조 프로그램은 구조 조작을 완료하지 않고 종료됩니다(항상 종료되기 전에 임시 파일을 제거함). 다른 구조 프로그램 서브프로세스는 임시 파일을 저장할 충분한 공간이 있는 다른 모든 파티션을 다 구조할 때까지 동시에 계속 실행됩니다. 중단된 구조 조작을 완료하려면 해당 파티션에 대해 이 명령을 다시 실행하고 -tmpdir 인수를 추가하여 임시 파일 경로를 충분한 공간이 있는 로컬 디스크로 다시 지정하십시오.

-orphans 인수는 구조 프로그램이 구조 중인 서버 파티션에서 찾은 고립된 파일 및 디렉토리를 처리하는 방식을 제어합니다. 고립된 요소는 그 상위 요소로 작동할 수 있는(파일 공간에서 상위 항목) 디렉토리의 vnode에 의해 참조되지 않으므로 완전히 액세스가 불가능합니다. 고립된 오브젝트는 서버 파티션의 공간을 차지하지만 볼륨 할당량을 계산할 때 추가되지 않습니다.

구조 작업 중에 bos status 명령의 출력은 fs 프로세스에 대해 다음의 보조 상태를 보고합니다.

       Salvaging file system

### 볼륨을 구조하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. bos salvage 명령을 실행하여 하나 이상의 볼륨을 구조하십시오.

          % bos salvage  -server <machine name>
       [-partition <salvage partition>]  \
                         [-volume <salvage volume number or volume name>]  \
                         [-file salvage log output file]  [-all]  [-showlog]  \
                         [-parallel <# of max parallel partition salvaging>]  \
                         [-tmpdir <directory to place tmp files>]  \
                         [-orphans <ignore | remove | attach>]

   여기서

   -server
     볼륨을 구조할 파일 서버 시스템을 명명합니다. 이 인수는 -all 플래그, -partition 인수 또는 -partition과 -volume 인수 둘 다와 함께 사용할 수 있습니다.

   -partition
     모든 볼륨을 구조할 단일 파티션을 명명합니다. -server 인수를 이 인수와 함께 사용해야 합니다.

   -volume
     구조할 한 읽기/쓰기 볼륨의 이름이나 볼륨 ID 번호를 지정합니다. 이 인수를 -server 및 -partition 인수와 함께 사용하십시오.

   -file
     구조 작업의 추적 결과를 쓸 파일과 서버 시스템의 /usr/afs/logs/SalvageLog 파일의 완전한 경로 이름을 지정합니다. 파일 경로 이름이 로컬이면 추적 결과는 bos salvage 명령이 실행된 시스템의 로컬 디스크에 있는 지정된 파일에 기록됩니다. -volume 인수가 포함되면 파일은 구조되는 볼륨에 있지 않은 AFS인 경우에도 AFS에 위치할 수 있습니다. 이 인수를 -showlog 플래그와 함께 사용하지 마십시오.

   -all
     -server 인수에 의해 명명된 시스템의 모든 파티션에 있는 모든 볼륨을 구조합니다.

   -showlog
     표준 출력 스트림에 구조 조작의 추적 결과를 표시하고 이를 /usr/afs/logs/SalvageLog 파일에 씁니다.

   -parallel
     병렬로 실행될 구조 프로그램 서브프로세스의 최대 수를 지정합니다. 다음 세 가지 중 하나를 제공하십시오.
     - 범위 1 - 32의 정수. 1 값은 단일 구조 프로그램 서브프로세스가 순차적으로 파티션을 구조함을 의미합니다.
     - 여러 물리적 디스크에 걸쳐 있는 논리적 볼륨 형태로 포맷된 파티션에서 병렬로 네 개까지의 구조 프로그램 서브프로세스를 실행하기 위한 문자열 all. 이러한 논리적 볼륨에 대해서만 이 값을 사용하십시오.
     - 논리적 볼륨으로 포맷된 파티션에서 병렬로 지정된 수의 구조 프로그램 서브프로세스를 실행하기 위한 범위 1 - 32의 정수가 바로 뒤에 붙는 문자열 all(간격 없음). 이러한 논리적 볼륨에 대해서만 이 값을 사용하십시오.

     BOS 서버는 파티션 수보다 더 많은 수의 구조 프로그램 서브프로세스를 절대 시작하지 않으며 항상 단일 볼륨을 구조하기 위해서는 하나의 프로세스만 시작합니다. 이 인수가 생략되면 네 개까지의 구조 프로그램 서브프로세스가 동시에 실행됩니다.

   -tmpdir
     구조 프로그램 프로세스가 실행될 때 임시 파일을 쓰는 논리 디스크 디렉토리의 전체 경로 이름을 지정합니다. 기본적으로 현재 구조 중인 파티션에 임시 파일을 씁니다.

   -orphans
     구조 프로그램이 고립된 파일 및 디렉토리를 처리하는 방식을 제어합니다. 다음의 세 값 중 하나를 선택하십시오.

     ignore
       디스크에 고립된 오브젝트를 그대로 두지만 발견된 고립된 요소의 수와 이들이 차지하는 공간의 대략적인 킬로바이트 수를 보고하는 메시지를 /usr/afs/logs/SalvageLog 파일에 출력합니다. 이것은 -orphans 인수를 생략할 때 기본값입니다.

     remove
       고립된 오브젝트를 제거하고 제거된 고립된 요소의 수와 이들이 차지하는 공간의 대략적인 킬로바이트 수를 보고하는 메시지를 /usr/afs/logs/SalvageLog 파일에 출력합니다.

     attach
       볼륨의 루트 디렉토리의 vnode에 고립된 오브젝트에 대한 참조를 작성하여 고립된 오브젝트를 추가합니다. 각 오브젝트의 실제 이름을 현재 잃어버렸으므로 구조 프로그램은 다음 양식에 따라 각각에 이름을 지정합니다.

         파일의 경우 _ _ORPHANFILE_ _.index

         디렉토리의 경우 _ _ORPHANDIR_ _.index

       여기서 index는 각 오브젝트를 고유하게 식별하는 2자리 숫자입니다. 고립된 오브젝트는 볼륨 할당량을 차지하며 볼륨 루트 디렉토리에 대해 실행된 ls 명령의 출력에도 나타납니다.

## 볼륨 할당량과 현재 크기 설정 및 표시

모든 AFS 볼륨은 볼륨의 크기를 제한하는 연관된 할당량을 가지고 있습니다. 새로 작성된 볼륨의 기본 할당량은 5,000 킬로바이트 블록(5 MB보다 약간 작음)입니다. 볼륨이 그 할당량에 도달하면 파일 서버는 새 파일이나 디렉토리를 작성하려는 시도를 거부합니다. 응용프로그램이 꽉 찬 볼륨의 기존 파일에 데이터를 쓰는 경우 파일 서버는 정의된 과잉 상태(기본적으로 1MB)를 허용합니다(fileserver 명령의 -spare or -pctspare 인수를 사용하면 기본 과잉 상태를 변경할 수 있습니다. AFS Administration Reference에서 명령 참조 페이지를 참조하십시오).

볼륨을 작성할 때 5000 KB가 넘는 할당량을 설정하려면 읽기/쓰기 볼륨 작성에서 설명하는 것처럼 vos create 명령에 -maxquota 인수를 포함시키십시오. 기존 볼륨의 할당량을 수정하려면 다음에서 설명하는 것처럼 fs setquota 또는 fs setvol 명령을 실행하십시오. 기존 볼륨의 할당량을 현재 크기보다 더 작게 설정하지 마십시오.

보통 볼륨 크기가 작을수록 관리하기가 더 쉬워집니다. 로드 밸런스를 위해 볼륨을 이동해야 하는 경우 다른 파티션에서 작은 볼륨을 위한 여유 공간을 찾는 일이 더 쉽습니다. 볼륨이 작을 경우 이동 작업이 보다 빠르게 진행되므로 이동을 방해할 수 있는 작동 중단 상태나 다른 오류가 발생할 가능성이 줄어듭니다. AFS는 여러 다른 AFS 릴리스마다 달라질 수 있는 최대 볼륨 크기를 지원합니다. 사용 중인 버전에 대해서는 AFS 릴리스 노트를 참조하십시오. 또한 하나의 볼륨이 여러 파티션이나 논리적 볼륨에 걸쳐 있을 수 없으므로 파티션이나 논리적 볼륨의 크기에 따라 볼륨 크기가 제한됩니다.

일반적으로 모든 볼륨이 최대 할당량에 도달한 경우 실제로 채울 수 있는 볼륨보다 더 많은 볼륨을 추가하여 파티션을 과도하게 채우는 것이 안전합니다. 그러나 셀에서 어느 정도까지 볼륨을 과도하게 채울 수 있는가는 경험을 통해서만 알 수 있습니다. 이것은 볼륨에 할당하는 할당량의 종류(특히 시스템 볼륨보다 갑자기 커질 확률이 높은 사용자 볼륨)와 사람들이 할당량과 비교하여 생성하고 저장하는 정보의 양에 따라 달라질 수 있습니다.

다음에서 설명하는 것처럼 볼륨의 할당량을 표시하는 여러 가지 명령이 있습니다. 이들 명령은 각 명령이 생성하는 관련 정보의 양에서 차이를 나타냅니다.

### 단일 볼륨에 대한 할당량을 설정하려면

1. 사용자가 system:administrators 그룹에 속하는지 확인하십시오. 필요하면 system:administrators 그룹 구성원을 표시하려면에서 자세히 설명되어 있는 pts membership 명령을 실행하십시오.

          % pts membership system:administrators

2. fs setquota 명령을 실행하여 볼륨의 최대 할당량을 설정하십시오.

          % fs setquota [<dir/file path>]
       -max <max quota in kbytes>

   여기서

   sq
     허용되는 setquota의 별명입니다.

   dir/file path
     지정된 할당량을 설정할 볼륨에 있는 파일 또는 디렉토리를 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

     파일 또는 디렉토리에 대한 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨을 변경하려고 할 때 발생하는 장애를 피하십시오. 일반적으로 경로 이름의 두 번째 레벨의 셀 이름 앞에 마침표를 사용하여 읽기/쓰기 경로를 나타내십시오(예를 들어 /afs/.abc.com). 파일 경로를 통한 읽기/쓰기 및 읽기 전용 경로의 개념에 대해 좀더 살펴 보려면 마운트 포인트 통과 규칙을 참조하십시오.

   max quota in kbytes
     킬로바이트 블록(1024가 1MB임)으로 표현되는 볼륨 할당량을 설정합니다. 값 0은 제한없는 할당량을 부여하지만 파티션의 크기에는 절대 제한이 적용됩니다. dir/file path 인수를 생략하는 경우(현재 작업 디렉토리가 있는 볼륨에 할당량을 설정하기 위해) -max 스위치를 포함시켜야 합니다.

### 하나 이상의 볼륨에 대한 최대 할당량을 설정하려면

1. 사용자가 system:administrators 그룹에 속하는지 확인하십시오. 필요하면 system:administrators 그룹 구성원을 표시하려면에서 자세히 설명되어 있는 pts membership 명령을 실행하십시오.

          % pts membership system:administrators

2. fs setvol 명령을 실행하여 하나 이상의 볼륨에 대한 할당량을 설정하십시오.

          % fs setvol [<dir/file path>+] -max <disk space quota in 1K units>

   여기서

   sv
     허용되는 setvol의 별명입니다.

   dir/file path
     지정된 할당량을 설정할 각 볼륨에 있는 파일 또는 디렉토리를 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

   disk space quota in 1K units
     킬로바이트 블록(1024가 1MB임)으로 표현되는 각 볼륨의 최대 할당량을 설정합니다. 값 0은 제한없는 할당량을 부여하지만 파티션의 크기에는 절대 제한이 적용됩니다.

### 사용된 퍼센트 할당량을 표시하려면

1. fs quota 명령을 실행하십시오.

          % fs quota [<dir/file path>+]

   여기서

   q
     허용되는 quota의 가장 짧은 축약형입니다.

   dir/file path
     사용된 퍼센트 할당량을 표시할 각 볼륨에 있는 디렉토리나 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

다음 예제는 이 명령이 생성한 출력을 보여 줍니다.

       % fs quota /afs/abc.com/usr/terry
       34% of quota used.

### 할당량, 현재 크기 및 기타 정보를 표시하려면

1. fs listquota 명령을 실행하십시오.

          % fs listquota
       [<dir/file path>+]

   여기서

   lq
     listquota의 별명입니다.

   dir/file path
     볼륨 이름 및 현재 공간 사용도와 함께 할당량을 표시할 각 볼륨에 있는 디렉토리나 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

다음 예에서 보여주는 것처럼 출력은 볼륨의 이름, 그 할당량과 현재 크기(모두 킬로바이트 블록 단위로), 사용된 퍼센트 할당량 및 사용된 볼륨의 호스트 파티션에 있는 공간의 백분율을 보고합니다.

       % fs listquota /afs/abc.com/usr/terry
       Volume Name     Quota    Used    % Used   Partition
       user.terry      15000    5071       34%         86%

### 할당량, 현재 크기 및 추가 파티션 정보를 표시하려면

1. fs examine 명령을 실행하십시오.

          % fs examine
       [<dir/file path>+]

   여기서

   exa
     허용되는 examine의 가장 짧은 축약형입니다.

   dir/file path
     할당량 정보와 호스트 파티션에 대한 정보를 표시할 각 볼륨에 있는 디렉토리나 파일을 명명합니다. 부분 경로 이름은 이 인수가 생략되었을 때 기본 디렉토리인 현재 작업 디렉토리에 상대적으로 해석됩니다.

다음 예에서 보여주는 것처럼 출력은 볼륨의 볼륨 ID 번호와 이름, 그 할당량과 현재 크기(모두 킬로바이트 블록 단위로), 볼륨 호스트 파티션에서 킬로바이트 블록의 총 수와 이중 사용 가능한 블록의 수를 보고합니다.

       % fs examine /afs/abc.com/usr/terry
       Volume status for vid = 50489902 named user.terry
       Current maximum quota is 15000
       Current blocks used are 5073
       The partition has 46383 blocks available out of 333305

주: | 이 명령의 출력에서 파티션 관련 통계가 항상 표준 UNIX df 명령 출력의 해당 값과 일치하는 것은 아닙니다. 이 명령에서 보고한 통계는 캐쉬 관리 프로그램이 5분 간격으로 파티션 정보에 대해 파일 서버를 폴링하므로 생성된 이후에 최대 5분까지 경과될 수 있습니다. 또한 일부 운영 체제에서 df 명령의 파티션 크기 보고에는 이 명령의 계산에는 포함되어 있지 않은 예약된 공간이 포함되므로 약 10%가 더 커질 수 있습니다.

## 볼륨 및 마운트 포인트 제거

사이트에서 볼륨을 제거하고 VLDB에서 그 레코드를 제거하려면 vos remove 명령을 사용하십시오. 이 명령을 사용하면 다음의 세 가지 유형의 볼륨 중 하나를 제거할 수 있습니다. 그 결과는 유형마다 다릅니다.

- .readonly 또는 .backup 확장자 없이 볼륨의 기본 이름을 지정하여 읽기/쓰기 볼륨을 지정하는 경우 이 명령은 볼륨이 있는 파티션에서 읽기/쓰기 볼륨과 연관된 백업 볼륨을 모두 제거합니다. 하나의 읽기/쓰기 사이트만 있을 수 있으므로 -server 및 -partition 인수를 제공할 필요가 없습니다. 사이트 정보도 VLDB 항목에서 제거되며 사이트 계수(vos examine 및 vos listvldb 명령에 의해 `number of sites`로 보고)는 1씩 줄어듭니다. 읽기/쓰기 및 백업 볼륨 ID 번호는 더 이상 vos examine 및 vos listvldb 명령의 출력에 나타나지 않으나 내부적으로는 보존됩니다. 읽기 전용 사이트는 있는 경우에 이 명령의 영향을 받지 않으나 읽기/쓰기 사이트가 다시 정의되어야만 변경될 수 있습니다. 전체 VLDB 항목은 읽기 전용 생트가 없는 경우 제거됩니다.

  남아 있는 읽기 전용 사본이 없는 경우 볼륨의 마운트 포인트를 제거하여 볼륨 내용에 대한 액세스 시도를 막는 것이 가장 바람직합니다. 읽기 전용 볼륨의 사본이 남아 있는 경우 마운트 포인트를 제거하지 마십시오.

- .readonly 확장자를 이름에 포함시켜 읽기 전용 볼륨을 지정한 경우 이 볼륨은 저장되어 있는 파티션에서 제거되며 VLDB 항목에서 해당 사이트 정보가 제거됩니다. vos examine 및 vos listvldb 명령에서 `number of sites`로 보고한 사이트 계수는 제거하는 각 볼륨에 따라 1씩 줄어듭니다.

  둘 이상의 읽기 전용 사이트가 있는 경우 -server 인수(및 선택적으로 -partition 인수)를 포함시켜 볼륨을 제거할 사이트를 지정해야 합니다. 하나의 읽기 전용 사이트만 있는 경우 볼륨 이름으로도 충분합니다. 이 경우 읽기/쓰기 볼륨이 존재하지 않으면 전체 VLDB 항목이 제거됩니다.

  읽기 전용 볼륨을 제거할 때, 특히 볼륨의 읽기/쓰기 버전이 여전히 존재할 때 볼륨의 마운트 포인트를 제거하는 것은 별로 적절하지 않습니다. 읽기/쓰기 버전이 더 이상 존재하지 않는 경우 볼륨을 제거하고 언마운트하려면의 단계 5에서 설명하는 것처럼 마운트 포인트를 제거하십시오.

- .backup 확장자를 포함시켜 백업 볼륨을 지정한 경우 이 볼륨은 저장되어 있는 파티션에서 제거되며 VLDB 항목에서 해당 사이트 정보가 제거됩니다. 하나의 백업 사이트만 있을 수 있으므로 -server 및 -partition 인수를 제공할 필요가 없습니다. 백업 볼륨 ID 번호는 vos examine 또는 vos listvldb 명령의 출력에 더 이상 나타나지 않지만 내부적으로는 보존됩니다.

  표준 구성에서는 사용자 볼륨의 백업 버전에 대한 별도의 마운트 포인트가 있습니다. 존재하지 않는 볼륨의 내용을 액세스하려는 시도를 막기 위해 해당 마운트 포인트를 제거하도록 하십시오.

### 기타 제거 명령

vos remove 명령은 파티션에서 볼륨의 VLDB 항목과 볼륨 헤더 및 모든 데이터를 자동적으로 제거하므로 볼륨을 제거하는 적절한 방법으로 사용됩니다. VLDB 항목이나 볼륨 헤더가 없는 경우 나머지 요소만 제거하는 다른 명령을 사용하는 것이 필요할 수도 있습니다. VLDB 항목과 볼륨 헤더가 모두 존재하는 정상적인 경우에는 이들 명령을 사용하지 마십시오. 왜냐하면 VLDB 항목과 볼륨 헤더 간에 불일치가 발생할 수 있기 때문입니다. 명령 구문에 대한 자세한 정보를 보려면 AFS Administration Reference에서 해당 참조 페이지를 참조하십시오.

vos zap 명령은 VLDB 항목이 더 이상 존재하지 않는 볼륨 헤더 및 볼륨 데이터를 제거함으로써 사이트에서 볼륨을 제거합니다.

vos listvol 명령이 볼륨 헤더를 표시하지만 vos examine 또는 vos listvldb 명령이 VLDB 항목을 찾을 수 없는 경우에는 VLDB 항목이 없다고 말할 수 있습니다. vos syncvldb 및 vos syncserv 명령은 볼륨 헤더를 절대 제거하지 않으므로 불일치를 해결하려면 이 명령을 실행해야 합니다.

vos remsite 명령은 파일 서버 시스템의 볼륨에는 영향을 미치지 않으면서 VLDB에서 읽기 전용 사이트 정의를 제거합니다.

실수로 vos addsite 명령을 실행하여 읽기 전용 사이트를 정의했으나 아직 vos release 명령을 실행하여 사이트로 볼륨을 릴리스하지 않았으면 이 명령을 사용하십시오. 실제로 사이트에 볼륨을 릴리스했으면 vos remove 명령을 대신 사용하십시오.

vos delentry 명령은 사용자가 지정하는 볼륨을 언급하는 전체 VLDB 항목을 제거합니다. 파일 서버 시스템에 볼륨의 버전이 실제로 존재하는 경우 이들 버전은 영향을 받지 않습니다. 이 명령은 볼륨 제거 내용이 VLDB에 기록되지 않았다는 사실을 사용자가 알고 있으며(사용자는 긴급 상황 중에는 vos zap 명령을 사용했을 것임) vos syncvldb 및 vos syncserv 명령을 사용하여 전체 VLDB를 재동기화하는데 시간을 소비하지 않으려고 할 때 유용합니다.

### 볼륨을 제거하고 언마운트하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 볼륨의 마운트 포인트를 제거하는 경우 상위 디렉토리의 ACL에 대한 d(delete) 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. (선택적) 나중에 볼륨을 복원하려는 경우 볼륨을 파일이나 테이프로 덤프하십시오. 볼륨의 내용을 파일로 복사하려면 볼륨 덤프 및 복원의 지시에 따라 vos dump 명령을 사용하십시오. 그런 다음 타사의 백업 유틸리티나 UNIX tar 명령과 같은 보존 유틸리티를 사용하여 파일을 테이프로 복사할 수 있습니다.

   또는 AFS 백업 시스템을 사용하여 테이프 사본을 작성하십시오. 이 경우 중요한 볼륨만 포함하는 임시 볼륨 집합을 작성하는 것이 편리할 수 있습니다. 임시 볼륨 집합은 백업 데이터베이스에 기록되지 않으므로 한 번만 사용하는 볼륨 집합에 대한 레코드로 데이터베이스를 복잡하게 만들지 마십시오. 지침을 보려면 덤프 작성하기를 참조하십시오.

4. vos remove 명령을 실행하여 볼륨을 제거하십시오. 복수의 사이트에서 읽기 전용 볼륨을 제거하는 경우 각 볼륨에 대해 이 명령을 반복하십시오.

          % vos remove [-server machine name>]  [-partition <partition name>]  \
                       -id <volume name or ID>

   여기서

   remo
     허용되는 remove의 가장 짧은 축약형입니다.

   -server
     볼륨이 위치하는 파일 서버 시스템을 지정합니다. 이 인수는 -id 인수가 복수의 사이트에 존재하는 읽기 전용 볼륨을 명명할 때만 필요합니다.

   -partition
     볼륨이 위치하는 machine name의 파티션을 명명합니다. 이 인수는 -id 인수가 복수의 사이트에 존재하는 읽기 전용 볼륨을 명명할 때만 필요합니다. 이 인수와 함께 -server 인수를 제공하십시오.

   -id
     완전한 이름이나 볼륨 ID 번호로 제거할 볼륨을 식별합니다. 읽기 전용 또는 백업 볼륨을 이름에 따라 식별하는 경우 적절한 확장자(.readonly 또는 .backup)를 포함시키십시오.
5. 볼륨의 마지막 기존 버전을 제거하는 경우 fs rmmount 명령을 실행하여 해당 마운트 포인트를 제거하십시오. 볼륨을 제거하고 언마운트하려면에 나타난 지시를 따르십시오.

   일반적인 방법으로 마운트된 백업 볼륨을 제거하는 경우(읽기/쓰기 볼륨의 루트 디렉토리의 하위 디렉토리에) 이 단계에서 원본 볼륨의 마운트 포인트를 제거하는 것은 백업 볼륨의 마운트 포인트를 제거하는 것으로 충분합니다. 완전히 구분된 디렉토리에 백업 볼륨을 마운트한 경우 백업 볼륨의 마운트 포인트에 대해 이 단계를 반복해야 합니다.

          % fs rmmount <directory>

6. (선택적) 단계 3에서 덤프 파일을 작성한 경우 이를 테이프로 옮기십시오. 선호되는 방법은 AFS 백업 시스템 구성 및 AFS 데이터 백업 및 복원에서 설명하는 것처럼 AFS 백업 시스템을 사용하는 것입니다.

## 볼륨 덤프 및 복원

vos dump 명령을 사용하여 볼륨을 덤프하면 그 내용이 ASCII 형식으로 변환되고 사용자가 지정한 파일에 기록됩니다. vos restore 명령은 덤프 파일을 지정된 파일 서버 시스템에 적절한 볼륨 형식으로 변환한 후 볼륨에 추가합니다.

### 볼륨 덤프에 대하여

볼륨을 덤프하는 것은 다음을 포함하여 여러 상황에서 유용할 수 있습니다.

- 타사의 백업 유틸리티를 사용하여 볼륨을 테이프로 백업하려고 할 때. 이러한 유형의 백업 조작을 용이하게 하기 위해 vos dump 명령은 명명된 파이프로 백업할 수 있습니다. 그 대신 AFS 백업 시스템을 사용하는 경우에 대한 정보를 보려면 AFS 백업 시스템 구성 및 AFS 데이터 백업 및 복원을 참조하십시오.
- 셀에서 볼륨을 제거하는 경우(소유자가 셀을 떠나는 것이 원인이 될 수 있음). vos dump 명령을 사용하면 백업 시스템의 오버헤드를 늘리지 않으면서 보관을 위해 사본을 작성할 수 있습니다. 볼륨 제거에 대한 자세한 정보를 보려면 볼륨 및 마운트 포인트 제거를 참조하십시오.
- 보관을 위해 비 AFS 서버 파이션에 볼륨의 사본을 작성한 다음 실제 볼륨을 다른 시스템으로 이동하거나 해당 볼륨이 있는 파티션에 대해 유지보수 타스크를 수행하려 할 수 있습니다.
- 손상된 읽기/쓰기 볼륨을 바꿀 필요가 있습니다. 볼륨의 손상되지 않은 읽기 전용 또는 백업 버전이 있는 경우 이를 덤프하고 읽기/쓰기 볼륨으로 데이터를 복원한 다음 손상된 내용을 덮어쓰십시오.
- 볼륨의 내용을 다른 셀로 복사하거나 옮길 수 있습니다. AFS에서 동일한 셀에 속하는 파일 서버 시스템 간의 볼륨 이동만 지원하므로 vos move 명령은 사용할 수 없습니다.
- 볼륨의 내용에 대한 또 다른 읽기/쓰기 사본을 가질 수 있습니다. 두 번째 볼륨은 원래 볼륨과 다른 이름을 가져야 합니다. 두 볼륨의 내용을 동일하게 유지하려면 두 볼륨을 수동으로 갱신해야 합니다. AFS는 읽기/쓰기 볼륨을 이러한 방식으로 동기화하기 위한 기능은 제공하지 않습니다.
- 특정 날짜 이후의 수정 시간 소인을 가지는 파일 및 디렉토리 사본을 볼륨에 작성할 수 있습니다. vos dump 명령은 다음 지침의 단계 3에서 설명하는 것처럼 점층적 덤프 파일을 작성할 수 있습니다.

vos dump 명령을 사용하여 명령을 실행할 때 볼륨의 완전한 내용을 포함하는 전체 덤프를 작성하거나 사용자가 지정한 날짜 및 시간보다 나중 날짜가 찍힌 수정 시간 소인이 있는 파일 및 디렉토리만 포함하는 점층적 덤프를 작성할 수 있습니다 (ls -l 명령에 의해 표시). 다음 지침의 단계 3을 참조하십시오.

볼륨을 덤프할 경우 VLDB 항목이 변경되지 않고 파일 서버 시스템에서 그 상태에 영구히 영향을 미치지는 않지만 덤프 조작 중에 볼륨의 내용을 액세스할 수 없습니다. 볼륨에 대한 액세스 작업을 방해하지 않으려면 vos backup 또는 vos backupsys 명령을 실행하여 새로운 백업 버전을 작성한 후에 볼륨의 백업 버전을 덤프하는 것이 가장 바람직합니다.

덤프를 기록할 파일 이름을 제공하지 않으면 vos dump 명령이 출력 경로를 표준 출력 스트림으로 지정합니다. 원하는 경우 출력을 vos restore 명령으로 직접 파이프할 수 있습니다.

볼륨 덤프 파일이 ASCII 형식이므로 cat 명령과 같은 명령이나 문서 편집기를 사용하여 그 내용을 읽을 수 있습니다. 그러나 덤프 파일에는 영숫자 상관 관계가 없는 특수 문자가 포함되는 경우가 있어서 일부 표시 프로그램에서 문제를 유발할 수 있습니다.

기본적으로 vos 명령 인터프리터는 VLDB(Location Database)를 확인하여 볼륨의 위치를 알아내므로 -server 및 -partition 인수가 필요하지 않습니다. -id 인수가 복수의 사이트에 위치하는 읽기 전용 볼륨을 식별하는 경우 이 명령은 여러 사이트 중 하나(보통 vos examine 또는 vos listvldb 명령에서 보고된 대로 볼륨의 VLDB 항목에 나열된 첫째 사이트)의 버전을 덤프합니다. 특정 사이트에서 읽기 전용 볼륨을 덤프하려면 -server 및 -partition 인수를 사용하여 덤프할 사이트를 지정하십시오. VLDB 조회를 완전히 무시하려면 -id 인수에 대한 값으로 볼륨 ID 번호(볼륨 이름 대신)와 -server 및 -partition 인수를 함께 제공하십시오. 이렇게 하면 VLDB 항목이 없는 볼륨을 덤프할 수 있습니다.

### 볼륨을 덤프하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 덤프 파일을 작성하는 데 필요한 권한이 있는지 확인하십시오. AFS에 덤프 파일을 추가하는 경우 해당 파일 디렉토리의 ACL에 대해 i(insert) 권한이 있어야 합니다. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. vos dump 명령을 실행하여 볼륨을 덤프하십시오.

          % vos dump -id <volume name or ID> [-time <dump from time>]
       [-file <arg>]  [-server <server>]  [-partition <partition>]

   여기서

   -id
     완전한 이름이나 볼륨 ID 번호로 덤프할 볼륨을 식별합니다. 읽기 전용 또는 백업 버전을 덤프하려는 경우 그 볼륨 ID 번호를 지정하거나 적절한 확장자(.readonly 또는 .backup)를 이름에 추가하십시오.

     볼륨 위치에 대한 일반적인 VLDB 조회를 무시하려면 볼륨 ID 번호를 제공하고 이 인수를 -server 및 -partition 인수와 함께 사용하십시오.

   -time
     덤프가 덤프 또는 점층적 형태 중 어떤 것인지 지정합니다. 전체 덤프를 작성하려면 이 인수를 생략하십시오. 그렇지 않으면 다음의 세 가지 값 중 하나를 제공하십시오.
     - 전체 덤프를 작성하기 위한 값 0.
     - 지정된 날짜에서 자정(오전 12시) 이후의 수정 시간 소인이 찍힌 파일과 디렉토리만 포함하는 점층적 덤프를 작성하기 위한 형식 mm/dd/yyyy(월, 일, 년)의 날짜. 연도에 사용할 수 있는 값은 1970 - 2037입니다. 더 높은 값은 표준 UNIX 표현에서 사용할 수 있는 가장 최근 연도가 2038년이므로 사용할 수 없습니다. 명령 인터프리터는 최대값보다 더 나중의 날짜는 자동으로 줄입니다. 예로서 01/13/1999를 들 수 있습니다.
     - 지정된 날짜와 시간보다 더 나중의 수정 시간 소인이 찍힌 파일과 디렉토리만 포함하는 점층적 덤프를 작성하기 위한 형식 "mm/dd/yyyy hh:MM"의 날짜 및 시간. 이 날짜 형식은 날짜만 사용했을 때와 동일합니다. 시간은 24시간 형식의 시간 및 분(hh:MM)처럼 표현하십시오(예: 20:30은 8:30 p.m.임). 전체 표현식에는 공백이 들어 있으므로 큰 따옴표(" ")로 묶으십시오. 예를 들면 "01/13/1999 22:30"과 같습니다.

   -file
     덤프를 쓸 파일의 경로 이름을 지정합니다. 파일은 덤프되는 볼륨에 있지 않은 경우에도 AFS에 위치할 수 있습니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다. 덤프 경로를 표준 출력 스트림으로 지정하려면 이 인수를 생략하십시오.

   -server
     볼륨이 위치하는 파일 서버 시스템을 지정합니다. 이 인수와 함께 -partition 인수를 제공하십시오.

   -partition
     볼륨이 위치하는 파티션을 지정합니다. 이 인수와 함께 -server 인수를 제공하십시오.

### 볼륨 복원에 대하여

세 가지 유형의 볼륨(읽기/쓰기, 읽기 전용 또는 백업) 중 하나를 덤프할 수 있으나 vos restore 명령을 사용하여 덤프 파일을 읽기/쓰기 볼륨으로서만 파일 시스템에 복원할 수 있습니다. 이 명령은 ASCII에서 복원된 버전을 저장하는 파일 서버 시스템에 적절한 볼륨 형식으로 덤프 파일의 내용을 자동으로 변환합니다. vos dump 명령을 사용할 때처럼 타사의 백업 유틸리티와의 상호 작용을 용이하게 해 주는 명명된 파이프를 통해 덤프 파일을 복원할 수 있습니다.

두 가지 기본 방법 중 하나로 덤프 파일의 내용을 복원할 수 있습니다. 두 경우 모두 점층적 덤프를 복원하기 전에 전체 덤프를 복원해야 합니다. 그런 다음 복원하는 점층적 덤프는 전체 덤프 이후에 작성되어야 합니다. 둘 이상의 점층적 덤프가 있는 경우 작성된 순서대로 복원해야 합니다.

- 지정한 위치에 새 이름을 가진 완전히 새로운 볼륨으로 볼륨 데이터를 복원할 수 있습니다. 새 볼륨으로 덤프를 복원하고 마운트하려면을 참조하십시오.

  볼륨 서버가 자동으로 볼륨 번호를 할당하게 하는 것이 가장 바람직하지만 볼륨을 복원할 때 볼륨 ID 번호를 지정할 수 있습니다. 볼륨 ID 번호를 지정하는 가장 일반적인 이유는 볼륨의 VLDB 항목이 특정 이유로 인해 사라진다는 것입니다. 그러나 이전의 읽기/쓰기 볼륨 ID 번호를 알고 있으면 재사용할 수 있습니다.

- 기존의 볼륨(보통 이전에 덤프한 볼륨)에 볼륨 데이터를 복원하고 그 내용을 덮어쓸 수 있습니다. 이것은 이전 볼륨이나 볼륨 클론 중 하나로부터 생성된 버전으로 이들 볼륨을 대체할 수 있게 하므로 현재 내용이 손상되었거나 올바르지 않을 때 편리합니다. 덤프 파일을 복원하고 기존 볼륨을 덮어쓰려면을 참조하십시오.

  -overwrite 인수를 제공하여 볼륨 내용을 변경하려고 한다는 사실을 미리 확인하고 전체 또는 점층적 덤프 중 어떤 것을 복원할지 지정하십시오. -overwrite 인수를 생략하면 볼륨 서버는 다음 프롬프트를 생성하여 기존의 볼륨을 전체(f) 또는 점층적(i) 덤프로 덮어쓸지 확인합니다.

         Do you want to do a full/incremental restore or abort? [fia](a):

  -file 인수를 사용하여 명명하는 대신 표준 출력 스트림을 통해 덤프 파일에 파이프할 경우 볼륨 서버가 프롬프트를 표시할 공간이 없으므로 -overwrite 인수를 포함시켜야 합니다.

  -server 및 -partition 인수를 사용하여 새 사이트를 지정함으로써 볼륨을 전체 덤프로 덮어쓸 때 볼륨을 새 사이트로 옮길 수 있습니다. 점층적 덤프를 복원할 때는 볼륨을 이동할 필요가 없습니다.

vos restore 명령은 vos examine 및 vos listvol 명령의 출력에 포함된 `Creation` 필드에 보고된 것처럼 볼륨 헤더에서 복원된 볼륨의 작성 날짜를 복원 조작의 시간으로 설정합니다.

### 새 볼륨으로 덤프를 복원하고 마운트하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 덤프 파일을 읽고 새 볼륨을 마운트하는 데 필요한 권한이 있는지 확인하십시오. 덤프 파일이 AFS에 있는 경우 해당 디렉토리의 ACL에 대해 r(read) 권한이 있어야 합니다. 새 볼륨을 마운트하려는 디렉토리의 ACL에 대해 i(insert) 및 a(administer) 권한이 있어야 합니다. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. 새 볼륨에 대한 사이트(파일 서버 시스템의 디스크 파티션)를 선택하십시오. 셀이 다른 유형의 볼륨을 다른 파일 서버 시스템에 그룹화하는 경우 사용자의 결정이 달라질 수 있습니다. 다른 기준을 충족하는 가장 공간이 많은 파티션에 볼륨을 추가하는 것이 타당할 것입니다. 파일 서버 시스템의 파티션에서 사용할 수 있는 공간의 양을 표시하려면 읽기/쓰기 볼륨 작성에서 설명하는 것처럼 vos partinfo 명령을 사용하십시오.

          % vos partinfo <machine name> [<partition name>]

4. vos restore 명령을 실행하여 새 볼륨을 작성하고 덤프 파일을 작성한 볼륨에 복원하십시오. 이 명령은 단일 행에 입력하십시오. 아래에서는 읽기 편리하도록 여러 행으로 표현한 것에 불과합니다.

          % vos restore <machine name> <partition name>  \
                        <name of volume to be restored>   \
                        [-file <dump file>]
       [-id <volume ID>]

   여기서

   res
     허용되는 restore의 가장 짧은 축약형입니다.

   machine name
     새 볼륨을 작성할 파일 서버 시스템을 명명합니다.

   partition name
     새 볼륨을 작성할 파티션을 명명합니다.

   name of volume to be restored
     새 읽기/쓰기 볼륨을 명명합니다. 여기에는 아직 VLDB 항목이 있으면 안됩니다. 최대 22자까지 사용할 수 있습니다.

   -file
     복원할 덤프 파일입니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다. 파이프를 사용하여 표준 출력 스트림로부터 덤프 파일을 읽을 경우 이 인수를 생략하십시오.

   -volume
     새 볼륨의 ID 번호를 지정합니다. 더 이상 존재하지 않는 볼륨을 복원하려고 하거나 이미 가지고 있는 볼륨 ID 번호를 사용하려는 경우에만 이 인수를 사용하십시오.
5. fs mkmount 명령을 실행하여 새 볼륨을 마우트하고 그 내용을 액세스 가능하게 하십시오. 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면에 나타난 지시를 따르십시오.

          % fs mkmount <directory> <volume name>

6. (선택적) fs lsmount 명령을 실행하여 마운트 포인트가 올바른 볼륨을 참조하는지 확인하십시오. 마운트 포인트를 표시하려면에 나타난 지시를 따르십시오.

          % fs lsmount <directory>

### 덤프 파일을 복원하고 기존 볼륨을 덮어쓰려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 덤프 파일을 읽는 데 필요한 권한이 있는지 확인하십시오. 덤프 파일이 AFS에 있는 경우 해당 디렉토리의 ACL에 대한 r(read) 권한이 있어야 합니다. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. 덤프 파일의 내용을 읽기/쓰기 볼륨에 복원하고 현재 내용을 덮어쓰십시오. 볼륨은 현재의 볼륨 ID 번호를 그대로 유지합니다. 이 명령은 단일 행에 입력하십시오. 아래에서는 읽기 편리하도록 여러 행으로 표현한 것에 불과합니다.

          % vos restore <machine name> <partition name>  \
                        <name of volume to be restored>   \
                        [-file <dump  file>]  \
                        -overwrite <full | incremental>

   여기서

   res
     허용되는 restore의 가장 짧은 축약형입니다.

   machine name
     볼륨이 이미 존재하는 파일 서버 시스템이나 볼륨을 이동할 시스템을 명명합니다. 두 번째의 경우 -overwrite 인수의 값은 full이어야 합니다.

   partition name
     볼륨이 이미 존재하는 파티션이나 볼륨을 이동할 파티션을 명명합니다. 두 번째의 경우 -overwrite 인수의 값은 full이어야 합니다.

   name of volume to be restored
     덤프 파일의 내용으로 덮어쓸 읽기/쓰기 볼륨을 명명합니다.

   -file
     복원할 덤프 파일입니다. 부분 경로 이름은 현재 작업 디렉토리에 상대적으로 해석됩니다. 파이프를 사용하여 표준 출력 스트림으로부터 덤프 파일을 읽을 경우 이 인수를 생략하십시오. 이 경우 -overwrite 인수를 제공해야 합니다.

   -overwrite
     기존 볼륨을 덮어쓰려고 하는지 미리 확인하고 복원하는 덤프 파일의 유형을 지정합니다. 다음 값 중 하나를 제공하십시오.
     - 전체 덤프 파일을 복원하는 경우 f 또는 full
     - 점층적 덤프 파일을 복원하는 경우 i 또는 incremental. 이 값은 사용자가 볼륨을 복원 중인 동안 볼륨을 이동하려고 할 때는 사용할 수 없습니다.
     - 복원 조작을 종료하기 위한 a
4. 볼륨이 복제되면 vos release 명령을 실행하여 새로 복원된 내용을 읽기 전용 사이트로 릴리스하십시오. 볼륨 복제(읽기 전용 볼륨 작성)에 나타난 지시를 따르십시오.

          % vos release <volume name or ID>

5. vos backup 명령을 실행하여 볼륨의 새 백업 버전을 작성하십시오. 백업 볼륨 작성에 나타난 지시를 따르십시오.

          % vos backup <volume name or ID>

## 볼륨 이름 변경

vos rename 명령을 사용하면 볼륨 이름을 변경할 수 있습니다. 예를 들어 사용자 볼륨 이름에 대해 user.username 규칙을 사용하고 있으며 사용자 이름을 변경하는 경우에는 사용자의 홈 볼륨 이름을 변경하는 것이 좋습니다. (사용자 이름 변경에 대한 자세한 지침을 보려면 사용자 이름 변경을 참조하십시오.)

vos rename 명령은 읽기/쓰기 볼륨 이름에만 사용할 수 있으나 연관된 읽기 전용 및 백업 볼륨의 이름도 자동으로 변경합니다. 다음에서 설명하는 것처럼 이름 변경을 반영하는 새 이름으로 볼륨의 현재 마운트 포인트를 바꾸어야 합니다.

### 볼륨의 이름을 변경하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. 볼륨의 마운트 포인트를 대체하고 있는 디렉토리에 대해 a(administer), d(delete) 및 i(insert) 액세스 권한이 있는지 확인하십시오. 필요하면 ACL 표시에서 자세히 설명되어 있는 fs listacl 명령을 실행하십시오.

          % fs listacl [<dir/file path>]

   system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.

3. vos rename 명령을 실행하여 볼륨 이름을 변경하십시오.

          % vos rename <old volume name> <new volume name>

   여기서

   ren
     허용되는 rename의 가장 짧은 축약형입니다.

   old volume name
     읽기/쓰기 볼륨의 현재 이름입니다.

   new volume name
     볼륨의 새 이름입니다. 22자까지 사용할 수 있습니다.

   지정된 현재 볼륨에 대해 VLDB(Location Database) 항목이 있으면 명령은 다음의 오류 메시지를 나타내며 실패합니다.

          vos: Could not find entry for volume old_volume_name.

4. fs rmmount 명령을 실행하여 볼륨의 이전 이름을 참조하는 마운트 포인트를 제거하십시오. 마운트 포인트를 제거하려면에 나타난 지시를 따르십시오.

          % fs rmmount <directory>

5. fs mkmount 명령을 실행하여 볼륨의 새 이름을 나타내는 마운트 포인트를 작성하십시오. 일반 또는 읽기/쓰기 마운트 포인트를 작성하려면에 나타난 지시를 따르십시오.

          % fs mkmount <directory> <volume name> [-rw]

## VLDB 항목 잠금 해제 및 잠금

VLDB 및 볼륨 헤더 동기화에서 자세히 설명하는 것처럼 VL(Volume Location) 서버는 볼륨 서버가 볼륨에 대한 작업을 수행하기 전에 볼륨의 VLDB(Volume Location Database) 항목을 잠급니다. 잠긴 VLDB 항목이 있는 볼륨에는 어떠한 조작도 영향을 미칠 수 없으므로 이와 같은 잠금은 하나의 볼륨에 대한 여러 동시 조작으로부터 발생할 수 있는 불일치 또는 손상을 막아 줍니다.

VLDB 항목이 잠겨 있는지 확인하려면 VLDB 항목을 표시하려면에서 설명하는 것처럼 vos listvldb 명령을 실행하십시오. 이 명령은 잠긴 항목만 표시하는 -locked 플래그를 가집니다. VLDB 항목이 잠겨 있으면 문자열 `Volume is currently LOCKED`가 볼륨 출력의 마지막 행에 나타납니다.

VLDB 항목을 직접 잠그려면 vos lock 명령을 사용하십시오. 이것은 볼륨에 문제가 발생한 것으로 생각되고 문제점을 조사하는 동안 볼륨이 변경되지 않게 하려는 경우에 유용합니다.

잠긴 VLDB 항목의 잠금을 해제하려면 단일 VLDB 항목의 잠금을 해제하는 vos unlock 명령을 실행하거나 많은 항목의 잠금을 해제할 수 있는 vos unlockvldb 명령을 실행하십시오. 이것은 볼륨 조작이 미리 실패하고 VLDB 항목이 잠금 상태로 남아 있을 때 유용하지만 사용자가 장애로 인해 발생한 문제를 해결할 수는 없습니다.

### VLDB 항목을 잠그려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos lock 명령을 실행하여 항목을 잠그십시오.

          % vos lock <volume name or ID>

   여기서

   lo
     허용되는 lock의 가장 짧은 축약형입니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 잠글 볼륨을 식별합니다. 이것은 볼륨의 세 가지 버전 중 하나가 될 수 있습니다.

### 단일 VLDB 항목의 잠금을 해제하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos unlock 명령을 실행하여 항목의 잠금을 해제하십시오.

          % vos unlock <volume name or ID>

   여기서

   unlock
     전체를 입력해야 합니다.

   volume name 또는 ID
     완전한 이름이나 볼륨 ID 번호로 잠금을 해제할 볼륨을 식별합니다. 이것은 볼륨의 세 가지 버전 중 하나가 될 수 있습니다.

### 복수의 VLDB 항목의 잠금을 해제하려면

1. 사용자가 /usr/afs/etc/UserList 파일에 나열되어 있는지 확인하십시오. 필요하면 UserList 파일에서 사용자를 표시하려면에서 자세히 설명되어 있는 bos listusers 명령을 실행하십시오.

          % bos listusers <machine name>

2. vos unlockvldb 명령을 실행하여 원하는 항목의 잠금을 해제하십시오.

          % vos unlockvldb [<machine name>] [<partition name>]

   여기서

   unlockv
     허용되는 unlockvldb의 가장 짧은 축약형입니다.

   machine name
     파일 서버 시스템을 지정합니다. 사이트 정의에서 시스템을 언급하는 모든 VLDB 항목의 잠금을 해제하려면 이 인수를 단독으로 제공하십시오. 이 인수와 partition name 인수를 모두 생략하면 모든 VLDB 항목의 잠금이 해제됩니다.

   partition name
     파티션을 지정합니다. 사이트 정의에서 파티션을 언급하는 모든 VLDB 항목의 잠금을 해제하려면 이 인수를 단독으로 제공하십시오. 이 인수와 machine name 인수를 모두 생략하면 모든 VLDB 항목의 잠금이 해제됩니다.

[ 페이지의 맨 위 | 이전 페이지 | 다음 페이지 | 목차 | 색인 ]

© IBM Corporation 2000. All Rights Reserved