Политики хранения
Обзор
Политики хранения — это набор правил, которые помогают повысить производительность приложений за счет оптимизации распределения данных в зависимости от потребности в вычислительной мощности и доступности. Например, если какие-то данные используются чаще других, вы можете переместить их на 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]}