본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

클러스터를 업그레이드합니다

기여자

Ansible을 사용하여 SolidFire ESDS 클러스터에서 무중단 롤링 업그레이드를 수행할 수 있습니다. Ansible은 NetApp에서 제공하는 'NAR_solidfire_SDS_UPGRADE' 역할을 사용하여 모든 볼륨의 데이터 가용성을 유지하는 동시에 한 번에 하나의 노드를 롤링 업그레이드를 수행합니다.

업그레이드하기 전에 다음 조건이 충족되는지 확인하십시오.

  • Element UI에 클러스터 장애가 없습니다.

  • 인벤토리 파일은 현재 RPM 파일 빌드 정보 및 클러스터 구성원 노드에 대한 세부 정보와 함께 최신 상태입니다.

  • 호스트는 IP 주소(FQDN(정규화된 도메인 이름)가 아님)를 사용하여 인벤토리 파일에 정의됩니다.

중요 FQDN을 사용하여 호스트를 정의하는 경우 업그레이드가 실패합니다.
  • 호스트는 다음 예제의 형식을 사용하여 인벤토리 파일에 정의됩니다.

    hosts:
      10.117.136.26:
      10.117.136.27:
  • 인벤토리 파일의 노드 수는 업그레이드하는 클러스터의 노드 수와 같습니다. 숫자가 일치하지 않으면 업그레이드 절차가 실패하고 다음 예와 유사한 오류가 발생합니다. ""클러스터 10.194.79.151은 업그레이드용으로 지정된 것보다 많은 노드로 구성되어 있습니다!""

  • 인벤토리 파일에는 SF_mgmt_virt_ip(MVIP), SF_cluster_admin_username, sf_cluster_admin_passwd 및 solidfire_element_rpm(새 RPM 파일 경로)이 지정되어 있습니다.

다음은 업그레이드 프로세스 중 발생하는 상황을 간략하게 보여 줍니다.

  • 재고 파일에 입력한 정보가 검증됩니다.

  • 노드 정보가 수집됩니다.

  • RPM은 인벤토리 파일에 포함된 모든 노드에 병렬로 설치됩니다.

  • 각 노드에 RPM을 설치한 후 각 SolidFire ESDS 노드가 한 번에 하나씩 업그레이드됩니다. 각 노드는 유지보수 모드로 자동으로 배치됩니다. 업그레이드 플레이북을 실행하는 경우 유지 관리 모드를 수동으로 활성화할 필요가 없습니다.

  • 첫 번째 노드가 유지보수 모드로 전환된 후 해당 SolidFire ESDS 노드에서 호스팅되는 볼륨이 클러스터의 나머지 SolidFire ESDS 노드로 페일오버됩니다.

  • SolidFire 서비스를 다시 시작하여 최신 버전의 애플리케이션을 선택합니다.

  • 유지보수 모드는 노드에 대해 비활성화되며 클러스터는 노드 복구를 대기합니다.

  • 노드가 다시 온라인 상태가 되면 클러스터의 균형이 조정됩니다.

  • 클러스터의 모든 노드에서 같은 프로세스가 반복됩니다.

  • 모든 노드가 업그레이드되면 클러스터에 최신 버전이 표시됩니다.

참고 업그레이드 중에 오류가 발생하거나 클러스터에 장애가 발생해도 업그레이드가 중지되지 않습니다. 성공적으로 업그레이드되지 않은 모든 노드 목록을 인쇄할 수 있는 정도로 진행됩니다. 오류를 해결한 후 플레이북을 다시 실행하거나 파일을 거부하여 업그레이드 프로세스를 완료할 수 있습니다.
주의 장애로 인해 업그레이드가 실패하면 해당 문제를 해결하고 업그레이드를 다시 시작해야 합니다. 업그레이드가 완료될 때까지 클러스터가 업그레이드 상태로 유지됩니다. 클러스터가 업그레이드 상태인 동안 Element에서 오류를 지우지 않으면 NetApp Support에 문의하십시오. 장애의 특성과 안전성에 따라, 지원팀에서 'yes_i_want_to_ignore_cluster_faults' 변수를 추가하고 업그레이드 플레이북에서 TRUE로 설정한 후 플레이북에서 다시 실행하도록 지시할 수 있습니다. 지원 부서에 문의하지 않고 이 작업을 시도하지 마십시오.
단계
  1. Anabilities-galaxy install 명령을 실행하여 NAR_solidfire_SDS_upgrade 역할을 설치합니다.

    ansible-galaxy install git+https://github.com/NetApp-Automation/nar_solidfire_sds_upgrade.git

    에서 역할을 복사하여 수동으로 설치할 수도 있습니다 "NetApp GitHub 저장소" '~/.Ansible/roles' 디렉토리에 역할을 합니다. NetApp은 역할 실행 방법에 대한 정보가 포함된 README 파일을 제공합니다.

    참고 항상 최신 버전의 역할을 다운로드해야 합니다.
  2. 다운로드한 역할을 설치한 디렉토리에서 한 디렉토리로 이동합니다.

     $ mv ~/.ansible/roles/ansible/nar_solidfire_sds_* ~/.ansible/roles/
  3. Ansible-galaxy 역할 목록 명령을 실행하여 Ansible이 새로운 역할을 활용하도록 구성되었는지 확인합니다.

     $ ansible-galaxy role list
     # ~/.ansible/roles
     - nar_solidfire_sds_install, (unknown version)
     - nar_solidfire_sds_upgrade, (unknown version)
     - ansible, (unknown version)
     - nar_solidfire_sds_compliance, (unknown version)
     - nar_solidfire_cluster_config, (unknown version)
     - nar_solidfire_sds_uninstall, (unknown version)
  4. 업그레이드에 사용할 플레이북을 작성합니다. 이미 Playbook이 있는데 이를 사용하려면 이 Playbook에서 "NAR_solidfire_SDS_upgrade" 역할을 지정해야 합니다.

  5. 플레이북 실행:

     $ ansible-playbook -i inventory.yaml playbook_upgrade_sample.yaml
    참고 여기에 사용된 플레이북 이름은 예입니다. Playbook의 이름으로 교체해야 합니다.

    Playbook을 실행하면 인벤토리 파일에 입력한 정보가 확인되고 인벤토리에 나열된 모든 노드에 RPM이 설치됩니다. Ansible 출력을 확인하여 각 노드가 업그레이드되었는지 확인할 수 있습니다.

  6. 업그레이드가 완료된 후 각 노드를 확인하여 Element UI 또는 클러스터 API를 사용하여 새 버전이 실행되고 있는지 확인합니다.