AFS 백업 시스템은 AFS 볼륨에서 데이터의 백업 사본을 작성하고, 그 데이터가 유실되었거나 손상된 경우 파일 시스템으로 데이터를 복원하는 데 도움이 됩니다. 이 장에서는 백업 시스템을 구성하는 방법에 대해 설명합니다. 데이터 백업과 복원, 덤프 레코드 표시에 대한 명령은 AFS 데이터 백업 및 복원의 내용을 참조하십시오.
이 장에서는 표시된 명령을 사용하여 다음 타스크를 수행하는 방법에 대해
설명합니다.
| 테이프 용량 및 파일표시 크기 결정 | fms |
| 백업 데이터베이스에서 테이프 조정자 항목 정의 | backup addhost |
| 백업 데이터베이스에서 테이프 조정자 항목 제거 | backup delhost |
| 백업 데이터베이스에서 테이프 조정자 항목 표시 | backup listhosts |
| 볼륨 세트 작성 | backup addvolset |
| 볼륨 세트로 볼륨 항목 추가 | backup addvolentry |
| 볼륨 세트 및 항목 나열 | backup listvolsets |
| 백업 데이터베이스에서 볼륨 세트 삭제 | backup delvolset |
| 볼륨 세트에서 볼륨 항목 삭제 | backup delvolentry |
| 덤프 레벨 정의 | backup adddump |
| 기존 덤프 레벨의 만기 날짜 변경 | backup setexp |
| 덤프 계층에서 덤프 레벨 삭제 | backup deldump |
| 덤프 계층 표시 | backup listdumps |
| 테이프 레이블 지정 | backup labeltape |
| 테이프 레이블 읽기 | backup readlabel |
AFS 백업 시스템은 매우 유연성있는 시스템으로 백업 프로세스의 많은 측면들을 제어할 수 있으며, 여기에는 백업이 수행되는 빈도, 백업되는 볼륨, 볼륨에 있는 데이터 모두를 덤프할 것인 지 아니면 마지막 덤프 동작 이후 변경된 데이터만을 덤프할 것인 지 여부 등이 포함됩니다. 또한 많은 백업 프로세스들을 자동화하는 여러 기능들의 장점들을 이용할 수도 있습니다.
백업 시스템을 가장 효율적으로 관리하고 사용하기 위해, 다음 절에서 설명한 기본적인 기능들을 알아두는 것이 좋습니다. 사용자 셀에서 백업 시스템을 구성한 뒤 그 기능을 구현하는 명령에 대해서는 백업 시스템 구성의 개요의 내용을 참조하십시오.
AFS 데이터를 백업할 경우, 각 파일 대신 볼륨을 완성하기 위해 포함시킬 데이터를 지정합니다. 세부적으로 말하면, 볼륨 세트라는 볼륨 그룹을 정의합니다. 이 각각에는 단일한 작업으로 백업하려는 하나 이상의 볼륨들이 포함됩니다. 볼륨 세트내에 백업할 볼륨을 포함시켜야 합니다. 이는 데이터를 백업하는 명령(backup dump 명령)이 각 볼륨명들을 인정하지 않기 때문입니다.
볼륨 세트는 하나 이상의 볼륨 항목으로 구성되며, 이 볼륨 항목에서는 위치(파일 서버 시스템과 파티션)와 볼륨명을 기준으로 백업할 볼륨을 지정합니다. 와일드 카드 표시를 사용하여 위치, 이름에 있는 공용 문자열 또는 이 모두를 공유하는 모든 볼륨들을 포함시켜야 합니다.
볼륨 세트 및 볼륨 항목의 작성과 제거에 대한 명령은 볼륨 세트와 볼륨 항목의 정의 및 표시의 내용을 참조하십시오.
덤프는 볼륨 세트에서 백업한 데이터 모음입니다. 전체 덤프에는 덤프 조작시 볼륨 세트에 있었던 모든 볼륨의 데이터 모두가 포함됩니다. 증분 덤프에는 볼륨 세트에 있는 볼륨의 데이터 일부만이 포함되며, 이전에 지정된 덤프 조작이 수행된 이후 변경된 파일들과 디렉토리 구조들입니다. 이전 덤프란 증분 덤프의 상위 덤프를 말하며, 이는 전체 덤프 또는 증분 덤프 자체가 될 수 있습니다.
덤프 세트는 하나 이상의 테이프에 함께 저장된 하나 이상의 덤프 모음입니다. 덤프 세트에 있는 첫번째 덤프는 초기 덤프이며, 기존 덤프 세트 끝에 추가된 후속 덤프는 추가 덤프입니다. 덤프 추가는 항상 선택적이지만, 테이프 용량을 최대로 이용합니다. 이와는 달리, 초기 덤프만을 작성하면 테이프가 여러개의 파티션으로 채워지며, 이는 초기 덤프가 항상 새로운 테이프에서 시작되지만 테이프 끝까지 확장할 필요는 없기 때문입니다. 추가된 덤프가 다른 추가 덤프나 초기 덤프와 관련될 필요는 없지만(동일한 볼륨 세트나 관련 볼륨 세트를 덤프할 필요는 없지만), 잘 계획하여 추가하면 복원하는 동안의 테이프 변경 횟수를 줄일 수 있습니다. 예를 들어, 단일 덤프 세트내에서 볼륨 세트의 증분 덤프 추가들을 감지할 수 있습니다.
덤프 세트의 모든 레코드들은 초기 덤프를 기초로 백업 데이터베이스에서 함께 색인화됩니다(백업 데이터베이스에 대해서는 백업 데이터베이스 및 백업 서버 프로세스의 내용 참조). 추가된 덤프의 데이터베이스 레코드를 삭제하려면, 초기 덤프 레코드를 삭제한 다음, 덤프 세트에 있는 모든 덤프 레코드들을 삭제할 수 있도록 해야 합니다. 이처럼, 덤프 세트에 있는 모든 테이프의 데이터베이스 레코드들을 삭제하지 않으면 덤프 세트에 있는 단 하나의 테이프도 다시 사용할 수 없습니다.
초기 덤프의 작성 명령에 대해서는 데이터 백업의 내용을, 덤프 추가 방법에 대해서는 기존 덤프 세트로 덤프 추가의 내용을 참조하십시오.
덤프 계층은 전체 덤프와 증분 덤프간의 관계를 정의하는 논리 구조입니다. 즉, 어느 덤프가 증분 덤프의 상위 덤프로서 제공되는 지를 정의합니다. 계층은 덤프 레벨로 구성됩니다. backup dump 명령을 실행하여 덤프를 작성할 때, 볼륨 세트명과 덤프 레벨명을 지정합니다. 백업 시스템은 덤프 레벨을 사용하여 덤프가 전체 덤프인 지 또는 증분 덤프인 지, 증분 덤프인 경우는 어느 덤프 레벨이 상위 덤프로서 사용되는 지 여부를 결정합니다.
만기 날짜를 덤프 레벨과 연결시켜, 해당 레벨에서 작성된 덤프가 만기되는 때를 결정할 수 있습니다. 백업 시스템은 테이프가 속하는 덤프 세트내의 모든 덤프가 만기될 때 까지 테이프를 겹쳐쓰기하지 않으므로, 만기 날짜를 지정하면 자동으로 테이프의 재사용 시기가 결정됩니다. 절대 기간(예를 들면, 2000년 1월 13일)나 상대 기간(덤프가 작성되고 30일 동안) 어느 것으로든 만기 날짜를 정의할 수 있습니다. 또한 덤프 레벨과 연관된 만기 날짜를 변경할 수도 있습니다(해당 레벨에서 이미 작성된 실제 덤프와 관련된 만기 날짜는 변경할 수 없음).
덤프 계층 작성, 만기 날짜 지정 및 테이프 재사용 스케쥴 설정에 대해서는 덤프 계층 정의 및 표시의 내용을 참조하십시오.
덤프 작성시 백업 시스템은 이에 대한 백업 데이터베이스 레코드를 작성하며, 이에 덤프 세트명과 덤프 레벨 경로명에 있는 마지막 구성요소로 구성된 이름을 지정합니다.
volume_set_name.dump_level_name
예를 들어, 덤프 레벨 /sunday/friday에 있는 볼륨 세트 user의 덤프를 user.friday라고 합니다. 백업 시스템은 또한 덤프에 고유한 덤프 ID 번호를 지정하여 같은 이름을 가진 다른 덤프와 구분하기도 합니다.
백업 시스템은 덤프 세트가 들어있는 각 테이프에 AFS 테이프명을 지정하여, 덤프 세트의 초기 덤프에 대한 볼륨 세트와 덤프 레벨, 덤프 세트에서 테이프 위치에 관한 숫자 색인 및 고유한 덤프 ID 번호를 반영합니다.
volume_set_name.dump_level_name.tape_index (dump ID)
예를 들어, 초기 덤프가 덤프 레벨 /sunday/friday의 볼륨 세트 uservol인 덤프 세트내의 두 번째 테이프인 경우, uservol.friday.2(914382400)와 같은 AFS 테이프 이름을 갖게 됩니다.
AFS 테이프 이름뿐만 아니라, 테이프에는 사용자가 선택적으로 지정한 영구적 이름이 있을 수도 있습니다. AFS 테이프 이름과는 달리, 영구적 이름이 볼륨 세트와 초기(또는 다른) 덤프의 덤프 레벨을 나타낼 필요는 없으므로, 테이프 내용에 따라 변경될 수 있습니다. 백업 시스템에서는 영구적 이름으로 일정한 포맷이 필요하지 않으므로, 각 테이프의 이름이 고유한 지 확인해야 합니다. 테이프에 영구적 이름이 있는 경우, 백업 시스템은 프롬프트에서 그리고 대부분의 backup 명령에 대한 출력으로서 테이프를 가리킬 때 AFS 테이프 이름대신 그 영구적 이름을 사용합니다.
백업 시스템에 사용되는 모든 테이프에는 테이프의 이름, 용량 및 기타 정보를 기록하는 마그네틱 레이블이 처음에 있습니다. backup labeltape 명령을 사용하여 레이블을 기록하거나, 레이블이 지정되지 않은 테이프를 사용하는 경우 backup dump 명령을 사용하여 자동으로 하나를 작성할 수 있습니다. 레이블은 다음 정보를 기록합니다.
테이프에 덤프를 기록할 때 실제 AFS 테이프 이름이 아직 없는 경우, 백업 시스템은 적합한 AFS 테이프 이름을 작성하여 기록합니다. 테이프에 AFS 테이프 이름이 있고 초기 덤프를 작성한 경우, 그 이름은 덤프의 볼륨 세트와 덤프 레벨을 정확히 반영해야 합니다.
테이프 레이블 지정에 대해서는 테이프 레이블 기록 및 읽기의 내용을 참조하십시오.
테이프 레이블과 함께, 백업 시스템은 모든 첨부 덤프마다 테이프에 하나의 덤프 레이블을 기록합니다(테이프 레이블과 덤프 레이블은 초기 덤프의 경우 동일합니다). 덤프 레이블은 다음 정보를 기록합니다.
백업 시스템은 덤프에 있는 각 볼륨 데이터 사이에 파일표시(파일 끝 또는 EOF 표시자라고도 함)를 기록합니다. 테이프 장치의 제조업체가 파일표시 크기를 결정하며, 이는 보통 2KB와 2MB 사이입니다. 일반적으로 장치가 사용하는 테이프의 일반 용량이 커지면 파일표시 크기도 커집니다. 덤프에 많은 갯수의 볼륨 각각에 대한 데이터 중 소량만이 들어있으면, 증분 덤프가 자주 발생하므로, 파일표시 크기는 테이프에 적합한 볼륨 데이터 양을 결정하는 데 상당한 영향을 미칩니다. 백업 시스템이 덤프를 기록하면서 파일표시 크기를 결정할 수 있도록 하기 위해, 구성 파일에서 파일표시 크기를 기록할 수 있습니다. tapeconfig 파일 구성의 내용을 참조하십시오.
테이프 조정자 시스템은 백업 조작에 사용되는 하나 이상의 접속 테이프 장치들을 구동시키는 시스템입니다. AFS 클라이언트 소프트웨어(캐쉬 관리 프로그램)를 실행해야 하지만 물리적으로 안전한 위치에 상주하여 콘솔에 대한 무허가 액세스를 예방해야 합니다. 백업 조작을 테이프 조정자 시스템에서 실행할 수 있으려면, 시스템에 있는 각 테이프 기계가 백업 데이터베이스에 등록되고, 몇몇 파일과 디렉토리들이 시스템의 로컬 디스크에 있어야 합니다. 명령에 대해서는 테이프 조정자 시스템 구성하기의 내용을 참조하십시오.
테이프 조정자 시스템에 있는 각 테이프 장치들은 다른 UNIX 포트로부터의 백업 요청을 인식합니다. 테이프 장치에 포트 오프셋 번호를 지정하여 간접적으로 포트를 선택합니다. 백업 시스템은 내부적으로 결정되는 기본 포트 번호에 포트 오프셋을 추가하여 장치의 실제 포트를 설정합니다. 포트 오프셋 번호 지정에 대해서는 tapeconfig 파일 구성의 내용을 참조하십시오.
테이프 장치가 백업 조작을 수행하려면, 장치 전용 백업 테이프 조정자(butc) 프로세스가 테이프 조정자 시스템에서 활동적으로 실행중이어야 합니다. 그러면 그 포트 오프셋 번호를 backup 명령의 -portoffset 인수와 함께 지정하여 백업 요청을 장치의 테이프 조정자로 전송할 수 있습니다.
테이프에 백업 데이터를 기록할 뿐만 아니라, 이를 테이프 조정자 시스템의 로컬 디스크에 있는 백업 데이터 파일로 전송할 수도 있습니다. 계층적 기억영역 관리(HSM) 시스템과 같은 데이터 아카이브 시스템으로 데이터를 전송할 수도 있습니다. 이러한 시스템은 AFS 및 백업 시스템과 함께 사용합니다. 백업 데이터 파일에는 테이프 장치와 유사한 포트 오프셋이 있습니다. 백업 데이터 파일 구성에 대해서는 백업 데이터 파일로 데이터 덤프의 내용을 참조하십시오.
백업 데이터베이스는 셀의 데이터베이스 서버 시스템에서 백업 서버 프로세스가 관리하는 복제된 관리 데이터베이스입니다. 다른 AFS 데이터베이스 서버 프로세스처럼, 백업 서버는 Ubik 유틸리티를 사용하여 다양한 데이터베이스 사본들을 동시에 유지합니다(Ubik에 대해서는 AFS 관리 데이터베이스 복제의 내용을 참조하십시오).
백업 데이터베이스는 다음 정보를 기록합니다.
명령의 백업 집합이 백업 시스템에 대한 관리적 인터페이스입니다. backup 2진 파일에 액세스할 수 있는 AFS 클라이언트나 서버 시스템의 명령 쉘에서 명령을 실행(또는 쉘 스크립트에서 명령을 호출)할 수 있습니다. 일반 구성에서, 2진 파일은 로컬 디스크에 있습니다.
backup 명령 집합에서는 대화식 모드를 제공하며, 여기에서는 백업 서버 및 볼륨 위치(VL) 서버에 대한 연속적인 연결을 통해 여러 명령을 실행할 수 있습니다. 대화식 모드에는 여러 편리한 기능이 있으며, 여기에는 다음 기능이 포함됩니다.
테이프(또는 백업 데이터 파일) 읽기 또는 쓰기가 필요한 명령을 실행하려면, 관련 테이프 장치에 접속된(또는 그 로컬 디스크에 백업 데이터 파일이 있는) 테이프 조정자 시스템으로의 연결을 개설한 다음, butc 명령을 실행하여 테이프 조정자 프로세스를 시작해야 합니다. 프로세스를 연속적으로 실행되고, 연결은 백업용 테이프 장치나 파일을 사용해야 하는 동안은 계속해서 연결된 채로 남아 있습니다.
자세한 설명과 그 명령에 대해서는 백업 시스템의 인터페이스 사용의 내용을 참조하십시오.
백업 시스템을 사용하여 데이터를 백업하고 복원하려면, 기본 구성요소 중 몇몇을 구성해야 합니다. 이 장에 있는 섹션에서는 다음 구성 타스크의 수행 방법에 대해 설명합니다.
백업 덤프 및 복원 조작을 수행하는 데 필요한 모든 구성요소를 이미 구성했으면, 데이터 백업 및 데이터 복원 및 복구에 있는 명령으로 진행할 수 있습니다.
테이프 조정자가 테이프에서 채울 수 있는 데이터 양을 결정하려면 여러 요소들이 필요합니다.
(백업 데이터 파일에서 채울 수 있는 데이터 양은 파티션에서 사용할 수 있는 공간양과 운영 체제의 최대 파일 크기에 의해 결정됩니다. 테이프 조정자는 백업 데이터 파일에 기록할 때 파일표시를 기록하지 않습니다. 백업 데이터 파일로 기록하도록 테이프 조정자를 구성하는 방법에 대한 자세한 내용은 백업 데이터 파일로 데이터 덤프의 내용을 참조하십시오.)
테이프 조정자(butc) 프로세스가 시작되면, 로컬 디스크에 있는 /usr/afs/backup/tapeconfig 파일을 읽고 덤프 동작에 사용할 테이프 용량과 파일 크기 표시(테이프 장치의 경우) 또는 파일 크기(백업 데이터 파일의 경우)를 알게 됩니다. 덤프 동작을 시작할 때, 테이프 조정자도 테이프나 백업 데이터 파일의 레이블을 읽고 다른 테이프 용량 또는 파일 크기가 기록되어 있지는 않은 지 점검합니다. 다른 값이 기록되어 있는 경우, 레이블에 있는 값이 tapeconfig 파일의 기록값을 덮어쓰기합니다.
덤프 동작중에 테이프 조정자는 테이프로 데이터를 기록하므로, 테이프 용량과 파일표시 정보를 사용하여 사용되는 테이프 용량과, 물리적 테이프 끝(EOT)까지 남아있는 용량을 추적합니다. EOT에 도달하기 전에 잠깐 테이프 조정자는 기록을 정지하고 새로운 테이프를 요청합니다. 이처럼, 백업 데이터 파일의 크기를 사용하여 파일 공간이 고갈되려고 하는 시기를 알 수 있습니다. 테이프 조정자가 예기치 못하게 EOT에 도달하면, 새로운 확보하고, EOT에 도달했을 때 기록중이던 볼륨의 전체 내용을 새로운 테이프로 기록하여 복구합니다. 인터럽트된 볼륨이 첫번째 테이프에 남아 있지만 사용되지는 않습니다.
많은 테이프 장치에서는 몇 기가바이트 심지어는 몇 테라바이트의 백업 데이터를 수용할 수 있는 테이프를 사용하며, 특히 장치의 압축 모드를 사용하는 경우 그러합니다. 그러한 장치와 테이프로 기록할 경우, 테이프 조정자가 예상치 못하게 EOT에 도달할 수 있도록 허용하는 것이 좋습니다. 장치들은 인터럽트된 볼륨을 새로운 테이프로 다시 기록하는 데 많은 시간이 소요되지 않도록 하기 위해 빠르게 데이터를 기록합니다. 이와 같이, 인터럽트된 볼륨 중 첫번째 테이프에 남아있는 데이터가 많은 테이프를 차지하지 않도록 데이터를 압축합니다.
적은 양의 데이터에 적합한 테이프로 기록하는 경우(2GB 이하), 테이프 조정자가 예기치 않게 EOT에 도달하지 않도록 하는 것이 좋습니다. AFS는 최대 2GB의 볼륨을 지원하므로, 실제로 인터럽트된 볼륨이 테이프 대부분을 차지할 수 있습니다. 그러한 테이프의 경우, 테이프 용량과 파일표시 크기에 대한 정확한 기록하면 테이프 사용 및 덤프 동작의 효율성을 극대화하는 데 도움이 됩니다. tapeconfig 파일의 필드에 대한 다음 설명에서는 적합한 값을 결정하는 방법에 대해 설명합니다.
문서 편집기를 사용하여, 테이프 조정자의 tapeconfig 파일에서 사용하는 각 테이프 장치나 백업 데이터 파일에 대한 항목을 작성합니다. 각 장치나 파일의 항목은 한 라인상에 있으며, 그 형식은 다음과 같습니다.
[capacity filemark_size] device_name port_offset
여기서,
일반 모드(압축 모드가 아닌)에서 사용하려는 2 GB 이하의 테이프 용량을 결정하려면, 테이프 제조업체에서 테이프 포장에 지정한 값이나 이 절의 후반부에서 설명하는 fms 명령을 사용하여 그 용량을 결정할 수 있습니다. 테이프 조정자가 예상치 못하게 EOT에 도달하지 않도록 하려면, tapeconfig 파일이나 레이블에 테이프의 실제 용량보다 10% 작은 용량을 기록하는 것이 좋습니다. 압축 모드에서 사용된 소형 테이프에 적합한 값을 계산하기 위해, 테이프 용량(제조업체에서 기록한)에 장치의 압축 비율을 곱하는 것도 한가지 방법입니다.
몇 기가바이트 또는 몇 테라바이트의 데이터를 수용하는 테이프의 경우, 테이프 드라이브의 압축 모드를 사용한다면 테이프의 최대 용량보다 큰 값(예를 들면 2배)을 기록하도록 구성하는 것이 좋습니다. 비압축 모드인 경우라도 대형 테이프에서 fms 명령을 사용하는 것은 좋지 않습니다. 명령은 압축 모드에 정확한 결과를 생성하지 않습니다. 테이프 조정자가 예상치 못하게 EOT에 도달할 수 있을 수 있지만, 인터럽트된 볼륨에서 버려진 데이터들이 많은 테이프 용량을 나타내지 않는 테이프의 많은 데이터에 적합합니다.
백업 데이터 파일의 경우, 파티션에서 사용할 수 있는 양보다 약간 작은 값, 운영 체제의 최대 파일 크기보다는 상당한 작은 값을 기록하십시오. 또한 다른 프로세스들이 파티션에 기록하지 못하도록 그 기능을 제한하여 파티션에 있는 공간들을 최대로 사용하지 못하도록 하는 것도 좋습니다.
이 필드가 비어있으면, 테이프 조정자는 수용할 수 있는 최대 값(2048 GB 또는 2TB)을 사용합니다. 이 필드와 filemark_size 필드 모두를 빈 채로 두거나, 이들 모두에 값을 입력하십시오.
일반(비압축) 모드에 있는 테이프 장치의 경우, fms 명령을 사용하여 파일표시 크기를 결정하거나, 장치의 제조업체에서 기록한 값을 사용할 수 있습니다. 테이프 조정자가 예기치 못하게 EOT에 도달하지 않도록 하려면, tapeconfig 파일에서 파일표시 크기를 기록할 때 10% 가량 값을 증가시키십시오.
압축 모드에서 테이프 장치에 대해 권장되는 값은 0입니다. fms 명령은 압축 모드에서 정확한 결과를 생성하지 않으므로, 이를 사용하여 파일표시 크기를 결정할 수 없습니다.
백업 데이터 파일에 대해 권장되는 값은 0입니다. 테이프 조정자는 파일로 기록할 때 파일 표시를 사용하지 않지만, 용량 필드에 값이 있는 경우라도 이 필드에 값이 표시되어야 합니다.
이 필드가 비어 있으면, 테이프 조정자는 값 0을 사용합니다. 이 필드와 용량 필드 모두를 비어 두거나, 모두에 값을 입력하십시오.
적합한 값은 0 - 58510 이내의 정수입니다(백업 시스템은 최대 58,511 포트 오프셋 번호를 추적할 수 있습니다). 각 값들은 셀의 테이프 조정자 사이에서 고유해야 하지만, 포트 오프셋 번호를 연속적으로 지정할 필요는 없으므로, 이들 번호들을 단일 시스템이나 테이프 장치와 연관시킬 수 있습니다. 예를 들어 압축 모드와 비압축 모드 모두에서 장치를 사용하려는 경우, 모드에 대해 적합한 테이프 용량 및 파일표시 값을 가진 두 개의 다른 포트 오프셋을 이 장치에 지정하십시오.
백업 동작에 자주 사용하는 테이프 장치나 백업 데이터 파일용 테이프 조정자에 포트 오프셋 0을 지정하십시오. 그러면 backup 명령의 최대 번호에서 -portoffset 인수를 생략할 수 있습니다.
다음 예제 tapeconfig 파일에는 두 개의 테이프 장치 /dev/rmt0h 및 /dev/rmt1h에 대한 항목이 들어 있습니다. 각 항목에서는 용량이 2GB이고, 파일표시 크기가 1MB인 테이프를 사용합니다. 이들의 포트 오프셋 번호는 0과 1입니다.
2g 1m /dev/rmt0h 0 2G 1M /dev/rmt1h 1
fms 명령은 삽입한 테이프 용량과 테이프 장치의 파일표시 크기를 표준 출력 문자열(stdout)과 fms.log 파일 모두에 기록합니다. 이 파일은 현재 작업 디렉토리에서 기록됩니다. 명령 해석기는 데이터를 전체 테이프에 기록해야 하므로, 명령을 실행하는 데에는 테이프 크기에 따라 여러 시간에서 하루 이상씩 소요될 수 있습니다.
% fms <tape special file>
여기서
다음 예제 출력에서는 장치에 있는 장치명이 /dev/rmt0h인 테이프의 용량이 2136604672 바이트(약 2GB)이고, 장치의 파일표시 크기가 1910205 바이트(약 2MB)임을 보고합니다.
% fms /dev/rmt0h wrote block: 130408 Finished data capacity test - rewinding wrote 1109 blocks, 1109 file marks Finished file mark test Tape capacity is 2136604672 bytes File marks are 1910205 bytes
사용자 셀에서 backup 및 butc 명령을 실행하는 사람들은 백업 데이터베이스 및 VLDB(Location Database)를 저장하는 모든 데이터베이스 서버 시스템과, 볼륨 세트에 포함된 볼륨이 있는 모든 시스템의 /usr/afs/etc/UserList 파일에 나열되어야 합니다. 규약에 따라, UserList 파일은 셀에 있는 모든 서버 시스템에서 같습니다. 본 문서의 명령에서는 사용자 셀이 이러한 방식으로 구성된 것으로 가정합니다. UserList 파일을 편집하려면, UserList 파일 관리에서 설명한 것처럼 bos adduser 및 bos removeuser 명령들을 사용하십시오.
UserList 파일에 나열될 뿐만 아니라, butc 명령을 실행하는 백업 작업자들은 각 테이프 조정자 시스템의 로컬 /usr/afs/backup 디렉토리에 저장된 파일에 기록할 수 있어야 합니다. 이 파일들은 UNIX 모드 비트로 보호됩니다. 사용자 셀의 첫번째 테이프 조정자 시스템을 구성하기 전에, 디렉토리 및 그 안에 들어갈 파일에 대한 소유자로서 지정될 로컬 사용자 및 그룹을 결정하십시오. 가능한 소유권 옵션은 다음과 같습니다.
또 다른 옵션은 모든 백업 운용자가 속하는 그룹을 로컬 그룹 파일(/etc/group 또는 이와 동등함)내에 정의하는 것입니다. 그런 다음, /usr/afs/backup 디렉토리 및 이에 들어있는 파일의 사용자 모드 비트 대신 w 모드 비트(쓰기 권한)를 온으로 설정합니다. 이전에 나열된 방법의 장점은 각 운용자가 감사시 각각에 대해 개별 관리 계정을 보유할 수 있다는 것입니다.
보호 방법의 구현에 대해서는 테이프 조정자 시스템 및 테이프 장치 구성의 내용을 참조하십시오.
이 절에서는 시스템을 테이프 조정자로서 구성하는 방법, 단일 테이프 장치 또는 백업 데이터 파일과 연관된 테이프 조정자를 구성하거나 제거하는 방법에 대해 설명합니다.
| 주: | AIX 시스템에 접속된 테이프 장치를 구성할 경우, 장치의 테이프 블록 크기를 0으로 설정하여 가변 블록 크기를 표시해야 합니다. 그렇지 않으면, 시스템 유형이 다른 시스템에 연결된 장치는 AIX 시스템에서 작성된 테이프를 읽을 수 없게 될 수 있습니다. AIX smit 프로그램을 사용하여 3 과정에서 설명한 것처럼 테이프 장치에 대한 테이프 블록 크기값을 확인하거나 변경하십시오. |
% bos listusers <machine name>
% su root Password: root_password
테이프 조정자 시스템이 AIX 시스템인 경우, 다음 명령을 실행하여 테이프 장치의 테이프 블록 크기를 0으로 변경하십시오. 이것은 가변 블록 크기를 나타냅니다. 각 테이프 장치마다 이를 반복하십시오.
# chdev -l 'device_name' -a block_size='0'
여기서 device_name은 테이프 장치의 장치 이름입니다(예: /dev/rmt0h).
# ls /usr/afsws/etc
# mkdir /usr/afs # mkdir /usr/afs/backup
# chown admin_owner /usr/afs/backup # chown admin_owner /usr/afs/backup/tapeconfig # chgrp admin_group /usr/afs/backup # chgrp admin_group /usr/afs/backup/tapeconfig # chmod 774 /usr/afs/backup # chmod 664 /usr/afs/backup/tapeconfig
# backup addhost <tape machine name> [<TC port offset>]
여기서
% bos listusers <machine name>
% su root Password: root_password
테이프 조정자 시스템이 AIX 시스템인 경우, 다음 명령을 실행하여 테이프 장치의 테이프 블록 크기를 0으로 변경하십시오. 이것은 가변 블록 크기를 나타냅니다.
# chdev -l 'device_name' -a block_size='0'
# backup listhosts
여기서 listh는 listhosts에 대한 축약명입니다.
# backup addhost <tape machine name> [<TC port offset>]
% bos listusers <machine name>
% backup delhost <tape machine name> [<TC port offset>]
여기서
% backup listhosts
여기서
출력에서는 백업 데이터베이스에서 각각의 테이프 조정자 시스템 및 각각에 할당된 포트 오프셋 번호를 나열합니다. 포트 오프셋 번호가 표시된다고 해서 연관된 테이프 조정자가 실제로 실행중임을 의미하는 것은 아닙니다. 시스템 이름은 backup addhost 명령으로 지정했던 형식으로 나타납니다.
다음 예제 출력에서는 ABC 회사 셀의 백업 데이터베이스에서 정의된 테이프 조정자를 나열합니다.
% backup listhosts
Tape hosts:
Host backup1.abc.com, port offset 0
Host backup1.abc.com, port offset 2
Host backup2.abc.com, port offset 1
Host backup2.abc.com, port offset 3
백업 시스템은 개별 파일이 아닌 볼륨 레벨에서 데이터를 처리합니다. 백업 동작을 수행하기 전에 backup addvolset 명령을 사용하여 volume sets이라는 볼륨 그룹을 정의해야 합니다. 볼륨 세트 이름은 최대 31자까지 가능하며, 점(.) 이외의 모든 문자가 포함될 수 있지만, 셀에 있어 특별한 의미를 갖는 메타문자의 사용은 피하는 것이 좋습니다.
볼륨 세트를 작성한 다음, backup addvolentry 명령을 사용하여 하나 이상의 볼륨 항목을 놓으십시오. 이들은 위치(파일 서버 시스템 및 파티션)와 이름으로, 볼륨 세트에 속하는 볼륨을 정의합니다. 명령의 필수 -server 인수를 사용하여, 파티션을 지정하기 위한 관련 볼륨 및 필수 -partition 인수가 들어갈 파일 서버 시스템을 지정하십시오. 두 가지 유형의 값을 사용할 수 있습니다.
볼륨명(필수 -volume 인수)의 경우, 영숫자와 하나 이상의 메타문자를 조합하여 와일드 카드로 볼륨 이름의 파트 또는 모두를 지정하십시오. 볼륨 이름 필드에 다음의 메타문자를 사용할 수 있습니다.
대부분의 일반 표현식에서는 점 다음에 별표가 옵니다(.*). 이 표현식은 임의 길이의 문자열에 대응되며, 이는 점이 임의 문자에 대응되고, 별표는 그 문자의 임의 갯수를 의미하기 때문입니다. 이미 설명한 바와 같이, 파일 서버 및 볼륨 항목의 파티션 필드에서 수용할 수 있는 유일한 일반 표현식입니다. 볼륨 이름 필드에서, 독립적으로 사용되거나(이런 경우 VLDB에 나열된 모든 볼륨에 대응됩니다), 영숫자와 조합될 수 있습니다. 예를 들어 user.*\.backup 문자열은 user로 시작하고 .backup으로 끝나는 볼륨 이름에 대응됩니다.
대화식 모드에서 backup addvolentry 명령을 실행하는 것이 가장 간단합니다. 쉘 프롬프트에서 이 명령을 실행하려면, 일반 표현식이 들어있는 문자열을 큰 따옴표(" ")로 묶어 쉘이 이 문자열을 해석하지 않고 해석되지 않은 채로 backup 명령 해석기에 전달할 수 있도록 합니다.
다양한 볼륨 조합을 정의하려면, backup addvolentry 명령의 3개 인수에 대해 다음 유형의 값들을 제공하십시오. 목록에서는 대화식 모드에 적합한 표기법을 사용합니다. 대신 쉘 프롬프트에서 명령을 실행하는 경우, 일반 표현식이 들어있는 문자열을 큰 따옴표로 묶으십시오. 포함되는 볼륨 항목과 작성 방법은 다음과 같습니다.
볼륨 세트를 작성하고 난 뒤, 같은 시간(예를 들면 주 또는 일)에 같은 테이프로, 같은 방식(전체 또는 증분)으로 덤프하려는 볼륨 그룹을 정의하십시오. 일반적으로, 내용이 비슷한 볼륨이 들어있는 볼륨 세트(비슷한 이름으로 표시됨)는 공통 위치를 공유하는 볼륨을 포함하는 볼륨 세트보다 훨씬 유용합니다. 특히 로드 균형 또는 공간상의 이유로 볼륨을 자주 이동해야 하는 경우 해당됩니다. backup addvolentry 명령에서 -server 및 -partition 인수에 대해 일반 표현식 .*(점 다음 역슬래쉬)를 사용하는 것이 좋습니다.
일반적으로 볼륨 항목에 제한된 수의 볼륨을 포함하는 것이 효율적입니다. 많은 수의 볼륨이 들어있는 볼륨 세트를 덤프하려면 시간이 오래 소요될 수 있으며, 서비스 중단 또는 부족으로 인한 동작 장애의 가능성이 늘어납니다.
볼륨 세트에서 볼륨 항목을 제거하려면, backup delvolentry 명령을 사용하십시오. 백업 데이터베이스에서 볼륨 세트 및 구성요소 볼륨 항목 모두를 제거하려면, backup delvolset 명령을 사용하십시오. 볼륨 세트에 있는 볼륨 항목들을 표시하려면, backup listvolsets 명령을 사용하십시오.
기본적으로, 새로운 볼륨 세트에 대한 백업 데이터베이스 레코드가 작성됩니다. 때때로 백업 데이터베이스에서 볼륨 세트들을 영구적으로 기록하지 않고 기록하는 것이 편리합니다. 예를 들어 backup volsetrestore 명령을 사용하여 함께 백업하지 않아도 되는 볼륨 그룹들을 복원하는 경우(자세한 설명은 backup volsetrestore 명령 사용 내용 참조). 임시 볼륨 세트를 작성하려면, -temporary 플래그를 backup addvolset 명령에 넣으십시오. 임시 볼륨 세트는 현재 대화식 세션이 수행되는 동안에만 존재하므로, 플래그는 대화식 세션 동안(backup(대화식) 명령을 실행하여 세션을 열어) 사용될 경우에만 유효합니다. backup delvolset 명령을 사용하여 대화식 세션을 종류하기 전에 임시 볼륨 세트를 삭제할 수 있습니다. 원하면 세션을 종료할 때 자동으로 삭제할 수도 있습니다. 임시 볼륨 세트의 장점 중 하나는 backup addvolset 명령과, 이후 볼륨 항목을 추가하는 데 사용되는 backup addvolentry 명령들이 일반 볼륨 세트의 경우보다 빠르게 수행되는 것으로, 이는 백업 데이터베이스 레코드를 작성하지 않기 때문입니다.
% bos listusers <machine name>
% backup
backup> addvolset <volume set name> [-temporary]
여기서
% bos listusers <machine name>
% backup
backup>
addvolentry -name <volume set name> \
-server <machine name> \
-partition <partition name> \
-volumes <volume name (regular expression)>
여기서
% backup listvolsets [<volume set name>]
여기서
명령의 출력에서는 볼륨 항목이 작성될 때 사용되었던 와일드 카드 표시를 사용합니다. 문자열 (temporary)는 임시 볼륨 세트를 나타냅니다. 다음 예에서는 셀의 백업 데이터베이스에서 정의된 볼륨 세트 3가지 모두와, 현재 대화식 세션에서 작성한 임시 볼륨 세트 pat+jones를 표시합니다.
backup> listv
Volume set pat+jones (temporary):
Entry 1: server fs1.abc.com, partition /vicepe, volumes: user.pat.backup
Entry 2: server fs5.abc.com, partition /viceph, volumes: user.jones.backup
Volume set user:
Entry 1: server .*, partition .*, volumes: user.*\.backup
Volume set sun:
Entry 1: server .*, partition .*, volumes: sun4x_55\..*
Entry 2: server .*, partition .*, volumes: sun4x_56\..*
Volume set rs:
Entry 1: server .*, partition .*, volumes: rs_aix42\..*
% bos listusers <machine name>
% backup delvolset <volume set name>+
여기서
% bos listusers <machine name>
% backup
backup> listvolsets <volume set name>
여기서
backup> delvolentry <volume set name> <volume entry index>
여기서
덤프 계층은 전체 덤프와 증분 덤프간의 관계를 정의하는, 백업 데이터베이스내의 논리 구조입니다. 즉, 어느 덤프가 증분 덤프의 상위 덤프로서 제공되는 지를 정의합니다. 계층의 각 구성요소들은 덤프 레벨입니다.
backup adddump 명령으로 덤프 레벨을 정의하므로, 다음 규칙과 제안을 기억해야 합니다.
다음 예에서는 3개의 계층을 보여줍니다. 각각은 맨 위에서 전체 덤프로 시작됩니다. 첫번째 계층의 sunday1, 두 번째 계층의 sunday2, 세 번째 계층의 sunday_bin. 3가지 모든 계층에서, 기타 덤프 레벨 각각은 증분 레벨입니다.
/sunday1
/monday
/tuesday
/wednesday
/thursday
/friday
/sunday2
/monday
/tuesday
/wednesday
/thursday
/friday
/sunday_bin
/monday
/wednesday
/friday
첫번째 계층에서, 각 증분 덤프 레벨은 그 상위 레벨로서 전체 레벨 /sunday1을 참조합니다. 예를 들어 /sunday1/wednesday 레벨에서 볼륨 세트를 덤프할 때, /sunday1 레벨에서 볼륨 세트가 덤프된 이후 변경되었던 데이터가 포함됩니다.
반대로, 두 번째 계층에 있는 각각의 증분 덤프 레벨은 그 상위 레벨로서 바로 앞 덤프 레벨입니다. 두 번째 계층(/sunday2/monday/tuesday/wednesday)에 있는 해당 레벨에서 볼륨 세트를 덤프할 때, 덤프 세트가 /sunday2/monday/tuesday 레벨(전날로 가정함)에서 볼륨 세트가 덤프되었던 이후 변경된 데이터만이 포함됩니다. 표시된 날짜에 덤프를 작성했다고 가정하면, 이 계층을 사용하여 작성한 증분 덤프에는 첫번째 계층에 있는 해당 레벨에서 작성한 증분 덤프보다 적은 데이터가 들어갑니다.
세 번째 계층은 데이터가 자주 변경되지 않으므로 매일 백업이 필요없는 볼륨 덤프에 적합합니다(예를 들면 시스템 2진 파일).
셀이 대부분의 셀과 유사하면, 백업 테이프를 저장하기 위한 공간도 제한되고 새로운 테이프에 대한 예산도 제한이 있습니다. 가장 쉬운 방법은 테이프에 있는 백업 데이터가 더 이상 필요하지 않을 때 이들을 겹쳐쓰기하여 테이프를 다시 사용하는 것입니다. 백업 시스템은 사용자가 만기 날짜를 각각의 덤프 레벨과 연관시키도록 함으로써 재사용 스케줄을 구현하는 데 도움이 됩니다. 만기 날짜는 해당 레벨에서 작성된 덤프가 종료되는 시기를 정의합니다. 해당 시간까지는 백업 시스템이 덤프가 들어있는 테이프를 겹쳐쓰기하지 않습니다. 그러므로 만기 날짜를 지정하면 자동으로 테이프 재사용 빈도가 결정됩니다.
테이프 재사용 스케줄을 설계할 때, 과거의 기간과 데이터를 백업하도록 액세스를 허용하려는 밀도를 결정해야 합니다. 예를 들어 사용자의 홈 볼륨을 최근 2주내의 어느 날짜 상태로 복원할 수 있도록 허용하려는 경우 , 이 덤프를 작성한 뒤 적어도 2주 동안 지정된 일일 덤프가 들어있는 테이프는 재사용할 수 없습니다. 이와 같이 홈 볼륨을 지난달의 지정된 주초 상태로 복원할 수 있도록 허용하려면, 최근 4주동안 주 덤프가 들어있는 덤프 세트에서 테이프들을 재사용할 수 없습니다. 다음 예 덤프 계층은 일일 증분 덤프의 만기 날짜에 13일을, 주별 전체 덤프의 만기 날짜에 27일을 설정하여 이 재사용 스케줄을 구현합니다.
/sunday1 계층의 일일 증분 레벨에서 작성된 덤프를 저장하는 데 사용된 테이프들은 /sunday3 계층에 있는 일일 덤프용으로 재사용되는 시기에 맞추어 만기되며, /sunday2와 /sunday4 계층도 유사한 관계가 있습니다. 이처럼, /sunday1 레벨의 전체 덤프가 들어잇는 테이프는 다음 달 첫번째 일요일의 전체 덤프용으로 사용되는 시기에 맞추어 만기됩니다.
/sunday1 expires in 27d
/monday1 expires in 13d
/tuesday1 expires in 13d
/wednesday1 expires in 13d
/thursday1 expires in 13d
/friday1 expires in 13d
/sunday2 expires in 27d
/monday2 expires in 13d
/tuesday2 expires in 13d
/wednesday2 expires in 13d
/thursday2 expires in 13d
/friday2 expires in 13d
/sunday3 expires in 27d
/monday1 expires in 13d
/tuesday1 expires in 13d
/wednesday1 expires in 13d
/thursday1 expires in 13d
/friday1 expires in 13d
/sunday4 expires in 27d
/monday2 expires in 13d
/tuesday2 expires in 13d
/wednesday2 expires in 13d
/thursday2 expires in 13d
/friday2 expires in 13d
셀에서 추가된 덤프를 사용하는 경우, 덤프 세트에 있는 모든 덤프는 대표 덤프와 연관된 최후(마지막) 만기 날짜를 갖기 쉽습니다. 모든 덤프들이 만기 날짜에 도달할 때 까지 덤프 세트가 들어있는 어떤 테이프도 재사용할 수 없습니다. 기존 덤프 세트로 덤프 추가의 내용을 참조하십시오.
대부분의 테이프 제조업체에서는 테이프를 제한된 횟수만큼 기록하도록 권장하므로, 테이프를 재사용할 때 이 한계를 초과하지 않는 것이 좋습니다. 테이프 이용 정도를 추적하는 데 도움을 주기 위해, 백업 시스템은 테이프 레이블에 useCount 계수를 기록합니다. 테이프 레이블이 다시 기록될 때 마다(backup labeltape 또는 backup dump 명령을 사용할 때 마다) 계수를 증가시킵니다. useCount 계수를 표시하려면, backup readlabel이나 backup scantape 명령을 사용하고, 아니면 backup dumpinfo 명령을 실행할 때 -id 및 -verbose 옵션을 넣으십시오. 명령에 대해서는 테이프 레이블 기록 및 읽기 또는 백업 덤프 레코드 표시의 내용을 참조하십시오.
테이프를 여러번 재사용한 경우라도, 장기간(또는 무한대로) 보존해야 하는 백업 데이터가 있을 수 있습니다. 백업 시스템을 사용하여 일반 스케줄로 데이터를 보존할 수 있으며, 이전에 재사용할 것으로 예상했던 테이프에서 데이터를 보존하도록 선택할 수도 있습니다.
일반 기준으로 데이터를 보존하려는 경우, 덤프 계층에서 날짜별 덤프 레벨을 작성할 수 있습니다. 예를 들어 2000년 각 분기초에 셀에 있는 모든 데이터의 전체 덤프를 보존하도록 하려면, 덤프 계층에서 다음 레벨을 정의할 수 있습니다.
/1Q2000 /2Q2000 /3Q2000 /4Q2000
이전에 재사용하도록 계획했던 테이프에 들어있는 데이터를 보존하려면, 전체와 증분 모두를 포함하여 관련 덤프가 들어있는 모든 테이프들을 수집해야 합니다. 갑작스런 삭제를 예방하기 위해, 테이프를 보존 저장영역에 두기 전에 읽기 전용으로 만드는 스위치를 온으로 설정하는 것이 좋습니다. 테이프에 보존하고 싶지 않은 기타 데이터가 많은 경우, 관련 데이터만을 새로운 임시 볼륨에 복원하고, 그 볼륨을 가능한 최소 갯수의 테이프로 백업할 수 있습니다. 덤프 세트를 소형으로 보존하는 이유는 덤프 세트에서 보존하지 않아도 되는 필요없는 데이터의 양을 최소화하기 위한 것입니다.
보존된 데이터를 파일 시스템으로 복원할 것 같지 않으면, backup deletedump 명령을 사용하여 백업 데이터베이스에서 연관된 덤프 레코드들을 제거하도록 고려할 수 있습니다. 이것은 백업 데이터베이스를 효율적인 크기로 보존하는 데 도움이 됩니다. 데이터를 복원해야 하는 경우는 backup scantape 명령에서 -dbadd 플래그를 사용하여 덤프 레코드를 데이터베이스에 다시 삽입할 수도 있습니다. 명령에 대해서는 테이프 내용 검색하기의 내용을 참조하십시오.
만기 날짜를 사용자가 작성한 덤프 레벨과 연관시키려면, backup adddump 명령에서 -expires 인수를 사용하십시오. 기본 덤프 레벨의 만기 날짜를 변경하려면, backup setexp 명령에 대해 -expires 인수를 사용하십시오(이미 그 레벨에서 작성된 실제 덤프의 만기 날짜를 변경할 수는 없음을 기억하십시오). 이 명령들을 사용하면 절대 조건(예를 들면 2000년 1월 13일)으로 또는 상대 조건(예를 들면 덤프가 작성된 때부터 30일간)으로 만기 날짜를 정의할 수 있습니다.
[at] mm/dd/yyyy [hh:MM]
여기서 덤프가 만기되는 mm은 월, dd는 일, yyyy는 년을 나타냅니다. 년에 대해 유효한 값은 1970 - 2037 범위내에 있습니다(UNIX 시계에서 표현할 수 있는 마지막 값은 2038년 초입니다). 시간을 입력하는 경우, 24시 형식이어야 하며 hh는 시간, MM은 분입니다(예를 들어 21:50은 오후 9:50임). 시간을 생략하는 경우, 기본값은 표시된 날짜의 00:00(12시 자정)입니다.
[in] [yearsy] [monthsm] [daysd]
여기서 years, months 및 days 각 값은 정수입니다. 해당 단위 문자와 함께 이들 중 적어도 하나를 입력하십시오(y, m 또는 d 각각). 중간에 공백은 허용되지 않습니다. 3개 중 하나 이상이 제공되면, 표시된 순서로 이들을 나열하십시오.
백업 시스템은 표시된 상대값을 덤프 동작의 시작 시간에 추가하여 덤프의 실제 만기 날짜를 계산합니다. 예를 들어 연관된 만기 날짜 in 1y 6m 2d를 사용하여 만기 날짜 앞으로 1년 6개월 2일을 덤프 레벨에서 작성된 덤프에 지정합니다.
backup adddump 명령에서 -expires 인수를 생략하면, 만기 날짜는 UNIX 시간 0(00:00은 1970년 1월 1일임)으로 설정됩니다. 백업 시스템은 그러한 덤프 레벨에서 작성된 덤프가 이 작성 시간에서 만기되는 것으로 간주합니다. 덤프 세트에 만기 날짜가 지정된 덤프가 없어도, 백업 시스템이 덤프 세트가 들어있는 테이프의 재사용을 제한하지는 않습니다. 덤프 세트가 들어있는 테이프의 재사용을 금지해야 하는 경우, 직접 추적 시스템을 사용해야 합니다.
% bos listusers <machine name>
% backup
backup> adddump -dump <dump level name>+ [-expires <expiration date>+]
여기서
덤프 레벨의 전체 경로 이름을 입력하고, 경로명에서 각 레벨 앞에 슬래쉬(/)를 입력하십시오. 각 구성요소 레벨은 최대 28자까지 가능하며, 경로명에는 슬래쉬를 포함하여 256자가 포함될 수 있습니다.
| 주: | 명령의 구문 명령문에서 이 인수 다음에는 플러스 기호가 오며, 이것은 다른 분리문자나 큰 따옴표로 묶지 않아도 되는 여러 단어 값을 사용할 수 있기 때문이며, 여러 날짜를 사용하기 때문은 아닙니다. -dump 인수에서 지정한 각각의 덤프 레벨과 연관될 하나의 날짜(및 선택적으로 시간) 정의만을 입력합니다. |
% bos listusers <machine name>
% backup
backup> setexp -dump <dump level name>+ [-expires <expiration date>+]
여기서
| 주: | 명령의 구문 명령문에서 이 인수 다음에는 플러스 기호가 오며, 이것은 다른 분리문자나 큰 따옴표로 묶지 않아도 되는 여러단어 값을 사용할 수 있기 때문이며, 여러 날짜를 사용하기 때문은 아닙니다. -dump 인수에서 지정한 각각의 덤프 레벨과 연관될 하나의 날짜(및 선택적으로 시간) 정의만을 입력합니다. |
% bos listusers <machine name>
% backup
backup> deldump <dump level name>
여기서
% backup listdumps
여기서 listd는 listdumps의 축약명입니다.
이 명령의 출력에서는 덤프 계층을 표시하여, 다음 예제에서처럼 각 덤프와 연관된 만기 날짜를 보고합니다.
% backup listdumps
/week1 expires in 27d
/tuesday expires in 13d
/thursday expires in 13d
/sunday expires in 13d
/tuesday expires in 13d
/thursday expires in 13d
/week3 expires in 27d
/tuesday expires in 13d
/thursday expires in 13d
/sunday expires in 13d
/tuesday expires in 13d
/thursday expires in 13d
sunday1 expires in 27d
/monday1 expires in 13d
/tuesday1 expires in 13d
/wednesday1 expires in 13d
/thursday1 expires in 13d
/friday1 expires in 13d
sunday2 expires in 27d
/monday2 expires in 13d
/tuesday2 expires in 13d
/wednesday2 expires in 13d
/thursday2 expires in 13d
/friday2 expires in 13d
sunday3 expires in 27d
/monday1 expires in 13d
/tuesday1 expires in 13d
/wednesday1 expires in 13d
/thursday1 expires in 13d
/friday1 expires in 13d
sunday4 expires in 27d
/monday2 expires in 13d
/tuesday2 expires in 13d
/wednesday2 expires in 13d
/thursday2 expires in 13d
/friday2 expires in 13d
덤프 이름과 테이프 이름 및 테이프 레이블, 덤프 레이블 및 EOF 표시자에서 설명한 바와 같이, 백업 시스템에서 사용하는 테이프에 AFS 테이프 이름이나 영구적 이름을 지정할 수 있습니다. 이름들은 테이프 용량 표시와 함께 테이프의 마그네틱 레이블에 기록됩니다.
영속적 이름이나 AFS 테이프 이름 중 모두가 아닌 하나만을 지정할 수 있습니다. 일반적으로, AFS 테이프 이름이 아닌 영구적 이름을 지정하면 백업 프로세스가 단순화되며, 이는 백업 시스템이 영구적 이름의 형식을 설명하지 않기 때문입니다. 테이프에 영구적 이름이 없는 경우, 기본적으로 백업 시스템은 AFS 테이프 이름 필드에서 확실하게 정의된 3개의 값만을 사용하고, AFS 테이프 이름이 적합하지 않은 테이프로의 덤프는 거부합니다. 사용할 수 있는 값들은 초기 덤프의 볼륨 세트 및 덤프 레벨과 대응되는 이름, <NULL> 값, 필드에 값이 없음입니다.
테이프에 영구적 이름이 있는 경우, 백업 시스템은 AFS 테이프 이름을 점검하지 않으며, 덤프 동작의 일부로서 해당 AFS 테이프 이름 자체를 생성하고 이를 레이블에 기록합니다. 이것은 영구적 이름을 지정할 경우, 백업 시스템이 AFS 테이프 이름 자체를 지정하고, 테이프에 AFS 테이프 이름과 영구적 이름 모두를 갖게 됨을 의미합니다. 반대로, 테이프에 AFS 테이프 이름은 있지만 영구적 이름은 없는 경우 먼저 AFS 테이프 이름을 지우지 않으면 영구적 이름을 지정할 수 없습니다.
(영구적 이름이 없는 경우라도 장치 구성 파일에서 NAME_CHECK 명령문에 NO 값을 지정하여 백업 시스템이 테이프의 AFS 테이프 이름을 점검하지 못하도록 할 수도 있습니다. AFS 테이프 이름 체크 삭제의 내용을 참조하십시오.)
백업 시스템은 레이블이 지정되지 않은 테이프를 사용하므로, 처음 테이프를 사용하기 전에 먼저 테이프에 레이블을 지정할 필요는 없습니다. 처음 사용한 뒤, 덤프를 테이프에 기록하기 위해 테이프에 레이블을 다시 기록해야 하는 경우가 있습니다.
| 주: | 덤프 데이터가 들어있는 테이프에 레이블을 지정하면 복원 동작시 그 데이터를 사용할 수 없게 됩니다. 이는 레이블 지정 동작이 백업 데이터베이스에서 덤프의 레코드들을 삭제하기 때문입니다. 테이프 레이블에 영구적 이름을 기록하려면, 테이프로 데이터를 덤프하기 전에 이를 수행해야 합니다. |
테이프의 레이블에 영구적 이름을 기록하려면, -pname 인수를 포함시켜 최대 32자의 문자열을 지정하십시오. 셀에서 백업 시스템과 함께 사용된 다른 테이프 중에는 사용자가 지정한 영구적 이름을 가진 테이프가 없습니다. 이는 백업 시스템이 같은 이름을 여러 테이프에 지정하지 못하도록 하지 않기 때문입니다. 백업 시스템은 기존의 AFS 테이프 이름을 <NULL> 값으로 겹쳐쓰기합니다. 테이프에 영구적 이름이 있는 경우, 백업 시스템은 대부분의 프롬프트에서 그리고 backup 명령의 출력에서 테이프를 말할 때 AFS 테이프 이름 대신 이 영구적 이름을 사용합니다. 영구적 이름은 -pname 인수를 backup labeltape 명령에 다시 포함시킬 때 까지 지속되며, 테이프 내용과 테이프 재사용 빈도 또는 backup labeltape 명령을 -pname 인수없이 사용하는 빈도에 관계없이 지속됩니다.
레이블에 AFS 테이프 이름을 기록하려면, 테이프로 기록하려는 초기 덤프의 덤프 레벨 경로명에서 볼륨 세트명과 최종 구성요소에 대응하는 -name 인수값과, 덤프 세트에 대한 일련의 테이프에서 테이프 위치를 나타내는 색인을 입력하십시오. 형식은 다음과 같습니다.
volume_set_name.dump_level_name.tape_index
-name 인수를 생략하면, 백업 시스템은 AFS 테이프 이름을 <NULL>로 설정합니다. 백업 시스템은 backup dump 또는 backup savedb 명령을 사용하여 나중에 테이프로 초기 덤프를 기록할 때 적합한 이름을 자동으로 생성하고 기록합니다.
테이프이 이미 영구적 이름이 있으면 -name 인수를 사용할 수 없습니다. 테이프의 영구적 이름을 지우려면, 다음 명령을 실행하여 -pname 인수에 널 값을 입력하십시오.
% backup labeltape -pname ""
레이블에 테이프 용량을 기록하려면, -size 인수로서 킬로바이트 수를 지정하십시오. 테이프에 레이블을 처음으로 지정할 때 이 인수를 생략하면, 백업 시스템은 테이프 조정자 시스템에 /usr/afs/backup/tapeconfig 파일에서 지정된 포트 오프셋과 연관된 기본 테이프 용량을 기록합니다. 테이프 용량이 tapeconfig 파일에서 기록된 용량과 다른 경우(특히 큰 경우), 테이프를 사용하기 전에 레이블에 용량을 기록하는 것이 좋습니다. 한번 설정되면, 사용자가 -size 인수를 backup labeltape 명령에서 다시 사용할 때까지 레이블의 용량 필드 값은 계속됩니다. 테이프 레코드의 적합한 용량에 대해서는 tapeconfig 파일 구성의 내용을 참조하십시오.
테이프 레이블을 읽으려면 backup readlabel 명령을 사용하십시오.
대부분의 테이프에는 외부 포장에 적용할 수 있는 접착 레이블이 있습니다. 테이프를 쉽게 식별할 수 있도록 하려면, 접착 레이블에 최소한 테이프의 영구적 이름과 AFS 테이프 이름을 기록하십시오. 사용할 재사용 설계에 따라, 덤프 ID, 덤프 작성 날짜, 테이프에 기록할 각 덤프의 만기 날짜와 같은 다른 정보를 기록하는 것이 유용할 수 있습니다.
% bos listusers <machine name>
% butc [<port offset>] [-noautoquery]
% backup
backup> labeltape [-name <tape name, defaults to NULL>] \
[-size <tape size in Kbytes, defaults to size in tapeconfig>] \
[-portoffset <TC port offset>]
[-pname <permanent tape name>]
여기서
volume_set_name.dump_level_name.tape_index
backup dump 동작에 테이프가 사용될 수 있도록 하십시오. volume_set_name은 테이프에 기록될 초기 덤프의 볼륨 세트명과 대응되어야 하며, dump_level_name은 볼륨 세트가 덤프될 덤프 레벨 경로명의 마지막 구성요소에 대응되어야 하며, tape_index는 덤프 세트가 들어있는 일련의 테이프에서 테이프 위치를 정확하게 나타내어야 합니다. 색인은 숫자 1에서 부터 시작됩니다.
값을 입력하면, 이것은 뒤에 단위를 나타내는 문자가 오는 정수값이며, 중간에 공백은 허용되지 않습니다. 단위 값 k 또는 K는 킬로바이트를, m 또는 M은 메가바이트를, g 또는 G는 기가바이트를 나타냅니다. 단위 문자를 생략하면, 기본값은 킬로바이트입니다.
이 인수나 -name 인수 중 하나만을 포함하십시오. 이 인수를 제공하면, AFS 테이프 이름이 <NULL>로 설정됩니다. 이 인수를 생략하면, 기존의 영구적 이름이 유지됩니다.
% bos listusers <machine name>
% butc [<port offset>] [-noautoquery]
% backup
backup> readlabel [<TC port offset>]
여기서
테이프 레이블에 대한 정보는 backup 명령 창과 테이프 조정자 창 모두에 나타납니다. 명령 창에 있는 출력의 형식은 다음과 같습니다.
Tape read was labelled: tape_name (initial_dump_ID)
size: size KBytes
여기서 tape_name은 테이프의 영구적 이름(있는 경우) 또는 AFS 테이프 이름이며, initial_dump_ID는 테이프에 있는 초기 덤프의 덤프 ID이며, size는 레이블에 기록된 킬로바이트 단위의 용량입니다.
테이프 조정자 창에 있는 정보는 좀 더 확장가능합니다. 테이프의 영구적 이름은 tape name 필드에, 그 AFS 테이프 이름은 AFS tape name 필드에 나타납니다. 어느 이름이든 정의되지 않으면, <NULL> 값이 필드에 대신 나타납니다. 레이블에 기록된 용량은 size 필드에 나타납니다. 출력에 있는 다른 필드들은 테이프에 있는 초기 덤프의 작성 시기, 덤프 레벨 이름 및 덤프 ID(creationTime, dump path 및 dump id 각각)를 보고합니다. cell 필드에서는 덤프 동작이 수행되는 셀을 알려주고, useCount 필드에서는 backup labeltape 명령을 사용하여 또는 덤프 동작중에 테이프에 레이블이 재지정된 횟수를 알려줍니다. 자세한 내용은 AFS Administration Reference에 있는 명령의 참조 페이지를 참조하십시오.
테이프에 레이블이 없거나 드라이브가 비어 있는 경우, 명령 쉘에 다음 메시지가 나타납니다.
Failed to read tape label.
다음 예에서는 포트 오프셋이 1인 장치에서 테이프에 대한 명령 쉘의 출력을 설명합니다.
% backup readlabel 1
Tape read was labelled: monthly_guest (917860000)
size: 2150000 KBytes
다음 출력은 테이프 조정자 창에 동시에 나타납니다.
Tape label ---------- tape name = monthly_guest AFS tape name = guests.monthly.3 creationTime = Mon Feb 1 04:06:40 1999 cell = abc.com size = 2150000 Kbytes dump path = /monthly dump id = 917860000 useCount = 44 -- End of tape label --
백업 시스템에는 셀에서 백업 프로세스를 자동화하고 이를 보다 효율적으로 만드는 여러 선택적 기능들이 있습니다. 여러 기능들을 혼합하면 대부분의 경우 간섭을 최소한으로 줄이고 볼륨 데이터를 테이프에 덤프할 수 있습니다. 이 많은 기능들을 이용시 장점은 자동화된 동작에 포함된 각 테이프 장치 각각에 대해 /usr/afs/backup 디렉토리에서 장치 구성 파일을 작성하는 것입니다. 장치 구성 파일 작성에 대한 일반 명령은 장치 구성 파일 작성의 내용을 참조하십시오. 다음 목록에서는 좀 더 세부적으로 각 기능에 대해 설명하는 절을 참조하도록 합니다.
장치 구성 파일에 포함되지 않은 백업 자동화 및 효율성을 증대시키는 두 가지 다른 방법이 있습니다.
백업 동작을 자동화시키는 많은 기능을 사용하려면, 장치를 구동시키는 테이프 조정자 시스템의 로컬 디스크에 있는 /usr/afs/backup 디렉토리에 각 테이프 장치에 대한 구성 파일을 작성하십시오. 파일 이름의 양식은 다음과 같습니다.
CFG_device_name
여기서 device_name은 테이프 장치 또는 백업 데이터 파일의 이름입니다(테이프 대신 파일로 덤프를 기록하는 방법에 대해서는 백업 데이터 파일로 데이터 덤프 참조).
테이프 장치의 경우, 초기 /dev/ 문자열에서 모든 UNIX 장치명에서 시작되는 문자열을 제거하고 이름에 있는 다른 슬래쉬를 밑줄로 대체하여 이름의 device_name 부분을 생성하십시오. 예를 들어 CFG_rmt_4m은 /dev/rmt/4m이라는 장치에 적합한 파일 이름입니다.
백업 데이터 파일의 경우, 초기 슬래쉬(/)를 제거하고 이름에 있는 다른 슬래쉬(/)를 밑줄로 대체하여 device_name 부분을 생성하십시오. 예를 들어 CFG_var_tmp_FILE은 /var/tmp/FILE이라는 백업 데이터 파일에 적합한 파일 이름입니다.
장치 구성 파일 작성은 선택적입니다. 파일에서 제공하는 이들 기능을 이용하지 않으려면, 작성하지 않아도 됩니다.
장치 구성 파일에 임의 순서대로 다음 명령문 중 하나를 포함시킬 수 있습니다. 모두는 선택적입니다. 자신의 행에 각 명령문을 놓지만, 명령문내에 신규행(<Return>) 문자를 놓지는 마십시오.
테이프 스태커나 주크 박스는 사람이 일부러 작동시키지 않아도 동작되는 동안 여러 테이프를 호출할 수 있으므로 백업 동작을 자동화하는 데 도움이 됩니다. 이 기능을 이용하려면, 스태커나 주크 박스용으로 기록하는 장치 구성 파일에 MOUNT 및 선택적으로 UNMOUNT 명령문을 삽입하십시오. 명령의 구문은 다음과 같습니다.
MOUNT filename UNMOUNT filename
여기서 filename은 장치 제조업체에서 장치의 테이프 드라이브를 마운트하거나 마운트해제하기 위해 정의한 루틴을 호출하는 스크립트나 프로그램의 로컬 디스크에 있는 경로 이름입니다(편의를 위해, 다음 설명에서는 스크립트와 프로그램 모두에 대해 스크립트라는 용어를 사용합니다). 스크립트에는 주로 오류 상황을 처리하고, 백업 동작이 수행되는 지 여부에 따라 스크립트의 동작을 수정하는 추가 논리가 들어있습니다.
MOUNT 또는 UNMOUNT 명령문으로 다른 스크립트를 참조하거나, 마운트 및 마운트해제 루틴 모두를 호출하는 단일 스크립트를 참조할 수도 있습니다. 스크립트는 butc 명령 실행자에게 연관된 로컬 ID와 AFS 토큰을 계승합니다.
모든 테이프 장치에 대한 장치 구성 파일에 MOUNT 명령문을 포함해야 하지만, UNMOUNT 명령문은 장치 제조업체에서 제공하는 테이프 처리 루틴에 따라 그 필요 여부가 결정됩니다. 몇몇 장치 주로 스태커에는 테이프를 마운트하기 위한 하나의 단일 루틴이 있으며, 이것은 필요한 새 테이프의 삽입을 방해하는 테이프를 자동으로 마운트해제합니다. 이런 경우, UNMOUNT 명령은 필요없습니다. 마운트 및 마운트해제 루틴이 별도로 존재하는 장치의 경우, 테이프 조정자가 이에 대한 조작을 완료할 때 테이프를 제거하기 위해 UNMOUNT 명령문을 삽입해야 합니다. 그렇지 않으면 이후 MOUNT 명령문 실행이 오류로 실패합니다.
장치 구성 파일에 MOUNT 명령문이 들어있으면, 백업 동작을 수행하기 전에 스태커나 주크 박스에 필요한 테이프를 쌓아 두어야 합니다. 대부분의 주크 박스들은 테이프에 있는 외부 레이블(바코드와 같은)을 읽고 필요한 테이프를 탐색할 수 있지만, 대부분의 스태커들은 순서대로 테이프 사이를 전환하고 어떤 경우는 한 방향으로만 전환할 수 있습니다. 후자의 경우, 정확한 순서로 테이프를 쌓아야 합니다.
테이프 장치에 테이프들을 미리 쌓아둘 수 있또록 복원 동작에 필요한 테이프 목록을 구하려면, -n 플래그를 적합한 백업 명령(backup diskrestore, backup volrestore, 또는 backup volsetrestore)에 포함시키십시오. 덤프 동작의 경우, 보통 동작에 필요한 것보다 충분히 많은 테이프를 장치에 두는 것이 좋습니다. 영구적 이름이나 AFS 테이프 이름으로 테이프에 미리 레이블을 지정할 수 있지만, 이 이름들 모두를 지정할 필요는 없습니다. 덤프 동작용 테이프에 AFS 테이프 이름으로 레이블을 지정하는 경우, 테이프 색인 순으로 스태커로 테이프를 로드하는 것이 가장 간단합니다. 그러나, 영구적 테이프 이름으로 테이프에 미리 레이블을 지정하거나 레이블이 없는 테이프를 사용하는 것이 좀 더 간단할 수도 있습니다. 이런 경우, 백업 시스템은 덤프 동작중에 제대로 색인화된 AFS 테이프 이름을 생성하고 적용합니다.
butc 명령을 실행하여 제공된 테이프 장치에 대해 테이프 조정자를 시작할 경우, 테이프 조정자는 로컬 디스크에서 /usr/afs/backup/CFG_device_name 장치 구성 파일을 찾습니다. 여기서 device_name의 형식은 장치 구성 파일 작성에서 설명한 바와 같습니다. 파일이 있고 MOUNT 명령문이 들어있으면, 테이프 조정자에 테이프가 필요할 때 마다 명령문의 filename 인수가 지정한 스크립트를 실행합니다.
장치 구성 파일이 없거나 MOUNT 명령문이 들어있지 않으면, 테이프 조정자에 테이프가 필요할 때마다 운용자가 필요한 테이프를 삽입하도록 하는 프롬프트를 창에서 생성합니다. 테이프 조정자가 백업 동작을 계속하려면 운용자가 테이프를 넣고 <Return>을 눌러야 합니다.
그러나 장치 구성 파일에 있는 AUTOQUERY 명령문을 NO로 설정하거나 -noautoquery 플래그를 butc 명령에 삽입하여, 동작에 필요한 첫번째 테이프에 대한 테이프 조정자의 동작을 수정할 수도 있음을 기억하십시오. 이런 경우, 테이프 조정자는 MOUNT 명령문을 실행하지 않거나 동작 시작시 테이프에 대해 프롬프트를 표시하지 않습니다. 이는 드라이브에서 필요한 첫번째 테이프를 찾을 것으로 기대하기 때문입니다. 초기 테이프에서 탐색 또는 프롬프트 삭제를 참조하십시오.
장치 구성 파일에 UNMOUNT 명령문이 있으면, 테이프 조정자가 테이프 장치를 닫을 때 마다 명령문의 filename 인수에서 지정한 스크립트를 실행합니다. 스크립트를 한번만 실행하며, 장치에서 close 동작이 성공했는 지 여부에 관계없이 실행됩니다. 장치 구성 파일에 UNMOUNT 명령문이 없으면, 테이프 조정자는 아무런 조치도 수행하지 않습니다.
테이프 조정자가 MOUNT 스크립트를 실행할 때, 다음 순서대로 5개의 매개변수를 전달합니다. 스크립트에 있는 매개변수들을 사용하여 백업 동작시 발생할 수 있는 여러 상황에 대한 반응을 결정할 수 있습니다.
MOUNT 스크립트는 다음 종료 코드 중 하나를 리턴하여 테이프 조정자에게 테이프가 성공적으로 마운트되었는 지 여부를 알려주어야 합니다.
테이프 조정자가 UNMOUNT 스크립트를 실행할 때, 다음 순서로 두 개의 매개변수를 전달합니다.
다음 예 스크립트에서는 백업 시스템이 전달한 두 개의 매개변수(tries 및 operation)를 사용합니다. 이것은 tries 매개변수 값이 1보다 클 경우 종료하는 예제 다음에 옵니다. 1은 스태커에 테이프가 없음을 의미하기 때문입니다.
backup dump 또는 backup savedb 동작의 경우, 루틴은 스태커 제조업체에서 제공하는 예제 stackerCmd_NextTape 기능을 호출합니다. 파일에 있는 마지막 행은 운용자가 테이프를 삽입하도록 하는 종료 코드를 리턴하며, 이들 행들은 스태커가 테이프를 로드할 수 없거나 수행되는 동작이 파일에서 명시적으로 설명한 것 중 하나가 아닐 경우(예를 들어 복원 동작) 호출됨을 기억하십시오.
#! /bin/csh -f
set devicefile = $1
set operation = $2
set tries = $3
set tapename = $4
set tapeid = $5
set exit_continue = 0
set exit_abort = 1
set exit_interactive = 2
#--------------------------------------------
if (${tries} > 1) then
echo "Too many tries"
exit ${exit_interactive}
endif
if (${operation} == "unmount") then
echo "UnMount: Will leave tape in drive"
exit ${exit_continue}
endif
if ((${operation} == "dump") |\
(${operation} == "appenddump") |\
(${operation} == "savedb")) then
stackerCmd_NextTape ${devicefile}
if (${status} != 0)exit${exit_interactive}
echo "Will continue"
exit ${exit_continue}
endif
if ((${operation} == "labeltape") |\
(${operation} == "readlabel")) then
echo "Will continue"
exit ${exit_continue}
endif
echo "Prompt for tape"
exit ${exit_interactive}
기본적으로, 테이프 조정자는 해당 테이프 장치에 대한 장치 구성 파일을 읽어 백업 동작에 필요한 첫번째 테이프를 구합니다. 파일에 MOUNT 명령문이 있으면, 테이프 조정자는 참조되는 스크립트를 실행합니다. 장치 구성 파일이 없거나 여기에 MOUNT 명령문이 없는 경우, 테이프 조정자는 정확한 테이프를 삽입하고 <Return>을 누르도록 합니다.
동작에 테이프가 필요함을 알게 되면, backup 명령을 실행하기 전에 드라이브에 필요한 테이프를 놓고 테이프 조정자에게 초기 테이프 확보 과정을 건너뛰도록 알려줌으로써 효율성을 증가시킬 수 있습니다. 이것으로 동작은 보다 신속하게 시작되므로 테이프를 삽입하지 않아도 됩니다.
테이프 조정자의 초기 테이프 확보 단계를 통과하는 두 가지 방법이 있습니다.
운용자 주의가 필요한 오류 상황을 예방하려면, 드라이브에 놓은 테이프에 원하지 않는 덤프가 들어있지 않도록 하고 쓰기 보호되어 있지 않도록 해야 합니다. 테이프 레이블에 영구적 이름이 없는 상태에서 초기 덤프를 작성하는 경우, AFS 테이프 이름이 볼륨 세트 및 덤프 세트 이름과 대응되거나 아니면 <NULL>이 되도록 하십시오. 또는, AFS 테이프 이름 체크 삭제에서 설명한 것처럼 장치 구성 파일에 있는 NAME_CHECK 명령문에 NO 값을 지정하여 테이프 조정자의 이름 검증을 억제하십시오.
기본적으로, 테이프 조정자는 사용자에게 오류 상황이 발생했을 때의 반응 방법을 묻습니다. 프롬프트를 억제하고 테이프 조정자가 미리 결정된 방식으로 오류를 처리하도록 하려면, 장치 구성 파일에 ASK NO 명령문을 삽입하십시오. YES 값을 지정하거나 ASK 명령문을 완전히 생략한 경우, 테이프 조정자는 오류 중 하나가 발생했을 때에 대한 지침을 입력하도록 합니다.
다음 목록에서는 오류 환경과, 이에 대한 테이프 조정자의 반응에 대해 대해 설명합니다.
테이프에 영구적 이름이 없는 상태에서 초기 덤프를 기록하는 경우, 기본적으로 백업 시스템은 테이프의 AFS 테이프 이름이 수용할 수 있는 것인 지 여부를 확인합니다. 3가지 유형의 값을 승인합니다.
이름 확인을 통과하려면, 장치 구성 파일에 NAME_CHECK NO 명령문을 삽입하십시오. 그러면 테이프에 있는 모든 덤프가 만기되는 동안 처음 레이블을 다시 지정하지 않고도 테이프를 다시 사용할 수 있습니다(테이프에 만기되지 않은 덤프가 있지만 이 테이프를 다시 사용하려는 경우, backup labeltape 명령을 사용하여 레이블을 다시 지정해야 합니다. 이렇게 하려면, ASK NO 명령문이 장치 구성 파일에 나타날 수 없습니다).
기본적으로, 테이프 조정자는 덤프 동작중에 16KB 메모리 버퍼를 사용합니다. 볼륨 서버로부터 볼륨 데이터를 수신하므로, 테이프 조정자는 16KB 전체를 테이프 장치로 전송하기 전에 버퍼에서 데이터 16KB를 수집합니다. 이와 유사하게, 복원 작업중에 테이프 조정자는 파일 시스템으로의 복원을 위해 32KB 전체를 볼륨 서버로 전송하기 전에 테이프 장치에서 기본적으로 32KB 데이터를 버퍼화합니다. 버퍼링으로 인해 테이프 장치와의 데이터 볼륨 이동이 좀 더 빈번해지므로 테이프 스트림화가 증진됩니다. 이것은 테이프 장치가 동작하는 가장 효과적인 방법입니다.
표준 네트워크 구성에서, 기본 버퍼 크기는 주로 테이프 스트림화를 촉진하기에 충분히 큽니다. 테이프 조정자 시스템과 파일 서버 시스템 사이의 네트워크 속도가 느린 경우, 버퍼 크기를 증가시키는 것이 도움이 될 수 있습니다.
사용자 구성을 위해 버퍼 크기를 변경하는 것이 유용한 지 여부를 결정하려면, 스트림화되었는 지 테이프 장치를 관찰하고, 그렇지 않으면 제조업체에 문의하십시오. 버퍼 크기를 설정하려면, 장치 구성 파일에 BUFFERSIZE 문을 포함하십시오. 다음 형식으로 된 정수값과 선택적인 단위값을 사용합니다.
BUFFERSIZE size[{k | K | m | M | g | G}]
여기서 size는 덤프와 복원 동작을 수행하는 동안 버퍼로서 사용하기 위해 테이프 조정자가 할당한 메모리 양을 지정합니다. 기본 단위는 바이트이지만, 킬로바이트를 지정하려면 k 또는 K, 메가바이트는 m 또는 M, 기가바이트는 g 또는 G를 사용하십시오. size 값과 단위 문자 사이에는 공백이 없습니다.
테이프 대신 백업 데이터 파일로 덤프를 기록할 수 있습니다. 이것은 예를 들어 계층적 기억영역 관리(HSM) 시스템과 같은 데이터 보존 시스템으로 데이터를 전송하는 경우 유용할 수 있습니다. 이 시스템은 AFS 및 백업 시스템과 함께 사용합니다. 백업 데이터 파일에서 파일 시스템으로도 데이터를 복원할 수 있습니다. 백업 데이터 파일을 사용하는 것은 여러 볼륨에 대해 동등한 vos dump 및 vos restore 명령을 실행하는 것보다 효과적입니다.
테이프 조정자 시스템의 로컬 디스크에 있는 경우 백업 데이터 파일로 기록하는 것이 가장 간단하지만, 원격 시스템에 있는 NFS 마운트 파티션으로 파일을 기록할 수도 있습니다. AFS에서는 파일에 작성할 수도 있으며, 상위 디렉토리에 있는 액세스 제어 목록(ACL)에 필요한 권한을 허용할 수 있지만, AFS 데이터에서 AFS 자체로 다시 백업하는 것이 다소 순환적일 수 있습니다.
테이프 조정자가 백업 데이터 파일로 덤프를 기록할 때 백업 데이터 파일이 없으면, 이 파일을 작성합니다. 복원 동작을 수행하려면, 파일이 있어야 하고 backup dump 동작 도중 이전에 파일로 기록했던 볼륨 데이터가 들어 있어야 합니다.
백업 데이터 파일로 기록할 때, 테이프 조정자는 16KB 오프셋으로 데이터를 기록합니다. 제공된 데이터 블록(볼륨 시작 또는 끝에 신호를 지정하는 표시자와 같은)이 16KB 전체를 채우지 않으면, 테이프 조정자는 다음 블록을 기록하기 전에 다음 오프셋으로 건너뜁니다. -id 옵션으로 실행된 backup dumpinfo 명령 출력에서, Pos 컬럼 값은 볼륨 데이터가 시작되는 16KB 단위의 서수이고 테이프로 덤프하기 위한 것이므로 보통 이전 행에 있는 위치 번호보다 하나 더 큰 것은 아닙니다.
백업 데이터 파일로 기록하기 위해, 테이프 장치인 것처럼 파일을 구성해야 합니다.
| 주: | 테이프 장치 이름 대신 파일 경로 이름은 FILE YES 명령문이 장치 구성 파일에 나타날 때 /usr/afs/backup/tapeconfig 파일의 세 번째 필드에 표시되어야 하며, 반대의 경우도 해당됩니다. tapeconfig 파일이 대신 테이프 장치를 참조할 때, 덤프 동작이 성공한 것으로 표시되지만 동작하지는 않습니다. FILE 명령문이 YES로 설정되어 있는 동안은 갑자기 테이프 장치로 덤프될 때 데이터를 복원할 수 없습니다. 같은 방식으로 FILE 명령문이 NO로 설정되어 있으면, tapeconfig 항목은 실제 테이프 장치를 참조해야 합니다. |
% bos listusers <machine name>
% su root Password: root_password
# backup
backup> listhosts
테이프 장치에서 처럼, 사용할 수 있는 값은 0 - 58510 이내의 정수입니다(백업 시스템은 최대 58,511개의 포트 오프셋 번호를 추적할 수 있습니다). 각 포트 오프셋은 셀 내에서 고유해야 하지만, 임의 번호를 단일 테이프 조정자 시스템과 연관시킬 수 있습니다. 포트 오프셋 번호들을 연속적으로 지정할 필요는 없습니다.
backup> addhost <tape machine name> [<TC port offset>]
여기서
[capacity filemark_size] device_name port_offset
여기서
단위를 나타내는 문자가 뒤에 오는 숫자값을 지정하십시오. 중간에 공백은 허용되지 않습니다. 문자 k 또는 K는 킬로바이트를, m 또는 M은 메가바이트를, g 또는 G는 기가바이트를 나타냅니다. 단위 문자를 생략하면, 기본값은 킬로 바이트입니다. 이 필드가 비어있으면, 테이프 조정자는 수용할 수 있는 최대 값(2048 GB 또는 2TB)을 사용합니다. 그런 경우 filemark_size 필드를 비워 두십시오.
이 필드 이름이 실제 파일로서 명명되면, 파티션에서 공간이 없어질 때 복구할 수 없습니다. 동작 중에는 tapeconfig 파일을 변경할 수 없습니다.
6 단계에서 tapeconfig 파일에 기록된 장치 이름을 근거로 이름의 device_name 부분을 생성하십시오. 권장한 대로 기호 연결 이름을 기록했으면, /dev/ 문자열을 제거하고 이름에 있는 다른 슬래쉬(/)들을 밑줄(_)로 대체하십시오. 예를 들어, CFG_FILE은 기호 연결이 /dev/FILE인 경우 적합한 이름입니다. 실제 파일의 이름을 기록했으면, 앞에 있는 슬래쉬 만을 제거하고 이름에 있는 다른 슬래쉬들을 밑줄로 대체하십시오. /var/tmp/FILE 백업 데이터 파일의 경우, 적합한 장치 구성 파일 이름은 CFG_var_tmp_FILE입니다.
백업 데이터 파일 자체를 작성할 필요는 없습니다. 이는 덤프 동작이 수행될 때 파일이 없으면 테이프 조정자가 이를 수행하기 때문입니다.
다음 예 스크립트에서는 파일로의 기록 준비 단계에서 백업 데이터 파일에 대한 기호 연결을 자동으로 작성하는 방법에 대해 설명합니다. 테이프 조정자가 backup dump, backup restore, backup savedb 또는 backup restoredb 동작을 실행하는 경우, 루틴은 UNIX ln -s 명령을 호출하여 tapeconfig 파일에서 명명된 백업 데이터 파일로부터 사용할 실제 파일로의 기호 연결을 작성합니다(이것은 권장되는 방법입니다). 파일 이름을 생성할 때 백업 시스템이 전달한 tapename 및 tapeid 매개변수 값들을 사용합니다.
루틴에서는 두 개의 다른 매개변수 tries 및 operation도 사용합니다. tries 매개변수는 테이프 조정자가 파일에 액세스하려고 했던 횟수를 추적합니다. 1 이상의 값은 테이프 조정자가 파일에 액세스할 수 없고 루틴은 종료 코드 2(exit_interactive)를 나타냄을 나타내며, 이 종료 코드로 인해 운용자가 테이프를 로드하도록 합니다. 운용자는 이 때 tapeconfig 파일에서 지정한 백업 데이터 파일의 이름을 변경할 수 있습니다.
#! /bin/csh -f
set devicefile = $1
set operation = $2
set tries = $3
set tapename = $4
set tapeid = $5
set exit_continue = 0
set exit_abort = 1
set exit_interactive = 2
#--------------------------------------------
if (${tries} > 1) then
echo "Too many tries"
exit ${exit_interactive}
endif
if (${operation} == "labeltape") then
echo "Won't label a tape/file"
exit ${exit_abort}
endif
if ((${operation} == "dump") |\
(${operation} == "appenddump") |\
(${operation} == "restore") |\
(${operation} == "savedb") |\
(${operation} == "restoredb")) then
/bin/rm -f ${devicefile}
/bin/ln -s /hsm/${tapename}_${tapeid} ${devicefile}
if (${status} != 0) exit ${exit_abort}
endif
exit ${exit_continue}