THIS SECTION IS UNDER CONSTRUCTION
Хранение данных --------+ / | \ | магнитные магнитно оптические прочие носители. носители оптические носители носители
Storage / \ Прямого Последовательного доступа доступа (диски) (ленты)
Архитектура хранения данных
THIS SECTION IS UNDER CONSTRUCTION
Задачи: увеличение производительности увеличение плотности записи совершенствование аппаратной базы создание материалов с лучшеми свойствами ZBR (Zoned Bit Recording) Увеличение частоты вращения диска/скорости ленты Interleave (актуален и сейчас как сдвиг начала трека на соседнем цилиндре) Кэширование (caching) Предчтение (prefetching) Request Reordering (неупорядоченное выполнение запросов Banking (расслоение по нескольким устройствам) [см. следующий topic] Write Back и правильно организованные файловые системы увеличение надежности Коды корректирующие ошибки Замена дефектных секторов
Увеличение плотности записи в 2 раза (например с 15 бит на см^2 до 30 бит на см^2) при той же линейной скорости увеличивает линейную плотность данных в SQRT(2) = 1.41 раза Но за это надо платить улучшением аппаратной базы: Использовать материалы с лучшими свойствами Делать более сложные головки записи. Write Precompensation: уже давно при записи на магнитные носители ток для записи модифицирует так, что бы при чтении был сигнал наиболее близкий к желаемому. Потому что магнитное поле при записи на современных плотностях влияет не только на записываемый бит, но и на соседние. Увеличение плотности записи
Опять таки это упирается в головки и магнитные материалы (т.к. время для перемагничивания уменьшается) Плюс еще начинаются механические проблемы (Шпиндель греется, диск должен быть более сбалансирован). Увеличение частоты вращения диска
При постоянной угловой скорости вращения диска мы получаем что линейные скорости и количество магнитного материала (media) существенно различаются во внешних (близких к внешнему краю диска) и внутренних областях. Чтобы использовать этот материал применяют разные плотности записи в различных частях диска. Диск делят на зоны, во внутренние пишут мало данных, во внешние больше. ZBR (Zoned Bit Recording)
Пример обычного диска и диска с двумя зонами:
Пример мультизонного диска:
Соответственно во внешних областях диск работает быстрее (поэтому начало диска идет во внешних зонах).
Паралельные головки
Идея: Мы имеем блок содержащий несколько головок для одной поверхности соответсвенно несколько tracks могут быть считаны без перемещения головки, и само перемещение головки идет на небольшое расстояние и быстрее. Предельный случай - сплошная головка над всеми треками - вообще не надо двигать. Минусы: Тепловые проблемы - невозможно точная наводка.
Есть вариант с двумя блоками головок.
Interleave - это чередование секторов. Раньше когда машины были медленные за время пока контроллер примет и обработает данные сектора диск уже успевал прокрутится на середину следущего сектора. Что бы убыстрить последовательное чтение сектора писали не один за другим а через один. (смотри формат гибкого диска). Тогда после обработки текущего сектора для доступа к следующиму требовался на почти целый оборот диска, а только малая часть. Interleave
Track/Cylinder Skew
Современные диски имеют cache и читают весь track целиком, поэтому для них Interleave не актуален. Но тем не менее существует сдвиг начала следующего трека по отношению к текущему (это позволяет быстрее читать последовательные данные). (Track skew, Cylinder skew) Поверхность 1:
Поверхность 2:
В современных дисках используется elastic BPI. Т.е. плотность записи подбирается индивидуально для каждой пластины в зависимости от ее физических характеристик. Elastic BPI
Average Seek Time
Average Seek Time = среднее время позиционирования головки по диску + 1/2 * время оборота диска.
У современных дисков чисто seek занимает меньше 1 ms.
В cache держат данные и читают не секторами а сразу треками Это позволяет быстрее обратится к уже прочитанным или последовательным данным. Кэширование и предчтение
Сейчас мы все работаем в многозадачных системах. Различные приложения пишут и читают разные файлы, которые находятся в разных частях диска. Запросы диск может выполнять последовательно (FCFS - First Come First Service) Пример последовательной обработки запросов: Неупорядоченное выполнение
Но диск может быть умным (SCSI) и выполнять запросы так что бы минимизировать перемещения головки (Это поднимает производительность).
Перемещаем головку так, что бы двигать ее как можно меньше т.е. ближайшему запросу (Minimum Seek): (SSTF - Shortest Seek First) Minimal seek:
Один из механизмов - это Elevator (лифт). Идем до самого младшего запрашиваемого блока (всех обслуживаем по пути), потом до самого старшего, итд. Elevator:
Есть разновидности Elevatora: C-SCAN: Всегда доходит до последнего цилиндра, затем быстрый seek на первый цилиндр (ничего не читая по дороге):
C-LOOK: Всегда доходит до верхнего запроса, затем быстрый seek на самый младший запрос (ничего ни читая по дороге)
Вся эта механика может быть реализована внутри диска (SCSI) или реализовыватся внутри OS. Но понятное дело диск лучше знает свою зонную структуру и времена для выполнения операций). Именно по этому (на самом деле есть еще причины) SCSI диски более дорогие чем IDE.
Трансляция внутренних структур диска во внешние LBA/CHS - личное дело самого диска.
Увеличение надежности
(Spare sectoring, Defects Mapping) Дефекты поверхности диска встречаются часто (и появляются тоже - например ударили компьютер - головка цепанула поверхность). Раньше на диске была наклеена карта defect blocks. Почему на современных дисках нет ни одного bad blockа? Они заменяются. После записи диск проверяет записался ли сектор, если нет то тестирует сектор, если сектор плохой то помечает его как плохой, а данные пишет вместо него в зарезервированный сектор. Замена дефектных секторов
HSM Стоимость хранения
Data Tiering