Настройка выделенной сети для распределенного хранилища с LINSTOR

Настройте LINSTOR так, чтобы он предпочитал локальные каналы для хранилища и переходил на междатацентровые соединения при необходимости

Введение

В этом руководстве описано, как повысить надежность и производительность хранилища в распределенных кластерах Cozystack.

В гиперконвергентных кластерах для трафика хранилища обычно выделяют отдельную сеть. Однако не всегда возможно выделить отдельные storage-каналы между дата-центрами.

Если для хранилища нет выделенных междатацентровых каналов, есть два варианта:

  • изолировать storage-узлы в каждом дата-центре;
  • передавать storage-трафик через существующие uplink вместе с другими workloads.

В этом руководстве показано, как настроить LINSTOR на использование выделенной сети для storage-трафика внутри каждого дата-центра и при необходимости переключаться на общие каналы между дата-центрами.

Предварительные требования

Это руководство опирается на руководство Выделенная сеть для LINSTOR и добавляет методы и шаблоны конфигурации, характерные для окружений с несколькими дата-центрами. Чтобы применять описанные здесь шаблоны, важно понимать, как работают интерфейсы узлов и пути соединений. Сначала ознакомьтесь с предыдущим руководством: в нем эти концепции описаны подробно.

Чтобы применять разные настройки соединений в зависимости от расположения узла, добавьте на узлы соответствующие метки. Инструкции см. в руководстве Топологические метки узлов. В этом руководстве для различения дата-центров используется метка topology.kubernetes.io/zone.

Конфигурация соединений

В этом примере есть три дата-центра: dc1, dc2 и dc3. Дата-центры соединены прямыми оптическими линиями, а интерфейс называется region10g. Узлы в дата-центрах dc1 и dc2 имеют отдельный сетевой коммутатор и сетевые интерфейсы san только для storage-трафика. В дата-центре dc3 нет выделенного сетевого коммутатора для хранилища, и весь трафик между узлами в dc3 маршрутизируется через сеть по умолчанию. Для подключения к другим дата-центрам используется VPN-сервер, подключенный к оптическим линиям. На узлах в dc3 есть VLAN-интерфейс с IP из подсети region10g.

Рассмотрим сценарий с тремя дата-центрами: dc1, dc2 и dc3.

  • Дата-центры соединены прямыми оптическими линиями, которые доступны узлам как интерфейс region10g.
  • Узлы в dc1 и dc2 подключены к выделенному сетевому коммутатору для хранилища и используют отдельный интерфейс san только для storage-трафика.
  • В дата-центре dc3 нет выделенной storage-сети. Весь трафик внутри dc3 идет через сеть по умолчанию.

Для такой схемы оптимальная маршрутизация storage-трафика выглядит так:

  • Узлы в dc1 и dc2 используют интерфейс san для локальной репликации хранилища.
  • Узлы в dc3 используют сетевой интерфейс по умолчанию для локальной репликации хранилища, избегая лишних переходов через VPN-сервер.
  • Междатацентровый storage-трафик идет через интерфейс region10g.

Ниже custom resource definition (CRD) LINSTOR, который реализует эту логику:

---
apiVersion: piraeus.io/v1
kind: LinstorNodeConnection
metadata:
  name: intra-datacenter
spec:
  selector:
  - matchLabels:
    - key: topology.kubernetes.io/zone
      op: Same
    - key: topology.kubernetes.io/zone
      op: In
      values:
      # Только в этих дата-центрах есть интерфейс `san`
      - dc1
      - dc2
  paths:
  - name: intra-datacenter
    interface: san

# Узлы в `dc3` используют сеть по умолчанию.
# Для репликации внутри этого дата-центра отдельное соединение не требуется.

---
apiVersion: piraeus.io/v1
kind: LinstorNodeConnection
metadata:
  name: cross-datacenter
spec:
  selector:
  - matchLabels:
    - key: topology.kubernetes.io/zone
      op: NotSame
  paths:
  - name: cross-datacenter
    interface: region10g

После применения этой конфигурации можно проверить получившиеся пути соединений:

LINSTOR ==> node-connection list
╭─────────────────────────────────────────────────────╮
┊ Node A ┊ Node B ┊ Properties                        ┊
╞═════════════════════════════════════════════════════╡
┊ node01 ┊ node02 ┊ last-applied=["Paths/intra-dat... ┊
┊ node01 ┊ node03 ┊ last-applied=["Paths/cross-dat... ┊
┊ node01 ┊ node04 ┊ last-applied=["Paths/cross-dat... ┊
....

Пары узлов внутри дата-центра dc3 не будут иметь настроенного custom node connection и будут использовать интерфейс по умолчанию.

Last modified 2026-06-29: translate 1.5 (73d3d03)