Sun Java System Directory Server Enterprise Edition 6.3 관리 설명서

3장 디렉토리 서버 인스턴스 및 접미어

이 장에서는 디렉토리 서버 인스턴스 및 접미어를 만들고 관리하는 방법에 대해 설명합니다. 접미어 수준에서 구성되는 다양한 디렉토리 관리 작업에 대해서는 본 설명서의 다른 장에서 설명합니다.

이 장은 다음 내용으로 구성되어 있습니다.

서버 인스턴스 및 접미어 만들기에 대한 빠른 절차

이 장은 서버 인스턴스 및 접미어를 만드는 방법에 대한 자세한 정보로 구성되어 있습니다. 디렉토리 서버 인스턴스 및 접미어를 신속하게 만들고 일부 데이터 예를 가져와야 하는 경우에는 Sun Java System Directory Server Enterprise Edition 6.3 Installation GuideServer Instance Creation을 참조하십시오.

디렉토리 서버 인스턴스 만들기 및 삭제

이 절에서는 디렉토리 서버 인스턴스를 만들고 삭제하는 방법에 대해 설명합니다.

Procedure디렉토리 서버 인스턴스를 만드는 방법

데이터를 관리하려면 명령줄 도구 또는 브라우저 인터페이스 디렉토리 서비스 제어 센터(Directory Service Control Center, DSCC)를 사용하여 디렉토리 서버 인스턴스를 만들어야 합니다. DSCC에서 디렉토리 서버 인스턴스는 간단하게 "디렉토리 서버"라고도 합니다.

디렉토리 서버 인스턴스를 만들 때 디렉토리 서버에 필요한 파일 및 디렉토리가 사용자가 지정한 instance-path에 만들어집니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

DSCC를 사용하여 새 서버 인스턴스를 만들면 기존 서버에서 서버 구성 설정의 일부 또는 전체를 복사할 수 있습니다.

  1. 새 디렉토리 서버 인스턴스를 만들고 인스턴스 경로를 설정합니다.


    $ dsadm create instance-path
    

    이 서버에 대한 디렉토리 관리자 비밀번호를 설정하라는 메시지가 표시됩니다.

    서버 인스턴스에 대한 포트 번호를 기본값이 아닌 값으로 지정하거나, 다른 매개 변수를 지정하려면 dsadm(1M) 설명서 페이지를 참조하십시오.

    예를 들어 /local/ds 디렉토리에 새 인스턴스를 만들려면 다음 명령을 사용합니다.


    $ dsadm create /local/ds
    Choose the Directory Manager password:
    Confirm the Directory Manager password:
    Use 'dsadm start /local/ds' to start the instance 
  2. 서버 인스턴스가 올바르게 만들어졌는지 확인합니다.


    $ dsadm info instance-path
    

    예를 들면 다음과 같습니다.


    $ dsadm info /local/ds1
    Instance Path:         /local/ds1
    Owner:                 user1(group1)
    Non-secure port:       1389
    Secure port:           1636
    Bit format:            64-bit
    State:                 Running
    Server PID:            22555
    DSCC url:              -
    SMF application name:  -
    Start at boot:         Disabled
    Instance version:      D-A00
  3. (옵션) Java Enterprise System 설치 프로그램이나 기본 패키지 설치를 사용하여 디렉토리 서버를 설치했고 OS에서 서비스 관리 솔루션을 제공하는 경우 다음 표와 같이 서버를 서비스로 관리할 수 있습니다.

    운영 체제 

    명령 

    Solaris 10 

    Sun Cluster 환경에서 작업하는 경우에는 다음 명령을 사용합니다. 

    dsadm enable-service --type CLUSTER instance-path resource-group

    그렇지 않은 경우에는 다음 명령을 사용합니다.  

    dsadm enable-service --type SMF instance-path

    Solaris 9 

    Sun Cluster 환경에서 작업하는 경우에는 다음 명령을 사용합니다. 

    dsadm enable-service --type CLUSTER instance-path resource_group

    그렇지 않은 경우에는 다음 명령을 사용합니다.  

    dsadm autostart instance-path

    Linux, HP-UX 

    dsadm autostart instance-path

    Windows 

    dsadm enable-service --type WIN_SERVICE instance-path

  4. 디렉토리 서버를 시작합니다.


    $ dsadm start instance-path
    

    주 –

    서버가 실행 중이지만 데이터 또는 접미어가 없습니다. dsconf를 사용하여 접미어를 만듭니다.


  5. (옵션) 다음 방법 중 하나를 사용하여 서버 인스턴스를 등록합니다.

    • https://host:6789 URL에 액세스하여 DSCC를 통해 서버를 등록합니다.

    • dsccreg add-server 명령을 사용합니다.

      자세한 내용은 dsccreg(1M) 설명서 페이지를 참조하십시오.

  6. 비밀번호 정책을 사용하려 할 때 디렉토리 서버 인스턴스가 독립형인 경우 또는 인스턴스가 이미 DS6-only 비밀번호 정책 모드로 마이그레이션된 복제 토폴로지에 속한 경우 인스턴스를 해당 모드로 전환합니다.


    $ dsconf pwd-compat -h host -p port to-DS6-migration-mode
    
    ## Beginning password policy compatibility changes .
    ## Password policy compatibility changes finished.
    
    Task completed (slapd exit code: 0).
    $ dsconf pwd-compat -h host -p port to-DS6-mode
    
    ## Beginning password policy compatibility changes .
    ## Password policy compatibility changes finished.
    
    Task completed (slapd exit code: 0).

