Це одна з тих областей, де SATA є недостатньо оптимальним. Проблема полягає в рівні протоколу взаємозв’язку пристрою зберігання даних, і, таким чином, не пов’язана з тим, яке програмне забезпечення використовується. Використання іншого файлового копіра чи іншої операційної системи не дозволить магічним чином покращити ситуацію, за винятком того, що він може спробувати встановити різні значення тайм-ауту, щоб зменшити вплив проблеми (що може бути, а може і не бути можливим, залежно від апаратного забезпечення та програмного забезпечення; див. Нижче ).
Тут є кілька важливих моментів:
- Якщо SATA перестає реагувати, це може зв’язати всю систему зберігання, а не лише один накопичувач, який має проблеми. Це, безумовно, має можливість зв’язати весь контролер, і оскільки більшість споживчих систем мають лише один контролер диска (той, який інтегрований на материнській платі), це означає все сховище. Ще гірше, якщо накопичувач вийде з ладу якимось нестандартним та / або несподіваним способом, що, безумовно, може статися, якщо привід незначний. Можливо, вас зацікавить: Як один диск у апаратному масиві SATA RAID-10 може привести весь масив до скрипіння? за помилкою сервера.
- Більшість споживчих накопичувачів SATA мають довгі періоди очікування за замовчуванням (на порядок хвилин), а у багатьох споживчих SATA-дисків немає налаштованого контролю відновлення помилок . Так звані накопичувачі "NAS" часто мають настроювані ERC, а накопичувачі високого класу практично завжди є; такі диски також можуть мати коротші затримки за замовчуванням (загальне значення становить 7 секунд). Тривалі періоди очікування вигідні, якщо накопичувач зберігає єдину копію даних, яка, на жаль, є звичайною у споживчих системах; вони є недоліком у надмірній конфігурації або в тому, що ви просто хочете якнайбільше відключити накопичувач, перш ніж він ще більше погіршиться.
- Привід буде намагатися прочитати поганий сектор до тих пір, поки він не досягне межі очікування або поки господар не сигналізує про переривання. Оскільки шину SATA можна зв'язати за допомогою очікування закінчення зчитування, ОС може подати сигнал про припинення команди зберігання на рівні зберігання, і в крайньому випадку, накопичувачі можуть навіть не добре реагувати на скидання шини SATA в такій ситуації.
Точка №1 - одна з головних точок продажу SAS на серверах; SAS має значно кращі помилки, ніж SATA. Точка №2 є обмеженням вбудованого програмного забезпечення, і №3 стає проблемою насправді лише через №2.
Тож, що трапляється, це те, що ОС видає на диск команду «прочитати сектори», а конкретні сектори якось пошкоджені. Таким чином, диск переходить у режим повторного намагання, щоб спробувати вимкнути дані з платів, намагаючись прочитати знову і знову, поки не отримає достатньо хороших даних, які власне виправлення помилок ( FEC ) диска в змозі виправити для інших помилок. Якщо вам не пощастить, це може бути ніколи, але диск буде намагатися протягом досить тривалого періоду часу, перш ніж вирішити, що це читання не вдасться.
Оскільки операційна система чекає на прочитане, це як мінімум уповільнить процес копіювання до сканування, і залежно від точної архітектури ОС може призвести до того, що ОС стане ривком або навіть замерзнути протягом тривалості. У цей момент диск зайнятий початковим зчитуванням і не відповість на команди подальшого зчитування до тих пір, поки не закінчиться (успішно чи невдало) те, що в даний час виконується, а інше програмне забезпечення, як правило, не буде краще, ніж операційна система. працює далі.
Отже, все, що викликає зчитування в іншому місці (в ідеалі лише на пошкодженому диску), доведеться чекати в черзі, поки пошкоджений диск або успішно прочитає відповідний сектор, або визначить, що його неможливо прочитати. Через менш оптимальну обробку SATA невідповідних накопичувачів, це може означати, що не тільки привід, з якого ви копіюєте, затримується введення-виведення. Це може дуже легко призвести до того, що інше програмне забезпечення також стає повільним або безвідповідальним, оскільки це програмне забезпечення чекає завершення іншого запиту вводу / виводу, навіть якщо операційна система здатна впоратися.
Тут також важливо зазначити, що введення / виведення диска може статися, навіть якщо ви явно не маєте доступу до жодних файлів на диску. Дві основні причини цього - виконуваний код на вимогу та swap. Оскільки підкачка іноді використовується навіть у тому випадку, коли система не знаходиться під тиском пам’яті, а виконуваний код за запитом на вимогу є поширеним у сучасних системах та із сучасними виконуваними форматами файлів, ненавмисна активність читання диска під час звичайного використання - це справді реальна можливість.
Як зазначається в коментарі до запитання Matteo Italia , однією із пом'якшувальних стратегій є використання іншого взаємозв'язку для зберігання даних, що є складним способом сказати "покласти диск у USB-корпус". Абстрагуючи протокол масового зберігання USB , це ізолює проблематичну частину SATA від решти вашої системи, а це означає, що теоретично проблеми вводу / виводу на цьому диску повинні впливати лише на введення / виведення цього конкретного диска.
Це трохи більше, тому SATA (зокрема, SATA без ERC рівня приводу) часто не рекомендується використовувати RAID (особливо рівні RAID із надмірністю, серед стандартних яких є всі, крім RAID 0 ); довгі періоди очікування та погане поводження з помилками можуть легко спричинити викидання цілого пристрою з масиву для одного поганого сектору, з яким RAID-контролер міг би справлятися чудово, якщо існує надмірність, а контролер пам’яті просто знає, що це проблема. SAS був розроблений для великих масивів зберігання даних, і, таким чином, сподіваючись, що періодично виникнуть проблеми на різних накопичувачах, що призвело до того, що він буде розроблений для витонченого керування випадком одного проблемного накопичувача або запиту вводу / виводу.навіть якщо диск не працює. Проблемні диски не дуже поширені в споживчих системах просто тому, що на них, як правило, не встановлено багато дисків, а встановлені практично ніколи не мають надмірності; оскільки SATA мав на меті замінити PATA / IDE, а не SCSI (остання - це ніша, на яку спрямовано SAS), цілком ймовірно, що його функції та вимоги (або гарантії) поводження з помилками були визнані адекватними для використання за призначенням.