OpenAFS/ko

이 안내서는 젠투 리눅스에서 OpenAFS 서버 및 클라이언트를 설치하는 방법을 보여드립니다.

이 문서 정보
이 문서는 젠투 리눅스에 OpenAFS 서버를 설치하는데 필요한 단계 정보를 제공합니다. 이 문서의 각 부분에는 AFS FAQ 및 IBM의 AFS 간편 초보자 안내서로부터 내용을 가져왔습니다. 글쎄요. 바퀴를 굳이 또 찍을 이유가 없죠 :&#41;

AFS란게 뭔가요?
AFS는 로컬, 광역 네트워크를 통해 파일 시스템 자원을 효율적으로 공유하는 호스트(클라이언트 및 서버)간 협업을 가능케 하는 분산 파일 시스템입니다. 클라이언트는 주로 사용하는 객체(파일)을 빠르게 접근할 수 있도록 보관하고 있습니다.

AFS는 본래 카네기 멜론 대학 정보 기술 센터에서 개발한 "앤드류 파일 시스템" 분산 파일 시스템을 기반으로 합니다. "앤드류"는 카네기 멜론 대학 의 연구 프로젝트 이름이었으며 대학교 설립자를 기리는 의미를 내포합니다. 트랜스아크를 설립하고 AFS를 상용화 하고 나서는 AFS가 앤드류 연구 프로젝트를 떠났고 제품 수준의 품질을 지닌 파일 시스템으로서 지원을 받았기에 "앤드류"라는 이름을 버렸습니다. 그러나 /afs 는 파일 시스템의 루트이며 셀이라는 개념을 가지고 있고, 이 셀은 파일 시스템 상에 여러 개가 존재했습니다. 그 때에, 파일 시스템의 루트를 바꾸는 일은 결코 간단한 일이 아니었습니다. 따라서, 파일 시스템 이름을 바꾸는데 있어 이전의 AFS 사이트를 유지하기 위해 AFS는 이름으로 그대로 남았으며 파일 시스템 루트가 되었습니다.

AFS 셀은 뭔가요?
AFS 셀은 관리 관점상 하나의 집단으로 묶은 서버의 모음이며, 단일 복합 파일 시스템으로 보입니다. 보통 AFS 셀은 동일한 인터넷 도메인(예: gentoo.org)을 활용하는 호스트의 모음이며, 사용자는 사용자가 접속할 셀의 서버에서 정보와 파일을 요청하는 AFS 클라이언트 워크스테이션에 로그인합니다. 사용자는 찾아볼 어떤 파일이 어떤 서버에 있는지 알지 못합니다. 게다가 서버가 다른 방에 있겠다 하더라도 모든 볼륨을 복제하고 사용자에게 별 다른 내용을 알려주지 않고 다른 서버로 옮기기 때문에 서버가 어디있는지 또한 알지 못합니다. 파일은 언제든 접근할 수 있습니다. 스테로이드 시스템 상의 NFS랑 비슷해보이는군요 :&#41;

AFS를 쓰면 뭐가 좋아요?
AFS는 캐싱 처리 요소(클라이언트, 보통 100M에서 1GB), 보안 기능(커베로스 5 기반, 접근 관리 목록), 주소 관리 단순화(오직 하나의 파일 시스템만 보유), 확장성(필요한만큼 셀에 서버를 더 추가함), 통신 프로토콜 의 주요 기능을 보유하고 있습니다.

더 많은 내용은 어디서 찾아볼 수 있나요?
AFS FAQ를 읽어보십시오.

www.openafs.org의 OpenAFS 메인 페이지

AFS는 지금은 IBM이 소유한 트랜스아크에서 개발했습니다. 2005년 4월부터 IBM 제품 카탈로그에서 없어졌습니다. IBM은 AFS 제품의 소스 코드 브랜치를 분리했고, 2000년에 커뮤니티 개발용과 관리용 두가지 용도로 소스코드 복제본을 만들었습니다. 그들은 OpenAFS 릴리즈라 불렀습니다.

문제를 어떻게 디버깅하죠?
OpenAFS에는 대단한 기록 설비를 갖추고 있습니다. 그러나 기본적으로 여러분의 시스템에 있는 로깅 체계로 기록하기보단 자체 기록에 바로 남겨둡니다. 서버 로그를 시스템 로거에서 처리하도록 하려면  옵션을 모든  명령에서 활용하십시오.

도입부
이 부분에서는 기존의 OpenAFS를 OpenAFS 1.4.0 이상으로 업그레이드하는 과정을 도와드립니다(또는 1.2.13부터 시작하는 1.2.x가 됩니다만, 후자는 대부분 사람들이 linux-2.6 지원, 대용량 파일 지원, 버그 수정판을 원하기 때문에 따로 다루지 않겠습니다).

OpenAFS 1.4 버전을 아얘 처음부터 설치한다면 이 부분을 안전하게 건너뛸 수 있습니다. 허나, 이전 버전에서 업그레이드한다면, 다음 부분의 안내서를 따라가시는게 좋습니다. 이빌드의 트랜지션 스크립트는 간단한 업그레이드 및 재시작을 도와주도록 설계했습니다. (보안상 이유로) 설정 파일과 이전 위치의 시작 스크립트를 지우지 마시고 부팅 설정을 새 스크립트로 자동으로 바꾸지 않음을 참고하십시오. 더 확실한 방편이 필요하다면, 이전 OpenAFS 커널 모듈을 업데이트한 시스템 바이너리와 함께 사용할 때 커널이 더 잘 맛이 갈 수 있습니다. 따라서, 바닥부터 깔끔하고 쉽게 전환하겠습니다. 그렇게 할거죠?

이전 버전과의 차이점
예전부터 OpenAFS는 코드를 포킹하기 전 IBM 트랜스타크 연구소에서 사용한 동일한 경로 이름 규칙을 사용합니다. 당연히도, 이전 AFS 설정은 이전 경로 이름 규칙을 계속 활용할 수 있습니다. 최근 설정에서는 (대부분의 리눅스 배포판에서 본 대로) 표준 경로를 활용한 FHS에 맞추었습니다. 다음 표에서는 OpenAFS 배포 타르볼의 README와 설정 스크립트의 내용을 비교합니다:

트랜스아크 모드에서 바이너리 파일 같은걸 에 넣는 이상한 점이 보이지만, 전체적으로 정리하려는 의도에서 이 목록을 제시한건 아닙니다. 오히려 설정 파일을 변환하는데 있어 문제를 해결하기 위한 참고자료로 제시할 뿐입니다.

또한 경로를 바꾸면 기본 디스크 캐시 위치는 에서 로 바뀝니다.

게다가 초기화 스크립트는 클라이언트와 서버 부분으로 나뉘었습니다. 종종 를 보유하고 있지만 이제   와 로 쪼갤 시간입니다. 따라서, 설정파일은   와  로 나눕니다. 또한 클라이언트 또는 서버를 가동하는 의 옵션은 오래되어 방치됩니다.

초기화 스크립트에서 바꿔야 할 다른 부분은 디스크 캐시 설정을 더이상 확인하지 않는 부분입니다. 이전 코드는 따로 나눈 ext2 분할 공간을 에 마운트해야합니다. 어떤 문제가 있냐면:


 * 매우 논리적으로 설정했음에도 불구, 캐시에서는 따로 분할 공간을 둘 필요가 없습니다. 실제로 디스크 캐시 사용 정보가 있는 에서 여러분이 지정한 공간을 확인하는 만큼 안전합니다. 그러니까 실제로 루트  분할 공간에 캐시가 있으니 문제는 없습니다.
 * 어떤 사람은 실제 디스크 캐시 겅로에 소프트링크를 걸어두는 경우가 있습니다. 초기화 스크립트는 이런 방식을 선호하지 않는데, 이 캐시 위치는 에서 마운트하지 않았기 때문입니다.
 * 오늘날 대부분은 ext3 를 ext2 보다 선호합니다. 두 파일 시스템은 디스크 캐시 용도로 아직도 유효합니다. 다른 어떤 파일 시스템은 지원하지 않습니다.(예: reiserfs는 시도하지 마십시오. 엄청난 경고가 뜨고, 나중에 가동 실패가 뜹니다).

새 경로로 전환
우선 최신 버전의 OpenAFS로 이전 설정 파일을 덮어쓰지 말아야합니다. 스크립트는 시스템에 이미 있는 파일을 바꾸지 않도록 했습니다. 그래서 이전의 설정과 새 위치의 설정으로 설정을 완전히 꼬아놓더라도 스크립트는 그 이상의 문제를 유발하지 않습니다. 또한 OpenAFS 가 동작중이라면, 데이터베이스가 깨질 가능성을 막기 위해 설치를 중단합니다.

한가지 주의하셔야 할 게 있는데, 젠투에서 디렉터리에 올려둔 보호 설정을 일부 비활성화해둔 이빌드가 인터넷에 돌아다닙니다. 이 이빌드는 젠투에서 배포한적이 없습니다. 다음 명령으로  변수 값을 확인하십시오:

이빌드에서 에 있는 파일을 건드리지 않지만, 업그레이드 과정에서 이전 OpenAFS 설치를 제거합니다. 이전 설치에 속한 CONFIG_PROTECT_MASK 에 있는 파일 역시 마찬가지로 제거합니다.

소프트 링크(e.g. to  )를 직접 추가하여 시스템을 직접 설정한 경우를 경험한 사용자들이 분명히 해야할 점이 있는데, 이전 설정 파일을 여전히 사용중에도 새 설치 과정을 실행하는게 좋습니다. 이 경우, 실제 트랜지션을 수행하지 않고 이전 설치를 정리하면 OpenAFS 설정이 깨집니다.

이제 어떤 일도 일어나지 않는다는걸 확인했으니 어떤 동작을 하는지 알아볼 차례입니다:


 * 를 에 복사
 * 를 에 복사
 * 를 에 복사
 * 를 로, 를 로, (앞에서와 같이 / 제외)를 로 바꾸는 동안  를  에 복사
 * 를 에 복사
 * 모든 이전 옵션을 클라이언트 전용으로 해둘 설정 파일을 에 복사

자체 업그레이드
OpenAFS 서버를 설정하지 않았다고요? 했으면 이전 어떤 상황인지 여전히 대기중인지 알아채셨죠?

그럼 시작하지요!

서버가 실행중이면 일단 끄십시오.

명령 실행이 끝나면 자체적으로 업그레이드를 실행하십시오.

OpenAFS 다시 시작하기
OpenAFS 서버를 가동중이라면, 끄지 않아도 됩니다. 이제 해당 과정을 진행할 차례입니다.

서버를 내리는 시간을 최소화해야 하니 OpenAFS 서버를 바로 다시 시작할 수 있습니다.

다음 명령으로 제대로 동작중인지 확인할 수 있습니다:

OpenAFS 클라이언트를 다시 시작하기 전 캐시 설정을 충분한 시간동안 확인하십시오. 에서 설정합니다. OpenAFS 클라이언트 설치를 다시 시작하려면 다음을 입력하십시오:

과정 후 정리
정리하기 전, 업그레이드하고 재시작한 후 모든 부분이 무난하게 동작하는지 확인하십시오(제대로 동작하지 않는다면 이전 설치 프로그램을 여전히 동작하고 있을지도 모릅니다).

시스템에서 다음 디렉터리를 안전하게 제거하셔도 됩니다:



다음 파일은 필요하지 않습니다:



=openafs-1.2.13 또는 =openafs-1.3.85 이빌드를 앞서 호라용했다면 필요없는 파일도 있습니다:



초기화 스크립트 변경
이제 대부분 사람들이 OpenAFS 클라이언트를 시스템을 시작할 때 자동으로 시작하도록 설정했습니다. 이 부분을 안전하게 넘어갈 수 없는 분이 있습니다. 자동으로 시작하도록 시스템을 설정했다면, 초기화 스크립트의 이름이 바뀌었으니ㅣ 다시 활성화해야합니다.

또는 를 설치했다면 기본 런레벨에서  과 를 제거하시고, 대신 를 활용하십시오.

문제 해결: 자동 업그레이드 실패
절망하지 마십시오. 어떤 데이터나 설정 파일도 날라가지 않았습니다. 그러니 상황을 다시 살펴보도록 하겠습니다. 이 경우 bugs.gentoo.org에 버그 보고서를 보내주시고 되도록이면 최대한 정보를 많게 자세히 적절하게 넣어주십시오.

클라이언트 시작시 문제가 있다면 문제를 진단하는데 이 방법이 도움이 될 것입니다:


 * 를 실행하십시오. 클라이언트에서 보통 오류 메시지를 보냅니다.
 * 를 확인하십시오 . 다음 모양새를 갖춰야합니다: /afs:{path to disk cache}:{number of blocks for disk cache}. 보통 여러분의 디스크 캐시는 에 있습니다.
 * 출력 내용을 확인하십시오 . openafs로 시작하는 줄을 확인하십시오.
 * 명령은 afsd가 실행중인지 아닌지를 언급합니다.
 * 에서 를 마운트했는지 여부가 나타나야합니다.

서버 시작에 누제가 있다면 다음 실마리가 도움이 될 수도 있습니다:


 * 명령의 결과에서는 구조 데몬이 실행중인지 아닌지를 알려줍니다. 하나 이상의 구조 데몬이 실행 중이라면, 뭔가 문제가 있다는 얘깁니다. 이 경우 명령으로 OpenAFS 서버를 완전히 중단한 후,  명령으로 결과를 확인하시고, 남아있는 구조 데몬 프로세스를 전부 강제 종료하고 여전히 동작중인 서버 프로세스가 있는지 (프로세스 목록은 으로) 확인하십시오. 그 다음 서버 상태를 초기화 하기 위해  명령을 실행하시고  명령을 다시 실행하십시오.
 * OpenAFS 자체 기록 시스템(기본 설정)을 활용 중이라면,  부분을 확인하십시오. syslog 서비스를 활용중이라면, 해당 기록 파일을 통해 문제 해결에 도움을 줄 정보가 있는지 확인하십시오.

AFS 문서 가져오기
원조 IBM AFS 문서를 구할 수 있습니다. 잘 쓰여졌고 AFS 서버를 관리하기에 여러분께 좋다면 읽고 싶어하실지도 모르겠습니다.

OpenAFS에 들어있는 문서를 활용하여 옵션을 설정하십시오. OpenAFS를 이머지할 때  USE 플래그를 적용하면 문서를 설치합니다. 이 문서는 에 있습니다. 이 글을 쓰고 있는 시점에서 문서는 작업중입니다. 허나, IBM AFS 원본 문서에 설명하지 않은 OpenAFS의 새 기능에 대한 설명이 문서에 들어갈 예정입니다.

클라이언트 빌드
컴파일이 끝나면 계속 진행할 준비가 끝납니다.

간단한 전역 브라우징 클라이언트 설치
접근하려는 일부 OpenAFS 셀에 있지 않고 존재하는 OpenAFS 공유 자원을 전반적으로 탐색한다면, 설정을 전반적으로 건드리지 않고 OpenAFS만을 설치할 수 있으며, 를 시작할 수 있습니다.

지정 OpenAFS 셀에 접근
지정 셀에 접근하려면 대학 또는 회사의 자체 셀에 요청한 후 일부 설정을 다루어야합니다.

우선 데이터베이스 서버에서 여러분의 셀에 대해 를 업데이트해야합니다. 이 정보는 보통 관리자에게 제공합니다.

두번째로, OpenAFS 셀에 기록할 수 있으려면, 과 같은 식의 이름을 지정해야합니다.

CellServDB은 지정 셀에 접속하려면 어떤 서버가 필요한지 클라이언트에 알려줍니다. ThisCell은 명백하게 적어두어야 합니다. 보통 조직에 따라 고유의 이름을 활용하며, (공식) 도메인이 바람직한 선택이 될 수도 있습니다.