Procedure디렉토리 서버 인스턴스를 삭제하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 서버를 중지합니다.


    $ dsadm stop instance-path
    
  2. 이전에 DSCC를 사용하여 서버를 관리했다면 명령줄을 사용하여 서버를 등록 취소합니다.


    $ dsccreg remove-server /local/ds
    Enter DSCC administrator's password:
    /local/ds is an instance of DS
    Enter password of "cn=Directory Manager" for /local/ds:
    This operation will restart /local/ds.
    Do you want to continue ? (y/n) y
    Unregistering /local/ds from DSCC on localhost.
    Connecting to /local/ds
    Disabling DSCC access to /local/ds
    Restarting /local/ds

    자세한 내용은 dsccreg(1M) 설명서 페이지를 참조하십시오.

  3. (옵션) 이전에 서비스 관리 솔루션에서 서버 인스턴스를 활성화했다면 서버가 서비스로 관리되지 않도록 설정합니다.

    운영 체제 

    명령 

    Solaris 10 

    Sun Cluster 환경에서 작업하는 경우에는 다음 명령을 사용합니다. 

    dsadm disable-service --type CLUSTER instance-path

    그렇지 않은 경우에는 다음 명령을 사용합니다.  

    dsadm disable-service --type SMF instance-path

    Solaris 9 

    Sun Cluster 환경에서 작업하는 경우에는 다음 명령을 사용합니다. 

    dsadm disable-service --type CLUSTER instance-path

    그렇지 않은 경우에는 다음 명령을 사용합니다.  

    dsadm autostart --off instance-path

    Linux, HP-UX 

    dsadm autostart --off instance-path

    Windows 

    dsadm disable-service --type WIN_SERVICE instance-path

  4. 서버 인스턴스를 삭제합니다.


    $ dsadm delete instance-path
    

    주의 – 주의 –

    이 명령은 데이터베이스와 데이터를 포함한 모든 항목을 제거합니다.

    인스턴스가 서비스로 활성화되었거나 인스턴스가 시스템 시작 시 자동으로 시작된 경우 dsadm delete에는 루트 액세스가 필요합니다.


디렉토리 서버 인스턴스 시작, 중지 및 다시 시작

명령줄에서 서버를 시작, 중지 또는 다시 시작하려면 각각 dsadm start, dsadm stopdsadm restart 명령을 사용합니다.


주 –

디렉토리 서버 인스턴스를 중지 및 다시 시작할 때 항목이 유지되도록 메모리에 대규모의 캐시가 구성된 경우 캐시가 채워질 때까지 시간이 약간 걸립니다. 캐시가 채워지는 동안 인스턴스는 더 느리게 응답합니다.


이 명령은 디렉토리 서버를 만들었던 동일한 UID 및 GID로 실행되거나 루트로 실행되어야 합니다. 예를 들어 디렉토리 서버가 user1로 실행되면 start, stoprestart 유틸리티를 user1로 실행해야 합니다.


주 –

