Solaris OS용 Sun Cluster 소프트웨어 설치 안내서

Procedure업그레이드를 위한 클러스터 준비 방법(이중 분할 영역)

이 절차를 수행하여 이중 분할 영역 업그레이드를 위해 클러스터를 준비합니다. 이 절차는 첫 번째 분할 영역 및 두 번째 분할 영역의 두 그룹 노드에 대한 것입니다. 첫 번째 분할 영역의 노드를 업그레이드하는 동안 두 번째 분할 영역에 할당된 노드가 클러스터 서비스를 계속 수행합니다. 첫 번째 분할 영역에서 모든 노드가 업그레이드된 후 클러스터 서비스를 첫 번째 분할 영역으로 전환하고 두 번째 분할 영역을 업그레이드합니다. 두 번째 분할 영역의 모든 노드가 업그레이드된 후, 첫 번째 분할 영역의 노드와 다시 연결되도록 노드를 클러스터 모드로 부트합니다.


주 –

단일 노드 클러스터를 업그레이드하려는 경우, 이 업그레이드 방법을 사용하지 마십시오. 대신, 업그레이드를 위해 클러스터를 준비하는 방법(표준) 또는 업그레이드를 위해 클러스터를 준비하는 방법(Live Upgrade)으로 이동하십시오.


Solaris 10 OS에서는 모든 단계를 전역 영역에서만 수행합니다.

시작하기 전에

다음 작업을 수행합니다.

  1. 클러스터가 정상적으로 작동하는지 확인하십시오.

    1. 아무 노드에서나 다음 명령을 실행하여 클러스터의 현재 상태를 확인합니다.


      % scstat
      

      자세한 내용은 scstat(1M) 매뉴얼 페이지를 참조하십시오.

    2. 동일한 노드의 /var/adm/messages 로그에서 해결되지 않은 오류 메시지나 경고 메시지를 확인하십시오.

    3. 볼륨 관리자 상태를 확인하십시오.

  2. 필요한 경우, 업그레이드 중에 클러스터 서비스가 일시적으로 중단될 수 있음을 사용자에게 통지합니다.

    서비스 중단은 대략 사용 중인 클러스터가 다른 노드로 서비스를 정상적으로 전환하는 시간 동안 발생하게 됩니다.

  3. 클러스터의 노드에서 수퍼유저로 전환합니다.

  4. Sun StorEdge Availability Suite 소프트웨어 또는 Sun StorageTek Availability Suite 소프트웨어를 사용하는 2 노드 클러스터의 경우, 가용성 서비스에 대한 구성 데이터가 쿼럼 디스크에 상주하는지 확인합니다.

    클러스터 소프트웨어 업그레이드 후 Availability Suite가 제대로 작동하려면 구성 데이터가 쿼럼 디스크에 상주해야 합니다.

    1. Availability Suite 소프트웨어를 실행하는 클러스터의 노드에서 수퍼유저로 전환합니다.

    2. Availability Suite 구성 파일에서 사용하는 장치 ID 및 슬라이스를 식별합니다.


      phys-schost# /usr/opt/SUNWscm/sbin/dscfg
      /dev/did/rdsk/dNsS
      

      이 출력 예에서 N은 장치 ID이고 SN 장치의 슬라이스입니다.

    3. 기존 쿼럼 장치를 식별하십시오.


      phys-schost# scstat -q
      -- Quorum Votes by Device --
                           Device Name         Present Possible Status
                           -----------         ------- -------- ------
         Device votes:     /dev/did/rdsk/dQsS  1       1        Online

      이 출력 예에서 dQsS는 기존 쿼럼 장치입니다.

    4. 쿼럼 장치가 Availability Suite 구성 데이터 장치와 동일하지 않으면 구성 데이터를 쿼럼 장치의 사용 가능한 슬라이스로 옮깁니다.


      phys-schost# dd if=`/usr/opt/SUNWesm/sbin/dscfg` of=/dev/did/rdsk/dQsS
      

      주 –

      블록 DID 장치 이름인 /dev/did/dsk/가 아니라 원시 DID 장치의 이름인 /dev/did/rdsk/를 사용해야 합니다 .


    5. 구성 데이터를 옮겼다면 새 위치를 사용하도록 Availability Suite 소프트웨어를 구성합니다.

      수퍼유저로서 Availability Suite 소프트웨어를 실행하는 각 노드에서 다음 명령을 실행합니다.


      phys-schost# /usr/opt/SUNWesm/sbin/dscfg -s /dev/did/rdsk/dQsS
      
  5. Solaris OS를 업그레이드할 경우 클러스터는 Solaris Volume Manager 소프트웨어용 이중 문자열 조정자를 사용하여 조정자의 구성을 해제합니다.

    자세한 내용은 이중 문자열 조정자 구성을 참조하십시오.

    1. 다음 명령을 실행하여 어떤 조정자 데이터 문제점도 존재하지 않음을 확인하십시오.


      phys-schost# medstat -s setname
      
      -s setname

      디스크 세트 이름을 지정합니다.

      상태 필드 값이 Bad인 경우 영향을 받는 조정자 호스트를 복구합니다. 잘못된 조정자 데이터를 수정하는 방법의 절차를 수행합니다.

    2. 모든 조정자를 나열하십시오.

      Sun Cluster 3.2 소프트웨어로의 업그레이드를 완료하는 방법의 절차를 실행하는 동안 조정자를 복구할 경우를 위해 이 정보를 저장합니다.

    3. 조정자를 사용하는 디스크 세트에 대해 소유권을 가진 노드가 없는 경우 디스크 세트에 대한 소유권을 취하십시오.


      phys-schost# scswitch -z -D setname -h node
      
      -z

      마스터를 변경합니다.

      -D devicegroup

      디스크 세트의 이름을 지정합니다.

      -h node

      디스크 세트의 기본이 될 노드의 이름을 지정합니다.

    4. 디스크 세트에 대한 모든 조정자 구성을 해제하십시오.


      phys-schost# metaset -s setname -d -m mediator-host-list
      
      -s setname

      디스크 세트 이름을 지정합니다.

      -d

      디스크 세트에서 삭제합니다.

      -m mediator-host-list

      제거할 노드 이름을 디스크 세트의 조정자 호스트로 지정합니다.

      metaset 명령에 사용하는 조정자 관련 옵션에 대한 자세한 내용은 mediator(7D) 매뉴얼 페이지를 참조하십시오.

    5. 조정자를 사용하는 나머지 디스크 세트 각각에 대해 단계 c ~ 단계 d를 반복합니다.

  6. 4.4 버전 이상의 Sun Java System Application Server EE(HADB) 소프트웨어와 Sun Cluster HA for Sun Java System Application Server EE(HADB) 데이터 서비스를 실행할 경우, HADB 자원을 비활성화하고 HADB 데이터베이스를 종료합니다.

    4.4 이하의 Sun Java System Application Server EE(HADB) 소프트웨어 버전을 실행 중인 경우에는 본 단계를 건너뛸 수 있습니다.

    업그레이드 중에 한 클러스터 분할 영역의 서비스가 불가능해지면, 활성 분할 영역에 HADB 구성원 요구 사항을 충족하기 위한 노드가 충분하지 않게 됩니다. 따라서, 클러스터의 분할 영역을 시작하기 전에 HADB 데이터베이스를 중지하고 HADB 자원을 비활성화해야 합니다.


    phys-schost# hadbm stop database-name
    phys-schost# scswitch -n -j hadb-resource
    

    자세한 내용은 hadbm(1m) 매뉴얼 페이지를 참조하십시오.

  7. 2 노드 클러스터를 업그레이드 중인 경우, 단계 16으로 건너 뜁니다.

    그렇지 않은 경우, 단계 8로 이동하여 사용할 분할 영역 스키마를 결정합니다. 분할 프로세스를 중단하면서 각 분할 영역에 포함시킬 노드를 결정합니다. 그런 다음, 모든 자원 그룹의 노드 목록과 사용할 스키마의 각 분할 영역의 노드 구성원을 비교합니다. 자원 그룹이 각 분할 영역의 구성원을 포함하지 않는 경우, 노드 목록을 변경해야 합니다.

  8. Sun Java Availability Suite DVD-ROM을 DVD-ROM 드라이브에 삽입합니다.

    볼륨 관리 데몬 vold(1M)가 실행 중이고 CD-ROM 또는 DVD 장치를 관리하도록 구성되었다면 이 데몬은 /cdrom/cdrom0/ 디렉토리에 미디어를 자동으로 마운트합니다.

  9. Solaris_arch/Product/sun_cluster/Solaris_ver/Tools/ 로 변경합니다. 여기서 archsparc 또는 x86(Solaris 10의 경우만)이고 ver이 Solaris 9의 경우에는 9, Solaris 10의 경우에는 10입니다.


    phys-schost# cd /cdrom/cdrom0/Solaris_arch/Product/sun_cluster/Solaris_ver/Tools
    
  10. scinstall 유틸리티를 대화식 모드로 시작합니다.


    phys-schost# ./scinstall
    

    주 –

    노드에 이미 설치되어 있는 경우 /usr/cluster/bin/scinstall 명령을 사용하지 마십시오. Sun Java Availability Suite DVD-ROM에서 scinstall 명령을 사용해야 합니다.


    scinstall 주 메뉴가 표시됩니다.

  11. 이중 분할 영역 업그레이드 관리 옵션에 해당하는 번호를 입력하고 Enter 키를 누릅니다.


    *** Main Menu ***
    
        Please select from one of the following (*) options:
    
            1) Create a new cluster or add a cluster node
            2) Configure a cluster to be JumpStarted from this install server
          * 3) Manage a dual-partition upgrade
          * 4) Upgrade this cluster node
          * 5) Print release information for this cluster node
     
          * ?) Help with menu options
          * q) Quit
    
        Option:  3
    

    이중 분할 영역 업그레이드 관리 메뉴가 표시됩니다.

  12. 가능한 분할 영역 스키마 표시 및 선택 옵션에 해당하는 번호를 입력하고 Enter 키를 누릅니다.

  13. 프롬프트를 따라 다음 작업을 수행합니다.

    1. 사용 중인 클러스터의 가능한 분할 영역 스키마를 표시합니다.

    2. 분할 영역 스키마를 선택합니다.

    3. 어떤 분할 영역을 가장 먼저 업그레이드할지 선택합니다.


      주 –

      Do you want to begin the dual-partition upgrade? 프롬프트가 표시되면 진행을 중지하고 응답하지 마십시오. 그러나 scinstall 유틸리티는 종료하지 마십시오. 이 절차의 단계 18에서 이 프롬프트에 응답합니다.


  14. 분할 영역 스키마에서 어떤 노드가 각 분할 영역에 속하는지 적어두십시오.

  15. 클러스터의 다른 노드에서 수퍼유저로 전환합니다.

  16. 중요 데이터 서비스가 분할 영역 사이에 스위치오버될 수 있도록 합니다.

    2 노드 클러스터의 경우, 각 노드는 분할 영역의 단일 노드입니다.

    이중 분할 영역 업그레이드를 위한 준비 중에 분할 영역의 노드가 종료되면, 해당 노드에서 호스트되는 자원 그룹은 다른 분할 영역의 노드로 스위치오버됩니다. 해당 노드 목록에서 각 분할 영역의 노드가 자원 그룹에 포함되지 않는 경우, 자원 그룹은 스위치오버할 수 없습니다. 모든 중요 데이터 서비스가 성공적으로 스위치오버되었는지 확인하려면 관련 자원 그룹의 노드 목록에 각 업그레이드 분할 영역의 구성원이 포함되는지 확인합니다.

    1. 전체 업그레이드를 하는 동안 서비스를 제공해야 하는 각 자원 그룹의 노드 목록을 표시합니다.


      phys-schost# scrgadm -pv -g resourcegroup | grep "Res Group Nodelist"
      
      -p

      구성 정보를 표시합니다.

      -v

      상세 모드로 표시합니다.

      -g resourcegroup

      자원 그룹의 이름을 지정합니다.

    2. 자원 그룹의 노드 목록에 각 분할 영역의 구성원이 하나도 포함되지 않을 경우, 노드 목록에 각 분할 영역의 구성원이 잠재적 기본 노드로서 포함되도록 다시 정의합니다.


      phys-schost# scrgadm -a -g resourcegroup -h nodelist
      
      -a

      새 구성을 추가합니다.

      -h

      쉼표로 분리된 노드 이름의 목록을 지정합니다.

  17. 다음 단계를 결정합니다.

    • 2 노드 클러스터를 업그레이드할 경우, 단계 8 ~ 단계 13으로 다시 돌아가 분할 영역 스키마 및 업그레이드 순서를 지정합니다.

      Do you want to begin the dual-partition upgrade? 프롬프트가 표시되면 단계 18로 건너뜁니다.

    • 클러스터를 세 개 이상의 노드로 업그레이드 중인 경우, 대화식 scinstall 유틸리티를 실행 중인 노드로 되돌아갑니다.

      단계 18로 진행합니다.

  18. 대화식 scinstall 프롬프트 Do you want to begin the dual-partition upgrade?가 표시되면 Yes를 입력합니다.

    이 명령은 원격 설치 방법이 사용 가능한지 확인합니다.

  19. 프롬프트가 표시되면 Enter를 눌러 이중 분할 영역 업그레이드를 위한 각 준비 단계를 진행합니다.

    이 명령은 자원 그룹을 두 번째 분할 영역의 노드로 전환한 다음, 첫 번째 분할 영역의 각 노드를 종료합니다.

  20. 첫 번째 분할 영역에서 모든 노드가 종료된 후 해당 분할 영역의 각 노드를 비클러스터 모드로 부트합니다.

    • SPARC 기반 시스템에서는 다음 명령을 수행하십시오.


      ok boot -x
      
    • Solaris 9 OS를 실행하는 x86 기반 시스템에서 다음 명령 중 하나를 수행합니다.


      phys-schost# reboot -- -xs
      or
      ...
                            <<< Current Boot Parameters >>>
      Boot path: /pci@0,0/pci-ide@7,1/ata@1/cmdk@0,0:b
      Boot args:
      
      Type  b [file-name] [boot-flags] <ENTER>  to boot with options
      or    i <ENTER>                           to enter boot interpreter
      or    <ENTER>                             to boot with defaults
      
                        <<< timeout in 5 seconds >>>
      Select (b)oot or (i)nterpreter: b -xs
      
    • Solaris 10 OS가 실행되고 있는 x86 기반 시스템에서는 다음 명령을 수행합니다.

      1. GRUB 메뉴에서 화살표 키를 사용하여 적절한 Solaris 항목을 선택하고 e를 입력하여 해당 명령을 편집합니다.

        GRUB 메뉴가 다음과 같이 나타납니다.


        GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
        +-------------------------------------------------------------------------+
        | Solaris 10 /sol_10_x86                                                  |
        | Solaris failsafe                                                        |
        |                                                                         |
        +-------------------------------------------------------------------------+
        Use the ^ and v keys to select which entry is highlighted.
        Press enter to boot the selected OS, 'e' to edit the
        commands before booting, or 'c' for a command-line.

        GRUB 기반 부트에 대한 내용은 System Administration Guide: Basic Administration의 11 장, GRUB Based Booting (Tasks)을 참조하십시오.

      2. 부트 매개 변수 화면에서 화살표 키를 사용하여 kernel 항목을 선택하고 e를 입력하여 항목을 편집합니다.

        다음과 같이 GRUB 부트 매개 변수 화면이 나타납니다.


        GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
        +----------------------------------------------------------------------+
        | root (hd0,0,a)                                                       |
        | kernel /platform/i86pc/multiboot                                     |
        | module /platform/i86pc/boot_archive                                  |
        +----------------------------------------------------------------------+
        Use the ^ and v keys to select which entry is highlighted.
        Press 'b' to boot, 'e' to edit the selected command in the
        boot sequence, 'c' for a command-line, 'o' to open a new line
        after ('O' for before) the selected line, 'd' to remove the
        selected line, or escape to go back to the main menu.
      3. 명령에 -x를 추가하여 시스템 부트를 비클러스터 모드로 지정합니다.


        [ Minimal BASH-like line editing is supported. For the first word, TAB
        lists possible command completions. Anywhere else TAB lists the possible
        completions of a device/filename. ESC at any time exits. ]
        
        grub edit> kernel /platform/i86pc/multiboot -x
        
      4. Enter 키를 눌러 변경 사항을 수락하고 부트 매개 변수 화면으로 돌아갑니다.

        화면에 편집된 명령이 표시됩니다.


        GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
        +----------------------------------------------------------------------+
        | root (hd0,0,a)                                                       |
        | kernel /platform/i86pc/multiboot -x                                  |
        | module /platform/i86pc/boot_archive                                  |
        +----------------------------------------------------------------------+
        Use the ^ and v keys to select which entry is highlighted.
        Press 'b' to boot, 'e' to edit the selected command in the
        boot sequence, 'c' for a command-line, 'o' to open a new line
        after ('O' for before) the selected line, 'd' to remove the
        selected line, or escape to go back to the main menu.-
      5. 비클러스터 모드로 노드를 부트하려면 b를 입력합니다.


        주 –

        커널 부트 매개 변수 명령에 대한 변경 사항은 시스템을 재부트하면 사라집니다. 다음에 노드를 재부트하면 클러스터 모드로 부트됩니다. 대신 비클러스터 모드로 부트하려면 이 단계를 다시 수행하여 커널 부트 매개 변수 명령에 -x 옵션을 추가합니다.


  21. 두 번째 분할 영역에서 실행되는 모든 응용 프로그램이 Resource Group Manager(RGM)의 제어를 받지 않을 경우, 해당 노드를 업그레이드하기 전에 응용 프로그램을 중지하기 위한 스크립트를 작성합니다.

    이중 분할 영역 업그레이드 프로세스 중에 해당 스크립트를 호출하여 Oracle RAC와 같은 응용 프로그램을 두 번째 분할 영역의 노드가 중지되기 전에 중지하도록 합니다.

    1. RGM의 제어를 받지 않는 응용 프로그램을 중지하기 위해 필요한 스크립트를 작성합니다.

      • RGM의 제어를 받는 응용 프로그램을 중지하기 전에 중지하고자 하는 응용 프로그램과 그 후에 중지하려는 응용 프로그램에 대한 스크립트를 각각 작성합니다.

      • 분할 영역에서 두 개 이상의 노드에서 실행될 응용 프로그램을 중지하려면 그에 따른 스크립트를 작성합니다.

      • 작성한 스크립트의 이름과 디렉토리 경로는 원하는 대로 지정합니다.

    2. 클러스터의 각 노드에 작성한 스크립트의 복사본이 있는지 확인합니다.

    3. 각 노드에서, 다음 Sun Cluster 스크립트를 수정하여 지정한 노드에 있는 스크립트를 호출하도록 합니다.

      • /etc/cluster/ql/cluster_pre_halt_apps - RGM의 제어를 받는 응용 프로그램이 종료되기 전에 실행하고자 하는 스크립트를 호출하려면 이 파일을 사용합니다.

      • /etc/cluster/ql/cluster_post_halt_apps - RGM의 제어를 받는 응용 프로그램이 종료된 후에 실행하고자 하는 스크립트를 호출하려면 이 파일을 사용합니다.

      분할 영역의 사후 업그레이드 프로세스가 진행되는 동안 분할 영역에 있는 임의의 한 노드에서 Sun Cluster 스크립트가 실행됩니다. 따라서, 분할 영역에 포함된 임의 노드의 스크립트가 분할 영역의 모든 노드에 필요한 작업을 수행해야 합니다.

다음 순서

첫 번째 분할 영역에서 각 노드의 소프트웨어를 업그레이드합니다.