Równoważenie obciążenia ruchu klienta usługi HPC Cache

W tym artykule wyjaśniono niektóre podstawowe metody równoważenia ruchu klienta do wszystkich punktów instalacji w usłudze Azure HPC Cache.

Każda pamięć podręczna HPC Cache ma co najmniej trzy różne adresy IP, a pamięci podręczne o większej przepływności mogą mieć do 12. Ważne jest, aby korzystać ze wszystkich adresów IP, aby uzyskać pełne korzyści z usługi Azure HPC Cache.

Istnieją różne opcje równoważenia obciążenia instalacji klientów:

  • Ręczne wybieranie innego adresu IP instalacji dla każdego klienta
  • Uwzględnij rotację adresów IP w skryptach instalowania klienta
  • Konfigurowanie systemu DNS w celu automatycznego kierowania żądań klientów między wszystkimi dostępnymi adresami (system DNS działania okrężnego)

Odpowiedni system równoważenia obciążenia zależy od złożoności przepływu pracy, liczby adresów IP w pamięci podręcznej i dużej liczby innych czynników. Jeśli potrzebujesz pomocy przy podejmowaniu decyzji, które podejście jest najlepsze dla Ciebie, skontaktuj się z doradcą platformy Azure.

Ręczne przypisywanie adresów IP

Adresy IP instalacji pamięci podręcznej są wyświetlane na stronach Przegląd pamięci podręcznej i Instrukcje instalacji w witrynie Azure Portal oraz w komunikacie o powodzeniu, który jest wyświetlany podczas tworzenia pamięci podręcznej za pomocą interfejsu wiersza polecenia platformy Azure lub programu PowerShell.

Możesz użyć strony Instrukcje instalacji, aby wygenerować dostosowane polecenie instalacji dla każdego klienta. Wybierz wszystkie wartości adresów instalacji pamięci podręcznej podczas tworzenia wielu poleceń.

Aby uzyskać szczegółowe informacje, przeczytaj temat Instalowanie pamięci podręcznej Azure HPC Cache .

Używanie skryptowego równoważenia obciążenia

Istnieje kilka sposobów programowego obracania instalacji klientów między dostępnymi adresami IP. Poniżej przedstawiono dwa przykłady.

Przykład skryptu polecenia instalacji cksum

To przykładowe polecenie instalacji używa funkcji cksum skrótu i nazwy hosta klienta, aby automatycznie dystrybuować połączenia klienta między wszystkimi dostępnymi adresami IP w pamięci podręcznej HPC Cache. Jeśli wszystkie maszyny klienckie mają unikatowe nazwy hostów, możesz uruchomić to polecenie na każdym kliencie, aby upewnić się, że są używane wszystkie dostępne punkty instalacji.

mount -o hard,proto=tcp,mountproto=tcp,retry=30 $(X=(10.0.0.{1..3});echo ${X[$(($(hostname|cksum|cut -f 1 -d ' ')%3))]}):/${NAMESPACE} /mnt