Solaris에서는 역할 기반 액세스 제어를 통해 루트 이외의 사용자로 디렉토리 서버를 실행할 수 있습니다.


Procedure디렉토리 서버를 시작, 중지 및 다시 시작하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오. 그러나 서비스 관리 활성화 및 비활성화 단계에는 적용되지 않습니다. 서비스 관리 활성화 및 비활성화는 디렉토리 서버를 시작 및 중지할 때 명령줄에서 수행해야 합니다.

  1. 디렉토리 서버를 시작, 중지 또는 다시 시작하려면 다음 중 하나를 수행합니다.

    • 서버를 시작하려면 다음을 입력합니다.


      $ dsadm start instance-path
      

      예를 들어 인스턴스 경로가 /local/ds인 서버를 시작하려면 다음 명령을 사용합니다.


      $ dsadm start /local/ds
    • 서버를 중지하려면 다음을 입력합니다.


      $ dsadm stop instance-path
      

      예를 들면 다음과 같습니다.


      $ dsadm stop /local/ds
    • 서버를 다시 시작하려면 다음을 입력합니다.


      $ dsadm restart instance-path
      

      예를 들면 다음과 같습니다.


      $ dsadm restart /local/ds

접미어 만들기

디렉토리 서버 인스턴스를 만든 후에는 서버 DIT(Directory Information Tree)에 대한 접미어를 하나 이상 만들어야 합니다. DIT는 고유 이름(DN)으로 식별되는 서버 내의 모든 항목으로 구성됩니다. DN의 계층 구조적 특성으로 인해 트리의 데이터를 구조화하는 분기와 리프가 만들어집니다. DIT는 관리상 접미어 및 하위 접미어로 정의 및 관리됩니다. DSCC에서는 이러한 모든 요소를 만들고 관리하기 위한 컨트롤을 제공하지만 명령줄 도구를 사용할 수도 있습니다.

일반적으로 디렉토리 데이터 구조화 및 접미어에 대한 개념 정보는 Sun Java System Directory Server Enterprise Edition 6.3 Deployment Planning Guide를 참조하십시오.

다음 절차에 설명된 것처럼 dsconf create-suffix 명령을 사용하여 디렉토리에서 접미어 구성을 만들 수 있습니다. 루트 접미어와 하위 접미어는 내부적으로 동일하게 관리되기 때문에 명령줄에서 만드는 절차도 거의 동일합니다. 이 절차는 필수 옵션만을 사용한 dsconf create-suffix 명령을 보여줍니다. 이 명령의 다른 옵션에 대한 자세한 내용은 dsconf(1M) 설명서 페이지를 참조하거나 다음 명령을 실행하십시오.


$ dsconf create-suffix --help

구성 항목은 관리 사용자가 만들 수 있습니다. 그러나, 접미어의 상위 항목은 반드시 디렉토리 관리자가 만들거나 cn=admin,cn=Administrators,cn=config와 같은 디렉토리 어드민 관리자로 만들어야 합니다.

Procedure접미어를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

