Как стать автором
Обновить

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

Время на прочтение8 мин
Количество просмотров35K
Добрый день, Гиктаймс!

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

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


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


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

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

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

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

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

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

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

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

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

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

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

О секторах


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

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

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

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

Блок ECC данных


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

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

Один из главных плюсов — это конечно экономия места.

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

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

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

Единственное исключение — логические бэд блоки. Они связаны именно с 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 кбайта).

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

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


На жестких дисках, первый сектор находится на внешней стороне диска, а последний сектор — на внутренней.

В начале времен, количество секторов на дорожке было одинаково, но это было настолько в дремучее время, что можно и не вспоминать. Сейчас дорожки, находящиеся ближе к началу диска (внешней стороны), содержат больше секторов.

Итак, линейная скорость записи и чтения информации расположенной в начале диска, значительно выше. Точные цифры зависят от производительности самого диска, но в процентах — разница может составлять 200% и даже немного больше процентов между самыми крайними дорожками (!)
Количество секторов на дорожку указывается не индивидуально, а для зоны, в которые объеденено несколько дорожек, поэтому разница в скорости будет видна не для двух крайних дорожек, а для двух крайних зон и постепенно снижаться к середине диска. Вдобавок эмперически можно сказать, что «быстрых» секторов на диске больше — поскольку их просто больше на внешней части диска.

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


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

Я записал в свое время свыше 5000 CD/DVD дисков, тестировал чтение. Конечно качество чтения и долговечность зависела от качества болванки, но тот же самый Verbatim, который был одним из эталонов CD-R 650, в DVD был довольно посредственным.И в каждой партии могло встретиться что-то неудачное.

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

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

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

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

UPD: DaemonGloom рекомендует замечательные устройства WD My Cloud Mirror, которое идет практически по цене жестких винтов, плюс небольшая переплата за корпус/контроллер:
«По текущим ценам — устройство на 2x4TB даёт 100 долларов переплаты, 2x6TB — 80 долларов.»

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

А как храните вы?
Теги:
Хабы:
+9
Комментарии75

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн