Как долго или где быстро хранить информацию на диске

43c80d5d379f48fb893948ed3a85e8ba.jpg Добрый день гиктаймс!

Некоторое время назад, на тостере попалось несколько интересных вопросов о хранении информации на жестких дисках, которые вызвали желание копнуть немного глубже, и я провел небольшое исследование.

Часть информации уже пробегала на Хабре, но не все. А кое-что я не смог найти в русскоязычном инете, поэтому и решил поделиться найденным с сообществом.

Про размагничивание данных на диске.


В нормальных бытовых условиях (отсутствие резкой смены температуры/влажности/давления, отсутствие ударов), намагниченная поверхность диска может хранить информацию несколько десятков лет. Гарантировать сложно, так как реальные промышленные тесты не проводились, а те, что проводятся — обычно как раз и представляют собой смену внешних условий для воздействия аггрессивной средой.

Но большинство сходятся на том, что мощность магнитного поля деградирует со скоростью примерно 1% в год.

При этом нельзя сказать, что через 50 лет не прочитается половина диска — это некорректно, ибо деградация поля не равна поломке — тут роль играет чувствительность считывающих головок и точность механизма позиционирования.

Даже в одной партии жестких дисков хорошего производителя на выходе получаются немного отличные пластины, и цельное устройство тщательно калибруется на заводе. Повторная калибровка в домашних условиях невозможна.

Со временем, внешне может показаться, что это ухудшилась магнитная запись, но в подавляющем большинстве случаев — ухудшение считывания связано с механической деградацией материалов — это вызывает и ошибки позиционирования и чувствительность головок.

В этом случае, для критических данных, можно потратиться на восстановление в компании, где блины вынут и считают данные с них напрямую, даже если механика и электроника полностью навернулась — сами пластины и информация на них подлежит считыванию.

Есть множество свидетелей, у которых старые диски, лежащие в шкафчике, отлично читаются спустя 15, и даже 20 лет (я, кстати, тоже один из них). А бывает, что диск не заводится, едва перейдя гарантийный срок годности.

Итак, в современных дисках сперва выходит из строя электроника и механика, раздалбываются разъемы, могут даже устареть стандарты, но вряд ли основной причиной будет размагничивание данных.

К этому можно еще добавить, что первыми должны размагнититься низкоуровневые разметки дорожек и секторов, которые были нанесены производителем, и которые штатными способами пользователь перезаписывать не сможет, и закинуть эту идею в совершенно бесполезные…

Выводы из этого пункта — перезаписывать информацию на диске, чтобы «обновить» магнитную запись — нет никакого резона.
Но вот обеспечить диску нормальное хранение, постараться закрутить его понадежнее, чтобы уменьшить вибрации — резон есть.

О секторах


Это не совсем 512 байт. Это область, в которой для пользовательских данных выделено 512 байт. Также есть служебная информация о секторе — это низкоуровневая метка начала и конца сектора, а также блок коррекции данных, обычно он идет после пользовательских данных. Плюс неразмеченное место между секторами (gap).
Метки сектора наносятся производителем во время так называемого низкоуровневого форматирования. В древние годы, это можно было делать самостоятельно из BIOS, но сейчас штатными способами это уже недоступно пользователю. Объем служебных данных, может варьироваться в зависимости от оптимизации firmware диска, но в считается, что сектор вмесне со служебными данными занимает 577 байт.

Точнее так было раньше.

В 2007 году было предложено увеличение размера сектора, и после процедур согласования и утверждения, начиная с 2011 года, все выпускающиеся диски уже форматируются с сектором размером в 4096 байт пользовательских данных (примерно 4211 байт со служебными данными) — так называемый Advanced Format.
Упрощение адресации (в восемь раз меньше на том же обхъеме), увеличивает производительность и уменьшает объем служебных данных.

Блок ECC данных


В 512 байтных секторах, ECC Блок занимал 50 байт. В 4096 байтных секторах, ECC блок увеличился до 100 байт, но так как уменьшилось само количество секторов, на самом деле мы сэкономили место в четыре раза (100 байт на 4096 байт вместо 400 байт на 8×512 байт).

Вдобавок, на более длинной цепочке данных алгоритм коррекции работает эффективнее, в результате и место сэкономили и эффективность увеличили. По разным оценкам скорость вычисления ECC увеличилась на 5–10%. А значит, контроллер диска меньше напрягается и может заняться другими вещами. Косвенно это влияет и на общую производительность записи/чтения данных.

Один из главных плюсов — это конечно экономия места.
За счет уменьшения объема, выделенного под блоки ECC, и уменьшения общего количества секторов (меньше gap, меньше меток), общий размер места, выделяемый для пользовательских данных, увеличился более чем на 10%!

Есть и еще один маленький плюс, связанный с bad block-ами. В случае брака или дефекта поверхности, сразу плохим будет помечен бОльший участок, это ускоряет внутреннее тестирование — если есть дефектный участок, будет быстрее проверить и пометить парочку секторов, чем пару десятков. И например, если мы обрезаем кусок червивого яблока, мы отрезаем и часть хорошего. Так и тут — полезнее плохой сектор пометить не в притык.

Но конечно от дисков с бэдами лучше быстрее избавиться.

Единственное исключение — логические бэд блоки. Они связаны именно с ECC — когда по разным причинам (внезапно отключилось электричество, баг firmware, лунные бури…), и ECC оказался некорректным — такой сектор будет считаться сбойным, но его можно исправить — утилит сейчас существует множество, начиная с известной Victoria.

Про виртуальные 512- байтные сектора


Логотип с »512e» означает, что сам диск уже 4 кб-секторный, но работает в режиме эмуляции виртуальных 512 байтных секторов.
Логотип с »4Kn» говорит, что диск поддерживает 4к нативный интерфейс, такие диски в продаже с 2014 года.

Многие все еще популярные ОС (тут я говорю про Windows 7 и Windows Vista), не поддерживают 4к диски нативно.
Тем не менее, старые диски на них работают отлично, а новые диски предоставляют интерфейс с виртуальными 512-байтными секторами.

О виртуальных 512-байтных секторах следует помнить, когда вы тестируете 512е диски, или во время теста работаете на устаревшей ОС.
Например, запись рандомных 512-байтных секторов в таких условиях будет выглядеть как «считать 4 кб, записать 4к», что явно будет выдавать непонятную деградацию скорости на графике. В тоже время как линейная скорость записи и чтения будет показывать нормальную производительность.

Windows поддерживает 4кn диски нативно, начиная с Windows 8 и Windows server 2012.

Про Cluster Straddling.


Это касается именно тех дисков, которые работают в 512е эмуляции (а таких в ходу еще много)

Разобъем такой диск на партиции и отформатируем с дефолтными настройками. Стандартный кластер NTFS- 4 килобайта. Блок HFS+ (или ext4) — обычно тоже 4 килобайта. И физический сектор диска — уже тоже 4 килобайта. Очень удобный размер (даже x86 mem страница — тоже 4 кбайта).

Но во время форматирования, логический кластер/блок файловой системы, может промахнуться мимо старта физического сектора диска, в результате ваш 4 килобайтный кластер/блок будет лежать между двумя 4 килобайтными физическими секторами жесткого диска, из чего следует деградация скорости работы — каждый раз при чтении блока, будет прочитываться два сектора, а при записи — еще и считываться.
Эту проблему решают различные align утилиты — тот же WD Align Tool или HGST Align Tool для Windows 7 и выше.
Только применять их нужно ПОСЛЕ того, как вы разбили диск на партиции — утилита проверит, что границы партиций совпадают с началом нового 4 кбайтного сектора, и подвинет их, если это потребуется. После чего можно работать без падения производительности.

Где информация читается быстрее — в начале или в конце диска?


На жестких дисках, начальный сектор находится на внешней стороне диска, а последний сектор — на внутренней.
В начале времен, количество секторов на дорожке было одинаково, но это было настолько в дремучее время, что можно и не вспоминать.
Сейчас дорожки, находящиеся ближе к началу диска, то есть с внешней стороны, содержат больше секторов. Точнее дорожки логически объединяются в зоны, и количество секторов задается для каждой зоны.
Итак, линейная скорость записи и чтения информации расположенной в начале диска, значительно выше. Точные цифры зависят от производительности самого диска, но в процентах — разница может составлять 200% и даже немного больше процентов между самой широкой и самой узкой зонами.

Как же хранить?


Если сравнивать с CD, DVD и флешками — CD и флеш диски явно проигрывают в длительности хранения данных. DVD могут поспорить, но тут все неоднозначно — нужны и качественные болванки, и хороший привод, и запись производить не на максимальной скорости, и все равно, есть вероятность, что данные перестанут читаться. Вдобавок, 4.5 или даже 9 гб на DVD — это не так уж много, плюс отсутствие комфорта. И сохранить можно только раз — связываться с DVD-RW для длительного хранения данных вообще не стоит.

Если же брать Blue Ray диски, то стоимость пишущего привода и болванок такова, что если не дешевле, то почти равноценно через 5 лет купить новый жесткий диск и переписать на него данные.

На текущий момент, недорогие способы хранения личных данных в основном делятся на:
* Если данных не слишком много, и инет позволяет — можно хранить в облаке, а лучше в двух разных независимых облаках, предварительно зашифровав данные трукриптом/архиватором. Тут я прорекламирую WinRAR, который кроме архивирования с паролем, вдобавок умеет использовать ECC. Можно увеличить размер архива на некоторый процент, но зато иметь возможность восстановить данные из любого поврежденного места этого архива, в пределах этого процента. Есть даже возможность разбивать архив на тома, и том для восстановления создать отдельным файлом. В древности, я этим активно пользовался со старыми дискетами, когда целая дискета могла просто не прочитаться в чужом дисководе.

* Съемный HDD, но рекомендую менять носитель с периодичностью в 3–5 лет на более новый, стараясь не слишком далеко отходить от гарантийного срока. Можно просто купить SATA/USB переходник и апгрейдя системный диск на более быстрый/емкий, старый диск отдавать под бэкапы.

* Купить недорогой домашний NAS с рейдом. Этот способ заметно дороже предыдущих двух, но он позволяет легко производить замену вышедшего из строя диска, и вдобавок иметь бэкап диск всегда включенным, полностью автоматизировав процесс.

Лично я делаю резервную копию всего важного на второй диск, и периодически скидываю архивы на внешний USB диск вручную.
Таким образом есть а) рабочая копия, б) ежедневный архив на втором диске, и с) примерно ежемесячный архив на внешнем отключенном диске. Но в принципе уже начинаю подумывать про NAS.

А как храните вы?

© Geektimes