DSCC를 사용하여 새 접미어를 만드는 경우 기존 접미어에서 접미어 구성 설정의 일부 또는 전체를 복사할 수 있습니다.

  1. 루트 접미어를 만듭니다.

    서버가 실행 중인지 확인한 후 다음 명령을 입력합니다.


    $ dsconf create-suffix -h host -p port suffix-DN
    

    여기서 suffix-DN은 새 접미어의 전체 DN입니다. 관례상, 루트 접미어는 도메인 구성 요소(dc) 이름 지정 속성을 사용합니다.

    예를 들어 DN이 dc=example,dc=com인 접미어를 만들려면 다음 명령을 사용합니다.


    $ dsconf create-suffix -h host1 -p 1389 dc=example,dc=com

    이 명령을 실행하면 새 접미어가 다음과 같이 만들어집니다.

    • 루트 접미어의 상위 수준(또는 기본) 항목이 만들어집니다.

    • 접미어와 데이터베이스 모두에 대한 cn=config의 구성 항목이 만들어집니다.

    • 기본 데이터베이스 이름은 접미어 DN을 기준으로 합니다.

    새로 만든 접미어를 비롯하여 모든 접미어에 대한 자세한 내용을 보려면 다음 명령을 사용합니다.


    $ dsconf list-suffixes -h host -p port -v

    -v 옵션을 사용하면 접미어의 항목 수를 나타내는 세부 정보 표시 모드와 복제 정보가 표시됩니다.


    주 –

    디렉토리 서버 인스턴스가 둘 이상인 경우 -h host name-pport number 옵션을 사용하여 접미어가 속해야 하는 서버 인스턴스를 지정합니다.

    데이터베이스 파일에 대한 경로를 기본값 이외의 경로로 지정하려면 -L 옵션을 사용합니다. 접미어 데이터베이스 경로는 이후 단계에서 변경할 수 있습니다. 이 작업을 수행하려면 dsconf set-suffix-prop suffix-DN db-path:new-db-path 명령을 사용한 다음 서버를 중지하고, 데이터베이스 파일을 수동으로 이동한 후 서버를 다시 시작합니다.

    접미어를 만들 때 사용할 수 있는 모든 옵션을 보려면 dsconf(1M) 설명서 페이지를 참조하십시오.


  2. 필요한 경우 하위 접미어를 만듭니다.


    $ dsconf create-suffix -h host -p port subSuffix-DN
    

    그런 다음 하위 접미어를 루트 접미어에 연결합니다.


    $ dsconf set-suffix-prop -h host -p port subSuffix-DN parent-suffix-dn:parentSuffix-DN
    

    여기서 parentSuffix-DN은 이전 단계의 suffix-DN과 동일한 값이어야 합니다. 하위 접미어의 suffix-DN에는 하위 접미어의 RDN(Relative Distinguished Name) 및 부모 접미어의 DN이 포함됩니다.

    예를 들어 하위 접미어 ou=Contractors,dc=example,dc=com을 만들고 이 하위 접미어를 루트 접미어에 연결하려면 다음을 입력합니다.


    $ dsconf create-suffix -h host1 -p 1389 ou=Contractors,dc=example,dc=com
    $ dsconf set-suffix-prop -h host1 -p 1389 ou=Contractors,dc=example,dc=com \
     parent-suffix-dn:dc=example,dc=com

    디렉토리에 이 항목이 추가되면 서버의 데이터베이스 모듈이 자동으로 다음 디렉토리에 데이터베이스 파일을 만듭니다.


    instance-path/db/database-name
    

    여기서 database-name은 접미어의 일부에서 자동으로 작성되는 이름입니다. 예를 들어 이전 예에서 database-nameContractors가 됩니다.

  3. (옵션) 데이터를 사용하여 접미어를 초기화합니다. 접미어 초기화를 참조하십시오.

접미어 비활성화 또는 활성화

유지관리를 위해 접미어를 비활성화하거나 보안상의 이유로 해당 접미어 내용을 사용할 수 없도록 설정해야 하는 경우가 있습니다. 접미어를 비활성화하면 서버에서 클라이언트 작업에 대한 응답으로 접미어 내용을 읽거나 쓸 수 없습니다. 접미어를 비활성화하면 더 이상 해당 접미어에 액세스할 수 없고 참조 모드가 자동으로 비활성 상태로 설정됩니다.

Procedure접미어를 비활성화한 후 활성화하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 접미어를 비활성화합니다.


    $ dsconf set-suffix-prop -h host -p port suffix-DN enabled:off

    주 –

    복제된 접미어에 대한 등록 정보는 대부분 복제 메커니즘에 의해 결정되기 때문에 복제가 활성화된 접미어는 비활성화할 수 없습니다.


  2. 접미어를 활성화합니다.


    $ dsconf set-suffix-prop -h host -p port suffix-DN enabled:on

참조 설정 및 접미어 읽기 전용 만들기

접미어를 완전히 비활성화하지 않고 액세스를 제한하려면 읽기 전용 액세스를 허용하도록 액세스 권한을 수정할 수 있습니다. 이 경우 쓰기 작업을 위해 다른 서버에 대한 참조를 정의해야 합니다. 읽기 및 쓰기 액세스를 모두 거부하고 접미어에 대한 모든 작업에 반환할 참조를 정의할 수도 있습니다.

또한 참조를 사용하여 일시적으로 클라이언트 응용 프로그램을 다른 서버로 연결할 수 있습니다. 예를 들어 접미어 내용을 백업하는 동안 참조를 다른 접미어에 추가할 수 있습니다.

