Browse Source

Add replacing_nodes.md

alexvru 1 year ago
parent
commit
b20a8c04fb

+ 1 - 0
ydb/docs/ru/core/maintenance/manual/index.md

@@ -16,6 +16,7 @@
   * [{#T}](selfheal.md).
   * [{#T}](../../administration/decommissioning.md).
   * [{#T}](moving_vdisks.md).
+  * [{#T}](replacing_nodes.md).
 
 * Решение проблем:
 

+ 80 - 0
ydb/docs/ru/core/maintenance/manual/replacing_nodes.md

@@ -0,0 +1,80 @@
+# Замена FQDN узла
+
+Иногда возникает ситуация, когда меняется FQDN узла, при этом сам узел в системе остаётся, но под другим именем. Простая замена имени узла в разделе hosts не сработает, т.к. BS\_CONTROLLER внутри хранит привязку ресурсов к парам FQDN:IcPort, где IcPort — номер порта Interconnect, на котором работает узел.
+
+## Процедура замены
+
+1. Для заменяемого узла определить его NodeId.
+2. Подготовить команду DefineBox, которая описывает ресурсы кластера, в которой для ресурсов заменяемого узла будет добавлен элемент `EnforcedNodeId: <NodeId>`.
+3. Выполнить эту команду.
+4. Заменить FQDN в списке hosts в cluster.yaml.
+5. Выполнить rolling restart.
+6. Убрать из DefineBox поле EnforcedNodeId и заменить Fqdn на новое название узла.
+7. Выполнить DefineBox с новыми значениями.
+
+## Пример
+
+Предположим кластер, состоящий из трёх узлов:
+
+config.yaml:
+
+```
+- host: host1.my.sub.net
+  node_id: 1
+  location: {unit: 12345, data_center: MYDC, rack: r1}
+- host: host2.my.sub.net
+  node_id: 2
+  location: {unit: 23456, data_center: MYDC, rack: r2}
+- host: host3.my.sub.net
+  node_id: 3
+  location: {unit: 34567, data_center: MYDC, rack: r3}
+```
+
+DefineBox выглядит так:
+
+```
+DefineBox {
+    BoxId: 1
+    Host { Key { Fqdn: "host1.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+    Host { Key { Fqdn: "host2.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+    Host { Key { Fqdn: "host3.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+}
+```
+
+Предположим, что мы хотим переименовать host1.my.sub.net в host4.my.sub.net. Для этого сначала делаем DefineBox следующего вида:
+
+```
+DefineBox {
+    BoxId: 1
+    Host { Key { Fqdn: "host1.my.sub.net" IcPort: 19001 } HostConfigId: 1 EnforcedNodeId: 1 }
+    Host { Key { Fqdn: "host2.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+    Host { Key { Fqdn: "host3.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+}
+```
+
+Затем изменяем config.yaml:
+
+```
+- host: host4.my.sub.net
+  node_id: 1
+  location: {unit: 12345, data_center: MYDC, rack: r1}
+- host: host2.my.sub.net
+  node_id: 2
+  location: {unit: 23456, data_center: MYDC, rack: r2}
+- host: host3.my.sub.net
+  node_id: 3
+  location: {unit: 34567, data_center: MYDC, rack: r3}
+```
+
+Затем делаем rolling restart кластера.
+
+И затем делаем второй раз скорректированный DefineBox:
+
+```
+DefineBox {
+    BoxId: 1
+    Host { Key { Fqdn: "host4.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+    Host { Key { Fqdn: "host2.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+    Host { Key { Fqdn: "host3.my.sub.net" IcPort: 19001 } HostConfigId: 1 }
+}
+```

+ 2 - 0
ydb/docs/ru/core/maintenance/manual/toc_i.yaml

@@ -27,6 +27,8 @@ items:
   href: ../../administration/decommissioning.md
 - name: Перевоз VDisk'ов
   href: moving_vdisks.md
+- name: Замена FQDN узла
+  href: replacing_nodes.md
 - name: Предотвращение выхода за модель отказа
   href: failure_model.md
 - name: Балансировка нагрузки на диски