Özet
29 Ekim ile 1 Kasım 2024 arasında, dört sitedeki kırk bir kurumsal NVMe sürücüsü, belirli bir açılış saati sayısında komut almayı bıraktı; bu, bir üretim partisindeki donanım yazılımı hatasıydı. Yansıtma, bu arızaların otuz dokuzunu müşteri etkisi olmadan emdi. Varşova'daki bir düğüm, kırk dakika içinde bir yansıtmanın her iki yarısını da kaybetti çünkü her iki sürücü de aynı partiden geldi ve aynı gün rafa yerleştirildi. Bu düğümdeki iki örnek veri kaybetti. Bu ikinci kısım bizim hatamızdı, satıcının değil.
Zaman Çizelgesi
Tüm saatler UTC.
| Zaman | Olay |
|---|---|
| 29 Eki 03:11 | Varşova düğümünde bir sürücü veri yolundan düşüyor. Yansıtma bozuluyor, yedek yeniden oluşturmaya başlıyor. Rutin, sayfa yok. |
| 29 Eki 03:49 | Aynı yansıtmadaki ikinci sürücü düşüyor. Düğüm kök havuzunu kaybediyor ve duruyor. |
| 29 Eki 03:52 | Sayfa tetikleniyor. Nöbetçi 03:55'te çevrimiçi. |
| 29 Eki 04:20 | Düğüm yerinde kurtarılamaz ilan ediliyor. Yedekten yeniden oluşturma imkansız; yedek, artık yanıt vermeyen bir kaynaktan yeniden oluşturmanın ortasındaydı. |
| 29 Eki 05:40 | Sürücü günlüklerini inceleyen mühendis, iki arızanın on sekiz ay değil, on sekiz açılış saati arayla olduğunu fark ediyor. Şüphe, kötü şanstan kohorta kayıyor. |
| 29 Eki 06:15 | Parti tanımlayıcısı ve açılış saatlerine göre filo genelinde sorgu. Etkilenen partide iki yüz altı sürücü var. Otuz biri sayıyı çoktan geçti ve başarısız oldu; geri kalanı, kırk ile dokuz yüz saat arasında değişen bir mesafede. |
| 29 Eki 07:30 | Satıcıyla iletişime geçildi. Arıza dört saat içinde doğrulandı: aşınma dengelemeli telemetrideki bir sayaç 1.536 açılış saatinde taşıyor ve denetleyiciyi sıkıştırıyor. Bunu düzelten bir ürün yazılımı revizyonu, altı hafta önce sessizce gönderilmişti. |
| 29 Eki 09:00 | Kalan saate göre önceliklendirilmiş kademeli ürün yazılımı güncellemesi başlıyor. |
| 30 Eki 22:40 | Partideki son sürücü güncellendi veya değiştirildi. |
| 1 Kas 14:00 | Etkilenen müşteri örnekleri geri yüklendi veya geri ödendi. |
Kök Neden
İki neden var ve bunlardan yalnızca biri sürücü üreticisine ait.
Onlarınki: bir telemetri sayacı sabit bir açılış saati sayısında taştı ve denetleyiciyi astı. Sürücü, güç döngüsünden sağ çıkıyor, geri geliyor ve dakikalar içinde tekrar sıkışıyor. Plakadaki veriler bozulmamış ve erişilemez; bu, sabah saat dörtte teşhis etmeye çalışan herkes için en kötü kombinasyon.
Bizimki: yansıtmaları aynı teslimatta gelen sürücülerle kurduk. Bir yansıtmanın iki bağımsız arıza alanı olması gerekir ve aynı partiden, aynı öğleden sonra rafa yerleştirilmiş, aynı saat içinde açılmış iki sürücü, önemli olan hiçbir anlamda bağımsız değildir. Filo genelinde on bir yansıtma bu şekilde kuruldu. On tanesi şanslıydı, yedek yeniden oluşturmayı önce bitirdi. Biri bitiremedi.
Bunu yıllardır prensipte biliyorduk. Kimse bunu kurulum prosedürüne yazmamıştı ve kurulum prosedürü, insanların teslim tarihi baskısı altında gece saat ikide takip ettiği şeydir.
Etki
- Otuz dokuz arıza, müşteri tarafından görülebilir bir etki olmadan yansıtmalar tarafından emildi.
- Bir düğüm dokuz saat on sekiz dakika çevrimdışı kaldı.
- Bu düğümdeki on dört örnek, düğüm dışı yedeklerden geri yüklendi ve en fazla on bir dakikalık yazma kaybıyla sonuçlandı.
- Hiçbir türde yedeği olmayan iki örnek. Her ikisi de düğümdeki her şeyi kaybetti.
Ne Değiştirdik
- Satın alma partileri bölündü. Hiçbir iki sürücü aynı partiden bir yansıtma oluşturamaz ve bir çifti koruyan yedek, üçüncü bir partiden gelir. Bu, bir belgeyle değil, kurulum araçlarıyla uygulanır. 4 Kasım'da tamamlandı.
- Açılış saatlerinde kohort uyarısı. Artık aynı parti tanımlayıcısını paylaşan dörtten fazla sürücü birbirinin yüz saati içinde ve herhangi bir yuvarlak saat sayısına yaklaşıyorsa uyarı veriyoruz. Bu kaba bir buluşsal yöntem ve bunu on dokuz gün erken yakalayabilirdi.
- Üretimden önce ürün yazılımı bekletme. Yeni bir sürücü ailesi, müşteri verisi taşımadan önce bir test rafında iki bin açılış saati çalışır. Bu kusur 1.536'da ortaya çıkardı.
- Satıcı ürün yazılımı sürüm notlarını artık bir programa göre okuyoruz. Düzeltme, ihtiyacımızdan altı hafta önce mevcuttu. Bakması için kimse atanmamıştı, bu yüzden kimse bakmadı.
Ne Değiştirmedik ve Neden
Sürücü ailesini veya satıcısını değiştirmedik. Arıza gerçekti ve açıklama zayıftı, ancak kaybımız ilişkili partilemeden geldi ve bunu herhangi bir üreticiyle tekrarlardık. Değiştirmek kararlılık gibi görünürdü ve hiçbir şeyi düzeltmezdi.
Düğüm dışı yedek, beş yüz gigabayt başına dokuz avro ile ek hizmet olmaya devam ediyor. Bunu evrensel hale getirmek, her müşteriye çoğunun kendilerinin kopyaladığı bir hizmet için ücret yüklemek anlamına gelir ve insanlara güvenlik görüntüsü için fatura kesmeyeceğiz. Değişen şey, artık örnek depolamanın yansıtıldığını ve yansıtmanın yedek olmadığını açıkça belirten sipariş formudur ve onay adımı artık bu cümlenin sessizce geçilmesine izin vermiyor.
Üçlü yansıtmaya geçmedik. Gigabayt başına üçte bir daha pahalıya mal olur ve asıl mekanizma olan ilişkili arızayı ele almaz. İki bağımsız alan, üç bağımlı alandan daha iyidir.
İki Müşteri
Her ikisi de etkilenen dönem için ödedikleri varlıkla tam olarak geri ödendi, herhangi bir gerekçe sunmaları istenmeden. Biri ayrıldı. Diğeri kaldı ve artık sipariş formunda zayıf bir biçimde hep var olan aynı cümleyi okuduktan sonra yedek ek hizmetini satın alıyor.
Bu sonuçların hiçbiri bizim elimizde değildi. Elimizde olan tek şey yansıtmayı düzgün kurmaktı ve kurmadık.