Azure Batch'teki düğümler ve havuzlar

Azure Batch iş akışında işlem düğümü (veya düğümü), uygulamanızın iş yükünün bir bölümünü işleyen bir sanal makinedir. Havuz, uygulamanızın üzerinde çalıştırılacak bu düğümlerden oluşan bir koleksiyondur. Bu makalede düğümler ve havuzlar hakkında daha fazla bilgi ve bunları Azure Batch iş akışında oluştururken ve kullanırken dikkat edilmesi gerekenler açıklanır.

Düğümler

Düğüm, uygulamanızın iş yükünün bir bölümünü işlemeye ayrılmış bir Azure sanal makinesi (VM) veya bulut hizmeti VM'dir. Bir düğümün boyutu CPU çekirdeklerinin sayısını, bellek kapasitesini ve düğüme ayrılan yerel dosya sistemi boyutunu belirler.

Azure Cloud Services’ı, Microsoft Azure Sanal Makineler Market görüntülerini veya kendi hazırladığınız özel görüntüleri kullanarak Windows veya Linux düğümleri içeren havuzlar oluşturabilirsiniz.

Düğümler, düğümün işletim sistemi ortamı tarafından desteklenen herhangi bir yürütülebilir dosyayı ya da komut dosyasını çalıştırabilir. Yürütülebilir dosyalar veya betikler *.exe, *.cmd, *.bat ve PowerShell betiklerini (Windows için) ve ikili dosyaları, kabuğu ve Python betiklerini (Linux için) içerir.

Batch içindeki tüm işlem düğümleri ayrıca şunları içerir:

Varsayılan olarak düğümler birbirleriyle iletişim kurabilir, ancak aynı havuzun parçası olmayan sanal makinelerle iletişim kuramaz. Düğümlerin diğer sanal makinelerle veya şirket içi ağ ile güvenli bir şekilde iletişim kurmasına izin vermek için, havuzu bir Azure sanal ağının (VNet) alt ağında sağlayabilirsiniz. Bunu yaptığınızda düğümlerinize genel IP adresleri üzerinden erişilebilir. Bu genel IP adresleri Batch tarafından oluşturulur ve havuzun ömrü boyunca değişebilir. Ayrıca , denetlediğiniz statik genel IP adreslerine sahip bir havuz da oluşturabilirsiniz ve bu da beklenmedik şekilde değişmemesini sağlar.

Havuzlar

Havuz, uygulamanızın üzerinde çalıştığı düğüm koleksiyonudur.

Azure Batch havuzları temel Azure işlem platformu üzerinde derlenir. Havuz içindeki işlem düğümü sayısının büyük ölçekli ayırması, uygulama yüklemesi, veri dağıtımı, sistem durumu izlemesi ve esnek ayarlama (ölçeklendirme) sağlar.

Bir havuza eklenen her düğüme benzersiz bir ad ve IP adresi atanır. Bir düğüm havuzdan kaldırıldığında, işletim sistemi ya da dosyalara yapılan tüm değişiklikler kaybedilir ve düğümün adı ile IP adresi gelecekte kullanım için boşta kalır. Bir düğüm havuzdan ayrıldığında ömrü sona erer.

Bir havuz yalnızca içinde oluşturulduğu Batch hesabı tarafından kullanılabilir. Batch hesabı, çalıştıracağı uygulamaların kaynak gereksinimlerini karşılamak için birden çok havuz oluşturabilir.

Havuz el ile veya yapılacak işi belirttiğinizde Batch hizmeti tarafından otomatik olarak oluşturulabilir. Bir havuz oluşturduğunuzda aşağıdaki öznitelikleri belirtebilirsiniz:

Önemli

Batch hesaplarının, bir Batch hesabındaki çekirdek sayısını sınırlayan varsayılan bir kotası vardır. Çekirdek sayısı, işlem düğümü sayısına karşılık gelir. Varsayılan kotaları ve kota artırma yönergelerini Azure Batch hizmeti için kotalar ve limitler bölümünde bulabilirsiniz. Havuzunuzun hedef düğüm sayısına ulaşmamasının nedeni çekirdek kotası olabilir.

İşletim sistemi ve sürüm

Batch havuzu oluşturduğunuzda, Azure sanal makine yapılandırmasını ve havuzdaki her işlem düğümünde çalıştırmak istediğiniz işletim sistemi türünü belirtirsiniz.

Yapılandırmalar

Sanal Makine Yapılandırması

Sanal Makine Yapılandırması, havuzun Azure sanal makinelerinden oluştuğunu belirtir. Bu VM'ler Linux veya Windows görüntülerinden oluşturulabilir.

Batch düğümü aracısı, havuzdaki her düğümde çalışan ve düğüm ile Batch hizmeti arasında komut ve denetim arabirimi sağlayan bir programdır. Farklı işletim sistemleri için düğüm aracısının SKU'lar olarak bilinen farklı uygulamaları vardır. Sanal Makine Yapılandırmasını temel alan bir havuz oluşturduğunuzda, yalnızca düğümlerin boyutunu ve onları oluşturmak için kullanılan görüntülerin kaynağını değil, aynı zamanda sanal makine görüntü başvurusunu ve düğümlere yüklenecek Batch düğümü aracı SKU'sunu da belirtmeniz gerekir. Bu havuz özelliklerini belirtme hakkında daha fazla bilgi için bkz. Azure Batch havuzlarında Linux işlem düğümlerini hazırlama. İsteğe bağlı olarak Market görüntülerinden oluşturulmuş havuz VM'lerine bir veya daha fazla boş veri diski ekleyebilir veya VM'leri oluşturmak için kullanılan özel görüntülere veri diskleri dahil edebilirsiniz. Veri disklerini eklerken, kullanmak için vm'nin içinden diskleri bağlamanız ve biçimlendirmeniz gerekir.

Düğüm Aracısı SKU'ları

Havuz oluştururken VHD'nizin temel görüntüsünün işletim sistemine bağlı olarak uygun nodeAgentSkuId değerini seçmeniz gerekir. Desteklenen Düğüm Aracısı SKU'larını Listele işlemini çağırarak, kullanılabilir düğüm aracısı SKU kimliklerinin işletim sistemi görüntüsü başvurularıyla eşlemesini alabilirsiniz.

Sanal Makine havuzları için özel görüntüler

Özel görüntülerle havuz oluşturmayı öğrenmek için bkz . Azure İşlem Galerisi'ni kullanarak özel havuz oluşturma.

Sanal Makine havuzlarında kapsayıcı desteği

Batch API'lerini kullanarak Sanal Makine Yapılandırma havuzu oluştururken havuzu görevleri Docker kapsayıcılarında çalıştıracak şekilde ayarlayabilirsiniz. Şu anda Docker kapsayıcılarını destekleyen bir görüntü kullanarak havuz oluşturmanız gerekir. Azure Market'teki Windows Server 2016 Datacenter with Containers görüntüsünü kullanın veya Docker Community Edition ya da Enterprise Edition ile gerekli sürücüleri içeren özel bir VM görüntüsü sağlayın. Havuz ayarları, kapsayıcı görüntülerini havuz oluşturulduğunda VM'lere kopyalayan bir kapsayıcı yapılandırması içermelidir. Havuzda çalışan görevler, kapsayıcı görüntülerine ve kapsayıcı çalıştırma seçeneklerine başvurabilir.

Daha fazla bilgi için bkz. Azure Batch’te Docker kapsayıcı uygulamaları çalıştırma.

Düğüm türü ve hedefi

Havuz oluşturduğunuzda, istediğiniz düğüm türlerini ve her biri için hedef numarayı belirtebilirsiniz. İki düğüm türü şunlardır:

  • Ayrılmış düğümler. Adanmış bir işlem düğümleri, iş yükleriniz için ayrılmıştır. Bunlar Spot düğümlerden daha pahalıdır, ancak hiçbir zaman ön plana çıkarılmamaları garanti edilir.
  • Spot düğümler. Spot düğümler, Batch iş yüklerinizi çalıştırmak için Azure'daki fazla kapasiteden yararlanıyor. Spot düğümler, ayrılmış düğümlere göre saat başına daha ucuzdur ve önemli işlem gücü gerektiren iş yüklerini etkinleştirir. Daha fazla bilgi için bkz . Spot VM'leri Batch ile kullanma.

Azure'ın fazla kapasitesi yetersiz olduğunda spot düğümler önlenebilir. Görevler çalıştırılırken bir düğüm etkisiz hale getirilirse, işlem düğümü yeniden kullanılabilir olduğunda görevler yeniden kuyruğa alınır ve tekrar çalıştırılır. Spot düğümler, işin tamamlanma süresinin esnek olduğu ve işin birçok düğüme dağıtıldığı iş yükleri için iyi bir seçenektir. Senaryonuz için Spot düğümleri kullanmaya karar vermeden önce, ön kullanım nedeniyle kaybedilen tüm çalışmaların en az düzeyde ve kolayca yeniden oluşturuladığından emin olun.

Aynı havuzda hem Spot hem de ayrılmış işlem düğümleriniz olabilir. Her düğüm türünün, istenen düğüm sayısını belirtebileceğiniz kendi hedef ayarı vardır.

Bazı durumlarda havuzunuz istenilen düğüm sayısına ulaşmayabileceğinden işlem düğümleri sayısı hedef olarak adlandırılır. Örneğin, bir havuz ilk olarak Batch hesabınızın çekirdek kotasına ulaşırsa hedefe ulaşamayabilir. Veya havuza en fazla düğüm sayısını sınırlayan bir otomatik ölçeklendirme formülü uyguladıysanız havuz hedefe ulaşamayabilir.

Hem Spot hem de ayrılmış düğümler için fiyatlandırma bilgileri için bkz . Batch Fiyatlandırması.

Düğüm boyutu

Azure Batch havuzu oluşturduğunuzda, neredeyse Azure'da bulunan tüm VM aileleri ve boyutları arasından seçim yapabilirsiniz. Azure farklı iş yükleri için HPC veya GPU etkin VM boyutları da dahil olmak üzere çeşitli VM boyutları sunar. Düğüm boyutlarının yalnızca havuz oluşturulurken seçilebileceğini unutmayın. Başka bir deyişle, bir havuz oluşturulduktan sonra düğüm boyutu değiştirilemez.

Daha fazla bilgi için bkz. Azure Batch havuzunda işlem düğümleri için VM boyutunu seçme.

Otomatik ölçeklendirme ilkesi

Dinamik iş yükleri için havuza otomatik ölçeklendirme ilkesi uygulayabilirsiniz. Batch hizmeti formülünüzü düzenli aralıklarla değerlendirir ve havuzdaki düğüm sayısını geçerli iş yüküne ve işlem senaryonuzun kaynak kullanımına göre dinamik olarak ayarlar. Bu, yalnızca ihtiyacınız olan kaynakları kullanarak ve ihtiyacınız olmayanları bırakarak uygulamanızı çalıştırmaya ilişkin genel maliyeti düşürmenizi sağlar.

Bir otomatik ölçeklendirme formülü yazıp bu formülü bir havuzla ilişkilendirerek otomatik ölçeklendirmeyi etkinleştirebilirsiniz. Batch hizmeti, sonraki ölçeklendirme aralığı (sizin yapılandırabileceğiniz bir aralık) için havuzdaki düğümlerin hedef sayısını belirlemek amacıyla bu formülü kullanır. Bir havuzu oluştururken otomatik ölçeklendirme ayarlarını belirtebilir ya da bir havuz üzerinde ölçeklendirmeyi daha sonra etkinleştirebilirsiniz. Ölçeklendirme özellikli bir havuz üzerinde ölçeklendirme ayarlarını da güncelleştirebilirsiniz.

Örneğin, bir iş yürütülmek üzere çok sayıda görev göndermenizi gerektirebilir. Havuza, kuyruğa alınmış görevlerin mevcut sayısı ve iş içindeki görevlerin tamamlanma oranı temelinde havuzdaki düğüm sayısını ayarlayan bir ölçeklendirme formülü atayabilirsiniz. Batch hizmeti düzenli aralıklarla formülü değerlendirir ve havuzu, iş yükü ile diğer formül ayarlarınız temelinde yeniden boyutlandırır. Hizmet, kuyrukta çok sayıda görev olduğunda düğüm ekler, kuyrukta veya çalışan görev olmadığında ise düğümleri kaldırır.

Ölçeklendirme formülü aşağıdaki ölçümleri temel alabilir:

  • Zaman ölçümleri belirtilen saat sayısınca beş dakikada bir toplanan istatistikleri temel alır.
  • Kaynak ölçümleri CPU kullanımı, bant genişliği kullanımı, bellek kullanımı ve düğüm sayısını temel alır.
  • Görev ölçümleri; Etkin (kuyruğa alınmış) Çalışıyor veya Tamamlandı gibi görev durumlarını temel alır.

Otomatik ölçeklendirme bir havuzdaki işlem düğümlerinin sayısını azalttığında, azaltma işlemi sırasında çalışan görevlerin nasıl ele alınacağını göz önünde bulundurmanız gerekir. Batch bunu yapabilmek için formüllerinize dahil edebileceğiniz bir düğüm ayırmasını kaldırma seçeneği sağlar. Örneğin, çalışmakta olan görevlerin hemen durdurulacağını, ardından başka bir düğüm üzerinde yeniden kuyruğa alınacağını veya düğüm havuzdan kaldırılmadan önce bitmesine izin verileceğini belirtebilirsiniz. Düğüm ayırma seçeneğini olarak taskcompletion ayarlamanın veya tüm görevler tamamlanana veya retaineddata tüm görev saklama sürelerinin süresi dolana kadar havuz yeniden boyutlandırma işlemlerini engelleyeceğini unutmayın.

Bir uygulamayı otomatik olarak ölçeklendirme hakkında daha fazla bilgi için bkz. Azure Batch havuzunda işlem düğümlerini otomatik olarak ölçeklendirme.

İpucu

İşlem kaynağından en iyi şekilde faydalanabilmek için işin sonundaki düğüm sayısını sıfır olarak ayarlayın ancak çalışan görevlerin bitmesine izin verin.

Görev zamanlama ilkesi

Düğüm başına en fazla görev yapılandırma seçeneği havuzdaki her bir işlem düğümünde paralel olarak çalıştırabilecek en fazla görev sayısını belirler.

Varsayılan yapılandırma bir düğümde tek seferde bir görevin çalışacağını belirtir, ancak bir düğümde aynı anda iki veya daha fazla görev yürütülmesinin faydalı olduğu senaryolar da vardır. Düğüm başına birden fazla görevden nasıl yararlanabileceğinizi görmek için eşzamanlı düğüm görevleri makalesindeki örnek senaryoya bakın.

Batch'in görevleri havuzdaki tüm düğümlere eşit olarak yayıp yaymayacağını belirleyen veya başka bir düğüme görev atamadan önce her düğümü en fazla görev sayısıyla paketleyen bir doldurma türü de belirtebilirsiniz.

İletişim durumu

Çoğu senaryoda görevler bağımsız olarak çalışır ve birbirleriyle iletişim kurmaları gerekmez. Ancak, MPI senaryolarında olduğu gibi içinde görevlerin iletişim kurması gereken bazı uygulamalar olabilir.

Havuz içindeki düğümlerin çalışma zamanında iletişim kurabilmesi için bir havuzu düğümler arası iletişime izin verecek şekilde yapılandırabilirsiniz. Düğümler arası iletişim etkinleştirildiğinde, Cloud Services havuzlarındaki düğümler 1100'den büyük bağlantı noktaları üzerinde birbiriyle iletişim kurabilir ve Sanal Makine Yapılandırması havuzları hiçbir bağlantı noktası üzerinde trafiği kısıtlamaz.

Düğümler arası iletişimin etkinleştirilmesi, düğümlerin kümeler içindeki yerleşimini de etkiler ve dağıtım kısıtlamaları nedeniyle havuzdaki en fazla düğüm sayısını sınırlayabilir. Uygulamanız düğümler arasında iletişim gerektirmiyorsa Batch hizmeti, artan paralel işleme gücünü etkinleştirmek amacıyla birçok kümeden ve veri merkezinden çok sayıda düğümü havuza ayırabilir.

Görevleri başlatma

İsterseniz, düğüm havuza katıldığında ve bir düğüm her yeniden başlatıldığında veya yeniden başlatıldığında her düğümde yürütülecek bir başlangıç görevi ekleyebilirsiniz. Başlangıç görevi, görevlerinizin işlem düğümlerinde çalıştıracağı uygulamaları yükleme gibi görevlerin yürütülmesi için özellikle işlem düğümlerinin hazırlanmasında yararlıdır.

Uygulama paketleri

Havuzdaki işlem düğümlerine dağıtım yapacak uygulama paketlerini belirtebilirsiniz. Uygulama paketleri, görevlerinizin çalıştırdığı uygulamaların dağıtımını ve sürüm oluşturma işlemlerini basitleştirir. Havuz için belirttiğiniz uygulama paketleri, bir düğüm her yeniden başlatıldığında veya görüntüsü yeniden oluşturduğunda o havuza katılan her düğüme yüklenir.

Uygulama paketlerini kullanarak uygulamalarınızı Batch düğümlerine dağıtma hakkında daha fazla bilgi için bkz. Batch uygulama paketleriyle işlem düğümlerine uygulama dağıtımı.

Sanal ağ ve güvenlik duvarı yapılandırması

Batch'te işlem düğümlerinden oluşan bir havuz sağladığınızda, havuzu bir Azure sanal ağının alt ağı ile ilişkilendirebilirsiniz. Azure sanal ağı kullanmak için Batch istemci API'sinin Microsoft Entra kimlik doğrulamasını kullanması gerekir. Microsoft Entra Id için Azure Batch desteği, Active Directory ile Batch hizmeti çözümlerinin kimliğini doğrulama bölümünde belgelenmiştir.

Sanal ağ gereksinimleri

Bir sanal ağda Batch havuzu oluşturma hakkında daha fazla bilgi için bkz. Sanal ağınızda sanal makine havuzu oluşturma.

İpucu

Düğümlere erişmek için kullanılan genel IP adreslerinin değişmediğinden emin olmak için, denetlediğiniz belirtilen genel IP adreslerine sahip bir havuz oluşturabilirsiniz.

Havuz ve işlem düğümü ömrü

Azure Batch çözümünüzü tasarlarken havuzların nasıl ve ne zaman oluşturulacağını ve bu havuzların içindeki işlem düğümlerinin ne kadar süreyle kullanılabilir tutulacağını belirtmeniz gerekir.

Spektrumun bir ucunda, gönderdiğiniz her iş için bir havuz oluşturabilir ve görevlerin yürütülmesi biter bitmez havuzu silebilirsiniz. Bu, düğümler yalnızca gerektiğinde ayrıldığından ve boşta olduklarında kapatıldığından kullanımı en üst düzeye çıkarır. Bu, işin düğümlerin ayrılmasını beklemesi gerektiği anlamına gelir, ancak düğümler ayrı ayrı ayrılır ayrılmaz ve başlangıç görevi tamamlanır tamamlanmaz görevlerin yürütme için zamanlandığını unutmayın. Batch, görevler düğümlere atamadan önce havuzdaki tüm düğümlerin kullanılabilir olmasını beklemez. Böylece kullanılabilir tüm düğümlerden en iyi şekilde faydalanılmasını sağlar.

Spektrumun diğer ucunda, işlerin hemen başlatılması en yüksek önceliğe sahipse işler gönderilmeden önce bir havuz oluşturabilir ve bu havuzun düğümlerini kullanıma sunabilirsiniz. Bu senaryoda görevler hemen başlayabilir, ancak görevlerin atanmasını beklerken düğümler boşta kalmaya devam edebilir.

Birleştirilmiş yaklaşım genellikle değişken ancak devam eden yükü işlemek için kullanılır. Birden çok işin gönderildiği bir havuza sahip olabilir ve düğüm sayısını iş yüküne göre artırıp azaltabilirsiniz. Mevcut yüke bağlı olarak reaktif bir şekilde ya da yük öngörülebiliyorsa proaktif olarak bu işlemi yapabilirsiniz. Daha fazla bilgi için bkz . Otomatik ölçeklendirme ilkesi.

Otomatik havuzlar

Otomatik havuz, havuzda çalıştırılacak işlerden önce oluşturulmak yerine bir iş gönderildiğinde Batch hizmeti tarafından oluşturulan bir havuzdur. Batch hizmeti, belirttiğiniz özelliklere göre otomatik havuzun ömrünü yönetir. Çoğu zaman, bu havuzlar işleri tamamlandıktan sonra otomatik olarak silinecek şekilde ayarlanır.

Sertifikalar ile güvenlik

Azure Depolama hesabı anahtarı gibi, görevler için hassas bilgileri şifrelerken ya da bunların şifrelerini çözerken genelde sertifikalar kullanmanız gerekir. Bunu desteklemek için düğümlere sertifikalar yükleyebilirsiniz. Şifrelenmiş parolalar komut satırı parametreleri aracılığıyla düğümlere geçirilir ya da görev kaynaklarından birine eklenir ve yüklü sertifikalar bunların şifrelerini çözmek için kullanılabilir.

Batch hesabına bir sertifika eklemek için Sertifika ekle işlemini (Batch REST) ya da CertificateOperations.CreateCertificate yöntemini (Batch .NET) kullanırsınız. Sonra sertifikayı yeni ya da mevcut bir havuzla ilişkilendirebilirsiniz.

Sertifika bir havuzla ilişkilendirildiğinde, Batch hizmeti havuzdaki her düğüme sertifikayı yükler. Batch hizmeti, düğüm başlatıldığında, herhangi bir görevi başlatmadan önce (başlangıç görevi ve iş yöneticisi görevi dahil) uygun sertifikaları yükler.

Var olan bir havuza sertifika eklerseniz, sertifikanın düğümlere uygulanabilmesi için işlem düğümlerini yeniden başlatmanız gerekir.

Sonraki adımlar