접미어가 복제된 환경의 소비자인 경우 복제 메커니즘이 참조 설정 값을 결정합니다. 참조 설정은 수동으로 수정할 수 있지만 다음 복제 업데이트 시 참조를 덮어씁니다. 복제 참조 설정에 대한 자세한 내용은 고급 사용자 구성을 수행하는 방법을 참조하십시오.

참조는 레이블이 지정된 URL, 즉 뒤에 공백 문자 및 레이블이 올 수 있는 LDAP URL입니다. 예를 들면 다음과 같습니다.


ldap://phonebook.example.com:389/

또는


ldap://phonebook.example.com:389/ou=All%20People,dc=example,dc=com

공백 문자는 중요하기 때문에 참조의 URL 부분에 있는 모든 공백 문자는 %20을 사용하여 이스케이프시켜야 합니다.

Procedure참조를 설정하여 접미어를 읽기 전용으로 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 참조 URL을 설정합니다.


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-url:LDAP-URL
    

    여기서 LDAP-URL은 대상의 호스트 이름, 포트 번호 및 DN이 포함된 유효한 URL입니다.

    예를 들면 다음과 같습니다.


    $ dsconf set-suffix-prop -h host1 -p 1389 dc=example,dc=com \
     referral-url:ldap://phonebook.example.com:389/

    LDAP URL의 수를 지정할 수 있습니다.

  2. 참조 모드를 설정하여 접미어를 읽기 전용으로 만듭니다.


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:only-on-write

    접미어에 대한 읽기 및 쓰기 작업을 모두 비활성화하고 모든 요청에 대해 참조를 반환하려면 referral-modeenabled로 설정합니다.

  3. 명령이 성공하면 접미어는 읽기 전용 또는 액세스 불가능 상태가 되어 참조를 반환할 준비가 됩니다.

  4. (옵션) 접미어를 사용할 수 있게 되면 참조를 비활성화하여 접미어를 다시 읽기/쓰기 상태로 만듭니다.


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:disabled

    참조가 비활성화되면 접미어의 enabled 등록 정보를 off로 설정하여 접미어 자체를 비활성화하지 않는 한 접미어는 자동으로 읽기/쓰기 상태가 됩니다.

접미어 삭제

접미어를 삭제하면 DIT에서 전체 분기가 제거됩니다.


주 –

접미어를 삭제하면 디렉토리에서 모든 데이터 항목이 영구적으로 제거됩니다. 또한, 해당 복제 구성을 비롯한 모든 접미어 구성 정보도 제거됩니다.


부모 접미어는 삭제할 수 없으며 이에 따라 DIT에서 해당 하위 접미어를 새 루트 접미어로 유지할 수 없습니다. 하위 접미어가 포함된 분기 전체를 삭제하려면 삭제된 부모의 하위 접미어와 자신의 하위 접미어도 삭제해야 합니다.

Procedure접미어를 삭제하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 접미어 구성 항목을 제거합니다.


    $ dsconf delete-suffix -h host -p port [subSuffix-DN] suffix-DN
    

    이 명령은 suffix-DN의 기본 항목에서 시작하여 접미어를 서버에서 제거합니다. 이 접미어는 더 이상 디렉토리에서 보거나 액세스할 수 없습니다.

접미어 압축

Directory Server 6.3는 접미어의 오프라인 압축을 지원합니다. 온라인 압축은 이 릴리스에서 지원되지 않습니다. 저장소 공간을 사용할 수 있는 경우 접미어를 압축하면 데이터베이스 키가 다시 구성되어 데이터베이스 크기가 줄어듭니다.

Procedure접미어를 오프라인으로 압축하는 방법

이 작업을 수행하기 전에 서버를 중지하고 데이터베이스를 백업합니다.

  1. 필요한 접미어를 압축합니다.


    $ dsadm repack instance-path suffix-dn
    

    지정된 접미어와 관련된 모든 .db3 파일이 압축됩니다.

    -b 옵션과 함께 이 명령을 실행하는 경우 접미어 DN 대신 백엔드 데이터베이스 이름을 지정할 수 있습니다. 하나 이상의 접미어 또는 백엔드를 지정해야 합니다.