Computerworld, США
Идея многократного резервирования лежит в основе концепции «пуленепробиваемого хранения», которую в корпорации IBM развивают последние два года
На двухмоторном самолете вы можете лететь с одним двигателем, но много ли пассажиров захотят находиться на его борту?
Идея многократного резервирования лежит в основе концепции «пуленепробиваемого хранения» (bulletproof storage), которую в корпорации IBM развивают последние два года и планирует постепенно обнародовать в течение следующих трех лет.
«Мы хотим сделать так, чтобы клиент совершенно не беспокоился о внешней памяти», — говорит IBM Джей Менон, технический директор IBM по системам хранения.
Данная техническая инициатива IBM направлена на достижение отказоустойчивости всех составляющих системы хранения — дисков, контроллеров, источников питания, сетевых карт и программного обеспечения. Строя системы хранения повышенной надежности, в которых замену отказавших частей можно будет отсрочить на годы благодаря многократной избыточности компонентов, IBM верит, что это поможет также устранить множество человеческих ошибок при замене отказавших деталей.
Вопрос времени
По словам Стэнли Заффоса, аналитика компании Gartner, для своего воплощения концепция «пулене?пробиваемой» системы хранения потребует еще пять-десять лет, прежде чем будет воспринята корпоративными пользователями. Но как только это случится, затраты на эксплуатацию систем хранения резко упадут благодаря снижению потребности в обслуживании.
«Мы знаем, как строить очень надежный код. Мы повседневно используем устройства со встроенным программным обеспечением, которые работают всегда, — например, ваш автомобиль, калькулятор, телефон или дисковод в вашем ПК», — говорит Заффос.
Однако системы, с которыми в данном случае имеет дело IBM, куда сложнее телефонов или калькуляторов.
В рамках своей «пуленепробиваемой» инициативы IBM обращается к отказам секторов жесткого диска, число которых растет вместе с его объемом. В то время как характерный объем дисков удваивается каждые 12-18 месяцев, коэффициент так называемых «непоправимых» ошибок чтения/записи и вероятность непоправимой ошибки чтения диска остаются на прежнем уровне. На современных дисках секторов стало больше, поэтому повысилась вероятность непоправимой ошибки.
Выход, по мнению Менона, состоит в том, чтобы в управляющее программное обеспечение систем хранения заложить возможности самовосстановления и создать более надежные конфигурации RAID-массивов.
IBM обещает примерно через год выпустить системы хранения, способные выдержать одновременный отказ трех дисководов благодаря дополнительным дискам четности в RAID-массиве, которые многократно повысят его отказоустойчивость. Сегодня стандартные системы с двумя дисками четности допускают одновременный отказ лишь двух накопителей.
Но Заффос утверждает, что в настоящее время 80% времени простоя обусловлено ошибками пользователей и программными сбоями, а не отказами оборудования. Он говорит, что отказы, происходящие по вине программного обеспечения, происходят из-за его сложности, и что в сложной системе возможно любое число отказов.
Для борьбы с отказами программного обеспечения корпорация IBM предлагает метод N-вариантного программирования (N-Version Programming), в котором дублирующие друг друга варианты кода одного приложения время от времени сравнивают значения обрабатываемых данных, чтобы гарантировать отсутствие ошибок.
При N-вариантном программировании две копии данных защищаются различными средствами. Одна из них сохраняется стандартными средствами RAID-5, закодированными программистом А.
Вторая копия защищена другим алгоритмом, закодированным программистом Б. Таким образом, если первая копия повреждена из-за ошибки в программе, написанной программистом А, то может использоваться вторая копия.
Один из методов, с помощью которого IBM планирует обнаруживать и исправлять поврежденные данные состоит в создании более устойчивого к сбоям программного обеспечения систем хранения с поддающимися исправлению структурами данных. Программа проверяет соблюдение определенных условий, зафиксированных в правилах. Например, в файловой системе сумма занятого файлами места и свободного пространства должна равняться доступному пространству. Код будет автоматически проверять это условие в различные моменты времени и будет использовать специальную процедуру для устранения проблем, если условие не соблюдается.
В этом случае программное обеспечение не проверяет код, чтобы убедиться в его нормальном функционировании, и не проверяет содержание данных. Если некоторые свойства не выполнены, программное обеспечение знает, как исправить структуры данных.
Однако Менон говорит, что в течение ближайших двух-трех лет не следует ожидать реальной отдачи от N-вариантного программирования или от поддающихся проверке структур данных. «Однажды вам придется признать, что эти методы не в полной мере исключают отказы, — говорит он. — Вы должны быть способны изолировать такой отказ в небольшой части системы и очень быстро восстановить ее работоспособность».