Eşzamansız bir işlem devam ediyor durumunda kalıyor
Belirti
Uzun süren bir işlem (örneğin taşıma veya birim (volume) oluşturma) beklenenden daha uzun süre devam ediyor durumunda kalır.
Neden
Uzun süren eylemler eşzamansızdır: istemci işlemi başlatır ve ardından durumunu sorgular. Görünürdeki bir askıda kalma genellikle işlemin aslında düğümde hâlâ çalıştığı veya kaynakların kullanılabilir hâle gelmesini beklediği anlamına gelir.
Bazı işlemler için uzun süre yanıt alınamaması normaldir. VM'nin başka bir havuza taşınması, tüm döngü tamamlandıktan sonra tek bir kez yanıt verir: önce ZFS akışı üzerinden kopyalama, ardından disklerin, anlık görüntülerin ve makinenin yeniden kaydı, sonra kaynak dataset'in silinmesi. Küme kopyalama ilerlemesini hiç bildirmez, bu nedenle güncelleme olmaması işlemin durumu hakkında bilgi vermez.
Nasıl kontrol edilir
- Nesne durumu. VM listesindeki State sütununu ve karttaki durum alanını kontrol edin. İşlem çalışırken makine kilitlidir ve onu hedefleyen diğer komutlar reddedilir.
- İşlem günlüğü paneli, LOG düğmesi: düğüm aracılarına iletilen işlemin ilerlemesini gösterir.
- Makine durum geçmişi:
vm-historyyöntemi bunu döndürür ve nesnenin mevcut durumuna ne zaman girdiğini, dolayısıyla işlemin bir dakikadır mı yoksa bir saattir mi çalıştığını gösterir. - Düğüm durumu:
Provider Data Center→Server Nodes. ONLINE olmayan bir düğüme gönderilen komut yanıt almaz.
Çözüm
Geçerli işlem durumunu ve etkilenen düğümdeki yükü kontrol edin; işlem ilerlemiyorsa ve kaynaklar kullanılabilir durumdaysa, izleme verileriyle birlikte sorunu üst seviyeye iletin.
Aynı kimlikle bir isteği tekrarlamak gereksizdir ve ters etki yapar: 3.0.5'ten itibaren
dağıtıcı, aracı (broker) tarafından yeniden teslimi tanır ve işi ikinci kez çalıştırmaz.
Eşzamanlı bir çağrı -1000, "this request already exists" yanıtını alır; eşzamansız bir
çağrı ise tekrara hiç yanıt almaz. İlk denemenin kaydedilmiş yanıtı yeniden döndürülmez;
sonuç asıl istek için gelir. Doğru bir yeniden deneme yeni bir istek kimliği kullanır.
Taşımanın ayrı bir durumu vardır: -25310 kodu, döngünün tamamlanmadığı ve yeniden kayıt
sırasında başarısız olduğu anlamına gelir. Bu artık bir askıda kalma değil, bir hatadır.
Neden belirlenene kadar yeni bir taşıma başlatmayın; makinenin ve disklerinin durumunu
kart üzerinde kontrol edin.
API yöntemleri
Bu sayfada ele alınan API işlemleri vm-statuses, vm-history, vm-get, node-list
ve task yöntemleridir. Bkz. API başvurusu.
Ayrıca bkz.
- API'ye genel bakış—eşzamanlı ve eşzamansız çağrıların nasıl farklılaştığı ve istek kimliği benzersizlik kuralının nasıl çalıştığı.
- VM taşıma: düğümü ve havuzu değiştirme—taşımanın neden ilerleme güncellemesi vermediği ve nasıl sona erdiği.
- Sanal makine yaşam döngüsü—hangi durumların geçiş durumu olduğu ve bu durumlarda nelerin yasak olduğu.