3.2.2. 블록 스토리지에서 블록 교체


리소스가 부족하거나 문제가 있는 노드에서 블록을 교체하려면 새 노드로 교체할 수 있습니다.

중요

새 IP로 Gluster 블록 PV를 업데이트하려면 노드 교체 후 https://access.redhat.com/solutions/5042501를 참조하십시오.

다음 명령을 실행합니다.

  1. 다음 명령을 실행하여 heketi에서 영역 및 클러스터 정보를 가져옵니다.

    # heketi-cli topology info --user=<user> --secret=<user key>
    --user
    heketi 사용자
    --secret
    지정된 사용자의 시크릿 키
  2. 클러스터 ID 및 영역 ID를 가져온 후 새 노드 추가 를 참조하여 새 노드를 추가합니다.
  3. 다음 명령을 실행하여 장치를 추가합니다.

    # heketi-cli device add --name=<device name> --node=<node id> --user=<user> --secret=<user key>
    --name
    추가할 장치 이름
    --node
    새로 추가된 노드 ID

    예를 들면 다음과 같습니다.

    # heketi-cli device add --name=/dev/vdc --node=2639c473a2805f6e19d45997bb18cb9c --user=admin --secret=adminkey
    Device added successfully
  4. 새로운 노드와 관련 장치가 heketi에 추가되면 결함이 있거나 원치 않는 노드가 heketi에서 제거 될 수 있습니다.

    heketi에서 노드를 제거하려면 다음 워크플로우를 따르십시오.

    • node disable (DEallow usage of a node byplacing it offline)
    • node replace(노드 제거 및 Heketi에서 연결된 모든 장치 제거)
    • 장치 삭제( Heketi 노드에서 장치 삭제)
    • 노드 삭제( Heketi 관리에서 노드 삭제)
  5. 다음 명령을 실행하여 heketi에서 노드 목록을 가져옵니다.

    #heketi-cli node list --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli node list --user=admin --secret=adminkey
    Id:05746c562d6738cb5d7de149be1dac04    Cluster:607204cb27346a221f39887a97cf3f90
    Id:ab37fc5aabbd714eb8b09c9a868163df    Cluster:607204cb27346a221f39887a97cf3f90
    Id:c513da1f9bda528a9fd6da7cb546a1ee    Cluster:607204cb27346a221f39887a97cf3f90
    Id:e6ab1fe377a420b8b67321d9e60c1ad1    Cluster:607204cb27346a221f39887a97cf3f90
  6. 다음 명령을 실행하여 heketi에서 삭제해야 하는 노드의 노드 정보를 가져옵니다.

    # heketi-cli node info <nodeid> --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli node info c513da1f9bda528a9fd6da7cb546a1ee --user=admin --secret=adminkey
    Node Id: c513da1f9bda528a9fd6da7cb546a1ee
    State: online
    Cluster Id: 607204cb27346a221f39887a97cf3f90
    Zone: 1
    Management Hostname: dhcp43-171.lab.eng.blr.redhat.com
    Storage Hostname: 10.70.43.171
    Devices:
    Id:3a1e0717e6352a8830ab43978347a103   Name:/dev/vdc            State:online    Size (GiB):499     Used (GiB):100     Free (GiB):399     Bricks:1
    Id:89a57ace1c3184826e1317fef785e6b7   Name:/dev/vdd            State:online    Size (GiB):499     Used (GiB):10      Free (GiB):489     Bricks:5
  7. 다음 명령을 실행하여 heketi에서 노드를 비활성화합니다. 그러면 노드가 오프라인 상태가 됩니다.

    # heketi-cli node disable <node-id> --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli node disable ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df is now offline
  8. 다음 명령을 실행하여 Heketi에서 노드와 연결된 모든 장치를 제거합니다.

    #heketi-cli node remove <node-id> --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli node remove ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df is now removed
  9. 다음 명령을 실행하여 heketi 노드에서 장치를 삭제합니다.

    # heketi-cli device delete <device-id> --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli device delete 0fca78c3a94faabfbe5a5a9eef01b99c --user=admin --secret=adminkey
    Device 0fca78c3a94faabfbe5a5a9eef01b99c deleted
  10. 다음 명령을 실행하여 Heketi 관리에서 노드를 삭제합니다.

    #heketi-cli node delete <nodeid> --user=<user> --secret=<user key>

    예를 들면 다음과 같습니다.

    # heketi-cli node delete ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df deleted
  11. gluster Pod 중 하나에서 다음 명령을 실행하여 문제가 있는 노드를 새 노드로 교체합니다.

    1. 다음 명령을 실행하여 block-hosting-volume에서 호스팅되는 블록 볼륨 목록을 가져옵니다.

      # gluster-block list <block-hosting-volume> --json-pretty
    2. 다음 명령을 실행하여 블록 볼륨을 호스팅하는 서버 목록을 가져오고 나중에 사용할 수 있도록 GBIDmanagers 값을 저장합니다.

      # gluster-block info <block-hosting-volume>/<block-volume> --json-pretty
    3. 다음 명령을 실행하여 문제가 있는 노드를 새 노드로 교체합니다.

      # gluster-block replace <volname/blockname> <old-node> <new-node> [force]

      예를 들면 다음과 같습니다.

      {
        "NAME":"block",
        "CREATE SUCCESS":"192.168.124.73",
        "DELETE SUCCESS":"192.168.124.63",
        "REPLACE PORTAL SUCCESS ON":[
          "192.168.124.79"
        ],
        "RESULT":"SUCCESS"
      }
      
      Note: If the old node is down and does not come up again then you can force replace:
      gluster-block replace sample/block 192.168.124.63 192.168.124.73 force --json-pretty
      
      {
        "NAME":"block",
        "CREATE SUCCESS":"192.168.124.73",
        "DELETE FAILED (ignored)":"192.168.124.63",
        "REPLACE PORTAL SUCCESS ON":[
          "192.168.124.79"
        ],
        "RESULT":"SUCCESS"
      }
    참고

    다음 단계는 교체할 블록이 아직 사용 중인 경우에만 실행해야 합니다.

  12. 블록 볼륨이 현재 마운트되어 있지 않은 경우 이 단계를 건너뜁니다. 블록 볼륨이 애플리케이션에서 사용 중인 경우 이니시에이터 측에서 매퍼 장치를 다시 로드해야 합니다.

    1. 이니시에이터 노드 및 targetname을 식별합니다.

      이니시에이터 노드를 찾으려면 다음을 수행합니다.

      # oc get pods -o wide | grep <podname>

      여기서 podname은 blockvolume이 마운트된 Pod의 이름입니다.

      예를 들면 다음과 같습니다

      # oc get pods -o wide | grep cirros1 cirros1-1-x6b5n   1/1       Running   0          1h        10.130.0.5     dhcp46-31.lab.eng.blr.redhat.com    <none>

      대상 이름을 찾으려면 다음을 수행합니다.

      # oc describe pv <pv_name> | grep IQN

      예를 들면 다음과 같습니다.

      # oc describe pv pvc-c50c69db-5f76-11ea-b27b-005056b253d1 | grep IQN
        IQN: iqn.2016-12.org.gluster-block:87ffbcf3-e21e-4fa5-bd21-7db2598e8d3f
    2. 이니시에이터 노드에서 다음 명령을 실행하여 매퍼 장치를 찾습니다.

      # mount | grep <targetname>
    3. 매퍼 장치를 다시 로드합니다.

      # multipath -r mpathX

      예를 들면 다음과 같습니다.

      # mount | grep iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a/dev/mapper/mpatha on /var/lib/origin/openshift.local.volumes/plugins/kubernetes.io/iscsi/iface-default/192.168.124.63:3260-iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a-lun-0 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
      # multipath -r mpatha
  13. 이니시에이터에서 다음 명령을 실행하여 이전 포털에서 로그아웃합니다.

    # iscsiadm -m node -T <targetname> -p <old node> -u

    예를 들면 다음과 같습니다.

    # iscsiadm -m node -T iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a -p 192.168.124.63 -u
    Logging out of session [sid: 8, target: iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a, portal: 192.168.124.63,3260]
    Logout of [sid: 8, target: iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a, portal: 192.168.124.63,3260] successful.
  14. 새 노드를 다시 검색하려면 다음 명령을 실행합니다.

    # iscsiadm -m discovery -t st -p <new node>

    예를 들면 다음과 같습니다.

    # iscsiadm -m discovery -t st -p 192.168.124.73
    192.168.124.79:3260,1 iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a
    192.168.124.73:3260,2 iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a
  15. 다음을 실행하여 새 포털에 로그인합니다.

    1. 인증 인증 정보 업데이트 (단계 11ii에서 GBID 및 암호 해독 사용)

      # iscsiadm -m node -T <targetname> -o update -n node.session.auth.authmethod -v CHAP -n node.session.auth.username -v <GBID> -n node.session.auth.password -v <PASSWORD> -p <new node ip>
    2. 새 포털에 로그인합니다.

      # iscsiadm -m node -T <targetname> -p <new node ip> -l

      예를 들면 다음과 같습니다.

      # iscsiadm -m node -T iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a -o update -n node.session.auth.authmethod -v CHAP -n node.session.auth.username -v d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a -n node.session.auth.password -v a6a9081f-3d0d-4e8b-b9b0-d2be703b455d -p 192.168.124.73
      # iscsiadm -m node -T iqn.2016-12.org.gluster-block:d6d18f43-8a74-4b2c-a5b7-df1fa3f5bc9a -p 192.168.124.73 -l
  16. 활성화된 호스팅 볼륨이 교체되고 성공적으로 실행 중인지 확인하려면 이니시에이터에서 다음 명령을 실행합니다.

    # ll /dev/disk/by-path/ip-* | grep <targetname> | grep <“new node ip”>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.