Политики хранения

Обзор

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

Если для каталога указана политика хранения, HDFS будет хранить по крайней мере одну копию каждого файла в этом каталоге в указанном типе хранилища. Если места недостаточно, HDFS сохранит новые данные в Fallback storages for creation, а реплики будут храниться в Fallback storages for replication.

Типы хранилищ

В зависимости от выбранной политики доступны разные типы хранилищ:

  • ARCHIVE (архив) — хранилище с небольшими вычислительными ресурсами, но большой емкостью;

  • DISK — тип хранилища по умолчанию со средним ресурсом вычислений и емкостью;

  • SSD — хранилище, размещенное на SSD-дисках;

  • RAM_DISK — оперативная память узла данных;

  • PROVIDED — хранилище вне системы HDFS. Дополнительную информацию о хранилище этого типа можно получить в статье HDFS Provided Storage.

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

Политики хранения

В HDFS доступны следующие политики хранения:

  • Hot. Эта политика подходит для данных, регулярно используемых для обработки. Все блоки данных сохраняются на DISK, когда на нем достаточно места, а если пространство на DISK ограничено, блоки будут храниться в ARCHIVE.

  • Cold. Политика хранения холодных данных применяется к редко используемым данным. Все блоки хранятся в ARCHIVE.

  • Warm. Если данные используются только время от времени, вы можете установить политику Warm. В этом случае в DISK хранится только одна реплика, а остальные реплики хранятся в ARCHIVE.

  • All_SSD. Эта политика хранения применяется для хранения всех данных на SSD. Если на SSD нет места, данные сохраняются на DISK.

  • One_SSD. Согласно этой политике хранения, только одна из реплик хранится на SSD. Остальные реплики хранятся в DISK.

  • Lazy_Persist. При использовании политики хранения Lazy_Persist в оперативной памяти всегда хранится одна реплика. Эта политика полезна только для блоков с одной репликой. Если реплик несколько, они все будут записаны на DISK.

  • Provided. Эта политика хранения применяется для хранения одной реплики в хранилище типа PROVIDED, а остальные реплики хранятся на DISK.

Название политики ID Размещение блоков Fallback storages for creation Fallback storages for replication

Hot

7

Все реплики хранятся в DISK

 — 

ARCHIVE

Cold

2

Все реплики хранятся в ARCHIVE

 — 

 — 

Warm

5

Одна реплика хранится в DISK, остальные в ARCHIVE

ARCHIVE, DISK

ARCHIVE, DISK

All_SSD

12

Все реплики хранятся на SSD

DISK

DISK

One_SSD

10

Одна реплика хранится на SSD, а остальные в DISK

SSD, DISK

SSD, DISK

Lazy_Persist

15

Одна реплика хранится в RAM_DISK. Если реплик несколько, все реплики хранятся в DISK

DISK

DISK

Provided

1

Одна реплика хранится в PROVIDED, а остальные — в DISK

PROVIDED, DISK

PROVIDED, DISK

ВАЖНО
Для файлов с настройкой striped erasure coding единственными подходящими политиками хранения являются All_SSD, Hot или Cold. Если вы установите другую политику, она не будет работать.

Команды CLI

Для управления политиками хранения используйте команду storagepolicies.

Пример использования команды для проверки назначенной политики хранения в директории /tmp:

$ hdfs storagepolicies -getStoragePolicy -path /tmp

Когда установлена новая политика, она не применяется автоматически. Чтобы разместить блоки в соответствии с политиками хранения, используйте действие Mover в ADCM.

Вывод команды:

The storage policy of /tmp:
BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]}
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней