Не так давно я уже писал про интересный алгоритм коррекции ошибок под названием LDPC. Как же быть в том случае, если коррекция ошибок не может выполнить свою задачу? В блоге LSI недавно появилась хорошая заметка Кента Смита на этот счет, я решил ее перевести.
Многие пользователи даже не подозревают, что в ходе чтения данных с внешних устройств, будь это традиционные HDD, или те же SSD, компьютеры постоянно сталкиваются с большим количеством ошибок. Поэтому коды коррекции ошибок (Error Correction Code или ECC) используются для коррекции ошибочных битов до того, как пользователю будут возвращены некорректные данные. Но возможности ECC ограничены, и, если количество ошибок превышает определенный предел, Error Correction Code спасует. Поэтому, большинство компаний, работающих в отрасли хранения данных, разрабатывают более сложные алгоритмы. LSI в своем контролере SandForce идут заметно «глубже» для защиты пользовательских данных.
Что происходит, когда пасует ECC?
Если алгоритмы ECC не могут справиться со своими задачами, только механизмы резервного копирования могут прийти на помощь. Существуют три альтернативы. Первая — когда пользователь должен сам заниматься резервированием во избежание сбоев ECC и других угроз, способных повредить данные или сделать их недоступными. Это могут быть как природные катастрофы, повреждающие строения и то, что находится внутри (землетрясения, сели, оползни), так и более экзотические проблемы, начиная с повреждения компьютеров без надлежащей грозозащиты молнией, и заканчивая банальной кражей. По результатам современных исследований, надлежащим образом резервируются менее 10% данных. Не очень комфортная цифра.
Второе решение состоит в использовании RAID (Redundant Array of Independent Disks). Данные автоматически сохраняются с избытком на нескольких дисках (иногда даже подключенных к разным компьютерам), и в случае какого-либо сбоя, эта избыточность позволяет восстановить утерянные данные. Эта технология очень широко используется в корпоративном секторе, но среди домашних пользователей является чаще всего экзотикой.
Существует ли простое автоматическое решение, работающее для одного диска?
Да, ответ на все три вопроса, именно таким и является третье решение, реализованное компанией LSI в чипсетах SandForce под названием RAISE™ data protection. Технология эта была представлена в 2009 году с первым чипсетом SandForce. RAISE расшифровывается как Redundant Array of Independent Silicon Elements, это звучит похоже на RAID, и в некоторм роде технологии похожи. Данная технология использует отдельные ячейки SSD как диски в RAID массиве, сохраняя данные с некоторым «избытком». Оригинальная защита RAISE 1 уровня, может защитить от сбоя целой страницы flash-памяти (о страницах flash я уже писалтут, прим. переводчика), что определенно не под силу классическому ECC.
Представленный в декабре прошлого года SF3700 дает RAISE еще больше гибкости, позволяя еще лучше защищать данные пользователей. Оригинальный RAISE 1 уровня требовал отведения определенного объема исключительно для резервинования данных. В случае диска на 64 Гб, объем доступный пользователю составлял 60 или даже 55 Гб. Такие потери не очень приятны на столь малом объеме, а единственным вариантом избежать этого было отключение защиты RAISE. В новых версиях такие потери стали необязательны. Новая, «дробная» опция RAISE позволяет этой технологии использовать минимальные объемы памяти, обеспечивая при это защиту информации и достаточный уровень избыточности данных (а последнее особенно важно, так как позволяет бороться с усилением записи, поддерживая высокую скорость SSD и защищая их от излишнеого износа, подробней об избыточности читайте в этой статье).
Лучшая защита с RAISE 2 уровня
Новый 2 уровень защиты RAISE позволяет защитить пользователей от еще более масштабных сбоев, начиная с ошибок чтения нескольких страниц, и заканчивая сбоем целого чипа. Данная технология использует авто-перераспределение данных, учитывающее количество ошибок определенного чипа. В случае если чип близок к выходу из строя, защита перераспределит данные с него на другие. Это приводит к уменьшению объема, доступного пользователю, поэтому у RAISE 2 уровня есть возможность «отката» к защите 1 уровня без потери доступного пользователю хранилища.
Еще одна особенность нового чипсета — наличие дополнительного (девятого) канала flash-памяти, что позволяет производителям делать чипы большей емкости, что в свою очередь позволит использовать RAISE 1 уровня без сокращения доступного пользователю объема (без этого, диски будут уменьшены в объеме до 60, 120 и 240 Гб соответственно).
Конечно же, RAISE не защитит вас от возможной кражи или катастрофы, типа скачка напряжение или потопа, но эти события явно менее вероятны, чем обычный сбой ECC. Поэтому, наилучшая стратегия — купить диск с RAISE и периодически делать резервные копии для защиты от глобальных проблем.
Автор: alexzeynikov