Cluster extension {#expand_cluster}

  1. Add information about new nodes to NameserviceConfig in the names.txt file

    1. Node {
    2. NodeId: 1
    3. Port: <ic-port>
    4. Host: "<existing-host>"
    5. InterconnectHost: "<existing-host>"
    6. Location {
    7. DataCenter: "DC1"
    8. Module: "M1"
    9. Rack: "R1"
    10. Unit: "U1"
    11. }
    12. }
    13. Node {
    14. NodeId: 2
    15. Port: <ic-port>
    16. Host: "<new-host>"
    17. InterconnectHost: "<new-host>"
    18. Location {
    19. DataCenter: "DC1"
    20. Module: "M2"
    21. Rack: "R2"
    22. Unit: "U2"
    23. }
    24. }
    25. ClusterUUID: "<cluster-UUID>"
    26. AcceptUUID: "<cluster-UUID>"

    Cluster extension - 图1

  2. Update the NameserviceConfig via CMS

  3. Add new nodes to DefineBox

    Sample protobuf for DefineBox

    1. Command {
    2. DefineHostConfig {
    3. HostConfigId: 1
    4. Drive {
    5. Path: "<device-path>"
    6. Type: SSD
    7. PDiskConfig {
    8. ExpectedSlotCount: 2
    9. }
    10. }
    11. }
    12. }
    13. Command {
    14. DefineBox {
    15. BoxId: 1
    16. Host {
    17. Key {
    18. Fqdn: "<existing-host>"
    19. IcPort: <ic-port>
    20. }
    21. HostConfigId: 1
    22. }
    23. Host {
    24. Key {
    25. Fqdn: "<new-host>"
    26. IcPort: <ic-port>
    27. }
    28. HostConfigId: 1
    29. }
    30. }
    31. }

    Cluster extension - 图2

    Using the command

    1. kikimr -s <endpoint> admin bs config invoke --proto-file DefineBox.txt

    Cluster extension - 图3