Oracle Solaris 10 9/10 설치 설명서: Solaris Live Upgrade 및 업그레이드 계획

9장 Solaris Live Upgrade (예)

이 장에서는 부트 환경을 만들고 새 부트 환경을 업그레이드 및 활성화하여 현재 실행 중인 시스템으로 만드는 예를 소개합니다.


주 –

이 장에서는 UFS 파일 시스템용 Solaris Live Upgrade에 대해 설명합니다. UFS 파일 시스템을 ZFS 루트 풀로 마이그레이션하거나 ZFS 루트 풀을 만들고 설치하는 절차에 대한 자세한 내용은 13 장ZFS 루트 풀의 부트 환경 만들기를 참조하십시오.


이 장은 다음 절로 구성되어 있습니다.

Solaris Live Upgrade를 사용한 업그레이드의 예

이 예에서는 Solaris 9 릴리스가 실행되고 있는 시스템에서 lucreate 명령을 사용하여 새 부트 환경을 만듭니다. 새 부트 환경은 luupgrade 명령을 사용하여 Solaris 10 9/10 릴리스로 업그레이드됩니다. 업그레이드된 부트 환경은 luactivate 명령을 사용하여 활성화됩니다. 원래의 부트 환경으로 복구하는 예도 제공합니다.

Solaris Live Upgrade 사용 준비

Solaris Live Upgrade를 처음으로 실행하기 전에 설치 매체에서 최신 Solaris Live Upgrade 패키지를 설치하고 SunSolve 정보 설명서 206844에 나열된 패치를 설치해야 합니다. SunSolve 웹 사이트에서 정보 설명서 206844(이전의 72099)를 검색합니다.

최신 패키지 및 패치를 설치하면 릴리스에 모든 최신 버그 수정과 새로운 기능이 포함됩니다. 새 부트 환경 만들기를 진행하기 전에 시스템과 관련된 모든 패치를 설치해야 합니다.

다음 단계에서는 SunSolve 정보 설명서 206844에 나오는 단계에 대해 설명합니다.


주 –

