Sdílet prostřednictvím


Vyrovnávání zatížení klientského provozu služby HPC Cache

Tento článek vysvětluje některé základní metody vyrovnávání provozu klienta do všech přípojných bodů ve službě Azure HPC Cache.

Každá služba HPC Cache má aspoň tři různé IP adresy a mezipaměti s většími hodnotami propustnosti můžou mít až 12. Je důležité použít všechny IP adresy k získání úplných výhod služby Azure HPC Cache.

Pro vyrovnávání zatížení připojení klienta existují různé možnosti:

  • Ruční volba jiné IP adresy připojení pro každého klienta
  • Zahrnutí obměny IP adres do skriptů připojení klienta
  • Konfigurace systému DNS pro automatické směrování požadavků klientů mezi všechny dostupné adresy (DNS s kruhovým dotazováním)

Správný systém vyrovnávání zatížení pro vás závisí na složitosti pracovního postupu, počtu IP adres v mezipaměti a velkém počtu dalších faktorů. Pokud potřebujete pomoc s rozhodováním, který přístup je pro vás nejvhodnější, obraťte se na svého poradce Azure.

Ruční přiřazení IP adres

IP adresy připojení mezipaměti se zobrazují na stránkách Přehled mezipaměti a Pokyny k připojení na webu Azure Portal a na zprávě o úspěchu, která se vytiskne při vytváření mezipaměti pomocí Azure CLI nebo PowerShellu.

Pomocí stránky Pokyny k připojení můžete pro každého klienta vygenerovat přizpůsobený příkaz pro připojení. Při vytváření více příkazů vyberte všechny hodnoty adresy připojení mezipaměti.

Podrobnosti najdete v článku Připojení služby Azure HPC Cache .

Použití skriptovaného vyrovnávání zatížení

Existuje několik způsobů, jak programově otáčet připojení klientů mezi dostupnými IP adresami. Tady jsou dva příklady:

Příklad připojení skriptu příkazu cksum

Tento příklad příkazu připojení používá funkci cksum hash a název hostitele klienta k automatické distribuci připojení klienta mezi všechny dostupné IP adresy ve vaší službě HPC Cache. Pokud mají všechny klientské počítače jedinečné názvy hostitelů, můžete tento příkaz spustit na každém klientovi, abyste zajistili, že se použijí všechny dostupné přípojné body.

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

Pokud chcete tento příklad použít v pracovním postupu, přizpůsobte si tyto termíny:

  • Ve výrazu X= použijte seznam oddělený mezerami všech adres připojení mezipaměti v seřazeném pořadí.

    Výraz (X=(10.0.0.{7..9}) nastaví proměnnou X jako tuto sadu adres připojení: {10.0.0.7, 10.0.0.8, 10.0.0.9}. Použijte základní IP adresu mezipaměti a přesné adresy zobrazené na stránce Přehled mezipaměti. Pokud adresy nejsou po sobě jdoucí, uveďte je všechny v číselném pořadí.

  • %3 V termínu použijte skutečný počet IP adres připojení, které vaše mezipaměť obsahuje (obvykle 3, 6, 9 nebo 12).

    Můžete například použít %9 , pokud vaše mezipaměť zpřístupňuje devět IP adres připojení klienta.

  • Pro výraz ${NAMESPACE}použijte cestu k cílovému oboru názvů úložiště, ke které bude klient přistupovat.

    Můžete použít proměnnou, kterou jste definovali (obor názvů v příkladu), nebo místo toho předat hodnotu literálu.

    Příklad příkazu na konci této části používá hodnotu literálu pro cestu k oboru názvů , /blob-target-1.

  • Pokud chcete na klientských počítačích použít vlastní místní cestu, změňte hodnotu /mnt na požadovanou cestu.

Tady je příklad vyplněného příkazu pro připojení 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 

Příklad funkce kruhového dotazování

Tento příklad kódu používá IP adresy klienta jako prvek randomizace k distribuci klientů do všech dostupných IP adres služby 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
}

Použití vyrovnávání zatížení DNS

Tato část vysvětluje základy konfigurace systému DNS pro distribuci klientských připojení ke všem přípojným bodům ve službě Azure HPC Cache. Tato metoda nezohlední objem provozu, který každý klient generuje, ale zajišťuje rovnoměrné rozložení klientů do všech rozhraní mezipaměti namísto použití jedné nebo dvou.

Tento dokument neobsahuje pokyny pro nastavení a správu serveru DNS pro klienty v prostředí Azure.

K připojení klientů pomocí protokolu NFS a IP adres se dns nevyžaduje. DNS je potřeba, pokud chcete použít názvy domén místo IP adres pro přístup k hardwarovým systémům NAS nebo pokud váš pracovní postup obsahuje určitá pokročilá nastavení protokolu.

Systém DNS, který používáte k distribuci adres klientům, nemusí být přístupný službou HPC Cache. V některých situacích můžete chtít použít vlastní systém DNS pro samotnou mezipaměť, ale konfigurace tohoto systému je mnohem složitější než nastavení tohoto typu systému kruhového dotazování klienta. Pokud uvažujete o změně serveru DNS služby HPC Cache na vlastní systém, musíte se obrátit na podpora Azure.

Konfigurace distribuce kruhového dotazování pro přípojné body mezipaměti

Systém DNS (RRDNS) s kruhovým dotazováním automaticky směruje požadavky klientů mezi více adres.

Pokud chcete tento systém nastavit, musíte přizpůsobit konfigurační soubor serveru DNS tak, aby při připojování požadavků na hlavní adresu domény služby HPC Cache přiřadil provoz mezi všechny přípojné body systému HPC Cache. Klienti připojují službu HPC Cache jako argument serveru pomocí názvu domény a automaticky se směrují na další IP adresu připojení.

Ke konfiguraci služby RRDNS existují dva hlavní kroky:

  1. Upravte soubor serveru named.conf DNS tak, aby nastavil cyklický pořadí pro dotazy do služby HPC Cache. Tato možnost způsobí, že server bude cyklicky procházet všechny dostupné hodnoty IP adres. Přidejte příkaz podobný tomuto:

    options {
        rrset-order {
            class IN A name "hpccache.contoso.com" order cyclic;
        };
    };
    
  2. Nakonfigurujte záznamy A a záznamy ukazatele (PTR) pro každou dostupnou IP adresu jako v následujícím příkladu.

    Tyto nsupdate příkazy poskytují příklad správné konfigurace DNS pro službu HPC Cache s názvem domény hpccache.contoso.com a třemi adresami připojení (10.0.0.10, 10.0.0.11 a 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
    

    Tyto příkazy vytvoří záznam A pro každou adresu připojení služby HPC Cache a také nastaví záznamy ukazatelů tak, aby správně podporovaly zpětné kontroly DNS.

    Následující diagram znázorňuje základní strukturu této konfigurace.

    Diagram showing client mount point DNS configuration.

Po nakonfigurování systému RRDNS řekněte klientským počítačům, aby ho používaly k překladu adresy služby HPC Cache v příkazech pro připojení.

Další kroky

  • Pokud potřebujete pomoc s vyrovnáváním zatížení klienta, obraťte se na podporu.
  • Pokud chcete přesunout data do cílů úložiště mezipaměti, přečtěte si nové úložiště objektů blob v Azure.