16.6. Object Storage 노드 교체

이 섹션에서는 클러스터의 무결성에 영향을 주지 않고 Object Storage 노드를 교체하는 방법을 설명합니다. 다음 예제에서는 세 개의 노드로 이루어진 Object Storage 클러스터에서 노드를 overcloud-objectstorage-1 노드를 교체합니다. 이 절차의 목표는 노드를 하나 추가한 다음 overcloud-objectstorage-1 노드를 삭제하는 것입니다. overcloud-objectstorage-1 노드가 새로운 노드로 대체됩니다.

절차

  1. ObjectStorageCount 매개변수를 사용하여 Object Storage 수를 늘립니다. 일반적으로 이 매개변수는 노드 수가 포함된 환경 파일인 node-info.yaml에 있습니다.

    parameter_defaults:
      ObjectStorageCount: 4

    ObjectStorageCount 매개변수는 해당 환경의 Object Storage 노드 수를 정의합니다. 이 예제에서는 Object Storage 노드의 수량을 3에서 4로 확장합니다.

  2. 업데이트된 ObjectStorageCount 매개변수를 사용하여 배포 명령을 실행합니다.

    $ source ~/stackrc
    (undercloud) $ openstack overcloud deploy --templates -e node-info.yaml <environment_files>

    배포 명령이 완료되면 오버클라우드에 추가 Object Storage 노드가 포함됩니다.

  3. 데이터를 새 노드에 복제합니다. 노드(이 경우 overcloud-objectstorage-1)를 삭제하기 전에 replication pass가 새 노드에서 완료될 때까지 기다립니다. /var/log/swift/swift.log 파일 전송 복제 진행 상태를 확인합니다. 전달이 완료되면 Object Storage 서비스에서 다음 예제와 비슷한 항목을 로그에 기록해야 합니다.

    Mar 29 08:49:05 localhost *object-server: Object replication complete.*
    Mar 29 08:49:11 localhost *container-server: Replication run OVER*
    Mar 29 08:49:13 localhost *account-server: Replication run OVER*
  4. 링에서 이전 노드를 삭제하려면 ObjectStorageCount 매개변수를 줄여 이전 노드를 제거합니다. 이 예제에서는 ObjectStorageCount 매개변수를 3으로 줄입니다.

    parameter_defaults:
      ObjectStorageCount: 3
  5. remove-object-node.yaml이라는 새 환경 파일을 생성합니다. 이 파일은 지정된 Object Storage 노드를 식별하고 삭제합니다. 다음 콘텐츠는 overcloud-objectstorage-1을 삭제하도록 지정합니다.

    parameter_defaults:
      ObjectStorageRemovalPolicies:
        [{'resource_list': ['1']}]
  6. 배포 명령에 node-info.yamlremove-object-node.yaml 파일을 모두 포함합니다.

    (undercloud) $ openstack overcloud deploy --templates -e node-info.yaml <environment_files> -e remove-object-node.yaml

director가 오버클라우드에서 Object Storage 노드를 삭제하고 오버클라우드에서 나머지 노드를 업데이트하여 노드 삭제를 적용합니다.

중요

오버클라우드를 처음 생성할 때의 모든 환경 파일과 옵션을 포함합니다. 여기에는 컴퓨팅 이외의 노드에 대한 동일한 확장 매개변수가 포함됩니다.