이 절차는 시스템이 볼륨 관리자를 실행 중이라고 가정합니다. 볼륨 관리자를 사용하여 이동식 매체를 관리하는 방법에 대한 자세한 내용은 System Administration Guide: Devices and File Systems를 참조하십시오.


  1. 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.


    주 –

    역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security ServicesConfiguring RBAC (Task Map)를 참조하십시오.


  2. Solaris Live Upgrade 패키지를 제거하거나 추가하려면 SunSolve 웹 사이트에서 제공되는 정보 설명서 206844의 지침을 따르십시오.

    1. 기존 Solaris Live Upgrade 패키지를 제거합니다.

      세 개의 Solaris Live Upgrade 패키지 SUNWluu, SUNWlurSUNWlucfg는 Solaris Live Upgrade를 사용하여 업그레이드 또는 패치하기 위해 필요한 소프트웨어로 구성됩니다. 이들 패키지는 기존 소프트웨어, 새 기능, 버그 수정 등을 포함합니다. Solaris Live Upgrade를 사용하기 전에 시스템에서 기존 패키지를 제거하지 않고 새 패키지를 설치한 경우에는 대상 릴리스로 업그레이드 또는 패치할 수 없습니다. SUMWlucfg 패키지는 Solaris 10 8/07 릴리스부터 지원되는 새로운 기능입니다. Solaris 10 8/07 이전 릴리스의 Solaris Live Upgrade 패키지를 사용하는 경우에는 이 패키지를 제거하지 않아도 됩니다.


      # pkgrm SUNWlucfg SUNWluu SUNWlur
      
    2. 새 Solaris Live Upgrade 패키지를 설치합니다.

      설치 DVD 또는 CD에 있는 liveupgrade20 명령을 사용하거나 pkgadd 명령을 사용하여 패키지를 설치할 수 있습니다. liveupgrade20 명령을 사용하려면 Java 소프트웨어가 필요합니다. 시스템에 Java 소프트웨어를 설치하지 않은 경우 pkgadd 명령을 사용하여 패키지를 설치해야 합니다. 자세한 내용은 SunSolve 정보 설명서를 참조하십시오.

      • Solaris 운영 체제 DVD를 사용할 경우 디렉토리를 변경하고 설치 프로그램을 실행합니다.

        • 디렉토리를 변경합니다.


          # cd /cdrom/cdrom0/Solaris_10/Tools/Installers
          

          주 –

          SPARC 기반 시스템의 경우 설치 프로그램 경로가 Solaris 10 10/08 이전 릴리스와 다릅니다.


          # cd /cdrom/cdrom0/s0/Solaris_10/Tools/Installers
          

        • 설치 프로그램 실행


          # ./liveupgrade20  -noconsole - nodisplay
          

          -noconsole-nodisplay 옵션은 문자 사용자 인터페이스(CUI)가 표시되지 않게 합니다.


          주 –

          Solaris Live Upgrade CUI는 더 이상 지원되지 않습니다.


      • Solaris Software – 2 CD를 사용하는 경우 경로를 변경하지 않고 설치 프로그램을 실행할 수 있습니다.


        % ./installer
        
      • 패키지가 성공적으로 설치되었는지 확인합니다.


        # pkgchk -v SUNWlucfg SUNWlur SUNWluu
        
  3. 정보 설명서 206844에 나열된 패치를 설치합니다.

    1. 패치를 로컬 디스크에 저장할 경우 /var/tmp/lupatches와 같은 디렉토리를 만듭니다.

    2. SunSolve 웹 사이트에서 패치 목록을 확인합니다.

    3. 이 예에서처럼 패치 디렉토리를 변경합니다.


      # cd /var/tmp/lupatches
      
    4. 패치를 설치합니다.


      # patchadd -M  path-to-patchespatch-id  patch-id
      

      path-to-patches는 패치 디렉토리의 경로(예: /var/tmp/lupatches)입니다. patch-id는 패치 번호입니다. 공백을 사용하여 여러 패치 이름을 구분합니다.


      주 –

      정보 설명서 206844에 지정된 순서대로 패치를 적용해야 합니다.


    5. 필요한 경우 시스템을 재부트합니다. 특정 패치는 재부트해야만 적용됩니다.

      x86에만 해당: 시스템을 재부트해야 합니다. 그렇지 않으면 Solaris Live Upgrade가 실패합니다.


      # init 6
      

      이제 새 부트 환경을 성공적으로 만드는 데 필요한 패키지 및 패치가 설치되었습니다.

부트 환경 만들기

소스 부트 환경의 이름은 -c 옵션을 사용하여 c0t4d0s0으로 지정됩니다. 처음으로 부트 환경을 만들 때만 소스 부트 환경의 이름을 지정합니다. -c 옵션을 사용하여 이름을 지정하는 방법은 “처음으로 부트 환경 만들기” 단계 2의 설명을 참조하십시오.

새 부트 환경 이름은 c0t15d0s0으로 지정됩니다. -A 옵션은 부트 환경 이름과 관련된 설명을 작성합니다.

루트(/) 파일 시스템은 새 부트 환경으로 복사됩니다. 또한 소스 부트 환경의 스왑 슬라이스를 공유하는 것이 아니라 새 스왑 슬라이스가 생성됩니다.


# lucreate -A 'BE_description' -c /dev/dsk/c0t4d0s0 -m /:/dev/dsk/c0t15d0s0:ufs\
-m -:/dev/dsk/c0t15d0s1:swap -n /dev/dsk/c0t15d0s0

비활성 부트 환경 업그레이드

비활성 부트 환경의 이름은 c0t15d0s0으로 지정됩니다. 업그레이드하기 위해 사용할 운영 체제 이미지를 네트워크에서 가져옵니다.


# luupgrade -n c0t15d0s0 -u -s /net/ins-svr/export/Solaris_10 \ 
combined.solaris_wos

