NFS(R)/AFS(R) 변환기를 사용하면 NFS 작업 시스템에서 작업하는 사용자들은 AFS에 저장된 파일을 액세스, 작성 및 제거할 수 있습니다. 이 장에서는 사용자가 NFS 및 AFS에 모두 익숙하다고 가정합니다.
이 장에서는 지정된 명령을 사용하여 다음 타스크를 수행하는 방법을 설명합니다.
| 변환 기계에 디렉토리 마운트 | mount |
| @sys 변수의 값 검토 | fs sysname |
| AFS의 재반출 사용 가능/사용 불가능화, 기타 매개변수 설정 | fs exportafs |
| NFS 클라이언트 시스템에서 사용자에게 AFS 토큰 지정 | knfs |
NFS/AFS 변환기를 사용하면 NFS 클라이언트 시스템의 사용자는 마치 AFS 클라이언트 시스템에서 작업하는 것처럼 AFS 파일 공간을 액세스하여 다른 AFS 사용자와 공동 작업에 참여할 수 있습니다.
NFS/AFS 변환 기계(또는 간단하게 변환 기계)는 AFS 클라이언트와 NFS 서버 모두로 구성된 시스템입니다.
변환 환경을 제대로 구성함으로써 NFS 클라이언트 시스템에서 AFS로의 비인증 또는 인증 액세스를 제공할 수 있습니다. 이 장에서 변환 기계, NFS 클라이언트 시스템 및 AFS 사용자 계정 구성에 대한 절에서는 변환 환경을 제대로 구성하는 방법을 설명합니다.
NFS 사용자가 AFS 명령을 실행할 수 있게 하려면 명령 쉘에서 AFSSERVER 및 AFSCONF 환경 변수를 정의해야 합니다. 이 절에서는 변수의 기능을 설명하고 변수 설정을 위한 다양한 방법을 대략적으로 설명합니다.
AFS 명령을 실행하기 위해서는 NFS 클라이언트 시스템이 지원되는 시스템 유형(AFS 2진 파일을 사용할 수 있고 액세스할 수 있음)이어야 합니다. 지원되는 시스템 유형을 가진 NFS 클라이언트 시스템에서 작업하는 사용자는 AFS를 인증된 사용자로 액세스할 수 있으나 AFS 명령은 실행할 수 없습니다. 이러한 사용자에 대해 AFSSERVER 및 AFSCONF 변수를 반드시 정의할 필요는 없습니다. knfs 명령을 사용하여 지원되지 않는 시스템 유형에 대한 인증된 액세스 권한을 얻기 위한 지침을 보려면 지원되지 않는 NFS 클라이언트 시스템에서 인증 받기를 참조하십시오.
AFSSERVER 변수는 NFS 클라이언트에 대해 다음의 두 가지 기능을 수행하는 AFS 클라이언트 시스템을 지정합니다.
어떤 원격 실행 프로그램을 사용하느냐는 fs getcacheparms, fs getcellstatus 및 fs setcell 명령과 같은 캐쉬 관리 프로그램 구성을 표시하거나 변경하는 명령에 직접적으로 영향을 미칩니다. NFS 클라이언트에 대해 이들 명령이 실행되면 지정된 원격 실행 프로그램 기계의 캐쉬 관리 프로그램에 영향을 미칩니다(그러나 이러한 일부 명령을 사용하기 위해서는 로컬 수퍼유저 루트와 같이 실행자가 원격 실행 프로그램의 로컬 파일 시스템에 로그인해야 합니다. NFS 클라이언트 사용자가 루트로서 로그인해야 하는 기능은 NFS/AFS 변환기에 의해서가 아니라 NFS에 의해 제어되므로 원격 실행 프로그램을 제대로 설정한다고 해서 NFS 클라이언트의 사용자들이 이러한 명령을 반드시 실행할 수 있음을 의미하지는 않습니다).
이 원격 실행 프로그램을 선택하는 것은 특정 캐쉬 관리 프로그램을 수행하지 않는 AFS 명령에 대해서는 적절하지만 ACL 및 볼륨 할당량을 표시하거나 설정하는 fs 명령과 같이 모든 시스템에서 동일한 결과를 가져옵니다. 이러한 명령은 그 인수 중 하나로서 AFS 경로를 취합니다. 원격 실행 프로그램 기계의 캐쉬 관리 프로그램이 AFS 클라이언트에 있어서 일반적인 것처럼 /afs 디렉토리에 AFS 파일 공간을 마운트하는 경우 NFS 클라이언트에 지정된 경로 이름은 문자열 /afs로 시작되어야만 캐쉬 관리 프로그램이 이 경로 이름을 이해할 수 있습니다. 이것은 원격 실행 프로그램이 NFS 클라이언트의 기본 변환 기계(그 /afs 디렉토리가 NFS 클라이언트의 /afs에 마운트된 기계)여야 함을 의미합니다.
AFSCONF 환경 변수는 NFS 클라이언트 시스템에 대해 AFS 명령이 실행될 때 ThisCell 및 CellServDB 파일이 있는 디렉토리를 명명합니다. AFS 클라이언트에 있는 것처럼 이들 파일은 명령 실행의 기본 셀을 결정합니다.
성능을 예측하기 위해서는 AFSCONF 변수라는 디렉토리의 파일이 변환 기계의 /usr/vice/etc 디렉토리에 있는 파일과 일치하는 것이 바람직합니다. 셀에 /usr/vice/etc 디렉토리의 파일에 대한 중앙 갱신 원본으로 작동하는 AFS 디렉토리가 있는 경우 AFSCONF 변수가 이를 참조하도록 설정하는 것이 가장 간단한 방법입니다. 일반적인 구성에서 이 디렉토리를 /afs/cellname/common/etc라고 명명합니다.
AFSSERVER 및 AFSCONF 변수의 값을 알려면 AFS 명령 인터프리터는 다음의 세 가지 원본을 순서대로 확인합니다.
(실제로 이러한 원본을 참고하기 전에 NFS 클라이언트는 자체의 /usr/vice/etc 디렉토리에서 CellServDB 및 ThisCell 파일을 찾아 봅니다. 이 디렉토리가 있으면 NFS 클라이언트는 AFSCONF 변수의 값을 사용하지 않습니다. 그러나 /usr/vice/etc 디렉토리는 대개 AFS 클라이언트에만 있습니다 (NFS 클라이언트에는 없음).
앞서 자세히 설명한 것처럼 올바른 성능을 유지하기 위해서는 원격 실행 프로그램 기계가 NFS 클라이언트의 기본 변환 기계(그 /afs 디렉토리가 NFS 클라이언트의 /afs 디렉토리에 마운트된 시스템)에 있어야 합니다. 이 요구사항은 NFS 클라이언트에서 AFS를 액세스하는 모든 사용자에게 유효하므로 NFS 클라이언트의 루트 디렉토리에 .AFSSERVER 파일을 작성하는 것이 가장 간단합니다. 사용자의 홈 디렉토리에 이 파일을 작성하거나 현재의 명령 쉘에 AFSSERVER 환경 변수를 설정하는 기본 이유는 사용자가 원래의 변환 기계를 액세스할 수 없게 되므로 다른 변환 기계로 전환해야 한다는 것입니다.
이와 마찬가지로 NFS 클라이언트의 루트 디렉토리에 .AFSCONF 파일을 작성하는 것이 일반적입니다. 사용자의 홈 디렉토리에 이 파일을 작성하거나 현재의 명령 쉘에 AFSCONF 환경 변수를 설정하는 것은 테스트 상황에서 셀에 대해 다른 데이터베이스 서버 시스템 집합을 지정하려는 경우에 가장 유용합니다.
AFS 클라이언트 시스템에서 실행되는 응용프로그램이 파일에 대해 close 또는 fsync 시스템 호출을 실행할 때 캐쉬 관리 프로그램은 기본적으로 파일 서버로의 동기 데이터 쓰기를 수행합니다(자세한 설명은 AFS에서 구현하는 닫을 때 저장 및 비동기 기록 가능을 참조하십시오).
변환 기계에서 작업하는 AFS 사용자의 성능 저하를 막기 위해 AFS는 변환 기계의 NFS 클라이언트에서 실행되는 응용 프로그램에 대해 동기 쓰기를 수행하지 않습니다. 대신 캐쉬 관리 프로그램 디먼 중 하나(유지보수 디먼)가 NFS 클라이언트에 저장된 데이터가 들어 있는 캐쉬에서 60초마다 청크를 확인하고 그 내용을 파일 서버에 기록합니다. 이것인 NFS 클라이언트에 저장된 데이터가 60초마다 파일 서버에 기록됨을 의미하지는 않으나 유지보수 디먼이 이 간격으로 청크를 확인하고 데이터 쓰기를 시작함을 의미합니다.
더욱이 AFS에서는 항상 NFS 클라이언트에 대해 실행된 fsync 시스템 호출을 무시합니다. 이 호출은 파일 서버로부터의 즉각적이고 시간 소모적인 응답을 요구하며 이로 인해 파일 서버의 다른 AFS 클라이언트에서 지연이 초래될 수 있습니다. NFS 버전 3은 close 호출 이후에 바로 fsync 시스템 호출을 실행하지만 캐쉬 관리 프로그램은 이를 무시하고 일반 close와 같이 이 조작을 처리합니다.
지연된 쓰기 메카니즘은 NFS 응용 프로그램이 파일에 대해 close 또는 fsync 시스템 호출을 실행하는 시간과 다른 AFS 클라이언트 시스템에서 작업하는(직접적으로 또는 NFS 클라이언트에서) 사용자들이 이 변경사항을 볼 수 있는 때를 나타내는 파일 서버에 변경 내용이 기록되는 시간 사이에 지연이 있음을 의미합니다. 이 지연은 AFS 클라이언트 시스템에서 직접 작업하는 사용자들이 저장한 파일의 경우보다 더 오래 지속될 수 있습니다.
정확한 지연 시간은 예측하기 어렵습니다. NFS 프로토콜 자체는 저장된 데이터가 NFS 클라이언트에서 NFS 서버(변환 기계)로 전송되기 전에 표준 지연 시간을 허용합니다. 수정된 데이터는 이러한 작업에 대해 예정된 유지보수 디먼의 다음 확인 작업 시간에 도달할 때까지 변환 기계의 AFS 클라이언트 시스템에 유지되며 이 데이터를 파일 서버에 전송하는 데는 추가 시간이 필요합니다. 유지보수 디먼은 단일 스레드를 사용하므로 수정된 모든 NFS 데이터를 쓰기 위해 60초 이상의 시간이 걸리는 경우 추가 지연이 발생할 수 있습니다. 따라서 예정된 다음 확인 작업 시간에 유지보수 디먼이 여전히 데이터를 기록하고 있으면 긴 쓰기 조작을 완료한 후에 예정된 시간이 될 때까지 추가적으로 수정된 데이터가 있다는 사실을 알지 못합니다.
write 시스템 호출에 대한 캐쉬 관리 프로그램의 응답은 이 호출이 AFS 클라이언트 시스템에 대해 실행되었는지 변환 기계의 NFS 클라이언트에 대해 실행되었는지에 관계없이 동일합니다. 수정 내용은 로컬 AFS 클라이언트 캐쉬에만 기록됩니다.
NFS/AFS 변환 기계로 작동하려면 시스템이 다음과 같이 구성되어야 합니다.
변환 기계의 NFS 클라이언트에 있는 사용자가 AFS 명령을 실행해야 하는 경우 변환 기계는 AFS 명령을 수용하도록 변환 기계 구성에 나오는 요구사항을 충족시켜야 합니다.
NFS/AFS 변환 기계로 작동할 수 있는 시스템 유형에 대한 AFS 분산은 보통 커널이 NFS 서버 기능을 지원하는 시스템에 대한 버전과 NFS를 사용하지 않는 시스템에 대한 버전의 두 가지 버전의 AFS 커널 확장 파일을 포함합니다. (두 번째 AFS 커널 확장 파일은 보통 그 이름이 문자열 nonfs를 포함함). 변환 기계는 AFS 확장 파일의 NFS 사용 가능 버전을 사용해야 합니다. 일부 시스템 유형에서 적절한 파일을 선택하여 특정 위치로 옮겨야 하지만 다른 시스템 유형에서는 올바른 파일의 자동 선택을 수행하는 변수를 설정해야 합니다. AFS를 각 시스템 유형의 커널에 통합하는 방법에 대해서는 AFS 빠른 시작의 지침을 참조하십시오.
많은 시스템 유형에서 NFS가 기본적으로 커널에 포함되어 있으므로 반드시 NFS 커널 확장을 명시적으로 로드할 필요는 없습니다. NFS 확장을 로드해야 하는 시스템 유형에서는 보통 AFS 커널 확장을 로드하기 전에 NFS 확장을 로드해야 합니다. AFS 빠른 시작에서는 NFS를 처리하는 스크립트에 맞게 올바르게 정렬되도록 AFS 초기설정 스크립트를 시스템의 시작 순서에 통합하는 방법을 설명합니다.
또한 AFS 확장은 afsd 명령이 실행되기 전에 커널에 로드되어야 합니다. AFS 분산에 포함된 AFS 초기설정 스크립트는 로드 및 afsd 명령 실행의 순서를 적절히 조정합니다.
변환 기계의 NFS 클라이언트에서 작업하는 사용자가 AFS 명령을 실행하기 위해서는 -rmtsys 플래그가 변환 기계의 캐쉬 관리 프로그램을 초기화하는 afsd 명령에 포함되어야 합니다. 이 플래그는 NFS 클라이언트 대신 AFS 특정 시스템 호출을 실행하는 추가 디먼(원격 실행 프로그램 디먼)을 시작합니다. AFS 명령을 실행하는 NFS 사용자에 대한 설명을 보려면 AFSSERVER 및 AFSCONF 환경 변수 설정을 참조하십시오.
AFS 빠른 시작에서 캐쉬 관리 프로그램을 구성하기 위한 지침은 AFS 초기설정 스크립트에서 afsd 명령에 대해 -rmtsys 플래그와 같은 옵션을 추가하는 방법을 설명합니다. 많은 시스템 유형에서 OPTIONS 변수를 정의하는 스크립트의 행에 이 플래그를 나열하는 것이 가장 쉬운 방법입니다. 원격 실행 프로그램 디먼은 많은 자원을 소모하지 않으므로 시스템의 NFS 클라이언트의 모든 사용자가 AFS 명령을 실행하는 것은 아니라고 해도 이 디먼을 모든 변환 기계의 afsd 명령에 추가하는 것이 가장 쉽습니다.
AFS 클라이언트 시스템은 변환 기계로 구성된 후에 기본적으로 AFS 파일 공간을 NFS 클라이언트로 반출합니다. fs exportafs 명령의 -start 인수를 사용하여 변환 기능을 사용 불가능화하고 다시 사용 가능화할 수 있습니다. 이 명령의 다른 인수는 변환 동작의 다른 측면을 제어합니다.
AFS와는 달리 NFS는 파일이 AFS에 저장된 경우에도 사용자가 이 파일을 읽거나 쓸 수 있는지 여부를 결정할 때 세 가지의 모드 비트 집합을 사용합니다. 일부 AFS 파일에서는 group 및 other 모드 비트가 설정되어 있지 않습니다. 왜냐하면 AFS가 파일의 디렉토리에 대한 ACL과 함께 owner 비트만 사용하기 때문입니다. owner 모드 비트만 설정되어 있는 경우 NFS는 파일의 소유자만 파일을 읽고 쓸 수 있게 허용합니다. -convert 인수를 on 값으로 설정하면 다른 사용자가 소유자와 동일한 방식으로 파일을 액세스할 수 있습니다. 값 off를 설정하면 AFS에 저장된 파일에 설정된 모드 비트가 그대로 유지됩니다.
이 값을 on으로 설정하여 UID 확인을 사용 가능하게 하는 경우 토큰은 그 로컬 UID가 토큰을 지정하고 있는 변환 기계의 프로세스의 로컬 UID와 일치하는 NFS 사용자에게만 지정될 수 있습니다. 한 가지 결과는 -id 인수를 knfs 명령에 포함시킬 필요가 없다는 것입니다. 즉 허용되는 유일한 값은 명령 실행자의 로컬 UID이며 이 값은 -id 인수가 생략될 때 사용되는 값입니다. 이러한 방식으로 UID를 일치시키는 것은 사용자가 NFS 클라이언트 시스템에서와 같이 변환 기계에도 동일한 UID를 가지고 있을 때만 효과를 발휘합니다. 이 경우 사용자는 NFS 세션에만 자신의 토큰을 지정하게 됩니다. 명령은 지원되지 않는 NFS 클라이언트 시스템에서 인증 받기를 참조하십시오.
| 주: | UID 확인 기능을 설정하면 지원되는 NFS 클라이언트에 있는 사용자는
klog 명령을 사용하여 NFS 클라이언트에서 직접 인증을
받을 수 없게 됩니다. 이들은 대신 변환 기계에서 인증을 받아야 하며
knfs 명령을 사용해야 합니다. 이것은 klog
명령 인터프리터가 NFS 클라이언트에 대한 토큰을 얻은 후에 이를 캐쉬 관리 프로그램의
원격 실행 프로그램 디먼으로 전달하며 이 원격 실행 프로그램 디먼은 토큰을 변환
기계의 자격사항 구조에 저장하는 시스템 호출을 생성하기 때문입니다.
원격 실행 프로그램은 보통 로컬 수퍼유저 루트로서
실행되므로 대부분의 경우에 로컬 UID(보통 0)가 NFS 클라이언트 시스템에 대해
klog 명령을 실행한 사용자의 로컬 UID와 일치하지
않습니다.
한편 klog 명령 대신 knfs 명령을 사용하는 것은 덜 편리하기는 하지만 보안에 노출된 위험을 줄여 줍니다. klog 명령 인터프리터는 네트워크를 통해 원격 실행 프로그램 디먼으로 토큰을 명확한 텍스트 모드로 전송합니다. |
값 off를 지정하여 UID 확인 기능을 사용 불가능하게 하면 knfs 명령의 실행자는 로컬 수퍼유저 루트와 같이 NFS 클라이언트 시스템에 다른 UID를 가지고 있는 사용자에게 토큰을 지정할 수 있습니다. 실제로 knfs 명령의 두 명 이상의 실행자가 NFS 클라이언트 시스템에 있는 동일한 사용자에게 토큰을 지정할 수 있습니다. 다른 사용자가 -id 인수에 대해 같은 값을 사용하여 knfs 명령을 실행할 때마다 이 사용자의 토큰은 기존의 토큰을 덮어씁니다. 이로 인해 NFS 사용자가 예측치 못한 상황에서 액세스하는 경우가 발생할 수 있습니다.
서브마운트는 몇 가지 상황에서 유용할 수 있습니다. 예를 들어 NFS 사용자가 자신의 AFS 홈 디렉토리에만 액세스해야 하는 경우 이 홈 디렉토리에 대한 서브마운트를 작성하면 이들이 완전한 경로를 알거나 입력해야 할 필요가 없어집니다. 이와 마찬가지로 서브마운트를 사용하여 서브마운트보다 AFS 계층에서 더 높은 수준에 있는 파일 공간의 부분을 사용자가 액세스하지 못하게 됩니다.
다음 지침은 사용자가 AFS 명령을 실행할 수 있도록 변환 기계를 구성합니다. 이 기능을 사용 가능하지 않으려면 단계 6을 생략하십시오.
% su root Password: root_password
다음 예제는 NFS 클라이언트 시스템이 시스템의 /afs, /usr 및 /usr2 디렉토리를 마운트할 수 있게 합니다.
/afs /usr /usr2
share -F nfs -o rw -d "root" / share -F nfs -o rw -d "afs gateway" /afs
IRIX 이외의 시스테 유형에서는 AFS 빠른 시작에서 캐쉬 관리 프로그램을 구성하기 위한 지침은 OPTIONS 변수 값을 정의하는 스크립트의 행에 -rmtsys 플래그를 추가하는 것과 같이 이 플래그를 추가하는 방법을 설명합니다.
IRIX 시스템에서 AFS 초기설정 스크립트는 사용자가 AFS 확장을 커널에 통합하는 것에 대해 AFS 빠른 시작 지침에 지정된 것과 같이 afsxnfs 구성 변수를 활성화하는 경우 자동으로 -rmtsys 플래그를 추가합니다. 변수가 아직 활성화되지 않은 경우 다음 명령을 실행하십시오.
# /etc/chkconfig -f afsxnfs on
# shutdown appropriate_options
% su root Password: root_password
#
fs exportafs nfs [-start {on | off}} ] [-convert
{on | off}]
[-uidcheck {on | off}] [-submounts
{on | off}]
이 인수가 생략된 경우 기본값은 off입니다.
다음 요구조건을 충족하는 모든 NFS 클라이언트 시스템은 NFS/AFS 변환기를 통해 AFS의 파일을 액세스할 수 있습니다. 이러한 시스템을 AFS 클라이언트 시스템으로 구성할 필요는 없습니다.
NFS 클라이언트가 변환 기계의 /afs 디렉토리를 마운트하는 디렉토리를 /afs 이외의 이름으로 지칭할 수 있습니다. 예를 들어 원래의 변환 기계를 액세스할 수 없는 경우 다른 변환 기계로 쉽게 전환하기 위해 둘 이상의 변환 기계의 /afs 디렉토리에 마운트할 수 있습니다. 일반적으로 사용하는 변환 기계에 대해 마운트 /afs를 명명하고 각 대체 변환 기계에 대한 마운트에 다른 이름을 사용하십시오.
/afs 이외의 디렉토리에 AFS 파일 공간을 마운트하기 위해서는 다른 작업이 필요합니다. 그러나 AFS 경로 이름 인수를 취하는 명령을 실행할 때는 상대 경로 이름이 아니라 /afs로 시작하는 전체 경로 이름을 지정해야 합니다. 예를 들어 변환 기계의 AFS 파일 공간이 NFS 클라이언트 시스템의 /afs2에 마운트되고 사용자가 다음 명령을 실행하여 AFS에 있는 현재 작업 디렉토리에 대한 ACL을 표시한다고 합시다.
% fs listacl .
NFS 클라이언트의 fs 명령 인터프리터는 변환 기계의 캐쉬 관리 프로그램에 요청을 전달하기 전에 전체 경로 이름을 구성해야 합니다. AFS 파일 공간은 /afs2에 마운트되므로 전체 파일 공간은 이 문자열로 시작됩니다. 그러나 변환 기계의 캐쉬 관리 프로그램은 /afs2라는 디렉토리를 찾을 수 없습니다. 왜냐하면 AFS 파일 공간의 해당 마운트가 /afs라고 지칭되기 때문입니다. 이 명령은 실패합니다. 실패를 막으려면 문자열 /afs로 시작하는 파일의 완전한 경로 이름을 제공하십시오.
사용자가 AFS 명령을 실행할 수 있게 하기 위해 NFS 클라이언트 시스템은 지원되는 시스템 유형(AFS 2진 파일을 사용할 수 있는 유형)이어야 하며 AFS 명령 2진 파일을 액세스할 수 있어야 합니다. AFS 릴리스 노트에서는 각 릴리스의 지원되는 시스템 유형을 나열합니다.
또한 AFSSERVER 및 AFSCONF 환경 변수는 AFSSERVER 및 AFSCONF 환경 변수 설정에서 설명하는 것처럼 적절히 설정되어야 합니다.
| 주: | 다음 지침에 따라 NFS 사용자가 AFS 명령을 실행하게 할 수 있습니다. 이 기능을 사용하지 않으려면 단계 5 및 단계 6을 생략하십시오. |
% su root Password: root_password
# mkdir /afs
mount -o hard,intr,timeo=300 translator_machine:/afs /afs
여기서,
NFS server translator is not responding, still trying
소프트 마운트를 사용할 경우 제한 시간이 된 요청에 대해 리턴된 실제 오류 횟수가 줄어듭니다.
| 주: | 변환 기계의 /afs 디렉토리를 /afs가 아닌 NFS 클라이언트의 디렉토리에 마운트하려면 mount 명령에서 /afs의 두 번째 인스턴스를 대체 디렉토리 이름으로 바꾸십시오. |
NFS 사용자가 비인증 사용자로서 AFS를 액세스하는 데 필요한 요구조건은 없습니다. 그러나 더 많은 AFS 기능을 활용하려면 지정한 요구조건을 충족해야 합니다.
사용자의 로그인 또는 쉘 초기설정 파일에 변수를 정의하거나 사용자의 홈 디렉토리에 파일 .AFSSERVER 및 .AFSCONF를 작성하십시오.
AFSSERVER 변수의 경우 원격 실행 프로그램을 작동할 변환 기계의 완전 규정화된 호스트 이름을 지정하십시오. AFSCONF 변수의 경우 CellServDB 및 ThisCell 파일이 위치하는 디렉토리의 이름을 지정하십시오. 이들 파일에 대해 중앙 갱신 원본(일반적으로 /afs/cellname/common/etc)을 사용하는 경우 여기에 명명하십시오.
% fs sysname
knfs 명령을 사용하면 지원되지 않는 시스템 유형(AFS 2진 파일을 사용할 수 없는 시스템)의 NFS 클라이언트에서 작업하고 있을 때 AFS의 인증을 받을 수 있습니다. 이를 통해 다른 AFS 사용자와 같은 수준까지 AFS 파일 트리를 액세스할 수 있게 됩니다. 그러나 지원되는 시스템 유형의 NFS 클라이언트 시스템에서만 가능한 AFS 명령의 실행은 수행할 수 없습니다.
지원되지 않는 시스템 유형에서 인증을 받으려면 변환 기계와 연결하고 (텔넷과 같은 기능 사용) klog 명령을 실행하여 진행될 NFS 세션 동안 접속하려는 모든 셀에 대한 토큰을 얻으십시오. 그런 다음 knfs 명령을 실행하여 NFS 세션과 연관된 자격사항 구조에 토큰을 저장하십시오. 캐쉬 관리 프로그램은 NFS 세션에서 시작된 AFS 액세스 요청을 수행할 때 이 토큰을 사용합니다.
특이하게, 자격사항 구조는 특정 NFS 클라이언트 시스템의 특정 로컬 UID와 연관된 프로세스 인증 그룹(PAG) 번호에 의해 식별됩니다. 기본적으로 자격사항 구조에 기록된 NFS UID는 변환 기계의 로컬 UID와 동일합니다. 변환 기계의 관리자가 fs exportafs 명령의 -uidcheck 인수를 사용하여 UID 확인 기능을 설정하지 않는 한 -id 인수를 포함시켜 대체 NIF UID를 지정할 수 있습니다. 이러한 경우 -id 인수의 값은 변환 기계의 로컬 UID와 일치해야 합니다 (-id 인수를 포함시켜야 할 시점이 없음). UID 일치를 수행하여 다른 사용자가 사용자의 자격사항 구조에 고의적으로나 우연하게 자신들의 토큰을 배치하지 못하게 하십시오. 그러나 이것은 셀의 관리자가 NFS 클라이언트의 로컬 UID를 변환 기계의 로컬 UID와 일치하도록 설정해야 함을 의미합니다. 또한 지원되는 NFS 클라이언트에 대해 klog 명령을 실행하여 인증을 받을 수 없게 되며 결국 모든 NFS 사용자는 knfs 명령을 사용해야 합니다. 선택적 변환 기능 제어를 참조하십시오.
knfs 명령을 실행한 후에 AFS로의 액세스 권한을 얻은 NFS 클라이언트에서 작업을 시작할 수 있습니다. 작업이 끝나면 변환 기계에 대해 다시 knfs 명령을 실행하여 토큰을 파괴하는 것이 바람직하며 이 때에는 -unlog 플래그를 사용하십시오. 변환 기계로 연결된 상태를 그대로 유지하는 것이 더 간단하지만 항상 원래 연결을 닫아야만 새 연결을 설정할 수 있습니다.
NFS 클라이언트 시스템이 지원되는 시스템 유형이고 이 시스템에 대해 AFS 명령을 실행하려는 경우 knfs 명령에 -sysname 인수를 포함시키십시오. 변환 기계의 원격 실행 프로그램 디먼은 사용자가 NFS 클라이언트 시스템에 대해 실행하는 AFS 명령을 실행할 때 경로 이름에서 그 값으로 @sys 변수를 대체합니다. PATH 환경 변수에서 AFS 2진 파일이 있는 디렉토리에 대한 경로 이름에 @sys 변수를 사용하는 경우 (권장) 이 인수를 설정하면 그 시스템 유형이 변환 기계의 시스템 유형과 다른 경우에도 원격 실행 프로그램 디먼이 사용자의 NFS 클라이언트 시스템에 적절한 AFS 2진 파일을 액세스할 수 있게 됩니다.
knfs 명령(또는 NFS 클라이언트 시스템이 지원되는 시스템 유형인 경우 이 시스템에 대해 klog 명령)을 실행하지 않는 경우 AFS에 대해 인증을 받지 못합니다. 비인증 액세스에 대한 설명을 보려면 비인증 또는 인증 AFS 액세스 사용 가능화를 참조하십시오.
% knfs -host <host name> [-id <user ID (decimal)>] [-sysname <host's '@sys' value>]
여기서,
다음 오류 메시지는 변환 기계의 관리자가 UID 확인 기능을 사용 가능하게 했으며 변환 기계의 로컬 UID와 다른 값을 사용자가 제공했음을 나타냅니다.
knfs: Translator in 'passwd sync' mode; remote uid must be the same as local uid
% knfs -host <host name> [-id <user ID (decimal)>] -tokens
여기서,
% knfs -host <host name> [-id <user ID (decimal)>] -unlog
여기서,