Pertanyaan Bagaimana bisa satu disk dalam perangkat keras SATA RAID-10 array membawa seluruh array ke berhenti melengking?


Prelude:

Saya monyet kode yang semakin banyak 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 pendorong rak barebone di pusat data tingkat IV. (Secara harfiah di seberang jalan.) Ini melakukan lebih banyak lagi diri - hal-hal seperti jaringan, penyimpanan dan pemantauan.

Sebagai bagian dari langkah besar, untuk menggantikan penyimpanan langsung yang disewa dari perusahaan hosting, saya membangun NAS 2TB 2-titik berdasarkan SuperMicro chassises, kartu RAID 3ware, Ubuntu 10.04, dua lusin disk SATA, DRBD dan. Semuanya didokumentasikan dengan penuh cinta di tiga posting blog: Membangun & menguji 9TB SATA RAID10 NFSv4 NAS baru: 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-nilai SMART.

Saya tidak bisa melakukan semua ini tanpa luar biasa  boffins  di  ServerFault. Pengalaman yang menyenangkan dan mendidik. Bos saya senang (Kami menyimpan banyak ember $$$), pelanggan kami senang (Biaya penyimpanan menurun), Saya senang (senang senang senang).

Sampai kemarin.

Pemadaman & Pemulihan:

Beberapa waktu setelah makan siang kami mulai mendapatkan laporan kinerja lamban dari aplikasi kami, CMS media streaming berdasarkan permintaan. Pada waktu yang sama, sistem pemantauan Cacti kami mengirim email yang sangat cepat. Salah satu peringatan yang lebih memberi tahu adalah grafik dari iostat yang menunggu.

enter image description here

Kinerja menjadi begitu terdegradasi sehingga Pingdom mulai mengirimkan pemberitahuan "server down". Beban keseluruhan sedang, tidak ada lonjakan lalu lintas.

Setelah masuk ke server aplikasi, klien NFS dari NAS, saya menegaskan bahwa hampir semuanya mengalami waktu tunggu IO yang sangat intermiten dan sangat panjang. Dan setelah saya melompat ke node NAS primer itu sendiri, penundaan yang sama terlihat ketika mencoba untuk menavigasi sistem file array masalah.

Waktu untuk gagal, itu berjalan dengan baik. Dalam waktu 20 menit semuanya telah dikonfirmasi untuk kembali dan berjalan dengan sempurna.

Pasca-Mortem:

Setelah semua kegagalan sistem dan 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. Saatnya perjalanan ke pusat data. Setel ulang perangkat, buat cadangan, dan jalankan.

Di /var/syslog Saya menemukan entri yang 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 tergelincir seperti yang dikatakan syslog. Tetapi kami juga melihat bahwa disk 8's SMART Read Erros berfluktuasi.

enter image description here

Tidak ada pesan tentang disk 8 di syslog. Lebih menarik adalah itu fluktuasi nilai untuk disk 8 berkorelasi langsung dengan waktu tunggu IO yang tinggi!  Interpretasi saya adalah bahwa:

  • Disk 8 mengalami kesalahan hardware aneh yang menghasilkan waktu operasi intermiten yang lama.
  • Entah bagaimana kondisi gangguan pada disk ini mengunci seluruh array

Mungkin ada deskripsi yang lebih akurat atau tepat, tetapi hasil bersihnya adalah satu disk mempengaruhi kinerja seluruh array.

Pertanyaan-pertanyaan)

  • Bagaimana bisa satu disk dalam perangkat keras SATA RAID-10 array membawa seluruh array ke berhenti melengking?
  • Apakah saya menjadi naif untuk berpikir bahwa kartu RAID seharusnya berurusan dengan ini?
  • Bagaimana saya bisa mencegah satu disk nakal dari mempengaruhi seluruh array?
  • Apakah saya kehilangan sesuatu?

99
2017-11-16 11:14




Pertanyaan lain yang ditulis dengan baik dari Anda, +1. Selalu senang membaca (tapi sayangnya di atas papan saya bahkan memiliki ide tentang). - tombull89
@daff: Beli anggaran di pengaturan ini kami menyimpan 66% yang solid dari yang sebanding dari HP. Kami menempatkan rentang hidup tahun Anda pada kotak ini, tidak perlu bertahan lebih lama. Ingat bahwa ini adalah kotak penyimpanan, biaya merosot dari tahun ke tahun. - Stu Thompson
3Ware tidak buruk, per se. Saya memiliki perilaku miring dari kartu PERC pada sistem Dell, yang seharusnya menjadi perangkat keras server yang layak. Kartu 3Ware harus memiliki baterai onboard dan semacamnya, jadi saya tidak akan merasa terlalu buruk tentang keputusan itu. Oke, Anda mungkin terhempas untuk keputusan SAS vs. SATA, tetapi Anda tidak kehilangan data dan dari pertanyaan Anda, Anda terdengar seperti Anda memiliki cadangan dan pemantauan di tempat, jadi Anda melakukan cukup baik :-) - Bart Silverstrim
@StuThompson: tentu saja lebih murah untuk menggunakan anggaran dan menggunakan perangkat keras konsumen, dan yang paling sering akan berkinerja baik, terutama ketika, seperti dalam kasus Anda, ada konsep HA yang baik di belakangnya. Namun ada beberapa kasus, seperti yang telah Anda tunjukkan, di mana perangkat keras konsumen tidak memotongnya ketika hal-hal buruk terjadi. Saya dapat menjamin bahwa satu disk SAS yang salah pada pengendali PERC (Dell) atau SmartArray (HP) yang baik tidak akan menyebabkan masalah apa pun selain panggilan dukungan untuk mendapatkan disk pengganti. Kami sudah memiliki banyak disk SAS yang mati selama bertahun-tahun dalam produksi tetapi tidak pernah meminta mereka menurunkan server. - daff
Kebanyakan disk SATA tidak mendukung TLER (Time Limited Error Recovery). Ketika disk SATA yang khas bertemu dengan masalah fisik, ia akan mengirimkan "tunggu sementara saya bekerja pada ini" ke subsistem disk (yang biasanya seperti yang diceritakan). Disk kemudian akan melanjutkan untuk menghabiskan 10-30 detik (biasanya) pada setiap kesalahan yang ditemukannya hingga mencapai ambang "Saya mati". Disk SAS dan disk SATA yang mendukung TLER dikonfigurasi oleh HBA mereka untuk memberi tahu subsistem disk "Saya punya masalah, apa yang harus saya lakukan?" sehingga HBA dapat memutuskan tindakan yang sesuai pada dasarnya dengan segera. (Sederhana untuk keringkasan) - Chris S


Jawaban:


Saya tidak suka mengatakan "jangan gunakan SATA" dalam lingkungan produksi yang kritis, tetapi saya telah melihat situasi ini cukup sering. Drive SATA umumnya tidak dimaksudkan untuk siklus yang Anda jelaskan, meskipun Anda memang spesifikasinya drive khusus dinilai untuk operasi 24x7 di setup Anda. Pengalaman saya adalah bahwa drive SATA dapat gagal dalam cara yang tidak dapat diprediksi, sering kali mempengaruhi seluruh penyimpanan array, bahkan ketika menggunakan RAID 1 + 0, seperti yang Anda lakukan. Terkadang drive gagal dengan cara yang dapat menghentikan seluruh bus. Satu hal yang perlu diperhatikan adalah apakah Anda menggunakan ekspander SAS dalam pengaturan Anda. Itu dapat membuat perbedaan dalam bagaimana sisa disk dipengaruhi oleh kegagalan drive.

Tapi mungkin lebih masuk akal untuk pergi bersama garis tengah / nearline (7200 RPM) drive SAS dibandingkan SATA. Ada harga premium kecil di atas SATA, tetapi drive akan beroperasi / gagal lebih dapat diprediksi. Koreksi-kesalahan dan pelaporan dalam antarmuka SAS / protokol lebih kuat daripada set SATA. Begitu pun dengan drive mekanik siapa yang sama, perbedaan protokol SAS mungkin telah mencegah rasa sakit yang Anda alami selama kegagalan drive Anda.


47
2017-11-16 11:48



Saat saya sedang menulis pertanyaan saya baru saja tahu Pilihan SAS saya akan muncul. : / IOPS dan throughput berada dalam kemampuan setup saya. Tapi saya tidak sepenuhnya grok beberapa perbedaan yang lebih halus. Kami menempatkan jangka waktu 3 tahun di kotak ini. Akan pastikan untuk menggunakan SAS kali berikutnya. - Stu Thompson
Ya, ini adalah sesuatu yang perlu dipertimbangkan di lain waktu. Drive SAS nearline yang saya sebutkan tidak selalu berkinerja lebih baik daripada SATA, tetapi hal-hal seperti pemulihan kesalahan dan kegagalan drive di mana SAS lebih mudah dikelola. Saya memiliki Sun Fire x4540 48-drive sistem penyimpanan SATA dengan 6 pengontrol, dan kegagalan drive individu cenderung mengunci server. Pelajaran keras. - ewwhite
Teman baik saya adalah di dunia penyimpanan perusahaan. Dia membaca semua ini dan berkata "Orang ini benar. Apa yang terjadi adalah SATA dirancang untuk menunjukkan kegagalan lengkap dan intermiten akan memanggil ulang bus tanpa membuat failover. Biasanya ini tidak pernah terlihat karena sebagian besar konfigurasi SATA adalah satu drive" - Stu Thompson
@StuThompson Sudahkah Anda sejak membangun kotak baru dengan SAS garis dekat? Saya ingin membaca tentang pengalaman Anda. Pertanyaan Anda telah banyak membantu saya, saya mungkin akan membangun kotak serupa dalam waktu dekat. - chrishiestand
@Chrishiestand Tidak, saya belum. Saya meninggalkan perusahaan pada 13 Januari; jika saya tetap tinggal, kami akan membangun kotak pengganti dengan garis dekat. Sayangnya, keberadaan NAS terlalu dekat dengan milik saya dan data dipindahkan ke SAN penyedia layanan. - Stu Thompson


Bagaimana bisa satu disk menurunkan susunan? Jawabannya adalah seharusnya tidak, tapi itu tergantung pada apa yang menyebabkan pemadaman. Jika piringan itu mati dengan cara yang berperilaku, seharusnya tidak menurunkannya. Tapi mungkin itu gagal dalam cara "edge case" yang tidak bisa ditangani oleh controller.

Apakah Anda naif untuk berpikir ini seharusnya tidak terjadi? Tidak, saya tidak berpikir demikian. Kartu RAID hardware seperti itu seharusnya menangani sebagian besar masalah.

Bagaimana cara mencegahnya? Anda tidak dapat mengantisipasi kasus-kasus tepi aneh seperti ini. Ini adalah bagian dari menjadi sysadmin ... tetapi Anda dapat bekerja pada prosedur pemulihan agar tidak berdampak pada bisnis Anda. Satu-satunya cara untuk mencoba memperbaikinya sekarang adalah dengan mencoba kartu perangkat keras lain (tidak mungkin apa yang ingin Anda lakukan) atau mengubah drive Anda ke drive SAS daripada SATA untuk melihat apakah SAS lebih kuat. Anda juga dapat menghubungi vendor kartu RAID Anda dan memberi tahu mereka apa yang telah terjadi dan melihat apa yang mereka katakan; mereka adalah, bagaimanapun juga, sebuah perusahaan yang seharusnya mengkhususkan diri dalam mengetahui seluk-beluk elektronik drive yang miring. Mereka mungkin memiliki lebih banyak saran teknis tentang cara kerja hard disk serta keandalan ... jika Anda dapat menghubungi orang yang tepat untuk diajak bicara.

Apakah kamu melewatkan sesuatu? Jika Anda ingin memverifikasi bahwa drive mengalami kegagalan edge-case, tarik dari array. Array akan terdegradasi tetapi Anda tidak harus memiliki lebih dari perlambatan aneh dan kesalahan (selain dari status array terdegradasi). Anda mengatakan bahwa sekarang ini tampaknya berfungsi dengan baik, tetapi jika itu mengalami kesalahan membaca disk, Anda harus mengganti drive saat Anda bisa. Drive dengan kapasitas tinggi terkadang dapat memiliki kesalahan URE (alasan terbaik untuk tidak menjalankan RAID 5, catatan samping) yang tidak muncul sampai drive lain gagal. Dan jika Anda mengalami perilaku edge-case dari drive yang satu itu, Anda tidak ingin data yang rusak dimigrasikan ke drive lain dalam larik.


17
2017-11-16 11:58



Ya ... kami sudah memasukkan kebijakan penggantian baru seperti "Jika kesalahan membaca berfluktuasi maka tariklah". Sekarang setelah saya memikirkannya, kami memiliki tingkat kegagalan yang cukup tinggi pada drive ini. 4 dari 22 dalam 18 bulan. Hmmm.... - Stu Thompson
4 drive dalam 18 bulan? itu cukup tingkat di sana ... sementara itu mungkin drive tidak berada di spec, mungkin ada masalah pendinginan / aliran udara juga untuk dilihat. Atau mungkin ada yang aneh dengan controller. Hanya beberapa pemikiran ... mengawasi log. Jika Anda dapat menghubungi siapa pun di 3Ware dengan pekerjaan yang sebenarnya pada kartu dan bukan hanya skrip, Anda mungkin ingin menjalankannya oleh mereka dan melihat apa yang mereka katakan. - Bart Silverstrim
Tergantung pada set di mana Anda melihat kesalahan, Anda juga dapat memeriksa bahwa tidak ada sesuatu yang miring atau marjinal dengan kabel juga. Jika kesalahan tampaknya terkonsentrasi pada port yang sama, Anda mungkin memiliki lebih sedikit dari serangkaian kegagalan yang disengaja. - Bart Silverstrim
Saya baru saja melihat bahwa nilai-nilai SMART untuk drive gelandangan ini berjalan pada ~ 31 ° C, atau lebih baik 4 ° C lebih tinggi dari semua drive lainnya. Hal-hal yang membuat Anda pergi hmmmm .... - Stu Thompson
@DanNeely: Dari 14 drive (11 data, 3 sistem) itu adalah satu-satunya dengan suhu yang lebih tinggi. Saya cukup yakin aliran udara baik, tetapi secara eksplisit akan memeriksa besok. - Stu Thompson


Saya bukan ahli, tapi saya akan mengambil bidikan liar dalam gelap berdasarkan pengalaman saya dengan pengontrol RAID dan larik penyimpanan.

Disk gagal dalam berbagai cara. Sayangnya, disk bisa gagal, atau rusak, dalam cara di mana kinerja mereka sangat terpengaruh tetapi pengontrol RAID tidak melihat sebagai kegagalan.

Jika disk gagal dengan cara yang jelas, perangkat lunak pengontrol RAID apa pun harus cukup bagus dalam mendeteksi kurangnya respons dari disk, menghapusnya dari kolam dan menembakkan pemberitahuan apa pun. Namun, tebakan saya untuk apa yang terjadi di sini adalah bahwa disk mengalami kegagalan yang tidak biasa yang, untuk beberapa alasan tidak memicu kegagalan pada sisi pengontrol. Oleh karena itu ketika controller melakukan write flush atau membaca dari disk yang terkena, itu membutuhkan waktu lama untuk kembali dan pada gilirannya tergantung seluruh operasi IO dan oleh karena itu array. Untuk alasan apa pun, ini tidak cukup untuk kontroler RAID untuk pergi "ah, gagal disk", mungkin karena data akhirnya akan kembali pada akhirnya.

Saran saya adalah segera mengganti disk yang gagal. Setelah itu, saya akan melihat konfigurasi untuk kartu RAID Anda (Ini 3ware, saya pikir mereka cukup bagus) dan mencari tahu apa yang dianggap sebagai disk yang gagal.

P.S. ide bagus mengimpor SMART ke dalam kaktus.


10
2017-11-16 11:57



Setelah saya menghubungkan titik-titiknya, yang pertama saya pikir adalah menghapus disk dari array; cadangan panas diisi. Itu tadi malam. Hari ini saya menarik disk dan RMA'd. Drive yang menyinggung: geekomatic.ch/images/wd-re4-flux-read-error.jpg - Stu Thompson
Salah satu alasan saya pikir setiap sistem misi kritis perlu memiliki kartu yang melakukan penggosokan data. Saya telah melihat ini terlalu banyak untuk dihitung, terutama pada array SATA, namun, bahkan disk SAS ujung yang lebih tinggi telah diketahui gagal tanpa memicu controller. - Jens Ehrich


Anda memerlukan fitur perangkat penyimpanan kelas perusahaan. Secara khusus, drive perusahaan WD RE 4 memiliki dua fitur yang diperlukan untuk mencegah perilaku ini dalam Array RAID. Teknologi pertama yang tercantum di bawah ini mencegah getaran harmonik rotasi dari menyebabkan keausan yang tidak perlu pada komponen mekanis hard drive. Teknologi kedua inilah yang menyebabkan masalah Anda, protokol SATA tidak memiliki fitur ini. Untuk mendapatkan fitur-fitur ini, Anda memerlukan SAS, dan jika Anda bersikeras pada drive SATA, Anda dapat membeli kartu SAS ke SATA Interposer seperti LSISS9252.

Teknologi RAFF yang ditingkatkan Elektronik canggih memonitor drive dan memperbaiki getaran linear dan rotasi secara real time. Hasilnya adalah peningkatan kinerja yang signifikan dalam lingkungan getaran tinggi dibandingkan dengan drive generasi sebelumnya.

RAID-specific, time-limited error recovery (TLER) Mencegah jatuhnya drive yang disebabkan oleh proses pemulihan kesalahan hard drive yang diperluas umum ke drive desktop.

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

Juga silakan lihat tautan di bawah ini:

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

Lihat juga: Dokumen Western Digital TLER yang menjelaskan proses pemulihan kesalahan secara mendalam. Error Recovery Fallout Prevention dalam WD Caviar RAID Edition Serial ATA Hard Drives:

http://www.3dfxzone.it/public/files/2579-001098.pdf


7
2018-02-25 19:34





Coba tebak: harddisk dikonfigurasi untuk mencoba kembali membaca kesalahan daripada melaporkan kesalahan. Meskipun ini adalah perilaku yang diinginkan dalam pengaturan desktop, itu kontraproduktif dalam RAID (di mana pengontrol harus menulis ulang sektor apa pun yang gagal membaca dari disk lain, sehingga drive dapat memetakannya kembali).


6
2017-11-16 13:30



Sangat mungkin. Jika demikian, ini menantang tidak keren karena ini spec'd sebagai "edisi RAID" unit. : | - Stu Thompson
Benar-benar tidak keren, karena pengaturan itu adalah definisi "RAID edition" :) - Simon Richter


tembakan saya dalam kegelapan:

  • drive 7 gagal. ini memiliki beberapa jendela kegagalan di mana tidak tersedia.

  • drive 8 memiliki beberapa kesalahan 'lebih ringan' juga; dikoreksi dengan mencoba lagi.

  • RAID10 biasanya "RAID0 dari beberapa pasangan RAID1", apakah drive 7 dan 8 anggota dari pasangan yang sama?

jika demikian, maka tampaknya Anda menekan "seharusnya tidak terjadi" kasus kegagalan dua-disk pada pasangan yang sama. hampir satu-satunya hal yang dapat membunuh RAID10. sayangnya, itu bisa terjadi jika semua drive Anda berasal dari banyak pengiriman yang sama, jadi mereka sedikit lebih mungkin mati secara bersamaan.

Saya kira bahwa selama kegagalan drive 7, pengontrol diarahkan semua membaca untuk mendorong 8, sehingga setiap kesalahan-coba menyebabkan penundaan besar yang menyebabkan longsoran tugas-tugas beku, membunuh kinerja untuk sementara waktu.

Anda beruntung bahwa drive 8 tampaknya belum mati, jadi Anda harus dapat memperbaiki tanpa dataloss.

Saya akan mulai dengan mengubah kedua drive, dan jangan lupa untuk memeriksa kabel. koneksi yang longgar dapat menyebabkan hal ini, dan jika tidak diarahkan dengan benar, itu lebih mungkin terjadi pada drive yang berdekatan. juga, beberapa kartu multipel memiliki beberapa konektor dua-port, jika drive 7 dan drive 8 berada pada yang sama, mungkin itu adalah sumber masalah Anda.


6
2017-11-16 14:11



Drive 8 inilah yang menyebabkan gangguan layanan, saya sudah menariknya. Drive 7, sementara itu telah kehilangan beberapa sektor, seperti yang ada di negara ini untuk sementara waktu dan umumnya masih berkinerja baik. Tidak, mereka drive dalam pasangan yang berbeda. (Itu adalah sesuatu yang saya pertimbangkan, bersama dengan kemungkinan misalignment dari pertanyaan Cacti / SNMP saya.)  Kartu ini memiliki 16 port, 4 kabel, 4 port per kabel ke panel belakang. Jika masalahnya adalah kartu, kabel atau backpane, saya akan segera tahu ketika saya memasukkan drive 8 pengganti. - Stu Thompson


Kartu Interposer SATA adalah solusi lain.

Saya baru-baru ini mengalami nasib yang sama dan menemukan utas ini. Tenor keseluruhan adalah SAS itu protokol lebih cocok untuk RAID daripada SATA, karena fitur SATA kurang. Inilah sebabnya mengapa drive fisik yang sama dilengkapi dengan pengendali SAS, kemudian dijual sebagai Nearline SAS.

Mencari lebih lanjut, saya menemukan:

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

Saya sedang menyelidiki peningkatan salah satu penyimpanan saya dengan sejumlah ini. Saat ini, selisih harga antara 3 TB SATA vs SAS adalah 400% (harga vanila, merek, spesifikasi dan toko yang sama, Jerman). Saya jelas tidak tahu apakah strategi ini berjalan dengan baik, tetapi patut dicoba.

Komentar sangat diterima :-)


3
2018-02-22 19:12



Teori yang bagus. Setelah mengumpulkan beberapa informasi, hanya produsen baki penyimpanan yang dapat mengintegrasikan papan ini dan menambahkannya tidak berarti penanganan kesalahan yang lebih baik. - korkman


Saya telah melihat disk SATA dengan kunci elektronik yang rusak mengunci firmware init dari sebuah Areca 12 yang sangat kuat, tidak ada cara untuk mengakses BIOS apalagi mem-boot mesin dari media apa pun hingga hard drive yang mengganggu ditemukan dengan menarik disk keluar dalam sebuah biner. cari mode.


2
2018-05-06 18:57