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

메타 장치에 있던 루트(/) 파일 시스템을 복원하는 방법(Solstice DiskSuite/Solaris 볼륨 관리자)

백업을 수행한 당시 메타 장치에 있던 루트( /) 파일 시스템을 다시 복원하려면 다음 절차를 수행하십시오. 루트 디스크가 손상되어 새 디스크로 교체하는 경우와 같은 상황에서 이 절차를 수행하십시오. 복원하는 노드를 부트하면 안됩니다. 복원 절차를 수행하기 전에 클러스터가 문제 없이 실행되는지 확인하십시오.


주 –

장애가 발생한 디스크와 동일한 파일 시스템을 사용하여 새 디스크를 분할해야 하기 때문에 이 절차를 시작하기 전에 분할 영역 구조를 확인하고 필요한 파일 시스템을 다시 만드십시오.


  1. 복원하려는 노드를 제외한 노드 중에서 메타 세트에 액세스할 수 있는 클러스터 노드에서 수퍼유저가 됩니다.

  2. 모든 메타 세트에서 복원되는 노드의 호스트 이름을 제거합니다.


    # metaset -s setname -f -d -h nodelist
    

    -s setname

    메타 세트 이름을 지정합니다.

    -f

    강제로 실행합니다.

    -d

    메타 세트에서 삭제합니다.

    -h nodelist

    메타 세트에서 삭제할 노드의 이름을 지정합니다.

  3. 루트(/) 파일 시스템을 복원할 노드에서 장애가 발생한 디스크를 교체합니다.

    서버와 함께 제공되는 설명서에서 디스크를 교체하는 절차를 참조하십시오.

  4. 복원할 노드를 부트합니다.

    • Solaris CD를 사용하는 경우

      • SPARC: OpenBoot PROM ok 프롬프트에서 다음 명령을 입력합니다.


         ok boot cdrom -s
        

      • x86: 시스템의 CD 드라이브에 CD를 삽입한 다음 시스템을 종료하고 전원을 껐다 켜는 방법으로 부트합니다. Current Boot Parameters 화면에서 다음 명령을 입력합니다.


                             <<< Current Boot Parameters >>>
        Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@
        7,1/sd@0,0:a
        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 -s
        

    • Solaris JumpStart TM 서버를 사용하는 경우

      • SPARC: OpenBoot PROM ok 프롬프트에서 다음 명령을 입력합니다.


        ok boot net -s
        

      • x86: 시스템을 종료한 다음 전원을 껐다 켜는 방법으로 부트합니다. Current Boot Parameters 화면에서 다음 명령을 입력합니다.


                             <<< Current Boot Parameters >>>
        Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@
        7,1/sd@0,0:a
        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 -s
        

  5. format 명령을 사용하여 루트 디스크에 모든 분할 영역과 스왑 공간을 만듭니다.

    장애가 발생한 디스크와 동일한 분할 영역 구조를 다시 만드십시오.

  6. newfs 명령을 사용하여 루트(/) 파일 시스템과 필요한 다른 파일 시스템을 만듭니다.

    장애가 발생한 디스크와 동일한 파일 시스템을 다시 만드십시오.


    주 –

    /global/.devices/node@nodeid 파일 시스템을 만들어야 합니다.


  7. 임시 마운트 지점에 루트(/) 파일 시스템을 마운트합니다.


    # mount device temp-mountpoint
    

  8. 다음 명령을 사용하여 루트(/) 파일 시스템을 복원합니다.


    # cd temp-mountpoint
    # ufsrestore rvf dump-device
    # rm restoresymtable
    

  9. 새 디스크에 새 부트 블록을 설치합니다.


    # /usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk raw-disk-device
    

  10. /temp-mountpoint/etc/system 파일에서 MDD 루트 정보에 대한 행을 제거합니다.


    * Begin MDD root info (do not edit)
    forceload: misc/md_trans
    forceload: misc/md_raid
    forceload: misc/md_mirror
    forceload: misc/md_hotspares
    forceload: misc/md_stripe
    forceload: drv/pcipsy
    forceload: drv/glm
    forceload: drv/sd
    rootdev:/pseudo/md@0:0,10,blk
    * End MDD root info (do not edit)

  11. /temp-mountpoint/etc/vfstab 파일을 편집하여 메타 장치의 루트 항목을 메타 장치에 포함된 루트 디스크의 각 파일 시스템에 해당하는 일반 슬라이스로 변경합니다.


    예: 
    변경 전—
    /dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -
    
    변경 후—
    /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /      ufs   1     no       -

  12. 임시 파일 시스템을 마운트 해제하고 원시 디스크 장치를 검사합니다.


    # cd /
    # umount temp-mountpoint
    # fsck raw-disk-device
    

  13. 단일 사용자 모드로 노드를 재부트합니다.


    # reboot -- "-s"
    

  14. scdidadm 명령을 사용하여 디스크 ID를 교체합니다.


    # scdidadm -R rootdisk
    

  15. metadb 명령을 사용하여 상태 데이터베이스 복제본을 다시 만듭니다.


    # metadb -c copies -af raw-disk-device
    

    -c copies

    만들 복제본의 수를 지정합니다.

    -af raw-disk-device

    이름이 지정된 원시 디스크 장치에 초기 상태 데이터베이스 복제본을 만듭니다.

  16. 클러스터 모드로 노드를 재부트합니다.

    1. 재부트하십시오.


      # reboot
      

      이 부트 과정에서 다음과 같은 명령으로 끝나는 오류 또는 경고 메시지가 나타날 수 있습니다.


      Type control-d to proceed with normal startup,
      (or give root password for system maintenance):

    2. CTRL-d를 눌러 복수 사용자 모드로 부트하십시오.

  17. 복원된 노드가 아닌 다른 클러스터 노드에서 metaset 명령을 사용하여 복원된 노드를 모든 메타 세트에 추가합니다.


    phys-schost-2# metaset -s setname -a -h nodelist
    

    -a

    메타 세트를 만들어 추가합니다.

    Solstice DiskSuite 문서의 설명에 따라 루트(/)에 대해 메타 장치/미러를 설정하십시오.

    노드가 클러스터 모드로 재부트됩니다. 이제 클러스터를 사용할 준비가 되었습니다.

예—메타 장치에 있던 루트(/) 파일 시스템 복원(Solstice DiskSuite/Solaris 볼륨 관리자)

다음은 테이프 장치 /dev/rmt/0에서 노드 phys-schost-1로 루트(/) 파일 시스템을 복원하는 예입니다. 노드 phys-schost-1을 제거하고 나중에 다시 메타 세트 schost-1에 추가하기 위해 클러스터의 다른 노드 phys-schost-2에서 metaset 명령이 실행됩니다. 다른 명령은 모두 phys-schost-1에서 실행됩니다. 새 부트 블록이 /dev/rdsk/c0t0d0s0에 생성되고 3개의 상태 데이터베이스 복제본이 /dev/rdsk/c0t0d0s4에 만들어집니다.


[복원하려는 노드를 제외한 노드 중에서 메타 세트에 액세스할 수 있는 클러스터 노드에서 수퍼유저가 됩니다.]
[메타 세트에서 노드 제거]
phys-schost-2# metaset -s schost-1 -f -d -h phys-schost-1
[장애가 발생한 디스크 교체 및 노드 부트]

Solaris CD에서 노드를 부트합니다.


[formatnewfs를 사용하여 분할 영역 및 파일 시스템 다시 만들기]
[임시 마운트 지점에 루트 파일 시스템을 마운트]
# mount /dev/dsk/c0t0d0s0 /a
[루트 파일 시스템 복원]
# cd /a
# ufsrestore rvf /dev/rmt/0
# rm restoresymtable
[새 부트 블록 설치]
# /usr/sbin/installboot /usr/platform/`uname \
-i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0
[/temp-mountpoint/etc/system 파일에서 MDD 루트 정보에 대한 행 제거]
* Begin MDD root info (do not edit)
forceload: misc/md_trans
forceload: misc/md_raid
forceload: misc/md_mirror
forceload: misc/md_hotspares
forceload: misc/md_stripe
forceload: drv/pcipsy
forceload: drv/glm
forceload: drv/sd
rootdev:/pseudo/md@0:0,10,blk
* End MDD root info (do not edit)
[/temp-mountpoint/etc/vfstab 파일 편집]
예: 
변경 전—
/dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -

변경 후—
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /usr   ufs   1     no       -
[임시 파일 시스템 마운트 해제 및 원시 디스크 장치 검사]
# cd /
# umount /a
# fsck /dev/rdsk/c0t0d0s0
[단일 사용자 모드로 재부트]
# reboot -- "-s"
[디스크 ID 교체]
# scdidadm -R /dev/dsk/c0t0d0
[상태 데이터베이스 복제본 다시 만들기]
# metadb -c 3 -af /dev/rdsk/c0t0d0s4
# reboot
CTRL-d를 눌러 복수 사용자로 모드로 부트하십시오.
[메타 세트에 노드 블록 추가]
phys-schost-2# metaset -s schost-1 -a -h phys-schost-1