Prelude:
Ben küçük şirketim için SysAdmin görevlerinde giderek daha fazla kullanılan bir kod maymunu yaşıyorum. Benim kodum bizim ürünümüz ve giderek artan bir şekilde SaaS ile aynı uygulamayı sağlıyoruz.
Yaklaşık 18 ay önce, sunucularımızı birinci sınıf bir barındırma merkezindeki satıcıdan, IV. Seviye veri merkezindeki barebone raf iticisine taşıdım. (Kelimenin tam anlamıyla caddenin karşısında.) Bu söz kendimizi çok daha fazla yapıyor - ağ oluşturma, depolama ve izleme gibi şeyler.
Büyük hamlenin bir parçası olarak, kiralanan doğrudan bağlı depomuzu barındırma şirketimizden değiştirmek için, SuperMicro şasi, 3ware RAID kart, Ubuntu 10.04, iki düzine SATA disk, DRBD ve 950 tabanlı iki düğümlü bir NAS kurdum. Her şey sevgiyle üç blog yazısında belgelenmiştir: Yeni bir 9TB SATA RAID10 NFSv4 NAS oluşturma ve test etme: Bölüm I , Bölüm II ve Bölüm III .
Ayrıca bir Cacit izleme sistemi kurduk. Son zamanlarda, SMART değerleri gibi daha fazla veri noktası ekliyoruz.
Ben olmadan tüm bu yapamazdım müthiş Boffinler de ServerFault . Eğlenceli ve eğitici bir deneyim oldu. Patronum mutlu (kovalardan $$$ kurtardık) , müşterilerimiz mutlu (depolama maliyetleri düşük) , mutluyum (eğlence, eğlence, eğlence) .
Düne kadar.
Kesinti ve Kurtarma:
Öğle yemeğinden bir süre sonra, talep üzerine çalışan bir akış CMS olan uygulamamızdan durgun performans raporları almaya başladık. Aynı zamanda Cacti izleme sistemimiz bir e-posta fırtınası gönderdi. Daha söyleyen uyarılardan biri, iostat'ın beklediğinin grafiği idi.
Performans o kadar düşmüştür ki Pingdom "sunucu aşağı" bildirimleri göndermeye başladı. Genel yük ılımlı, trafik sıkışıklığı yoktu.
NAS'ın NFS istemcileri, uygulama sunucularına giriş yaptıktan sonra, hemen hemen her şeyin çok aralıklı ve delice uzun IO bekleme süreleri yaşadığını doğruladım. Ve birincil NAS düğümünün üzerine atladığımda, problem dizisinin dosya sisteminde gezinmeye çalışırken aynı gecikmeler de ortaya çıktı.
Başarısızlık zamanı, iyi geçti. 20 dakika içinde her şeyin mükemmel bir şekilde yedeklendiği ve çalıştığı doğrulandı.
Post-Mortem:
Herhangi bir ve tüm sistem arızalarından sonra, hatanın nedenini belirlemek için bir ölüm sonrası işlemi yapıyorum. Yaptığım ilk şey, kutuya geri ssh ve günlükleri incelemeye başlamak oldu. Tamamen çevrimdışıydı. Veri merkezine yolculuk için zaman. Donanım sıfırlama, yedekleme ve çalıştırma.
İçinde /var/syslog
bu korkunç görünümlü giriş buldum:
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1 Short offline Completed: read failure 90% 6576 3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2 Short offline Completed: read failure 90% 6087 3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3 Short offline Completed: read failure 10% 5901 656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4 Short offline Completed: read failure 90% 5818 651637856
Nov 15 06:49:45 umbilo smartd[2827]:
Bu yüzden dizideki disklerin Cacti grafiklerini kontrol etmeye gittim. Burada görüyoruz ki, evet, disk 7 tıpkı syslog'un söylediği gibi kayıyor. Ancak, disk 8’in SMART Read Erros’unun dalgalandığını da görüyoruz.
Syslog'da disk 8 ile ilgili mesaj yok. Daha ilginç olanı, disk 8 için değişken değerlerin doğrudan yüksek GÇ bekleme süreleri ile ilişkili olmasıdır! Benim yorumum şudur:
- Disk 8, aralıklı uzun çalışma sürelerine neden olan garip bir donanım hatası yaşıyor.
- Her nasılsa diskteki bu hata durumu tüm diziyi kilitliyor
Belki daha doğru ya da doğru bir açıklama olabilir, ancak net sonuç tek diskin tüm dizinin performansını etkilemiş olmasıdır.
Sorular)
- Bir donanım SATA RAID-10 dizisindeki tek bir disk, tüm diziyi çığlık atma noktasına nasıl getirebilir?
- RAID kartının bununla başa çıkması gerektiğini düşünmekten saf mı oluyorum?
- Tek bir yaramaz diskin tüm diziyi etkilemesini nasıl önleyebilirim?
- Bir şey mi eksik?