Ограничение потребляемого дискового пространства
Для предотвращения исчерпания свободного места на системах хранения данных используется контроль за потребляемым пользователями дисковым пространством. Это реализуется путем введения ограничений (квот). При превышении ограничения пользователь теряет возможность занимать новое место до тех пор, пока не удалит часть имеющихся файлов и не снизит потребляемое пространство ниже значения квоты.
Как правило используются ограничения двух видов:
- Жёсткое ограничение ('hard quota'), которое не может быть превышено - операционная система перестанет выделять ресурсы.
- Мягкое ограничение ('soft quota'). Разные системы хранения могут реализовавать мягкие квоты по разному. Некоторые при превышении мягкой квоты запускают отcчёт времени и блокировка происходит только после истечения некоторого заранее определённого периода (например, одной недели), если за это время пользователь не уменьшит занимаемое место ниже значения квоты. Другие системы (в том числе, используемая у нас) используют мягкие квоты только как некий порог, по превышении которого пользователю сообщается, что мягкая квота превышена и что вскоре возможно превышение и жёсткой квоты. Блокировки при этом не происходит.
Ограничения настраиваются индивидуально для каждого пользователя и независимо для каждой файловой системы. В настоящий момент пользователям доступны две файловые системы:
- '/mnt/storage' содержит домашние директории пользователей.
- '/mnt/scratch' предназначена для временного хранения объемный рабочих файлов. Механизм работы с этой файловой системой описан на данной странице нашего сайта.
Как правило, квоты будут позволять занимать на 'scratch' больший объем, чем на 'storage'.
Занимаемое дисковое пространство, значения мягкой и жёсткой квот, а также факт срабатывания ограничений отображаются в момент авторизации на интерфейсном сервере. Примеры сообщений:
- При отсутствии превышения ограничений:
Filesystem Used Soft Hard State /mnt/storage 18.25GB 20GB 25GB Good, quota is not exceeded /mnt/scratch 32.83GB 50GB 60GB Good, quota is not exceeded
- При превышении мягкой квоты:
Filesystem Used Soft Hard State /mnt/storage 18.25GB 20GB 25GB Good, quota is not exceeded /mnt/scratch 54.12GB 50GB 60GB Soft quota exceeded
- При блокировке:
Filesystem Used Soft Hard State /mnt/storage 18.25GB 20GB 25GB Good, quota is not exceeded /mnt/scratch 60.00GB 50GB 60GB Blocked, hard quota exceeded
- У используемой системы хранения данных Panasas имеется особенность: после превышения жесткой квоты на дисковое пространство она считается превышенной до тех пор, пока не будет освобождено место, равное 5% от значения квоты. Причём никакие команды для работы с файловой системой факт блокировки не отображают, он проявляется только в невозможности сохранять новые данные (при этом может выводиться, например, сообщение «Disk quota exceeded»). В связи с этим вывод информации о состоянии квот в момент авторизации на интерфейсном сервере нельзя рассматривать как достоверный - отсутствие сообщения о превышении жёсткой квоты не означает, что возможна нормальная работа с файловой системой.
Для просмотра текущего состояния квот используйте на интерфейсном сервере (на других серверах она не работает) следующую команду:
panfs_quota
В случае превышения жёсткой квоты пользователю ежедневно отправляются уведомления электронной почтой.
Важный момент: используемая у нас система хранения при работе квот учитывает не размер файла, а объём дискового пространства, необходимый для его хранения, причём с учётом накладных расходов на обеспечение отказоустойчивости. В качестве примера рассмотрим файл '/opt/shared/bin/ws_find'. Его размер отображается командой 'ls -al':
hpc-suvir2:~ # ls -al /opt/shared/bin/ws_find -r-xr-xr-x 1 root root 548 Apr 30 2010 /opt/shared/bin/ws_find
Видно, что размер файла - 548 байт. Объём дискового пространства, необходимого для хранения этого файла, отображается командой 'du -h':
hpc-suvir2:~ # du -h /opt/shared/bin/ws_find 48K /opt/shared/bin/ws_find
Как видно, требуется 48 Кбайт. Те же самые 48 КБ тратятся на хранение файлов и меньшего размера, даже нулевого. Чем больше размер файла, тем меньше относительная разница между его размером и необходимым для хранения местом. Однако, они никогда не совпадут и второе значение всегда будет больше. Например, для хранения файла размером 5,4 ГБ необходимо 6,2 ГБ. Поэтому желательно организовавывать свои данные таким образом, чтобы избегать использования большого количества файлов небольшого размера.