간단하게 시작하려면 로 클라이언트를 시작하고 여러분 자신을 인증하기 위해 를 활용하며 셀에 접근하기 위해 시작하십시오. 셀에 자동으로 로그인하려면 아래 적당한 섹션을 찾아보십시오.

캐시 조정
(ext2/3이라면) 기존 파일 시스템에 캐시를 올려둘 수 있거나, 다른 분할 공간에 캐시를 올려둘 수 있습니다. 캐시 기본 위치는 이지만 를 편집하여 위치를 바꿀 수 있습니다. 캐시의 표준 크기는 200MB입니다만 더 늘려도 됩니다.

시스템 시작시 AFS 시작하기
다음 명령은 시스템 시작시 여러분의 afs 클라이언트에 적당한 링크를 만듭니다:

커베로스 서버 설치
OpenAFS는 커베로스 5 인증이 필요합니다. 다음에서는 MIT 커베로스 서버를 설치하는 방법을 보여드립니다. 대신 Heimdal 커베로스 구현체를 활용할 수도 있습니다.

다음 명령으로 MIT 커베로스 서버 바이너리를 설치하십시오:

와 설정 파일을 편집하십시오. EXAMPLE.COM 렘 이름을 여러분의 실제 렘 이름으로 바꾸시고 예제의 호스트 이름을 여러분이 보유한 호스트 이름으로 고치십시오.

다음과 같이 커베로스 데이터베이스를 만드십시오:

서버 빌드
아직 끝내지 않았다면, 다음 명령으로 AFS 서버 와 클라이언트를 설정할 모든 필요한 바이너리를 설치하십시오.

서버 키 생성
OpenAFS 1.6.5 에서는 서비스 키에 강력한 암호화(AES 등)를 지원하며 커배로스 키탭 파일을 직접 읽습니다. OpenAFS 커베로스 서비스 키를 만들었으면, OpenAFS 서비스를 시작하기 전 OpenAFS 서버 프로세스의 키탭에 내보내십시오.

AFS 서버 시작하기
기본 감독(BOS) 서버를 초기화하려면 서버 머신의 AFS 프로세스를 감시하고 관리하는 명령을 실행해야 합니다. 시스템의 초기화 과정 처럼 생각하십시오

OpenAFS  를 시작하십시오.

다시 부팅할 때 OpenAFS 서버가 시작하는지 확인하십시오:

와 로 만든 BOS 서버를 검증해보십시오:

서버 프로세스의 셀 이름 정의
이제 셀 이름을 할당하십시오.

명령을 실행하여 셀 이름을 설정하십시오:

데이터베이스 서버 프로세스 시작하기
다음 명령을 활용하여 데이터베이스 서버 프로세스 항목을  파일에 만드십시오. 이 세가지 프로세스는 데이터 서버 머신에서만 동작합니다.

명령을 실행하여 모든 서버를 확인할 수 있습니다:

첫 파일 서버, 볼륨 서버, 셀베이저 시작하기
파일 서버, 볼륨 서버, 구조자(fileserver, volserver, salvager 프로세스)로 구성된  프로세스를 시작하십시오.

모든 프로세스가 실행중인지 확인하십시오:

다음 동작은 셀에서 AFS 파일 서버를 가동하느냐에 따라 다릅니다.

첫 AFS 서버를 셀에 설치한다면 첫 AFS 볼륨을 root.afs로 설정하십시오.

AFS 파일 서버 머신이 있고 셀의 볼륨이 있다면 로컬 머신의 실제 볼륨 상태와 VLDB(몰륨 위치 데이터베이스)와 동기화하는 명령과  명령을 실행하십시오. 이 과정에서 필요한 모든 데이터를 새 서버로 복사합니다.

명령 실행 과정에서 "partition /vicepa does not exist on the server" 메시지가 떠서 실패할 경우, OpenAFS 서버를 실행하기 전 분할 공간을 마운트했는지, 또는 명령으로 디렉터리를 마운트하고 프로세스를 다시 시작했는지 확인하십시오.