부트 환경의 부트 가능 여부 검사

lustatus 명령은 부트 환경 만들기의 완료 여부를 보고합니다. lustatus는 부트 환경의 부트 가능성도 보고합니다.


# lustatus
boot environment   Is        Active  Active     Can	    Copy
Name               Complete  Now	 OnReboot   Delete	 Status
------------------------------------------------------------------------
c0t4d0s0           yes       yes      yes      no      -
c0t15d0s0          yes       no       no       yes     -

비활성 부트 환경 활성화

c0t15d0s0 부트 환경은 luactivate 명령을 통해 부트 가능 상태가 됩니다. 이렇게 하면 시스템이 재부트되며 c0t15d0s0이 활성 부트 환경이 됩니다. 이제 c0t4d0s0 부트 환경은 사용하지 않게 됩니다.


# luactivate c0t15d0s0
# init 6

(선택 사항) 소스 부트 환경으로 폴백

폴백 절차에는 새 부트 환경 활성화 상태에 따라 다음 세 가지가 있습니다.


예 9–1 SPARC: 성공적인 부트 환경 작성 시의 폴백

이 예에서 원래의 c0t4d0s0 부트 환경은 성공적으로 활성화되었음에도 불구하고 활성 부트 환경으로 복귀됩니다. 장치 이름은 first_disk입니다.


# /sbin/luactivate first_disk 
# init 6


예 9–2 SPARC: 실패한 부트 환경 활성화에서의 폴백

이 예에서는 새 부트 환경을 부트할 수 없는 상태입니다. 원래의 부트 환경인 c0t4d0s0에서 부트하기 전에 단일 사용자 모드에서 OK 프롬프트로 복귀해야 합니다.


OK boot net -s
# /sbin/luactivate first_disk
Do you want to fallback to activate boot environment c0t4d0s0 
(yes or no)? yes
# init 6

원래 부트 환경인 c0t4d0s0이 활성 부트 환경이 됩니다.



예 9–3 SPARC: DVD, CD 또는 네트워크 설치 이미지를 사용하여 원래 부트 환경으로 폴백

이 예에서는 새 부트 환경을 부트할 수 없는 상태입니다. 원래의 부트 환경에서 부트할 수 없으며 매체나 네트워크 설치 이미지를 사용해야 합니다. 장치는 /dev/dsk/c0t4d0s0입니다. 원래 부트 환경인 c0t4d0s0이 활성 부트 환경이 됩니다.


OK boot net -s
# fsck /dev/dsk/c0t4d0s0
# mount /dev/dsk/c0t4d0s0 /mnt 
# /mnt/sbin/luactivate
Do you want to fallback to activate boot environment c0t4d0s0 
(yes or no)? yes
# umount /mnt 
# init 6


예 9–4 x86: GRUB 메뉴를 사용하여 원래 부트 환경으로 폴백

Solaris 10 1/06 릴리스부터 다음 예는 GRUB 메뉴를 사용하여 폴백하는 단계를 제공합니다.

이 예에서 GRUB 메뉴는 올바르게 표시되지만 새 부트 환경이 부트 가능하지 않습니다. 폴백을 사용하기 위해 원래 부트 환경이 단일 사용자 모드로 부트됩니다.

  1. 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.


    주 –

    역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security ServicesConfiguring RBAC (Task Map)를 참조하십시오.


  2. GRUB 메뉴를 표시하려면 시스템을 재부트합니다.


    # init 6
    

    GRUB 메뉴가 표시됩니다.


    GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
    +-------------------------------------------------------------------+
    |Solaris                                                            |
    |Solaris failsafe                                                   |
    |second_disk                                                        |
    |second_disk 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.
  3. GRUB 메뉴에서 원래 부트 환경을 선택합니다. GRUB 소프트웨어를 사용하여 이미 부트 환경이 만들어져 있어야 합니다. Solaris 10 1/06 릴리스 이전에 작성된 부트 환경은 GRUB 부트 환경이 아닙니다. 부트 가능한 GRUB 부트 환경이 없는 경우 예 9–5로 넘어갑니다.

  4. 다음을 입력하여 GRUB 메뉴를 편집합니다. e.

  5. 화살표 키를 사용한 다음 e를 입력하여 kernel /boot/multiboot를 선택합니다. GRUB 편집 메뉴가 표시됩니다.


    grub edit>kernel /boot/multiboot
  6. -s를 입력하여 단일 사용자 모드로 부트합니다.


    grub edit>kernel /boot/multiboot -s
    
  7. 부트 환경을 부트하고 마운트한 다음 활성화합니다.


# b
# fsck /dev/dsk/c0t4d0s0
# mount /dev/dsk/c0t4d0s0 /mnt 
# /mnt/sbin/luactivate
Do you want to fallback to activate boot environment c0t4d0s0
(yes or no)? yes
# umount /mnt
# init 6


예 9–5 x86: DVD 또는 CD를 사용하여 GRUB 메뉴를 통해 원래 부트 환경으로 폴백

Solaris 10 1/06 릴리스부터 다음 예는 DVD 또는 CD를 사용하여 폴백하는 단계를 제공합니다.

이 예에서는 새 부트 환경을 부트할 수 없는 상태입니다. 또한 GRUB 메뉴가 표시되지 않습니다. 폴백을 사용하기 위해 원래 부트 환경이 단일 사용자 모드로 부트됩니다.

  1. Solaris Operating System for x86 Platforms DVD 또는 Solaris Software for x86 Platforms - 1 CD를 넣습니다.

  2. 수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.


    주 –

    역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security ServicesConfiguring RBAC (Task Map)를 참조하십시오.


  3. DVD 또는 CD에서 부트합니다.


    # init 6
    

    GRUB 메뉴가 표시됩니다.


    GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
    +-------------------------------------------------------------------+
    |Solaris 10 9/10                                                    |
    |Solaris 10 9/10 Serial Console ttya                                |
    |Solaris 10 9/10 Serial Console ttyb (for lx50, v60x and v65x       |
    +-------------------------------------------------------------------+
    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.
  4. 기본 옵션으로 부트할 때까지 기다리거나 표시된 옵션을 모두 선택합니다.

    설치 화면이 표시됩니다.


    +-------------------------------------------------------------------+
    
    |Select the type of installation you want to perform:                |
    |                                                                    |
    |         1 Solaris Interactive                                      |
    |         2 Custom JumpStart                                         |
    |         3 Solaris Interactive Text (Desktop session)               |
    |         4 Solaris Interactive Text (Console session)               |
    |         5 Apply driver updates                                     |
    |         6 Single user shell                                        |
    |                                                                    |
    |        Enter the number of your choice followed by the <ENTER> key.|
    |        Alternatively, enter custom boot arguments directly.        |
    |
    |         If you wait 30 seconds without typing anything,            |
    |         an interactive installation will be started.               |
    +----------------------------------------------------------------- --+
  5. “Single user shell” 옵션을 선택합니다.

    다음 메시지가 표시됩니다.


    Do you wish to automatically update the boot archive? y /n
  6. 다음을 입력합니다. n


    Starting shell...
    #

    사용자는 이제 단일 사용자 모드에 있습니다.

  7. 부트 환경을 마운트합니다. 활성화하고 재부트합니다.


    # fsck /dev/dsk/c0t4d0s0
    # mount /dev/dsk/c0t4d0s0 /mnt 
    # /mnt/sbin/luactivate
    Do you want to fallback to activate boot environment c0t4d0s0
    (yes or no)? yes
    # umount /mnt
    # init 6
    

RAID-1 볼륨의 한쪽 분리 및 업그레이드 예(미러)

이 예에서는 다음 작업을 수행하는 방법에 대해 보여 줍니다.

그림 9–1에서는 세 개의 물리적 디스크가 있는 현재 부트 환경을 보여 줍니다.

그림 9–1 RAID-1 볼륨(미러)의 한 쪽을 분리 및 업그레이드

그림에 대한 설명은 컨텍스트를 참조하십시오.

  1. 미러를 포함하는 새 부트 환경 second_disk를 만듭니다.

    다음 명령을 사용하여 이러한 작업을 수행합니다.

    • lucreate는 마운트 포인트 루트(/)에 대해 UFS 파일 시스템을 구성합니다. 미러 d10이 생성됩니다. 이 미러는 미러 d10에 복사된 현재 부트 환경의 루트(/) 파일 시스템에 대한 저장소입니다. 미러 d10에 있는 모든 데이터를 덮어씁니다.

    • 두 슬라이스 c0t0d0s0c0t1d0s0은 하위미러로 사용되도록 지정됩니다. 이 두 개의 하위미러는 미러 d10에 연결됩니다.


    # lucreate -c first_disk -n second_disk \ 
    -m /:/dev/md/dsk/d10:ufs,mirror \ 
    -m /:/dev/dsk/c0t1d0s0:attach \ 
    -m /:/dev/dsk/c0t2d0s0:attach
    
  2. second_disk 부트 환경을 활성화합니다.


    # /sbin/luactivate second_disk
    # init 6
    
  3. 다른 부트 환경 third_disk를 만듭니다.

    다음 명령을 사용하여 이러한 작업을 수행합니다.

    • lucreate는 마운트 포인트 루트(/)에 대해 UFS 파일 시스템을 구성합니다. 미러 d20이 생성됩니다.

    • c0t1d0s0 슬라이스가 현재 미러에서 제거되고 미러 d20에 추가됩니다. 하위미러의 내용인 루트 (/) 파일 시스템이 보존되며 복사는 수행되지 않습니다.


    # lucreate -n third_disk \ 
    -m /:/dev/md/dsk/d20:ufs,mirror \ 
    -m /:/dev/dsk/c0t1d0s0:detach,attach,preserve
    
  4. 새 부트 환경 third_disk를 업그레이드합니다.


    # luupgrade -u -n third_disk \ 
    -s /net/installmachine/export/Solaris_10/OS_image
    
  5. 업그레이드된 부트 환경에 패치를 추가합니다.


    # luupgrade -t n third_disk -s /net/patches 222222-01
    
  6. third_disk 부트 환경을 활성화하여 이 부트 환경을 현재 실행중인 시스템으로 만듭니다.


    # /sbin/luactivate third_disk
    # init 6
    
  7. second_disk 부트 환경을 삭제합니다.


    # ludelete second_disk
    
  8. 다음 명령을 사용하여 이러한 작업을 수행합니다.

    • 미러 d10을 지웁니다.

    • c0t2d0s0의 연결 번호를 확인합니다.

    • metastat 명령으로 찾은 연결을 미러 d20에 추가합니다. metattach 명령은 새로 추가된 연결과 미러 d20의 연결을 동기화합니다. 연결의 모든 데이터를 덮어씁니다.


    # metaclear d10 
    # metastat -p | grep c0t2d0s0
    dnum 1 1 c0t2d0s0
    # metattach d20 dnum
    
    num

    metastat 명령에서 찾은 연결 번호입니다.

새 부트 환경 third_disk가 업그레이드되었고 현재 실행 중인 시스템입니다. third_disk는 미러된 루트(/) 파일 시스템을 포함합니다.

그림 9–2에서는 앞의 예에 있는 명령을 사용하여 미러를 분리하고 업그레이드하는 전체 프로세스를 보여 줍니다.

그림 9–2 RAID-1 볼륨(미러)의 한 쪽을 분리 및 업그레이드(계속)

그림에 대한 설명은 컨텍스트를 참조하십시오.

기존 볼륨에서 Solaris 볼륨 관리자 RAID-1 볼륨으로의 마이그레이션 예

Solaris Live Upgrade를 사용하면 RAID–1 볼륨(미러)에 새 부트 환경을 만들 수 있습니다. 현재 부트 환경의 파일 시스템은 다음 중 하나일 수 있습니다.

하지만 새 부트 환경 대상은 Solaris 볼륨 관리자 RAID-1 볼륨이어야 합니다. 예를 들어, 루트(/) 파일 시스템의 복사본에 지정된 슬라이스는 /dev/vx/dsk/rootvol이어야 합니다. rootvol은 루트(/) 파일 시스템을 포함하는 볼륨입니다.

이 예에서 현재 부트 환경은 Solaris 볼륨 관리자 볼륨이 아닌 루트(/) 파일 시스템을 포함합니다. 새 부트 환경은 Solaris Volume Manager RAID-1 볼륨 c0t2d0s0에서 루트(/) 파일 시스템을 포함하여 만들어집니다. lucreate 명령은 현재 볼륨을 Solaris 볼륨 관리자 볼륨으로 이전합니다. 새 부트 환경의 이름은 svm_be입니다. lustatus 명령은 새 부트 환경이 활성화 및 재부트 준비가 되었는지 여부를 보고합니다. 새 부트 환경이 활성화되어 현재 부트 환경이 됩니다.


# lucreate -n svm_be -m /:/dev/md/dsk/d1:mirror,ufs \  
-m /:/dev/dsk/c0t2d0s0:attach
# lustatus
# luactivate svm_be
# lustatus
# init 6

빈 부트 환경 만들기 및 Solaris Flash 아카이브 설치 예

다음은 세 단계로 구성된 절차입니다.

lucreate 명령을 활성 부트 환경의 파일 시스템을 기준으로 부트 환경을 작성합니다. lucreate 명령을 -s 옵션과 함께 사용하면 lucreate는 빈 부트 환경을 빨리 만듭니다. 해당 슬라이스는 지정된 파일 시스템에 대해 예약되지만 파일 시스템은 복사되지 않습니다. 부트 환경의 이름은 지정되지만 Solaris Flash 아카이브를 사용하여 설치될 때까지 실제로 만들어지지는 않습니다. 아카이브를 사용하여 빈 부트 환경이 설치되면 파일 시스템은 예약된 슬라이스에 설치됩니다. 그런 다음 부트 환경이 활성화됩니다.

빈 부트 환경 만들기

첫 단계에서 빈 부트 환경이 만들어집니다. 슬라이스는 지정된 파일 시스템용으로 예비되지만 현재 부트 환경에서 복사되는 파일 시스템은 없습니다. 새 부트 환경 이름은 second_disk로 지정됩니다.


# lucreate  -s - -m /:/dev/dsk/c0t1d0s0:ufs \  
-n second_disk

이제 부트 환경을 Solaris Flash 아카이브로 채울 수 있습니다.

그림 9–3에서는 빈 부트 환경 만들기를 보여 줍니다.

그림 9–3 빈 부트 환경 만들기

그림에 대한 설명은 컨텍스트를 참조하십시오.

새 부트 환경에 Solaris Flash 아카이브 설치

두 번째 단계에서 앞의 예에서 만든 second_disk 부트 환경에 아카이브를 설치합니다. 아카이브는 로컬 시스템에 있습니다. -s-a 옵션용 운영 체제 버전은 모두 Solaris 10 9/10 릴리스입니다. 아카이브의 이름은 Solaris_10.flar로 지정됩니다.


# luupgrade -f -n second_disk \
-s /net/installmachine/export/Solaris_10/OS_image \ 
-a /net/server/archive/10.flar 

부트 환경이 활성화될 준비가 되었습니다.

새 부트 환경 활성화

마지막 단계에서 second_disk 부트 환경은 luactivate 명령으로 부트할 수 있습니다. 그런 다음 시스템이 재부트되고 second_disk가 아카이브 부트 환경이 됩니다.


# luactivate second_disk
# init 6