3.2.2. 替换块存储中的块


如果要替换来自资源不足或有故障的节点的块,它可以被替换为到新节点。

重要

要使用新的 IP 更新 Gluster 块 PV,在节点替换中引用 https://access.redhat.com/solutions/5042501

执行以下命令:

  1. 执行以下命令从 heketi 获取区域和集群信息

    # heketi-cli topology info --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap
    --user
    heketi 用户
    --secret
    指定用户的 secret key
  2. 获取集群 ID 和区 ID 后,请参阅添加新节点来添加新节点。https://access.redhat.com/documentation/en-us/red_hat_openshift_container_storage/3.11/html-single/operations_guide/index#sect_Adding_New_Nodes
  3. 执行以下命令添加设备

    # heketi-cli device add --name=<device name> --node=<node id> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap
    --name
    要添加的设备名称
    --node
    新添加的节点 ID

    例如:

    # heketi-cli device add --name=/dev/vdc --node=2639c473a2805f6e19d45997bb18cb9c --user=admin --secret=adminkey
    Device added successfully
    Copy to Clipboard Toggle word wrap
  4. 在新节点及其关联的设备添加到 heketi 后,可以从 heketi 中移除错误或不需要的节点

    要从 heketi 中删除任何节点,请按照这个工作流操作:

    • 节点禁用(通过下下下放置节点来允许节点使用)
    • 节点替换(从 Heti 中删除节点及其所有关联设备)
    • 设备删除(从 Heketi 节点中删除设备)
    • 节点删除(从 Heketi 管理中删除节点)
  5. 执行以下命令从 heketi 获取节点列表

    #heketi-cli node list --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # heketi-cli node list --user=admin --secret=adminkey
    Id:05746c562d6738cb5d7de149be1dac04    Cluster:607204cb27346a221f39887a97cf3f90
    Id:ab37fc5aabbd714eb8b09c9a868163df    Cluster:607204cb27346a221f39887a97cf3f90
    Id:c513da1f9bda528a9fd6da7cb546a1ee    Cluster:607204cb27346a221f39887a97cf3f90
    Id:e6ab1fe377a420b8b67321d9e60c1ad1    Cluster:607204cb27346a221f39887a97cf3f90
    Copy to Clipboard Toggle word wrap
  6. 执行以下命令获取节点的节点信息,必须从 heketi 中删除:

    # heketi-cli node info <nodeid> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # 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
    Copy to Clipboard Toggle word wrap
  7. 执行以下命令禁止节点被 heketi。这使得节点离线:

    # heketi-cli node disable <node-id> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # heketi-cli node disable ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df is now offline
    Copy to Clipboard Toggle word wrap
  8. 执行以下命令从 Heketi 中删除节点及其所有关联设备:

    #heketi-cli node remove <node-id> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # heketi-cli node remove ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df is now removed
    Copy to Clipboard Toggle word wrap
  9. 执行以下命令从 heketi 节点中删除设备:

    # heketi-cli device delete <device-id> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # heketi-cli device delete 0fca78c3a94faabfbe5a5a9eef01b99c --user=admin --secret=adminkey
    Device 0fca78c3a94faabfbe5a5a9eef01b99c deleted
    Copy to Clipboard Toggle word wrap
  10. 执行以下命令从 Heketi 管理中删除节点:

    #heketi-cli node delete <nodeid> --user=<user> --secret=<user key>
    Copy to Clipboard Toggle word wrap

    例如:

    # heketi-cli node delete ab37fc5aabbd714eb8b09c9a868163df --user=admin --secret=adminkey
    Node ab37fc5aabbd714eb8b09c9a868163df deleted
    Copy to Clipboard Toggle word wrap
  11. 在其中一个 gluster pod 上执行以下命令将故障节点替换为新节点:

    1. 执行以下命令获取托管在 block-hosting-volume 下的块卷列表:

      # gluster-block list <block-hosting-volume> --json-pretty
      Copy to Clipboard Toggle word wrap
    2. 执行以下命令以获取托管块卷的服务器列表,还要保存 GBIDPASSWORD 值供以后使用:

      # gluster-block info <block-hosting-volume>/<block-volume> --json-pretty
      Copy to Clipboard Toggle word wrap
    3. 执行以下命令将有问题的节点替换为新节点:

      # gluster-block replace <volname/blockname> <old-node> <new-node> [force]
      Copy to Clipboard Toggle word wrap

      例如:

      {
        "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"
      }
      Copy to Clipboard Toggle word wrap
    注意

    只有在被替换的块仍在使用时才执行后续步骤。

  12. 如果块卷当前未挂载,请跳过这一步。如果应用程序正在使用块卷,则需要在启动器一端重新加载映射程序设备。

    1. 确定 initiator 节点和 targetname:

      查找 initiator 节点:

      # oc get pods -o wide | grep <podname>
      Copy to Clipboard Toggle word wrap

      其中 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>
      Copy to Clipboard Toggle word wrap

      找到 targetname:

      # oc describe pv <pv_name> | grep IQN
      Copy to Clipboard Toggle word wrap

      例如:

      # oc describe pv pvc-c50c69db-5f76-11ea-b27b-005056b253d1 | grep IQN
        IQN: iqn.2016-12.org.gluster-block:87ffbcf3-e21e-4fa5-bd21-7db2598e8d3f
      Copy to Clipboard Toggle word wrap
    2. 在 initiator 节点上执行以下命令查找映射程序设备:

      # mount | grep <targetname>
      Copy to Clipboard Toggle word wrap
    3. 重新载入映射程序设备:

      # multipath -r mpathX
      Copy to Clipboard Toggle word wrap

      例如:

      # 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
      Copy to Clipboard Toggle word wrap
  13. 通过在 initiator 中执行以下命令注销旧的门户:

    # iscsiadm -m node -T <targetname> -p <old node> -u
    Copy to Clipboard Toggle word wrap

    例如:

    # 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.
    Copy to Clipboard Toggle word wrap
  14. 要重新发现新节点,请执行以下命令:

    # iscsiadm -m discovery -t st -p <new node>
    Copy to Clipboard Toggle word wrap

    例如:

    # 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
    Copy to Clipboard Toggle word wrap
  15. 通过执行以下操作登录到新门户:

    1. 更新身份验证凭据(从第 11ii 步中使用 GBID 和 PASSWORD)

      # 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>
      Copy to Clipboard Toggle word wrap
    2. 登录到新门户

      # iscsiadm -m node -T <targetname> -p <new node ip> -l
      Copy to Clipboard Toggle word wrap

      例如:

      # 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
      Copy to Clipboard Toggle word wrap
  16. 要验证启用的主机卷是否已替换并成功运行,请在 initiator 中执行以下命令:

    # ll /dev/disk/by-path/ip-* | grep <targetname> | grep <“new node ip”>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat