Pendahuluan:
Saya kode-monyet yang semakin mengambil tugas SysAdmin untuk perusahaan kecil saya. Kode saya adalah produk kami, dan semakin kami menyediakan aplikasi yang sama dengan SaaS.
Sekitar 18 bulan yang lalu saya memindahkan server kami dari vendor sentris hosting premium ke rak barebone di pusat data tingkat IV. (Secara harfiah di seberang jalan.) Ini melakukan lebih banyak hal pada diri kita sendiri - hal-hal seperti jaringan, penyimpanan dan pemantauan.
Sebagai bagian dari langkah besar, untuk menggantikan penyimpanan terpasang langsung yang disewa dari perusahaan hosting, saya membangun NAS 9-simpul 9TB yang didasarkan pada SuperMicro chassises, kartu RAID 3ware, Ubuntu 10,04, dua lusin disk SATA, DRBD dan. Semuanya didokumentasikan dengan penuh cinta dalam tiga posting blog: Membangun & menguji baru 9TB SATA RAID10 NFSv4 NAS: Bagian I , Bagian II dan Bagian III .
Kami juga menyiapkan sistem pemantauan Cacit. Baru-baru ini kami telah menambahkan semakin banyak titik data, seperti nilai SMART.
Saya tidak bisa melakukan semua ini tanpa peti mati yang mengagumkan di ServerFault . Sudah pengalaman yang menyenangkan dan mendidik. Bos saya senang (kami menghemat banyak ember $$$) , pelanggan kami senang (biaya penyimpanan turun) , saya senang (bersenang-senang, bersenang-senang, bersenang-senang) .
Sampai kemarin.
Pemadaman & Pemulihan:
Beberapa waktu setelah makan siang, kami mulai mendapatkan laporan kinerja yang lamban dari aplikasi kami, sebuah CMS media streaming berdasarkan permintaan. Pada saat yang sama sistem pemantauan Cacti kami mengirim badai email. Salah satu peringatan yang lebih jitu adalah grafik iostat menunggu.
Performa menjadi sangat menurun sehingga Pingdom mulai mengirimkan notifikasi "server down". Keseluruhan bebannya moderat, tidak ada lonjakan lalu lintas.
Setelah masuk ke server aplikasi, klien NFS dari NAS, saya mengkonfirmasi bahwa hampir semuanya mengalami waktu tunggu IO yang sangat terputus-putus dan gila-gilaan. Dan begitu saya melompat ke node NAS primer itu sendiri, penundaan yang sama terbukti ketika mencoba menavigasi sistem file array masalah.
Waktu untuk gagal, itu berjalan dengan baik. Dalam 20 menit, semuanya dipastikan akan kembali dan berjalan dengan sempurna.
Post-Mortem:
Setelah semua dan semua kegagalan sistem saya melakukan post-mortem untuk menentukan penyebab kegagalan. Hal pertama yang saya lakukan adalah ssh kembali ke kotak dan mulai meninjau log. Itu offline, sepenuhnya. Waktu untuk perjalanan ke pusat data. Reset perangkat keras, membuat cadangan, dan menjalankan.
Dalam /var/syslog
aku menemukan entri yang tampak menakutkan ini:
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]:
Jadi saya pergi untuk memeriksa grafik Cacti untuk disk dalam array. Di sini kita melihat bahwa, ya, disk 7 hilang begitu saja seperti yang dikatakan syslog. Tetapi kita juga melihat bahwa SMART 8 Baca Erros disk berfluktuasi.
Tidak ada pesan tentang disk 8 di syslog. Lebih menarik adalah bahwa nilai-nilai berfluktuasi untuk disk 8 langsung berkorelasi dengan waktu tunggu IO tinggi! Interpretasi saya adalah:
- Disk 8 mengalami kesalahan perangkat keras aneh yang menghasilkan waktu operasi lama intermiten.
- Entah bagaimana kondisi kesalahan ini pada disk mengunci seluruh array
Mungkin ada deskripsi yang lebih akurat atau benar, tetapi hasil akhirnya adalah bahwa satu disk memengaruhi kinerja seluruh array.
Pertanyaan-pertanyaan)
- Bagaimana satu disk dalam perangkat keras SATA RAID-10 array dapat membuat seluruh array berhenti melengking?
- Apakah saya naif untuk berpikir bahwa kartu RAID harus ditangani?
- Bagaimana saya bisa mencegah disk yang salah tingkah berdampak pada seluruh array?
- Apakah saya melewatkan sesuatu?