Дискові квоти користувачів на файлову систему NTFS

Дискові квоти дозволяють адміністраторам Windows контролювати і управляти розміром дискового простору, використовуваного користувачами на файлову систему серверів і робочих станцій. ОС Windows Server підтримує два типи квотування:  квотування на базі File Server Resource Manager(Дискові квоти FSRM) і NTFS квоти. Хоча FSRM квотування і є більш гнучким і зручним, але в деяких простих випадках ефективно можна використовувати і NTFS квоти. Наприклад, для обмеження розмірів каталогів переміщуваних профілів (але не User Profile Disks) і перенаправляє домашніх папок в RDS сценаріях, каталогів користувачів на FTP сервері, особистих каталогів на сайтах IIS і т.д.

Завдяки використанню квот можна обмежити максимальний розмір файлів і папок кожного користувача, так щоб він не перевищив певного ліміту і не зайняв своїми файлами весь диск. Належність фалів і каталогів визначається шляхом перевірки їх власника. Дискові квоти працюють як на північних, так і на клієнтських версіях Windows.

Основні особливості і обмеження NTFS-квот:

  • Квотування може бути застосоване лише цілком до конкретного того (розділу), відформатувати у файловій систем NTFS (на ReFS квотування працювати не буде)
  • Квоти діють на всіх користувачів, що зберігають свої дані на цьому розділі. Застосувати квоту на групу користувачів, або окремий каталог не вдасться, в цьому випадку краще використовувати FSRM.
  • Належність файлів користувачам визначається шляхом визначення його власника (owner) файлу, заданого в дескрипторі захисту NTFS
  • За замовчуванням система сканує розділ з включеним квотуванням і перераховує сумарний розмір файлів кожного користувача 1 раз на годину
  • При використанні NTFS-компресії, враховується оригінальний розмір файлів (до стиснення)

Можна виділити наступні сценарії використання дискових квот:

  • Моніторинг використання дисків - перегляд статистики використання користувачами місця на диску сервера.
  • Моніторинг та оповіщення - в доповненні до першого сценарію, при перевищенні ліміту в журнал системи записується даний факт.
  • Контроль використання диска  - при перевищенні ліміту користувач не може зберігати нові файли

Розглянемо приклад налаштування NTFS квот на диску з даними користувачів на прикладі Windows Server 2012 R2. У всіх попередніх версія Windows (починаючи з Windows 2003) квоти налаштовуються аналогічно.

Відкрийте вікно властивостей диска, на якому потрібно включити квоти і перейдіть на вкладку Quota. Потім натисніть на кнопку Show Quota Settings:

Щоб включити політику квотування для даного тому, встановіть чекбокс Enable quota management.

Подальші опції слід вибрати в залежності від бажаного сценарію використання квот:

  • Deny disk space to users exceeding quota limit - заборонити запис на диск користувачам, які перевищили ліміт
  • Limit disk space to - ліміт дискового простору для користувача
  • Log event when a user exceeds their quota limit - записувати в системний журнал подія при перевищенні ліміту користувачем
  • Log event when a user exceeds their warning level - записувати в журнал події при наближенні до зазначеного порогу

Не рекомендується відразу включати правило заборони запису при перевищенні ліміту. Переважно спочатку оцінити поточне використання дисків користувачами. У нашому прикладі ми хочемо обмежити користувачів 300 Мб місця на диску сервера.

Зберігаємо зміни (Apply). Через деякий час (в залежності від розміру диска і кількості файлів), Windows підрахує сумарне використання диска кожним користувачем.

Натиснувши на кнопку Quota Entries, можна перейти до результуючої таблиці, в якій вказані квоти і поточний розмір зайнятого місця кожним користувачем системи (файли яких знайдені на файлову систему).

З даного віконця можна створити / змінити / видалити значення квоти. Тим самим можна перевизначити стандартні настройки квот, наприклад, збільшивши квоту для певного користувача.

Щоб NTFS квоти не застосовувалися до конкретної облікового запису, потрібно відкрити властивості записи в таблиці квот (Properties) І встановити опцію Do not limit disk usage.

важливо. Обов'язково слід відключити квотування для системних облікових записів. NT Service \ TrustedInstaller і NT AUTHORITY \ SYSTEM, інакше робота системи може бути паралізована.

Якщо потрібно отримати список файлів конкретного користувача, який, наприклад, перевищив квоту, потрібно вибрати пункт Delete.

З цього діалогового вікна можна змінити власника конкретного файлу (Take ownership), вилучити (Delete) Або перемістити його (Move).

Після того, як навели порядок з квотами в режимі аудиту, можна включати опцію Deny disk space to users exceeding quota limit. Після цього користувач не зможе перевищити виділене йому на диску місце, а розмір диска в сесії користувача буде відображатися з урахуванням наявних у нього квот. У цьому прикладі для мого аккаунта на диску C: \ використано 70 Мб з 300 Мб квоти.

При перевищенні ліміту користувач отримує повідомлення:

"There is not enough space on ...."

Одночасно в журналі системи фіксується подія з EventID 37, source Ntfs (Ntfs)

A user hit their quota limit on volume C:.

NTFS-квотами можна управляти і з командного рядка для цих цілей використовується команда fsutil quota.

Щоб отримати поточні настройки квот для зазначеного диска, виконайте:

fsutil quota query e:

Отримати список перевищених квот:

fsutil quota violations

Отримати частоту оновлення (перерахунку) таблиці квот:

fsutil behavior query quotanotify