첫 관리 계정 만들기
셀 설정을 마무리 하고 관리 작업을 계속 진행하려면 관리자 계정이 필요합니다. 첫번재 계정은 서버에서 바로 만들어야합니다. 추기 계정은 서버에 ssh로 직접 접근하지 않고 만듭니다.

첫 관리 계정을 만들려면 네가지 작업 과정이 필요합니다.


 * USERNAME/admin 형식의 규칙에 따른 커베로스 인증
 * USERNAME.admin 형식의 규칙에 따른 AFS 사용자
 * 내장 AFS 시스템 및 관리자 그룹 구성원 자격
 * OpenAFS 최고 사용자 목록의 구성원 자격

커베로스 기본 인증 정보를 만드십시오. 이 명령을 커베로스 서버에서 루트 권한으로 실행하십시오:

AFS admin 사용자를 만드십시오 이 명령을 OpenAFS 데이터베이스 서버에서 루트 권한으로 실행하십시오:

AFS admin 사용자를 내장 관리자 그룹에 추가하십시오. 이 명령을 OpenAFS 데이터베이스 서버에서 루트 권한으로 실행하십시오:

AFS admin 사용자를 최고 사용자 목록에 추가하십시오. 이 명령을 각 OpenAFS 서버에서 루트 권한으로 실행하십시오:

AFS 파일 공간 최상위 레벨 설정
서버 설정이 끝났습니다. AFS 클라이언트를 실행하여 AFS 최상위 디렉터리를 설정하고 올바른 접근 권한을 부여해야합니다. 이 클라이언트는 OpenAFS 서버에 설치할 필요가 없습니다. 단지 관리 권한만 가져오면 됩니다. 이 부분에서 명령 실행 목적의 루트 접근은 필요하지 않습니다.

우선 관리 권한을 가져오겠습니다:

우선 일부 ACL을 설정하여 어떤 사용자든 을 탐색할 수 있게 해야합니다.

다음에는 루트 볼륨을 만들고 를 읽기 전용으로, 를 읽기/쓰기용으로 마운트해야합니다.

이 때, 새 AFS 위치에 볼륨을 만들고 파일 공간을 추가할 수 있습니다. 사용자 및 그룹을 만들고 디렉터리 접근 권한 설정을 통해 사용자가 파일과 디렉터리를 만들 수 있게 해야합니다. 볼륨을 만들고 마운트하려면:

결국은 해냈습니다!!! 로컬 네트워크에 동작하는 AFS 파일 서버를 두었습니다. 이제 왕컵에 커피를 부어드시고 AFS 문서를 쭉 뽑아두세요!!!

면책 사항
OpenAFS는 확장 기술입니다. 더 많은 정보를 확인하시려면 AFS 문서를 살펴보십시오. 이 부분에서는 지극히 일부의 관리 작업만 나열합니다.

로그인시 AFS 토큰을 획득하기 위한 PAM 설정
AFS를 이용하려면 커베로스 5 KDC(MIT, Heimdal, ShiShi Kerberos 5 또는 Microsoft Active Directory)에 대해 인증해야합니다. 허나 머신에 로그인하려면,  NIS, LDAP(OpenLDAP), Hesiod 데이터베이스의 로컬 일부가 될 수 있는 사용자 계정이 있어야합니다. PAM은 젠투에서 AFS에 인증 체계를 붙일 수 있게 하고 사용자 계정으로 로그인할 수 있게합니다.

다른 설정에서 활용할 파일을 업데이트해야합니다. use_first_pass는 사용자가 로그인하면 표시하는 것으로 보이며 ignore_root 는 AFS 또는 네트워크에 문제가 있어 로그인을 허용할 때 로컬 최고 사용자 확인 과정을 중단하게 합니다.

실제 사용자의 토큰을 유지하고 로컬 사용자가 의 내용을 바꾸어 AFS 접근 권한을 취득하는 문제를 막으려면 다음 명령을 실행하십시오: