Azure Batch-készlet és csomóponthibák

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.

Néhány Azure Batch-készlet létrehozása és kezelése azonnal megtörténik. Az ilyen műveletek hibáinak észlelése egyszerű, mivel a hibák általában azonnal visszatérnek az API-ból, a parancssorból vagy a felhasználói felületről. Egyes műveletek azonban aszinkronok, a háttérben futnak, és több percet is igénybe vesznek. Ez a cikk a készletek és csomópontok háttérműveleteiben előforduló hibák észlelésének és elkerülésének módjait ismerteti.

Ügyeljen arra, hogy az alkalmazások átfogó hibaellenőrzést hajtsanak végre, különösen az aszinkron műveletek esetében. Az átfogó hibaellenőrzés segíthet a problémák gyors azonosításában és diagnosztizálásában.

Készlethibák

A készlet hibái az átméretezési időtúllépéssel vagy hibával, az automatikus méretezési hibával vagy a készlet törlési hibájával kapcsolatosak lehetnek.

Időtúllépés vagy hiba átméretezése

Új készlet létrehozásakor vagy meglévő készlet átméretezésekor meg kell adnia a csomópontok célszámát. A létrehozási vagy átméretezési művelet azonnal befejeződik, de az új csomópontok tényleges lefoglalása vagy a meglévő csomópontok eltávolítása több percet is igénybe vehet. Az átméretezés időtúllépését a Készlet – Hozzáadás vagy készlet – Api-k átméretezése területen adhatja meg. Ha a Batch nem tudja lefoglalni a csomópontok célszámát az átméretezési időkorlát alatt, a készlet állandó állapotba kerül, és az átméretezési hibákat jelenti.

Az resizeError tulajdonság felsorolja a legutóbbi értékelés során előforduló hibákat.

Az átméretezés hibáinak gyakori okai a következők:

  • Túl rövid időkorlát átméretezése. Az alapértelmezett 15 perces időtúllépés általában elegendő a készletcsomópontok lefoglalásához vagy eltávolításához. Ha nagy számú csomópontot, például több mint 1000 csomópontot szeretne lefoglalni egy Azure Marketplace-rendszerképből, vagy több mint 300 csomópontot egy egyéni virtuálisgép-rendszerképből, beállíthatja az átméretezési időtúllépést 30 percre.

  • Nincs elegendő magkvóta. A Batch-fiók korlátozott számú magot foglalhat le az összes készletben, és a kvótát elérve leállítja a csomópontok kiosztását. Növelheti az alapkvótát, hogy a Batch több csomópontot foglalhassa le. További információ: Batch szolgáltatáskvóták és korlátok.

  • Nincs elegendő alhálózati IP-cím, ha egy készlet virtuális hálózaton van. A virtuális hálózati alhálózatnak elegendő IP-címmel kell rendelkeznie ahhoz, hogy az összes kért készletcsomóponthoz lefoglalható legyen. Máskülönben a csomópontokat nem lehet létrehozni. További információ: Azure Batch-készlet létrehozása virtuális hálózaton.

  • Nincs elegendő erőforrás, ha egy készlet egy virtuális hálózaton található. Amikor készletet hoz létre egy virtuális hálózaton, a Batch-fiókkal azonos előfizetésben hozhat létre erőforrásokat, például terheléselosztókat, nyilvános IP-címeket és hálózati biztonsági csoportokat (NSG-ket). Győződjön meg arról, hogy az előfizetési kvóták elegendőek ezekhez az erőforrásokhoz.

  • Nagy készletek egyéni virtuálisgép-rendszerképekkel. Az egyéni virtuálisgép-rendszerképeket használó nagyméretű készletek lefoglalása hosszabb időt vehet igénybe, és időtúllépések léphetnek fel. A korlátozásokra és a konfigurációra vonatkozó javaslatokért lásd : Készlet létrehozása az Azure Compute Gallery használatával.

Automatikus skálázási hibák

Beállíthatja, hogy az Azure Batch automatikusan skálázza a készlet csomópontjainak számát, és megadhatja a készlet automatikus méretezési képletének paramétereit. A Batch szolgáltatás ezt követően a képlet használatával rendszeresen kiértékeli a készletben lévő csomópontok számát, és új célszámokat állít be. További információ: Automatikus képlet létrehozása számítási csomópontok skálázására a Batch-készletben.

Az automatikus skálázás használatakor a következő problémák léphetnek fel:

  • Az automatikus skálázás kiértékelése sikertelen.
  • Az eredményként kapott átméretezési művelet meghiúsul, és túllépi az időkorlátot.
  • Az automatikus skálázási képlettel kapcsolatos probléma helytelen csomópont-célértékeket eredményez. Az átméretezés működhet vagy időtúllépést eredményezhet.

Az utolsó automatikus skálázási értékeléssel kapcsolatos információkért használja az autoScaleRun tulajdonságot. Ez a tulajdonság jelenti a kiértékelési időt, az értékeket és az eredményt, valamint a teljesítményhibákat.

A készlet átméretezése teljes esemény rögzíti az összes értékelés adatait.

Készlettörlés hibái

Csomópontokat tartalmazó készlet törléséhez a Batch először törli a csomópontokat, ami több percet is igénybe vehet. A Batch ezután törli magát a készletobjektumot.

A Batch a törlési folyamat során beállítja a poolState-tdeleting. A hívó alkalmazás észleli, hogy a készlet törlése túl sokáig tart-e a tulajdonságok és stateTransitionTime a state tulajdonságok használatával.

Ha a készlet törlése a vártnál hosszabb időt vesz igénybe, a Batch rendszeresen újrapróbálkozza a készlet sikeres törléséig. Bizonyos esetekben a késés oka az Azure szolgáltatáskimaradása vagy más átmeneti problémák. A készlet sikeres törlését megakadályozó egyéb tényezők esetén szükség lehet a probléma megoldására. Ezek a tényezők a következő problémákat okozhatják:

  • Előfordulhat, hogy az erőforrás-zárolások a Batch által létrehozott erőforrásokra vagy a Batch által használt hálózati erőforrásokra kerülnek.

  • A létrehozott erőforrások a Batch által létrehozott erőforrásoktól függhetnek. Ha például létrehoz egy készletet egy virtuális hálózaton, a Batch létrehoz egy NSG-t, egy nyilvános IP-címet és egy terheléselosztót. Ha ezeket az erőforrásokat a készleten kívül használja, nem törölheti a készletet.

  • Előfordulhat, hogy az Microsoft.Batch erőforrás-szolgáltató nincs regisztrálva a készletet tartalmazó előfizetésből.

  • Felhasználói előfizetési módú Batch-fiókok esetén előfordulhat, Microsoft Azure Batch hogy a készletet tartalmazó előfizetéshez már nem tartozik közreműködői vagy tulajdonosi szerepkör. További információ: A Batch hozzáférésének engedélyezése az előfizetéshez.

Csomóponthibák

Még akkor is, ha a Batch sikeresen lefoglal csomópontokat egy készletben, a különböző problémák miatt egyes csomópontok állapota nem megfelelő, és nem futtathatók a tevékenységek. Ezek a csomópontok továbbra is díjakat vonnak maga után, ezért fontos észlelni a problémákat, hogy ne kelljen fizetni a nem használható csomópontokért. A gyakori csomóponthibák ismerete és az aktuális feladatstate ismerete hasznos a hibaelhárításhoz.

Feladathibák indítása

A készlethez megadhat egy választható startTask-et . Mint minden tevékenységnél, a kezdő tevékenység is parancssort használ, és letöltheti az erőforrásfájlokat a tárolóból. A kezdési feladat minden csomóponton lefut a csomópont indításakor. A waitForSuccess tulajdonság azt határozza meg, hogy a Batch megvárja-e, amíg a kezdő tevékenység sikeresen befejeződik, mielőtt bármilyen tevékenységet ütemez egy csomópontra. Ha úgy konfigurálja a csomópontot, hogy várja meg a sikeres kezdési tevékenység befejezését, de a kezdési tevékenység meghiúsul, a csomópont nem használható, de továbbra is díjakat von maga után.

Az indítási feladat hibáit a felső szintű startTaskInformation csomópont tulajdonság taskExecutionResult és taskFailureInformation tulajdonságával észlelheti.

A sikertelen kezdési feladat miatt a Batch a computeNodeStatestarttaskfailedértéket is beállítja , ha waitForSuccess az értékre lett állítva true.

Mint minden tevékenység esetében, a kezdési feladat meghiúsulásának számos oka lehet. A hibaelhárításhoz ellenőrizze az stdout, az stderr és minden más feladatspecifikus naplófájlt.

A kezdési tevékenységeknek újra kell belépniük, mert a kezdő tevékenység többször is futtatható ugyanazon a csomóponton, például amikor a csomópontot újraépítik vagy újraindítják. Ritka esetekben, amikor egy indítási feladat egy esemény után fut, az egyik operációs rendszer (operációs rendszer) vagy a rövid élettartamú lemez újraindul, míg a másik nem. Mivel a Batch elindítja a feladatokat, és az összes Batch-tevékenység a rövid élettartamú lemezről fut, ez a helyzet általában nem jelent problémát. Ha azonban a kezdési feladat egy alkalmazást telepít az operációsrendszer-lemezre, és más adatokat tart a rövid élettartamú lemezen, szinkronizálási problémák merülhetnek fel. Ennek megfelelően védje az alkalmazást, ha mindkét lemezt használja.

Az alkalmazáscsomag letöltése sikertelen

Egy készlethez megadhat egy vagy több alkalmazáscsomagot. A Batch letölti a megadott csomagfájlokat az egyes csomópontokra, és feloldja a fájlokat a csomópont indítása után, de a feladatok ütemezése előtt. Gyakori, hogy egy indítási feladatparancsot használ alkalmazáscsomagokkal, például fájlok más helyre másolásához vagy a beállítás futtatásához.

Ha egy alkalmazáscsomag letöltése és feloldása sikertelen, a computeNodeError tulajdonság jelenti a hibát, és beállítja a csomópont állapotát unusable.

Tárolóletöltési hiba

Egy készleten megadhat egy vagy több tárolóhivatkozást. A Batch minden csomópontra letölti a megadott tárolókat. Ha a tároló nem tölthető le, a computeNodeError tulajdonság jelenti a hibát, és beállítja a csomópont állapotát unusable.

Csomópont operációs rendszerének frissítései

Windows-készletek enableAutomaticUpdates esetén alapértelmezés szerint be true van állítva. Bár az automatikus frissítések engedélyezése ajánlott, a frissítések megszakíthatják a tevékenységek előrehaladását, különösen akkor, ha a tevékenységek hosszú ideig futnak. Ezt az értéket false akkor állíthatja be, ha gondoskodnia kell arról, hogy az operációs rendszer frissítése ne történjen meg váratlanul.

Használhatatlan állapotban lévő csomópont

A Batch több okból is beállíthatja a computeNodeStateunusable értéket. Nem ütemezhet feladatokat egy unusable csomópontra, de a csomópont továbbra is díjakat von maga után.

Ha a Batch meg tudja állapítani az okot, a computeNodeError tulajdonság jelenti. Ha egy csomópont állapotban unusable van, de nincs computeNodeError, az azt jelenti, hogy a Batch nem tud kommunikálni a virtuális géppel. Ebben az esetben a Batch mindig megpróbálja helyreállítani a virtuális gépet. A Batch azonban nem próbálja meg automatikusan helyreállítani azokat a virtuális gépeket, amelyek nem telepíthetnek alkalmazáscsomagokat vagy tárolókat, még akkor sem, ha az állapotuk.unusable

A csomópontok egyéb okai unusable a következők lehetnek:

  • Az egyéni virtuálisgép-rendszerkép érvénytelen. Például a rendszerkép nincs megfelelően előkészítve.
  • A virtuális gép infrastruktúra-hiba vagy alacsony szintű frissítés miatt kerül áthelyezésre. A Batch helyreállítja a csomópontot.
  • A virtuálisgép-rendszerkép olyan hardveren lett üzembe helyezve, amely nem támogatja azt. Egy CentOS HPC-rendszerkép például egy Standard_D1_v2 virtuális gépen van üzembe helyezve.
  • A virtuális gépek egy Azure-beli virtuális hálózaton vannak, és a forgalom le lett tiltva a kulcsportok felé.
  • A virtuális gépek virtuális hálózaton vannak, de az Azure Storage felé irányuló kimenő forgalom le van tiltva.
  • A virtuális gépek egyéni DNS-konfigurációval rendelkező virtuális hálózaton találhatók, és a DNS-kiszolgáló nem tudja feloldani az Azure Storage-t.

Csomópontügynök naplófájljai

Az egyes készletcsomópontokon futó Batch-ügynökfolyamat naplófájlokat biztosít, amelyek segíthetnek, ha kapcsolatba kell lépnie az ügyfélszolgálattal egy készletcsomóponttal kapcsolatos problémával kapcsolatban. A csomópont naplófájljait az Azure Portalon, a Batch Explorerben vagy a számítási csomóponton keresztül töltheti fel – Batch Service Logs API feltöltése. A naplófájlok feltöltése és mentése után törölheti a csomópontot vagy a készletet a csomópontok futtatásának költségeinek megtakarításához.

A csomópont lemeze megtelt

A Batch egy csomópontkészlet virtuális gépének ideiglenes meghajtóját használja a következő feladatfájlok, feladatfájlok és megosztott fájlok tárolására:

  • Alkalmazáscsomagfájlok
  • Feladat erőforrásfájljai
  • Alkalmazásspecifikus fájlok, amelyeket a Batch-mappák egyikére töltöttek le
  • Stdout - és stderr-fájlok minden feladatalkalmazás végrehajtásához
  • Alkalmazásspecifikus kimeneti fájlok

Az olyan fájlok, mint az alkalmazáscsomagok vagy a tevékenységerőforrás-fájlok csak egyszer írhatók, amikor a Batch létrehozza a készletcsomópontot. Annak ellenére, hogy csak egyszer írnak, ha ezek a fájlok túl nagyok, kitölthetik az ideiglenes meghajtót.

Más fájlok, például az stdout és az stderr minden olyan feladathoz meg vannak írva, amelyet egy csomópont futtat. Ha sok feladat fut ugyanazon a csomóponton, vagy a feladatfájlok túl nagyok, kitölthetik az ideiglenes meghajtót.

A csomópontnak az operációsrendszer-lemezen is kis mennyiségű helyre van szüksége a felhasználók létrehozásához az indítás után.

Az ideiglenes meghajtó mérete a virtuális gép méretétől függ. A virtuális gép méretének kiválasztásakor az egyik szempont annak biztosítása, hogy az ideiglenes meghajtó elegendő helyet biztosítson a tervezett számítási feladathoz.

Amikor hozzáad egy készletet az Azure Portalon, megjelenítheti a virtuálisgép-méretek teljes listáját, beleértve az erőforráslemez méretoszlopát is. A virtuálisgép-méreteket leíró cikkek temp Storage oszlopot tartalmazó táblákkal rendelkeznek. További információ: Számításoptimalizált virtuálisgép-méretek. Egy példa mérettáblázatot az Fsv2 sorozatban talál.

Megadhatja az egyes tevékenységek által írt fájlok megőrzési idejét. A megőrzési idő határozza meg, hogy mennyi ideig tartsa meg a feladatfájlokat, mielőtt automatikusan megtisztítja őket. A megőrzési időt csökkentheti a tárolási követelmények csökkentése érdekében.

Ha az ideiglenes vagy operációs rendszer lemeze elfogy, vagy közel van ahhoz, hogy elfogyjon a hely, a csomópont a computeNoteState-be unusablekerül, és a csomóponthiba azt jelzi, hogy a lemez megtelt.

Ha nem biztos abban, hogy mi foglal helyet a csomóponton, próbáljon meg távoli kapcsolatot létesíteni a csomóponttal, és manuálisan megvizsgálni. A Fájl – List From Compute Node API használatával is megvizsgálhatja a Batch által felügyelt mappákban lévő fájlokat, például a feladatkimeneteket. Ez az API csak a Batch által felügyelt könyvtárakban lévő fájlokat listázza. Ha a feladatok máshol hoztak létre fájlokat, ez az API nem jeleníti meg őket.

Miután minden szükséges adatot lekért a csomópontról, vagy feltöltötte azt egy tartós tárolóba, szükség szerint törölheti az adatokat, hogy helyet szabadítson fel.

Törölheti a régi befejezett feladatokat vagy tevékenységeket, amelyek tevékenységadatai továbbra is a csomópontokon találhatóak. Keresse meg a recentTasks gyűjteményt a csomópont taskInformation elemében, vagy használja a File – List From Compute Node API-t. A feladat törlése törli a feladat összes feladatát. A feladatok törlése a feladatban az adatok törlését váltja ki a csomópontok feladatkönyvtáraiban, és helyet szabadít fel. Miután felszabadított elég helyet, indítsa újra a csomópontot. A csomópontnak ki kell lépnie az állapotból unusable , és újra be kell lépnie idle .

A VirtualMachineConfiguration-készletek egyik használhatatlan csomópontjának helyreállításához távolítsa el a csomópontot a készletből a Készlet – Csomópontok eltávolítása API használatával. Ezután ismét növelheti a készletet, hogy lecserélje a rossz csomópontot egy frissre. A CloudServiceConfiguration-készletek esetében újraimázhatja a csomópontot a Compute Node – Reimage API használatával a teljes lemez megtisztításához. A Reimage jelenleg nem támogatott a VirtualMachineConfiguration-készletek esetében.

Következő lépések