Рубрика:
Администрирование /
Администрирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Иван Коробко
Система анализа квот на базе File Server Resource Manager
В Windows Server 2003 RC2 появился наконец инструмент, позволяющий назначать квоты на использование дискового пространства серверов – File Server Resource Manager. Каковы достоинства и недостатки утилиты и как расширить ее возможности?
Очень долгое время в операционных системах Windows отсутствовал инструмент, который позволял устанавливать квоты на дисковое пространство серверов и информировать по заданным правилам об использовании свободного места. В Windows Server 2003 RC2 появился штатный инструмент, позволяющий решить данную задачу – File Server Resource Manager. В системе оповещения есть существенный недостаток. При заполнении дискового пространства, ограниченного квотой, может быть отправлено сообщение тому, кто его заполнил или перешел через установленную контрольную точку; а также службе поддержки по явно указанному e-mail-адресу. Однако оповестить об этом событии остальных сотрудников, имеющих права на эту папку, невозможно. Решить эту проблему можно с помощью сценария, который будет запускаться при событии, генерировать и отсылать сообщение по почте о состоянии квоты всем пользователям, имеющим доступ к папке.
File Server Resource Manager
В состав File Server Resource Manager, находящейся в «Панели управления», входят три инструмента:
- Quota Management – позволяет создавать шаблоны квот и назначать квоты на серверные папки;
- File Screening Management – ограничивает запись файлов указанных форматов (mp3, wav, avi, vob и т. д.) в папки;
- Storage Reports Management – создает отчеты, в том числе обеспечивает генерацию отчетов с помощью Scheduled Tasks.
Quota Management
Состоит из двух компонентов: Quotas и Quota Templates. В разделе Quotas располагаются созданные на папки квоты, а в Quota Templates – шаблоны, на основе которых можно создавать квоты.
Логика подсказывает, что квоты удобнее и быстрее создавать с помощью шаблонов, поэтому сначала рассмотрим Quota Templates.
Quota Templates
В Quota Templates присутствует несколько шаблонов по умолчанию. Несмотря на это, создадим собственный шаблон, кликнув правой кнопкой мыши по надписи Quota Templates и выбрав в появившемся меню «Create Quota Templates…».
В диалоговом окне (см. рис. 1) необходимо заполнить несколько полей. Программисты Microsoft предусмотрели возможность создания шаблонов на основе существующих: в верхней части диалогового окна в выпадающем списке «Copy properties quota templates (optional)» выберите подходящий шаблон и нажмите на кнопку «Copy». Осталось отредактировать импортированные параметры.
Рисунок 1. Диалоговое окно «Create Qouta Templates…»
Рассмотрим подробнее поля вкладки «Settings»:
- Template Name – имя шаблона, которое будет отображаться в списке шаблонов; обязательное поле, ограниченное по длине 255 символами.
- Label – описание шаблона, расположенное справа от названия в общем списке; необязательный параметр.
- Space Limit – размер и тип квоты. Задавая размер квоты, необходимо тысячи отделять запятыми без пробелов, указывать размерность одним из значений выпадающего списка: Kb, Mb, Gb, Tb. Квота может быть двух типов: Hard и Soft. Принципиальная разница заключается в том, что при превышении Hard-квоты система не дает записать информацию на диск, выводя сообщение об окончании места, и генерируется сообщение. При превышении Soft-квоты только генерируется соответствующее сообщение.
- Notification thresholds – задаются пороговые значения, в соответствии с которыми будут генерироваться сообщения и их тип.
Задание пороговых значений
Под пороговым значением понимают значение, указанное в процентах, по достижении которого происходит событие, на основе которого осуществляется указанное действие. Выполняемое действие зависит от настроек.
Задать новое пороговое значение можно, нажав на кнопку «Add» и указав в поле «Generate notifications when usage» reaches число в процентах, по достижении которого будет происходить событие. В появившемся диалоговом окне несколько вкладок, в каждой из которых задается свое событие:
- e-mail Message – используя эту вкладку, инициируют отправку двух сообщений: одно – администратору или службе поддержки (его текст невозможно изменить) и второе – пользователю, который инициировал событие (см. рис. 2). Есть возможность задать тему письма и создать шаблон письма. В него могут быть вставлены переменные, значения которых будут изменяться в зависимости от настройки квот и состояния анализируемой папки.
Рисунок 2. Вкладка «e-mail Message»
- Event Log – формируется запись в журнале событий на сервере на основе шаблона, содержащего различные переменные (см. рис. 3).
Рисунок 3. Вкладка «Event Log»
- Command – при наступлении события запускается сценарий (см. рис. 4). Для запуска скрипта на VBScript необходимо в поле «Run this command or script» указать путь к файлу-интерпретатору: %WinDir%\system32\wscript.exe. В качестве его аргумента в поле «Command Settings» вводят полный путь к файлу-сценарию: C:\Quota.vbs. Если он имеет параметры командной строки, то их указывают последовательно после имени сценария через пробел. FSRM поддерживает переменные, которые также можно указать в качестве аргументов командной строки. Для успешной работы сценария необходимы, как правило, максимальные права доступа. Этого достигают выбором Local System в разделе «Command Sequrity». С помощью сценария можно реализовать отправку сообщений всем пользователям, которые имеют право использовать данный сетевой ресурс. Как это сделать, читайте в разделе «Сценарий оповещения пользователей».
Рисунок 4. Вкладка «Command»
- Report – генерируется отчет по заданному критерию и отправляется по электронной почте администратору или в службу поддержки, либо сохраняется в виде файла в %SystemDrive%\StorageReports\Incident (см. рис. 5).
Рисунок 5. Вкладка «Report»
Quotas
Для создания новой квоты на папку необходимо в FRSM войти в Quota Management и кликнуть правой кнопкой мыши по Quotas, а в контекстном меню выбрать «Create Quota». В появившемся диалоговом окне (см. рис. 6), нажав на кнопку «Browse», установить курсор на квотируемой папке и нажать на кнопку «ОK». Для FRSM не важно, предоставлена ли папка в общий доступ или нет. Впоследствии папка должна стать сетевой, поскольку квотировать локальную папку не имеет смысла.
Рисунок 6. Диалоговое окно «Create Quota»
В диалоговом окне необходимо задать один из вариантов создания квоты – «Create Quota on Path» (по умолчанию) или «Auto apply template and create quotas on existing and new folders» (см. рис. 6). В каждом из них есть возможность использовать имеющиеся шаблоны. Отличие методов заключается в возможности изменить в шаблоне существующие настройки для метода «Create Quota on Path».
Контролировать настройки назначаемой квоты можно с помощью окна «Summary of quota properties».
Сценарий оповещения пользователей
Создавая квоту, обратите особое внимание на вкладку Command в диалоговом окне. Использование сценариев может значительно расширить возможности FRSM. Создадим скрипт, формирующий список сотрудников на основе настроек системы безопасности квотируемой папки и отсылающий сообщение по электронной почте.
В качестве языка программирования рекомендуется выбрать VBScript или JScript. В данной ситуации это не принципиально. В качестве примера приведен сценарий на языке VBScript. Итог работы сценария – сообщение, разосланное всем сотрудникам, имеющим право доступа к квотируемой папке. Оно примерно такого содержания:
Тема сообщения:
Квота папки Отдел сбыта использована на 85% (8704.00 Мб).
Размер Квоты 10240.00 Мб.
Сообщение:
Уважаемый(ая) AIvanov
Вы использовали установленную квоту на папку Отдел сбыта на 85%.
Общий размер квоты 10240.00 Mб, из них занято 8704.00 Mб.
Необходимо удалить ненужные данные из этой папки.
С уважением, Служба поддержки.
|
Красным шрифтом выделены параметры, которые меняются в зависимости от ситуации: имя пользователя в сети, название квотируемой папки, рубеж в процентном соотношении, израсходованное и предельное дисковое пространство. Все эти параметры транслируются из FRSM в сценарий с помощью аргументов командной строки:
C:\Quota.vbs [Quota Path] [Quota Limit MB] [Quota Used MB] [Quota Used Percent] [Quota Free MB] [Source Io Owner]
где:
- [Quota Path] – локальный путь анализируемой папки;
- [Quota Limit MB] – размер квоты в Мб;
- [Quota Used MB] – использованный размер квоты в Мб;
- [Quota Used Percent] – занятое дисковое пространства в процентах;
- [Quota Free MB] – размер доступного для записи дискового пространства в Мб;
- [Source Io Owner] – пользователь, превысивший установленный рубеж.
Чтение аргументов командной строки в сценарии осуществляется следующим образом:
Set objArgs = WScript.Arguments
a0=objArgs(0)
a1=objArgs(1)
a2=objArgs(2)
a3=objArgs(4)
a4=objArgs(4)
a5=objArgs(5)
Зная путь к каталогу (параметр a0), с помощью объекта adsSeсurity получают доступ к параметрам безопасности NTFS этого каталога:
Set sec = CreateObject("AdsSecurity")
Set sd = sec.GetSecurityDescriptor("FILE://"+PathToFolder)
Set Dacl = sd.DiscretionaryAcl
For Each ace In Dacl
Wscript.Echo ace.Trustee
Wscript.Echo ace.AccessMask
Wscript.Echo ace.AceType
Next
Считанные данные необходимо отфильтровать и обработать. На каждую папку, расположенную на сервере, назначены права.
Перечень объектов, которые присутствуют в списке вкладки «Permissions», можно разделить на 2 части. Первая часть списка постоянна, вторая – вариативна.
В список постоянных объектов входят Domain Admins, System, Creator Owner.
Во второй – обычные пользователи, которым назначены права доступа в зависимости от выполняемых ими задач.
Фильтр объектов безопасности осуществляется с помощью функции InStr().
Имена объектов имеют формат Domain\ObjectName. В большинстве случаев объект – группа. Поскольку у группы может не быть почтового адреса, а пользователей, за редким исключением, он есть, то необходимо получить список пользователей, входящих в группу.
Для этого необходимо получить непосредственно имя группы:
GroupName=ace.Trustee
Right(cstr(GroupName), Len(GroupName)-InStr(GroupName,"\"))
Получив доступ к группе, с помощью провайдера WinNT можно определить список пользователей, входящих в нее, с помощью свойства объекта obj – members:
Set Obj=GetObject("WinNT://"&domain&"/"& group&",group")
For Each member In obj.members
Wscript.Echo cstr(member.name)
Next
Set Obj=nothing
Замечание: для операций с правами доступа к папке используют библиотеку ADsSecurity.dll, входящую в комплект ADSI Resource Kit. Перед использованием библиотеку необходимо зарегистрировать командой:
regsvr32 /s c:\Program Files\Microsoft\ADSI Resource Kit, Samples and Utilities\ResourceKit\ADsSecurity.dll
Для чтения назначенных прав доступа на объект используется объект AdsSecurity. Для назначения новых прав используется объект AccessControlEntry.
На заключительном этапе формируют текст сообщения и отправляют его по электронной почте с помощью CDO-объекта, используя CDO.Message и CDO.Configuration.
При создании письма должны быть указаны параметры:
- Адрес электронной почты пользователя, от имени которого отправляется сообщение. Он не должен быть фиктивным. Рекомендуется использовать адрес службы поддержки Support@Firm.Ru. В листинге использована переменная MAIL_FROM.
- DNS-имя почтового сервера, например Mail.Firm.ru. В листинге – переменная MAIL_SERVER.
- Адрес электронной почты получателя. Поскольку письмо отправляется нескольким пользователям одновременно, то в сценарии формируется одно письмо, отправляемое одновременно нескольким адресатам, поэтому в поле MAIL_TO заносят их почтовые адреса, разделенные символом (;).
- Тема письма в листинге сценария фигурирует в переменой MAIL_SUBJECT. Желательно, чтобы по теме письма сотрудник сразу мог понять, что это уведомление от службы о состоянии файловой системы, и не принимал его за спам:
MAIL_SUBJECT="Квота папки "+right(a0,len(a0)-cstr(a0,"\")) +" использована на "+a3+"% ("+a(2)+" Мб). Размер квоты "+a(1)+" Мб"
- Сообщение, отсылаемое пользователям, содержится в переменной MAIL_BODY. Для форматирования сообщения рекомендуется использовать для перехода на новую строку встроенную константу vbNewLine, для отбивки текста – константу табуляции vbNewTab:
mail_body = mail_body + "Уважаемый(ая) " + mail_to + "!"+ vbNewLine
mail_body = mail_body + "Вы использовали установленную квоту папки " + right(a0,len(a0)-cstr(a0,"\")) +" на " + a3 + "%." + vbNewLine
mail_body = mail_body + "Общий размер квоты на папку" + a1+ " MB, из них занято " + a2 +" MB." + vbNewLin + vbNewLine
mail_body = mail_body + "Необходимо удалить ненужные данные с этой папки." + vbNewLin + vbNewLine + vbNewTab
mail_body = mail_body + "С уважением, Служба поддержки." + vbNewLin + vbNewLine
Листинг отправки сообщения:
MAIL_FROM="Support@Firm.Ru"
MAIL_SERVER="Mail.Firm.ru"
MAIL_TO=""
MAIL_BODY=""
MAIL_SUBJECT=""
…
MAIL_SUBJECT=…
MAIL_BODY = MAIL_BODY + …
…
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = MAIL_SERVER
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
Flds.Update
iMsg.Configuration = iConf
iMsg.To = MAIL_TO
iMsg.HTMLBody = MAIL_BODY
iMsg.From = MAIL_FROM
iMsg.Subject = MAIL_SUBJECT
iMsg.Send
Полный листинг сценария смотрите на сайте журнала www.samag.ru в разделе «Исходный код».
File Screening Management
Помогает ограничивать запись файлов указанных форматов (mp3, wav, avi, vob и т. д.) в квотируемую папку. Структура File Screening Management (см. рис. 7) повторяет структуру Quota Management: существуют предустановленные шаблоны – File Screen Templates, на основе которых создают новые шаблоны и сами правила – File Screens. Присутствует дополнительный раздел File Groups, в нем наборы расширений, обобщенные в группы.
Рисунок 7. Раздел File Screening Management
File Groups
В разделе File Groups находится список групп (см. рис. 8), в которых перечислены характерные расширения файлов. Этот список может быть изменен. Для этого достаточно два раза кликнуть на нужные группы. В появившемся меню присутствует два списка. В первом списке перечислены расширения файлов, которые нельзя будет записать в квотируемую папку. Второй список – список исключений из первого списка. Файлы с указанными расширениями можно записать в квотируемую папку. Приоритет списка файлов исключений выше приоритета списка файлов включений.
Рисунок 8. Раздел File Groups
Приведу пример. Системному администратору необходимо запретить запись файлов с расширением AVI, однако части из них – имеющим в начале имени символы MP4 необходимо разрешить доступ. Для решения этой задачи добавляют в список «Files to Include» все файлы с расширением AVI: *.AVI и нажимают кнопку «Add», в список «Files to Exclude» – MP4*.AVI, также нажимают кнопку «Add», затем «OK».
Всего в состав File Groups по умолчанию входит 11 групп: Audio and Video Files, Backup Files, Compressed Files, E-mail Files, Executable Files, Office Files, System Files, Temporary Files, Text Files, Web Page Files
Список групп можно пополнять новыми, выбрав в контекстном меню «File Groups», вызываемого правой кнопкой мыши, «Create File Group».
File Screen Templates
В File Screen Templates по умолчанию несколько шаблонов: Block Audio and Video Files, Block E-mail Files, Block Executable Files, Block Image Files, Mirror Executable and System Files. Все, кроме последнего, – активные шаблоны, последний – пассивный. Файловый экран, созданный на основе активного шаблона, запрещает доступ файлам указанного типа и при их попытке записать генерирует сообщение по хранящемуся в нем шаблону и либо записывает его в журнал событий, либо отсылает его по электронной почте, либо выполняет указанную команду. Перечень действий зависит от настроек шаблона.
Создание шаблона File Screen Templates полностью повторяет создание шаблона Quota Templates за исключением вкладки Settings (см. рис. 9). В ней указываются группы файлов из раздела File Groups, которые будет обрабатывать экран, созданный на основе данного шаблона. Здесь же можно создать новую группу файлов или отредактировать существующую. В этой вкладке также указывается тип шаблона: Active Screening или Passive Screening. Все остальные настройки были описаны в разделе Quota Templates.
Рисунок 9. Раздел File Screen Templates
File Screen
В отличие от Quotas в File Screen допускается создание объектов двух видов: File Screen и File Screen Exception.
File Screen
Принципы настройки File Screen идентичны с принципами настройки Quotas. Новый файловый экран можно создать полностью вручную или с помощью готового шаблона.
File Screen Exception
Благодаря наличию файловых групп – File Group, появилась возможность создавать ограничения непосредственно на основе групп, а не шаблонов. Основное отличие File Screen Exception (см. рис. 10) заключается в том, что из него невозможно отправить пользователю сообщение в какой-либо форме.
Рисунок 10. Вкладка «File Screen Exception»
Storage Reports Management
С помощью этой службы создают различные отчеты, в том числе она обеспечивает генерацию отчетов с помощью Scheduled Tasks. В контекстном меню службы присутствуют три варианта:
- Schedule a New Report Task…
- Add or Remove Reports for a Report Task…
- Generate Reports Now…
Schedule a New Report Task…
Если кликнуть на «Schedule a New Report Task…» левой кнопкой мыши, появится диалоговое окно с тремя вкладками «Settings», «Delivery» и «Sсhedule».
В первой из них – «Settings» (cм. рис. 11) – необходимо набрать список анализируемых папок Scope и указать тип файла отчета. Предлагается выбрать один или несколько форматов из следующего списка: DHTML, HTML, XML, CSV, TXT для просмотра в Internet Explorer, Microsoft Excel, Microsoft Word или экспортировать его в базу данных, например в SQL. Также в этой же вкладке предлагается выбрать одно или несколько событий, на основе которых будет сгенерировано сообщение. Предполагается, что в следующей вкладке – «Delivery» (cм. рис. 12) – в случае необходимости будет указан адрес электронной почты, по которому будет отправлен отчет. Таким образом, администратор и сотрудники службы поддержки будут оперативно получать информацию о состоянии квот.
Рисунок 11. Вкладка «Settings»
Рисунок 12. Вкладка «Delivery»
Особый интерес представляет вкладка Schedule (cм. рис. 13). С ее помощью можно настроить регулярную генерацию файла отчета, например XML. Во вкладке «Schedule» нажмите на кнопку «Create Schedule…». В появившемся окне приведен список задач, выполняемых Task Scheduled. Для пополнения списка нажмите кнопку «New». Расписание запуска задачи можно изменить здесь, выбрав частоту выполнения задачи и время ее пуска. Если необходим запуск задачи каждые 20 минут, то надо нажать на «Advanced» и включить раздел «Repeat Task». В доступных полях необходимо сделать изменения: в поле «Every» установить значение 20 (min), в поле «Duration» – 24 (hours).
Рисунок 13. Вкладка «Schedule»
Add or Remove Reports for a Report Task…
Для изменения параметров созданной задачи отчета необходимо воспользоваться вторым пунктом контекстного меню «Add or Remove Reports for a Report Task…». Если дважды кликнуть на ранее созданную надпись, то видно, что все кнопки недоступны и можно только посмотреть существующие настройки.
Чтобы изменить расписание «Scheduled», необходимо в Панели управления запустить программу Scheduled Task и открыть там соответствующую задачу. FSRM создает задачи, имена которых соответствуют следующему шаблону – Имя задачи + {GUID}, например FSRM_Report_Task{85aa8287-16b7-41f3-8af8-e44d235af653}.
Generate Reports Now…
Часто бывают ситуации, в которых необходимо создать свежий отчет, и нет времени ждать, когда по расписанию создастся новый. Для решения такой задачи программисты Microsoft предусмотрели третий пункт контекстного меню «Generate Reports Now…». Появляющееся диалоговое окно в точности повторяет окно «Schedule a New Report Task…». Единственное различие – отсутствие вкладки «Schedule». Сформированные отчеты находятся в %systemdrive%/storage/reports/scheduled.
Заключение
Несмотря на недостатки, которые можно ликвидировать с помощью скрипта, думаю, утилита будет востребована системными администраторами и использована, например, в системе обмена данными между подразделениями в крупных организациях.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|