Aby użyć tego przykładu w przepływie pracy, dostosuj następujące terminy:

  • W wyrażeniu X= użyj rozdzielanej spacjami listy wszystkich adresów instalacji pamięci podręcznej w kolejności posortowanej.

    Wyrażenie (X=(10.0.0.{7..9}) ustawia zmienną X jako ten zestaw adresów instalacji: {10.0.0.7, 10.0.0.8, 10.0.0.9}. Użyj podstawowego adresu IP pamięci podręcznej i dokładnych adresów wyświetlanych na stronie Przegląd pamięci podręcznej. Jeśli adresy nie są kolejne, wyświetl je wszystkie w kolejności liczbowej.

  • %3 W tym okresie użyj rzeczywistej liczby adresów IP instalacji, które ma pamięć podręczna (zazwyczaj 3, 6, 9 lub 12).

    Jeśli na przykład %9 pamięć podręczna uwidacznia dziewięć adresów IP instalacji klienta.

  • W przypadku wyrażenia ${NAMESPACE}użyj docelowej ścieżki przestrzeni nazw magazynu, do którego będzie uzyskiwany dostęp klient.

    Możesz użyć zdefiniowanej zmiennej (PRZESTRZEŃ NAZW w przykładzie) lub przekazać wartość literału.

    Przykład polecenia na końcu tej sekcji używa wartości literału dla ścieżki przestrzeni nazw. /blob-target-1

  • Jeśli chcesz użyć niestandardowej ścieżki lokalnej na maszynach klienckich, zmień wartość /mnt na odpowiednią ścieżkę.

Oto przykład wypełnionego polecenia instalacji klienta:

mount -o hard,proto=tcp,mountproto=tcp,retry=30 $(X=(10.7.0.{1..3});echo ${X[$(($(hostname|cksum|cut -f 1 -d ' ')%3))]}):/blob-target-1 /hpc-cache/blob1 

Przykład funkcji działania okrężnego

W tym przykładzie kodu adresy IP klienta są używane jako element losowy do dystrybucji klientów do wszystkich dostępnych adresów IP usługi HPC Cache.

function mount_round_robin() {

  # to ensure the clients are spread out somewhat evenly the default
  # mount point is based on this client's IP octet4 % number of HPC cache mount IPs.

  declare -a MOUNT_IPS="($(echo ${NFS_IP_CSV} | sed "s/,/ /g"))"
  HASH=$(hostname | cksum | cut -f 1 -d ' ')
  DEFAULT_MOUNT_INDEX=$((${HASH} % ${#MOUNT_IPS[@]}))
  ROUND_ROBIN_IP=${MOUNT_IPS[${DEFAULT_MOUNT_INDEX}]}

  DEFAULT_MOUNT_POINT="${BASE_DIR}/default"

  # no need to write again if it is already there
  if ! grep --quiet "${DEFAULT_MOUNT_POINT}" /etc/fstab; then
      echo "${ROUND_ROBIN_IP}:${NFS_PATH} ${DEFAULT_MOUNT_POINT} nfs hard,proto=tcp,mountproto=tcp,retry=30 0 0" >> /etc/fstab
      mkdir -p "${DEFAULT_MOUNT_POINT}"
      chown nfsnobody:nfsnobody "${DEFAULT_MOUNT_POINT}"
  fi
  if ! grep -qs "${DEFAULT_MOUNT_POINT} " /proc/mounts; then
      retrycmd_if_failure 12 20 mount "${DEFAULT_MOUNT_POINT}" || exit 1
  fi
}

Używanie równoważenia obciążenia DNS

W tej sekcji opisano podstawy konfigurowania systemu DNS w celu dystrybucji połączeń klientów ze wszystkimi punktami instalacji w usłudze Azure HPC Cache. Ta metoda nie uwzględnia ruchu generowanego przez każdego klienta, ale upewnia się, że klienci są równomiernie rozłożone na wszystkie interfejsy pamięci podręcznej, a nie tylko przy użyciu jednego lub dwóch.

Ten dokument nie zawiera instrukcji dotyczących konfigurowania serwera DNS i zarządzania nim dla klientów w środowisku platformy Azure.

System DNS nie jest wymagany do instalowania klientów przy użyciu protokołu NFS i adresów IP. System DNS jest wymagany, jeśli chcesz używać nazw domen zamiast adresów IP, aby uzyskać dostęp do sprzętowych systemów NAS, lub jeśli przepływ pracy zawiera pewne zaawansowane ustawienia protokołu.

System DNS używany do dystrybucji adresów do klientów nie musi być uzyskiwany przez pamięć podręczną HPC Cache. W niektórych sytuacjach można chcieć użyć niestandardowego systemu DNS dla samej pamięci podręcznej, ale skonfigurowanie tego systemu jest znacznie bardziej skomplikowane niż skonfigurowanie tego rodzaju systemu okrężnego klienta. Należy skonsultować się z pomoc techniczna platformy Azure, jeśli myślisz o zmianie serwera DNS usługi HPC Cache na niestandardowy system.

Konfigurowanie dystrybucji działania okrężnego dla punktów instalacji pamięci podręcznej

System DNS z działaniem okrężnym (RRDNS) automatycznie kieruje żądania klientów między wieloma adresami.

Aby skonfigurować ten system, należy dostosować plik konfiguracji serwera DNS, aby podczas instalacji żądań do głównego adresu domeny usługi HPC Cache przypisywać ruch do wszystkich punktów instalacji systemu HPC Cache. Klienci zainstalują pamięć podręczną HPC Cache przy użyciu nazwy domeny jako argumentu serwera i są automatycznie kierowani do następnego adresu IP instalacji.

Istnieją dwa główne kroki konfigurowania sieci RRDNS:

  1. Zmodyfikuj plik serwera named.conf DNS, aby ustawić kolejność cykliczną dla zapytań na pamięć podręczną HPC Cache. Ta opcja powoduje, że serwer przechodzi przez wszystkie dostępne wartości adresów IP. Dodaj instrukcję podobną do następującej:

    options {
        rrset-order {
            class IN A name "hpccache.contoso.com" order cyclic;
        };
    };
    
  2. Skonfiguruj rekordy i wskaźniki (PTR) dla każdego dostępnego adresu IP, jak w poniższym przykładzie.

    Te nsupdate polecenia stanowią przykład prawidłowego konfigurowania systemu DNS dla pamięci podręcznej HPC Cache z nazwą domeny hpccache.contoso.com i trzema adresami instalacji (10.0.0.10, 10.0.0.11 i 10.0.0.12):

    update add hpccache.contoso.com. 86400 A 10.0.0.10
    update add hpccache.contoso.com. 86400 A 10.0.0.11
    update add hpccache.contoso.com. 86400 A 10.0.0.12
    update add client-IP-10.contoso.com. 86400 A 10.0.0.10
    update add client-IP-11.contoso.com. 86400 A 10.0.0.11
    update add client-IP-12.contoso.com. 86400 A 10.0.0.12
    update add 10.0.0.10.in-addr.arpa. 86400 PTR client-IP-10.contoso.com
    update add 11.0.0.10.in-addr.arpa. 86400 PTR client-IP-11.contoso.com
    update add 12.0.0.10.in-addr.arpa. 86400 PTR client-IP-12.contoso.com
    

    Te polecenia tworzą rekord A dla każdego z adresów instalacji usługi HPC Cache, a także konfigurują rekordy wskaźników w celu odpowiedniego obsługi odwrotnych testów DNS.

    Na poniższym diagramie przedstawiono podstawową strukturę tej konfiguracji.

    Diagram showing client mount point DNS configuration.

Po skonfigurowaniu systemu RRDNS poinformuj maszyny klienckie, aby używały go do rozpoznawania adresu pamięci podręcznej HPC Cache w poleceniach instalacji.

Następne kroki