Solaris OS용 Sun Cluster 시스템 관리 안내서

Sun Cluster 소프트웨어 패치

표 10–1 작업 맵: 클러스터 패치

작업 

지침 

노드를 중지시키지 않고 한 번에 한 노드씩 재부트하지 않는 Sun Cluster 패치 적용 

재부트하지 않는 Sun Cluster 패치를 적용하는 방법

클러스터 구성원을 비클러스터 모드로 전환한 후에 재부트하는 Sun Cluster 패치 적용 

재부트 패치 적용 방법(노드)

재부트 패치 적용 방법(클러스터)

클러스터에 장애 복구 영역이 포함된 경우, 단일 사용자 모드로 패치 적용 

장애 복구 영역을 포함하는 단일 사용자 모드에서 패치를 적용하는 방법

Sun Cluster 패치 제거 

Sun Cluster 패치 변경

Procedure재부트 패치 적용 방법(노드)

패치 프로세스 중에 클러스터가 계속 작동되도록 하려면 클러스터의 한 노드에 하나씩 패치를 적용하십시오. 이 절차에서는, 패치를 적용하기 전에 먼저 노드를 종료하고 boot -sx 또는 hutdown -g -y -i0 명령을 사용하여 단일 사용자 모드로 부트해야 합니다.

이 절차에서는 장문형 Sun Cluster 명령을 제공합니다. 대부분의 명령에는 단문형도 있습니다. 명령은 명령 이름이 장문형과 단문형인 것을 제외하면 동일합니다. 명령 및 단문형 명령의 목록을 보려면 부록 A, Sun Cluster 객체 지향 명령를 참조하십시오.

  1. 패치를 적용하기 전에 Sun Cluster 제품 웹 사이트에서 특별한 설치 전후 지침이 있는지 확인합니다.

  2. 패치를 적용할 노드에서 수퍼유저 또는 solaris.cluster.admin RBAC 인증을 제공하는 역할로 전환합니다.

  3. 패치를 적용하는 노드의 자원 그룹과 장치 그룹을 표시합니다.


    # clresourcegroup status -n node
    # cldevicegroup status -n node
    
  4. 패치를 적용하는 노드의 자원 그룹, 자원 및 장치 그룹을 모두 다른 클러스터 구성원으로 전환합니다.


    # clnode evacuate -n node
    
    evacuate

    지정된 노드에서 모든 비전역 영역을 포함하는 장치 그룹 및 자원 그룹을 모두 옮깁니다.

    -n node

    전환할 자원 그룹 및 장치 그룹이 있는 노드를 지정합니다.

  5. 노드를 종료합니다.


    # shutdown -g0 [-y]
     [-i0]
  6. 노드를 비클러스터 및 단일 사용자 모드로 부트합니다.

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


      ok boot -sx
      
    • x86 기반 시스템에서는 다음 명령을 수행하십시오.


      phys-schost# shutdown -g -y -i0
      
      Press any key to continue
    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. 부트 매개 변수 화면에서 화살표 키를 사용하여 커널 항목을 선택하고 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. -sx를 명령에 추가하여 시스템 부트를 비클러스터 모드로 지정합니다.


      [ 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를 입력하여 노드를 비클러스터 모드로 부트합니다.


      주 –

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


  7. 소프트웨어 또는 펌웨어 패치를 적용합니다.


     # patchadd -M patch-dir patch-id
    
    patch-dir

    패치의 디렉토리 위치를 지정합니다.

    patch-id

    주어진 패치의 패치 번호를 지정합니다.


    주 –

    항상 이 장의 절차 대신 패치 디렉토리의 지시 사항을 우선적으로 따르십시오.


  8. 패치가 제대로 설치되었는지 확인합니다.


     # showrev -p | grep patch-id
    
  9. 노드를 클러스터로 다시 부팅합니다.


    # reboot
    
  10. 패치가 적용되고 노드와 클러스터가 정상적으로 작동하는지 확인합니다.

  11. 나머지 모든 클러스터 노드에 대해 단계 2에서 단계 10까지를 반복합니다.

  12. 필요에 따라 자원 그룹 및 장치 그룹을 전환합니다.

    모든 노드를 재부트하고 나면 마지막으로 재부트된 노드에는 온라인 상태인 자원 그룹과 장치 그룹이 없게 됩니다.


    # cldevicegroup switch -n node   + | devicegroup ...
    # clresourcegroup switch -n node[:zone][,...] + | resource-group ...
    
    node

    전환할 자원 그룹 및 장치 그룹이 있는 노드의 이름입니다.

    zone

    자원 그룹을 마스터할 수 있는 node의 비전역 영역 이름입니다. 자원 그룹을 생성할 때 비전역 영역을 지정한 경우에만 영역을 지정합니다.

  13. scversions 명령을 사용하여 패치 소프트웨어를 적용해야 하는지를 확인합니다.


    # /usr/cluster/bin/scversions
    

    다음 결과 중 하나가 표시됩니다.


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  14. 필요한 경우 패치 소프트웨어를 적용합니다.


    # scversions -c
    

    주 –

    scversions를 실행하면 상황에 따라 하나 이상의 CMM이 재구성됩니다.



예 10–1 재부트하는 패치 적용(노드)

다음은 재부트하는 Sun Cluster 패치를 노드에 적용하는 예입니다.


# clresourcegroup status -n rg1
...Resource Group     Resource
--------------     --------
rg1                rs-2
rg1                rs-3
...
# cldevicegroup status -n nodedg-schost-1
...
Device Group Name:											dg-schost-1
...
# clnode evacuate  phys-schost-2
# shutdown -g0 -y -i0
...

노드를 비클러스터 및 단일 사용자 모드로 부트합니다.


# patchadd -M /var/tmp/patches 234567-05
...
# showrev -p | grep 234567-05

...
# reboot
...
# cldevicegroup switch -n  phys-schost-1 dg-schost-1
# clresourcegroup switch -n  phys-schost-1 schost-sa-1
# scversions
Upgrade commit is needed.
# scversions -c

참조

패치를 제거하려면 Sun Cluster 패치 변경을 참조하십시오.

Procedure재부트 패치 적용 방법(클러스터)

이 절차에서는 패치를 적용하기 전에 먼저 클러스터를 종료하고 boot -sx 또는 shtudown -g -y -i0 명령을 사용하여 단일 사용자 모드로 각 노드를 부트해야 합니다.

  1. 패치를 적용하기 전에 Sun Cluster 제품 웹 사이트에서 특별한 설치 전후 지침이 있는지 확인합니다.

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

  3. 클러스터를 종료합니다.


    # cluster shutdown -y -g grace-period message
    
    -y

    확인 프롬프트에 대해 yes로 응답하도록 지정합니다.

    -g grace-period

    시스템을 종료하기 전에 대기할 시간을 초 단위로 지정합니다. 기본 종료 시간은 60초입니다.

    message

    브로드캐스트할 경고 메시지를 지정합니다. message에 여러 단어를 포함하려면 따옴표를 사용하십시오.

  4. 비클러스터의 각 노드를 단일 사용자 모드로 부트합니다.

    각 노드의 콘솔에서 다음 명령을 실행하십시오.

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


      ok boot -sx
      
    • x86 기반 시스템에서는 다음 명령을 수행하십시오.


      phys-schost# shutdown -g -y -i0
      
      Press any key to continue
    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. 부트 매개 변수 화면에서 화살표 키를 사용하여 커널 항목을 선택하고 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. -sx를 명령에 추가하여 시스템 부트를 비클러스터 모드로 지정합니다.


      [ 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를 입력하여 노드를 비클러스터 모드로 부트합니다.


      주 –

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


  5. 소프트웨어 또는 펌웨어 패치를 적용합니다.

    한 번에 한 노드씩 다음 명령을 실행하십시오.


     # patchadd -M patch-dir patch-id
    
    patch-dir

    패치의 디렉토리 위치를 지정합니다.

    patch-id

    주어진 패치의 패치 번호를 지정합니다.


    주 –

    항상 이 장의 절차 대신 패치 디렉토리의 지시 사항을 우선적으로 따르십시오.


  6. 각 노드에 패치가 제대로 설치되었는지 확인합니다.


     # showrev -p | grep patch-id
    
  7. 모든 노드에 패치를 적용한 후에 클러스터 모드로 노드를 재부트합니다.

    각 노드에서 다음 명령을 실행하십시오.


    # reboot
    
  8. scversions 명령을 사용하여 패치 소프트웨어를 적용해야 하는지를 확인합니다.


    # /usr/cluster/bin/scversions
    

    다음 결과 중 하나가 표시됩니다.


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  9. 필요한 경우 패치 소프트웨어를 적용합니다.


    # scversions -c
    

    주 –

    scversions를 실행하면 상황에 따라 하나 이상의 CMM이 재구성됩니다.


  10. 패치가 적용되고 노드와 클러스터가 정상적으로 작동하는지 확인합니다.


예 10–2 재부트하는 패치 적용(클러스터)

다음은 재부트하는 Sun Cluster 패치를 클러스터에 적용하는 예입니다.


# cluster shutdown -g0 -y
...

노드를 비클러스터 및 단일 사용자 모드로 부트합니다.


...
# patchadd -M /var/tmp/patches 234567-05
(Apply patch to other cluster nodes)
...
# showrev -p | grep 234567-05
# reboot
# scversions
Upgrade commit is needed.
# scversions -c

참조

패치를 제거하려면 Sun Cluster 패치 변경을 참조하십시오.

Procedure재부트하지 않는 Sun Cluster 패치를 적용하는 방법

클러스터의 한 노드에 하나씩 패치를 적용하십시오. 재부트하지 않는 패치를 적용할 때는 패치를 받는 노드를 먼저 종료할 필요가 없습니다.

  1. 패치를 적용하기 전에 Sun Cluster 제품 웹 페이지에서 특별한 설치 전후 지침이 있는지 확인합니다.

  2. 한 노드에 패치를 적용합니다.


     # patchadd -M patch-dir patch-id
    
    patch-dir

    패치의 디렉토리 위치를 지정합니다.

    patch-id

    주어진 패치의 패치 번호를 지정합니다.

  3. 패치가 제대로 설치되었는지 확인합니다.


     # showrev -p | grep patch-id
    
  4. 패치가 적용되고 노드와 클러스터가 정상적으로 작동하는지 확인합니다.

  5. 나머지 클러스터 노드에 대해 단계 2에서 단계 4까지를 반복합니다.

  6. scversions 명령을 사용하여 패치 소프트웨어를 적용해야 하는지를 확인합니다.


    # /usr/cluster/bin/scversions
    

    다음 결과 중 하나가 표시됩니다.


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  7. 필요한 경우 패치 소프트웨어를 적용합니다.


    # scversions -c
    

    주 –

    scversions를 실행하면 상황에 따라 하나 이상의 CMM이 재구성됩니다.



예 10–3 재부트하지 않는 Sun Cluster 패치 적용


# patchadd -M /tmp/patches 234567-05
...
# showrev -p | grep 234567-05
# scversions
Upgrade commit is needed.
# scversions -c

참조

패치를 제거하려면 Sun Cluster 패치 변경을 참조하십시오.

Procedure장애 복구 영역을 포함하는 단일 사용자 모드에서 패치를 적용하는 방법

장애 복구 영역을 포함하는 단일 사용자 모드에서 패치를 적용하려면 이 작업을 수행합니다. Sun Cluster 소프트웨어의 페일오버 구성에서 Sun Cluster Data Service for Solaris Containers를 사용하는 경우 이 패치 방법이 필요합니다.

  1. 이 절차에서 수동으로 처리된 영역 경로가 포함된 디스크 세트 쌍인 공유 저장소로서 사용된 LUN 중 하나에 쿼럼 장치가 구성되지 않았는지 확인합니다.

    1. 쿼럼 장치가 영역 경로가 포함된 디스크 세트에서 사용되고 있는지 및 쿼럼 장치가 scsi2 또는 scsi3 예약을 사용하는지 확인합니다.


      # clquorum show
      
    2. 쿼럼 장치가 디스크 세트의 LUN 내에 있는 경우, 영역 경로가 포함된 디스크 세트의 일부가 아닌 쿼럼 장치로서 새 LUN을 추가합니다.


      # clquorum add new-didname
      
    3. 이전의 쿼럼 장치를 제거합니다.


      # clquorum remove old-didname
      
    4. scsi2 예약이 이전 쿼럼 장치에 사용되는 경우, 이전 쿼럼에서 scsi2 예약을 삭제하고 scsi2 예약이 남아 있는지 확인합니다.


      # /usr/cluster/lib/sc/pgre -c pgre_scrub -d /dev/did/rdsk/old-didnames2
      # /usr/cluster/lib/sc/pgre -c pgre_inkeys -d /dev/did/rdsk/old-didnames2
      

      주 –

      활성 쿼럼 장치에서 예약 키를 잘못 삭제한 경우, 쿼럼 장치를 제거하고 다시 추가하여 쿼럼 장치에 새 예약 키를 만들어야 합니다.


  2. 패치하려는 노드를 비웁니다.


    # clresourcegroup evacuate -n node1
    
  3. HA Solaris Container 자원이 포함되어 있는 자원 그룹을 오프라인으로 전환합니다.


    # clresourcegroup offline resourcegroupname
    
  4. 오프라인으로 전환한 자원 그룹의 모든 자원을 비활성화합니다.


    # clresource disable resourcename
    
  5. 오프라인으로 전환한 자원 그룹을 관리 해제합니다.


    # clresourcegroup unmanage resourcegroupname
    
  6. 해당하는 장치 그룹을 오프라인으로 전환합니다.


    # cldevicegroup offline cldevicegroupname
    
  7. 오프라인으로 전환한 장치 그룹을 비활성화합니다.


    # cldevicegroup disable devicegroupname
    
  8. 클러스터 외부에서 패시브 노드를 부트합니다.


    # reboot -- -x
    
  9. 진행하기 전에 SMF 시작 메서드가 패시브 노드에서 완료되었는지 확인합니다.


    # svcs -x
    
  10. 활성 노드의 재구성 프로세스가 완료되었는지 확인합니다.


    # cluster status
    
  11. 디스크 세트의 디스크에 scsi3 예약이 있는지 확인합니다.

    1. 디스크 세트의 모든 디스크에서 다음 명령을 실행합니다.


      # /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/didnames2
      
    2. 키 목록이 나타나면 해당 키를 삭제합니다.


      # /usr/cluster/lib/sc/scsi -c scrub -d /dev/did/rdsk/didnames2
      
  12. 패시브 노드에서 메타 세트의 소유권을 가져옵니다.


    # metaset -s disksetname -C take -f
    
  13. 패시브 노드에서 영역 경로가 포함된 파일 시스템을 마운트합니다.


    # mount device mountpoint
    
  14. 패시브 노드에서 단일 사용자 모드로 전환합니다.


    # init s
    
  15. Sun Cluster Data Service for Solaris Container의 제어를 받지 않는 가능한 모든 부트된 영역을 정지합니다.


    # zoneadm -z zonename halt
    
  16. (옵션) 여러 패치를 설치하는 경우, 성능을 위해서 단일 사용자 모드의 모든 구성된 영역을 부트하도록 선택할 수 있습니다.


    # zoneadm -z zonename boot -s
    
  17. 패치를 적용합니다.

  18. 노드를 재부트하고 해당하는 모든 SMF 시작 메서드가 완료될 때까지 기다립니다. 노드가 재부트된 후 svcs -a 명령만 수행합니다.


    # reboot
    

    # svcs -a
    

    이제 첫 번째 노드가 준비되었습니다.

  19. 패치하려는 두 번째 노드를 비웁니다.


    # clresourcegroup evacuate -n node2
    
  20. 두 번째 노드에 대해 8-13단계를 반복합니다.

  21. 패치 프로세스의 속도를 높이기 위해 이미 패치한 영역을 분리합니다.


    # zoneadm -z zonename detach
    
  22. 패시브 노드에서 단일 사용자 모드로 전환합니다.


    # init s
    
  23. Sun Cluster Data Service for Solaris Container의 제어를 받지 않는 가능한 모든 부트된 영역을 정지합니다.


    # zoneadm -z zonename halt
    
  24. (옵션) 여러 패치를 설치하는 경우, 성능을 위해서 단일 사용자 모드의 모든 구성된 영역을 부트하도록 선택할 수 있습니다.


    # zoneadm -z zonename boot -s
    
  25. 패치를 적용합니다.

  26. 분리한 영역을 연결합니다.


    # zoneadm -z zonename attach -F
    
  27. 클러스터 모드로 노드를 재부트합니다.


    # reboot
    
  28. 장치 그룹을 온라인으로 전환합니다.

  29. 자원 그룹을 시작합니다.

  30. scversions 명령을 사용하여 패치 소프트웨어를 적용해야 하는지를 확인합니다.


    # /usr/cluster/bin/scversions
    

    다음 결과 중 하나가 표시됩니다.


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  31. 필요한 경우 패치 소프트웨어를 적용합니다.


    # scversions -c
    

    주 –

    scversions를 실행하면 상황에 따라 하나 이상의 CMM이 재구성됩니다.


Sun Cluster 패치 변경

클러스터에 적용한 Sun Cluster 패치를 제거하려면 먼저 새 Sun Cluster 패치를 제거한 후 이전 패치나 업데이트 릴리스를 다시 적용해야 합니다. 새 Sun Cluster 패치를 제거하려면 다음 절차를 참조하십시오. 이전 Sun Cluster 패치를 다시 적용하려면 다음 절차 중 하나를 참조하십시오.


주 –

Sun Cluster 패치를 적용하기 전에 패치의 README 파일을 확인하십시오.


Procedure재부트하지 않는 Sun Cluster 패치를 제거하는 방법

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

  2. 재부트하지 않는 패치를 제거합니다.


    # patchrm patchid
    

Procedure재부트하는 Sun Cluster 패치를 제거하는 방법

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

  2. 클러스터 노드를 비클러스터 모드로 부트합니다. 노드를 비클러스터 모드로 부트하는 데 대한 자세한 내용은 비클러스터 모드에서 클러스터 노드를 부트하는 방법을 참조하십시오.

  3. 재부트 패치를 제거합니다.


    # patchrm patchid
    
  4. 클러스터 노드를 클러스터 모드로 재부트합니다.


    # reboot
    
  5. 각 클러스터 노드에 대해 2-4단계를 반복합니다.