Ini adalah salah satu area di mana SATA tidak optimal. Masalahnya adalah pada tingkat protokol antarkoneksi perangkat penyimpanan, dan dengan demikian tidak terkait dengan perangkat lunak apa yang Anda jalankan. Menggunakan mesin fotokopi lain atau sistem operasi lain tidak akan secara ajaib membuat segalanya lebih baik, kecuali bahwa itu mungkin mencoba untuk menetapkan nilai batas waktu yang berbeda untuk mengurangi dampak dari masalah (yang mungkin atau mungkin tidak mungkin tergantung pada perangkat keras dan firmware; lihat di bawah ini ).
Ada beberapa poin penting di sini:
- Dengan SATA, jika drive berhenti merespons, ini dapat mengikat seluruh sistem penyimpanan, bukan hanya satu drive yang mengalami masalah. Ini tentu memiliki potensi untuk mengikat seluruh pengontrol, dan karena sebagian besar sistem konsumen hanya memiliki pengontrol disk tunggal (yang terintegrasi pada motherboard), ini berarti semua penyimpanan. Lebih buruk lagi jika drive gagal dalam beberapa cara yang tidak standar dan / atau tidak terduga, yang tentunya dapat terjadi jika drive tersebut marjinal. Anda mungkin tertarik dalam Bagaimana disk tunggal di perangkat keras SATA RAID-10 array dapat membuat seluruh array berhenti melengking? pada Kesalahan Server.
- Sebagian besar drive SATA konsumen memiliki periode batas waktu default yang lama (sesuai urutan menit) dan banyak drive SATA konsumen tidak memiliki kontrol pemulihan kesalahan yang dapat dikonfigurasi . Apa yang disebut drive "NAS" sering memiliki ERC yang dapat dikonfigurasi, dan drive high-end hampir selalu melakukannya; drive tersebut mungkin juga memiliki batas waktu default lebih pendek (7 detik menjadi nilai umum). Periode waktu tunggu yang lama menguntungkan jika drive memegang satu-satunya salinan data, yang sayangnya umum pada sistem konsumen; mereka adalah kelemahan dalam konfigurasi yang berlebihan atau di mana Anda hanya ingin mendapatkan sebanyak mungkin dari drive sebelum memburuk lebih jauh.
- Drive akan terus mencoba membaca sektor yang buruk sampai mencapai ambang batas waktu habis atau sampai aborsi ditandai oleh host. Karena bus SATA dapat diikat oleh penantian agar pembacaan selesai, OS tidak mungkin memberi sinyal abortemen tingkat penyimpanan, dan dalam kasus yang ekstrem, drive mungkin tidak merespons dengan baik untuk reset bus SATA. dalam situasi seperti itu.
Poin # 1 adalah salah satu nilai jual utama untuk SAS di server; SAS memiliki penanganan kesalahan yang jauh lebih baik daripada SATA. Poin # 2 adalah batasan firmware drive, dan # 3 menjadi masalah karena # 2.
Jadi yang terjadi adalah OS mengeluarkan perintah "read sector" ke disk, dan sektor-sektor tertentu entah bagaimana rusak. Dengan demikian, disk akan masuk ke mode coba lagi untuk mencoba mendapatkan data dari piring-piring, mencoba membaca lagi dan lagi sampai mendapatkan data yang cukup baik bahwa koreksi kesalahan disk sendiri ( FEC ) dapat memperbaiki kesalahan yang tersisa. Jika Anda beruntung, ini mungkin tidak pernah, tetapi drive akan terus mencoba untuk jangka waktu yang cukup lama sebelum memutuskan bahwa pembacaan ini tidak akan berhasil.
Karena sistem operasi sedang menunggu pembacaan, ini setidaknya akan memperlambat proses penyalinan menjadi merangkak, dan tergantung pada arsitektur OS yang tepat dapat menyebabkan OS menjadi tersentak-sentak atau bahkan membeku selama durasi. Disk, pada titik ini, sibuk dengan pembacaan asli dan tidak akan menanggapi perintah pembacaan lebih lanjut sampai yang sedang menjalankan berakhir (berhasil atau tidak berhasil), dan perangkat lunak lain umumnya tidak akan melakukan lebih baik daripada sistem operasi itu. sedang berjalan.
Oleh karena itu, apa pun yang memicu pembacaan di tempat lain ( idealnya , hanya pada drive yang rusak) harus menunggu dalam antrean hingga drive yang rusak berhasil membaca sektor tersebut, atau menentukan bahwa itu tidak dapat dibaca. Karena penanganan drive nonresponsive SATA yang kurang optimal, ini dapat berarti bahwa tidak hanya drive yang Anda salin akan mengalami I / O tertunda. Ini dapat dengan mudah menyebabkan perangkat lunak lain menjadi lambat atau tidak responsif juga, karena perangkat lunak itu menunggu penyelesaian I / O yang berbeda untuk diselesaikan, bahkan jika sistem operasi mampu mengatasinya.
Penting juga untuk dicatat di sini bahwa disk I / O dapat terjadi meskipun Anda tidak secara eksplisit mengakses file apa pun pada disk. Dua penyebab utama untuk ini adalah kode eksekusi load-on-demand, dan swap. Karena swap kadang-kadang digunakan bahkan ketika sistem tidak berada di bawah tekanan memori, dan kode yang dapat dieksekusi load-on-demand adalah umum pada sistem modern dan dengan format file yang dapat dieksekusi modern, aktivitas pembacaan disk yang tidak diinginkan selama penggunaan normal adalah kemungkinan yang sangat nyata.
Seperti yang ditunjukkan dalam komentar terhadap pertanyaan oleh Matteo Italia , salah satu strategi mitigatif adalah menggunakan interkoneksi penyimpanan yang berbeda, yang merupakan cara rumit untuk mengatakan "memasukkan disk ke dalam selungkup USB". Dengan mengabstraksi melalui protokol penyimpanan massal USB , ini mengisolasi bagian SATA yang bermasalah dari seluruh sistem Anda, yang berarti bahwa secara teori , hanya I / O pada disk tertentu yang akan terpengaruh oleh masalah I / O pada disk tersebut.
Sebagai tambahan, ini adalah alasan mengapa SATA (khususnya, SATA tanpa drive-level ERC) sering tidak disarankan untuk RAID (terutama level RAID dengan redundansi, yang di antara yang standar adalah semua kecuali RAID 0 ); periode waktu tunggu yang lama dan penanganan kesalahan yang buruk dapat dengan mudah menyebabkan seluruh perangkat terlempar keluar dari array untuk bad sector tunggal, yang dapat ditangani dengan baik oleh pengontrol RAID jika ada redundansi dan pengontrol penyimpanan hanya tahu bahwa inilah masalahnya. SAS dirancang untuk array penyimpanan besar, dan dengan demikian dengan harapan bahwa akan ada masalah pada berbagai drive sesekali, yang menyebabkannya dirancang untuk menangani kasus drive bermasalah tunggal atau permintaan I / O dengan anggun.bahkan jika drive tidak. Disk bermasalah tidak sangat umum dalam sistem konsumen hanya karena mereka cenderung tidak memiliki banyak disk yang diinstal, dan yang diinstal hampir tidak pernah memiliki redundansi; karena SATA bertujuan untuk menggantikan PATA / IDE bukan SCSI (yang disebut SAS niche), kemungkinan fitur dan permintaan penanganan kesalahan (atau jaminan) dianggap memadai untuk kasus penggunaan yang dimaksudkan.