Share via


İstemci trafiği HPC Önbelleği yük dengeleme

Bu makalede, Azure HPC Önbelleği'nizdeki tüm bağlama noktalarına yönelik istemci trafiğini dengelemeye yönelik bazı temel yöntemler açıklanmaktadır.

Her HPC Önbelleği en az üç farklı IP adresi vardır ve daha büyük aktarım hızı değerlerine sahip önbelleklerde en fazla 12 ip adresi olabilir. Azure HPC Önbelleği'nin tüm avantajlarından yararlanmak için tüm IP adreslerinin kullanılması önemlidir.

İstemci bağlamalarınızı yük dengelemek için çeşitli seçenekler vardır:

  • Her istemci için el ile farklı bir bağlama IP'sini seçin
  • İstemci bağlama betiklerinize IP adresi döndürmeyi dahil edin
  • İstemci isteklerini tüm kullanılabilir adresler arasında otomatik olarak yönlendirmek için bir DNS sistemi yapılandırma (hepsini bir kez deneme DNS)

Sizin için doğru yük dengeleme sistemi iş akışınızın karmaşıklığı, önbelleğinizdeki IP adresi sayısına ve çok sayıda başka faktöre bağlıdır. Hangi yaklaşımın sizin için en uygun olduğuna karar verirken yardıma ihtiyacınız varsa Azure danışmanınıza başvurun.

IP adreslerini el ile atama

Önbelleğinizin bağlama IP adresleri, Azure portalındaki önbelleğe Genel Bakış ve Bağlama yönergeleri sayfalarında ve Azure CLI veya PowerShell ile önbellek oluşturduğunuzda yazdıran başarı iletisinde gösterilir.

Bağlama yönergeleri sayfasını kullanarak her istemci için özelleştirilmiş bir bağlama komutu oluşturabilirsiniz. Birden çok komut oluştururken önbellek bağlama adresi değerlerinin tümünü seçin.

Ayrıntılar için Bkz. Azure HPC Önbelleği bağlama.

Betikli yük dengelemeyi kullanma

İstemci bağlamalarını kullanılabilir IP adresleri arasında program aracılığıyla döndürmenin çeşitli yolları vardır. Aşağıda iki örnek verilmiştir.

Bağlama komut dosyası cksum örneği

Bu örnek bağlama komutu karma işlevini cksum ve istemci ana bilgisayar adını kullanarak istemci bağlantılarını HPC Önbelleği tüm kullanılabilir IP adresleri arasında otomatik olarak dağıtır. Tüm istemci makinelerinin benzersiz konak adları varsa, kullanılabilir tüm bağlama noktalarının kullanıldığından emin olmak için her istemcide bu komutu çalıştırabilirsiniz.

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

Bu örneği iş akışınızda kullanmak için şu terimleri özelleştirin:

  • İfadede, önbelleğin X= tüm bağlama adreslerinin boşlukla ayrılmış listesini sıralı olarak kullanın.

    İfade (X=(10.0.0.{7..9}) , X değişkenini şu bağlama adresleri kümesi olarak ayarlar: {10.0.0.7, 10.0.0.8, 10.0.0.9}. Önbelleğin temel IP adresini ve önbellek Genel Bakış sayfanızda gösterilen tam adresleri kullanın. Adresler ardışık değilse, tümünü sayısal sırada listeleyin.

  • Teriminde %3 , önbelleğinizin sahip olduğu bağlama IP adreslerinin gerçek sayısını kullanın (genellikle 3, 6, 9 veya 12).

    Örneğin, önbelleğiniz dokuz istemci bağlama IP adresini kullanıma sunarsa kullanın %9 .

  • ifadesi ${NAMESPACE}için, istemcinin erişeceği depolama hedefi ad alanı yolunu kullanın.

    Tanımladığınız bir değişkeni kullanabilir (örnekte AD ALANI ) veya değişmez değeri geçirebilirsiniz.

    Bu bölümün sonundaki komut örneği, /blob-target-1ad alanı yolu için değişmez değer kullanır.

  • İstemci makinelerinizde özel bir yerel yol kullanmak istiyorsanız, değeri /mnt istediğiniz yola değiştirin.

Doldurulmuş istemci bağlama komutu örneği aşağıda verilmiştir:

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 

Hepsini bir kez deneme işlevi örneği

Bu kod örneği, istemcileri HPC Önbelleği tüm kullanılabilir IP adreslerine dağıtmak için rastgele bir öğe olarak istemci IP adreslerini kullanır.

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
}

DNS yük dengelemeyi kullanma

Bu bölümde, istemci bağlantılarını Azure HPC Önbelleği'nizdeki tüm bağlama noktalarına dağıtmak için bir DNS sistemi yapılandırmanın temelleri açıklanmaktadır. Bu yöntem, her istemcinin oluşturduğu trafik miktarını hesaba katmıyor, ancak istemcilerin yalnızca bir veya iki tane kullanmak yerine önbelleğin tüm arabirimlerine eşit olarak dağıtıldığından emin olur.

Bu belge, Azure ortamındaki istemcileriniz için dns sunucusu ayarlama ve yönetme yönergelerini içermez.

NFS protokollerini ve IP adreslerini kullanarak istemcileri bağlamak için DNS gerekli değildir. DONANıM NAS sistemlerine ulaşmak için IP adresleri yerine etki alanı adları kullanmak istiyorsanız veya iş akışınız belirli gelişmiş protokol ayarları içeriyorsa DNS gereklidir.

Adresleri istemcilere dağıtmak için kullandığınız DNS sistemine HPC Önbelleği tarafından erişilmesi gerekmez. Bazı durumlarda önbelleğin kendisi için özel bir DNS sistemi kullanmak isteyebilirsiniz, ancak bu sistemi yapılandırmak, bu tür bir istemci hepsini bir kez deneme sistemi ayarlamaktan çok daha karmaşıktır. HPC Önbelleği DNS sunucunuzu özel bir sisteme değiştirmeyi düşünüyorsanız Azure desteği danışmanız gerekir.

Önbellek bağlama noktaları için hepsini bir kez deneme dağıtımlarını yapılandırma

Hepsini bir kez deneme DNS (RRDNS) sistemi istemci isteklerini birden çok adres arasında otomatik olarak yönlendirir.

Bu sistemi ayarlamak için DNS sunucusunun yapılandırma dosyasını, HPC Önbelleği ana etki alanı adresine bağlama istekleri aldığında trafiği HPC Önbelleği sisteminin tüm bağlama noktaları arasında atayacak şekilde özelleştirmeniz gerekir. İstemciler HPC Önbelleği sunucu bağımsız değişkeni olarak etki alanı adını kullanarak bağlar ve otomatik olarak bir sonraki bağlama IP'sine yönlendirilir.

RRDNS'yi yapılandırmak için iki ana adım vardır:

  1. HPC ÖNBELLEĞI sorguların döngüsel sırasını ayarlamak için DNS sunucunuzun named.conf dosyasını değiştirin. Bu seçenek sunucunun tüm kullanılabilir IP değerleri arasında geçişine neden olur. Aşağıdaki gibi bir deyim ekleyin:

    options {
        rrset-order {
            class IN A name "hpccache.contoso.com" order cyclic;
        };
    };
    
  2. Aşağıdaki örnekte olduğu gibi kullanılabilir her IP adresi için bir kayıt ve işaretçi (PTR) kaydı yapılandırın.

    Bu nsupdate komutlar, etki alanı adı hpccache.contoso.com ve üç bağlama adresi (10.0.0.10, 10.0.0.11 ve 10.0.0.12) olan bir HPC Önbelleği için DNS'yi doğru yapılandırma örneği sağlar:

    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
    

    Bu komutlar, HPC Önbelleği bağlama adreslerinin her biri için bir A kaydı oluşturur ve ayrıca ters DNS denetimlerini uygun şekilde desteklemek için işaretçi kayıtlarını ayarlar.

    Aşağıdaki diyagramda bu yapılandırmanın temel yapısı gösterilmektedir.

    Diagram showing client mount point DNS configuration.

RRDNS sistemi yapılandırıldıktan sonra istemci makinelerinize bağlama komutlarındaki HPC Önbelleği adresini çözümlemek için bunu kullanmalarını söyleyin.

Sonraki adımlar

  • İstemci yükünü dengeleme konusunda yardım almak için desteğe başvurun.
  • Verileri önbelleğin depolama hedeflerine taşımak için Yeni Azure Blob depolama alanını doldurma makalesini okuyun.