Аспирин от настройки прав на файловом сервере. Файловый сервер

Обновлено: 05.12.2016 Опубликовано: 2016 год или раньше

В качестве примера используется Windows Server 2012 R2. Инструкция разбита на несколько шагов и представляет из себя полный цикл настройки файлового хранилища для использования в малых и средних компаниях.

Шаг 1. Выбор оборудования и подготовка сервера

В качестве сервера, желательно, выбрать профессиональное оборудование. Системные требования для файлового сервера не высокие:

  • Процессор может быть самый простой;
  • Оперативная память также не сильно используется;
  • Дисковая система — самый основной компонент. Ее объем зависит от специфики бизнеса. Примерная формула — не менее 15 Гб на пользователя и не менее 1 Тб на сервер. До 50 пользователей можно рассматривать диски SATA, после — SAS или SSD.

Например, для компании в 300 пользователей подойдет сервер с процессором Xeon E3, 8 Гб ОЗУ и 5 Тб дискового пространства на дисках SAS 10K.

Дополнительные требования

  1. Для обеспечения сохранности информации при выходе из строя жесткого диска, необходим RAID-контроллер. Настройка последнего выполняется из специального встроенного программного обеспечения, которое запускается при загрузке сервера;
  2. Сервер должен быть подключен к источнику бесперебойного питания;
  3. Необходимо предусмотреть резервное копирование. Для этого нужен дисковый накопитель (внешний жесткий диск) или другой сервер.

Шаг 2. Установка Windows и настройка системы

Установка системы

На этом шаге все стандартно, за исключением одного нюанса: разбивая во время установки Windows жесткий диск, стараемся выделить небольшую часть (70 - 120 Гб) для системы и все остальное под данные. Если выделить много дискового пространства для системного раздела, увеличится время его обслуживания и фрагментация, что негативно скажется на производительности и надежности системы в целом.

Настройка системы

  1. Проверяем правильность настройки времени и часового пояса;
  2. Задаем понятное имя для сервера и, при необходимости, вводим его в домен ;
  3. Если сервер не подключен напрямую к сети Интернет, стоит отключить брандмауэр ;
  4. Для удаленного администрирования, включаем удаленный рабочий стол ;
  5. Устанавливаем все обновления системы.

Шаг 3. Базовые настройки файлового сервера

Это стандартные действия, которые выполняются при настройке обычного файлового сервера.

Установка роли и вспомогательных компонентов

Как правило, данная роль устанавливается вместе с Windows. Остается только это проверить и доустановить компоненты, которые нужны для полноценной эксплуатации сервиса.

Открываем Диспетчер серверов . Он может быть запущен из панели быстрого запуска.

Нажимаем Управление - Добавить роли и компоненты .

В открывшемся окне оставляем Установка ролей и компонентов и нажимаем Далее .

В следующем окне выбираем нужный сервер (выбран по умолчанию, если работаем на сервере, а не через удаленную консоль) и нажимаем Далее .

Среди ролей находим Файловые службы и службы хранилища , раскрываем ее и проверяем, что установлены галочки напротив следующих компонентов:

  • Службы хранения;
  • Файловый сервер;

Если данные службы не установлены, выбираем их и нажимаем Далее .

В окне Выбор компонентов просто нажимаем Далее .

Откроется окно Подтверждение установки компонентов . Нажимаем Установить и после окончания процесса перезагружаем сервер.

Настройка шары (общей папки)

Создаем первую папку, которую хотим предоставить в общее использование. Затем кликаем по ней правой кнопкой мыши и нажимаем Свойства :

В открывшемся окне переходим на вкладку Доступ и нажимаем Расширенная настройка :

Ставим галочку Открыть общий доступ к этой папке и нажимаем кнопку Разрешения :

Предоставляем полный доступ всем пользователям:

* конечно же, мы не будем давать доступ всем пользователям, но для этого есть вкладка безопасность (см. ниже).

Нажимаем OK и еще раз OK .

Теперь переходим на вкладку Безопасность и нажимаем Дополнительно :

В открывшемся окне нажимаем Отключение наследования и Преобразовать унаследованные разрешения в явные разрешения этого объекта .

Нажимаем OK и Изменить .

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

Совет: старайтесь управлять правами на ресурсы только при помощи групп. Даже если доступ необходимо предоставить только одному человеку!

Теперь нажимаем OK два раза. Папка настроена для общего использования и в нашем примере доступна по сетевому пути \\fs1\Общая папка .

Шаг 4. Тюнинг файлового сервера или профессиональные советы

Данные настройки, по сути, представляют секреты того, как сделать файловый сервер лучше, надежнее и безопаснее. Применяя их, администраторы создают более правильную и профессиональную среду ИТ.

DFS

С самого начала стоит создавать общие папки в пространстве имен DFS . На это есть две основные причины:

  1. При наличии или появлении нескольких файловых серверов пользователям будет удобнее находить общие папки в одном месте.
  2. Администратор легко сможет создать отказоустойчивую систему при необходимости.

Теневые копии

Позволят вернуться к предыдущим версиям файлов. Это очень полезная функция позволит не только восстановить некорректно отредактированный документ, но и вернуть случайно удаленный файл или папку.

Аудит

Аудит позволит вести протокол доступа к данным — понять, кто и когда удалил важные данные или внес в них изменения.

Шаг 5. Настройка средств обслуживания

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

Резервное копирование

Для файлового сервера все просто — необходимо резервировать все рабочие папки и файлы. Лучшим решением будет ежедневное копирование новых данных, и с определенной периодичностью (например, раз в месяц), создавать полный архив.

Мониторинг

Мониторить стоит:

  1. Сетевую доступность сервера;
  2. Свободное дисковое пространство;
  3. Состояние жестких дисков.

Шаг 6. Тестирование

Тестирование состоит из 3-х основных действий:

  1. Проверить журналы Windows и убедиться в отсутствие ошибок. В случае их обнаружения, необходимо устранить все проблемы.
  2. Выполнить действия анализатора соответствий рекомендациям.
  3. Провести живой тест работы сервиса с компьютера пользователя.

Допустим, сотрудник Петя увольняется со скандалом, и вам нужно сделать так, чтобы он ничего напоследок не поломал. Или Вася переводится в другой отдел, и ему не следует больше копаться в файлах своего бывшего подразделения.


Теперь самое интересное: нужно каким-то образом вспомнить, к каким конкретно данным у этих товарищей был доступ, и что следует прикрыть в первую очередь.


Если с доступом к приложениям все очевидно и просто, то о файловых ресурсах такого не скажешь.


Наш корпоративный файловый сервер представлял собой достаточно печальное зрелище. С одной стороны - накопленные за годы объемы данных, а с другой - наследие в виде нигде не учтенных прав доступа, предоставленных предыдущими поколениями администраторов. Все это происходило еще до внедрения системы заявок на доступ и оперативно уже никак не разобраться.


В то время мы рассмотрели несколько программ для сбора информации о правах доступа. Но они очень долго обрабатывали тонны данных файлового сервера, да и формируемые отчеты требовали дополнительной доработки напильником.


Вот что мы пробовали:

В итоге, на Powershell был написан скрипт для сбора данных через Get-Acl и последующего автоматического формирования отчета по форме, согласованной со службой безопасности. Но сразу всплыл ряд минусов:

    Слишком неудобно каждый раз запускать скрипт и часами ждать, пока сформируется матрица доступов;

    Не подошел вариант ведения учета в виде бумажных заявок. Главным образом, из-за отсутствия механизма автоматического поиска;

  • Использование разных систем для ведения учета чревато дополнительной работой по периодической проверке и обновлению данных.

Лучшим решением проблемы стала организация структурированной системы доступов на основе ресурсных групп.

О ресурсных группах

Обычно администраторами применяются два метода предоставления доступа:

    Непосредственно учетной записи пользователя. Если не вести подробный протокол назначения прав, то быстро возникнет неразбериха;

  1. Права на группу ролевого доступа. Тот же недостаток, что и в предыдущем случае. К тому же, без протокола назначения прав сложно понять, используется ли конкретная группа кем-нибудь, или может быть удалена.

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

    Предоставляют права доступа только к одному сетевому ресурсу или подкаталогу, которые могут иметь несколько групп доступа с разными правами;

    Могут быть вложенными;

  • При необходимости предоставляют права только к каталогам. Желательно избегать назначения прав на отдельные файлы.

Нарушение этих требований разрушит всю концепцию структурированной системы доступов.

Копнем чуть глубже

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


За годы использования такой системы я ни разу не пожалел о потраченном на подготовку времени. Теперь можно в любой момент посмотреть членство пользователя в группах и сразу определить, куда у него есть доступ.


Структурированная система доступов ориентирована на файловые серверы Windows, но без проблем может быть адаптирована и под другие ОС.



Структурированная система доступов на основе ресурсных групп - это не вариация на тему ролевого доступа, а его важный элемент

Как выдаются "пропуска"

Доступ к общему сетевому ресурсу или подкаталогу предоставляется только соответствующим ресурсным группам - локальным "Administrators" и “System”. Каждый общий каталог должен рассматриваться как корень дерева, в котором все доступы наследуются подкаталогами от родительской папки. Права доступа на подкаталог могут быть предоставлены независимо от прав на родительский каталог. Я буду иллюстрировать основные идеи на примере собственного сервера и его структуры папок.


Если нужно на каком-то подуровне отключить наследование или установить запрет доступа – значит, с точки зрения информационной безопасности, структура каталогов выбрана неверно. Информация ограниченного доступа не должна размещаться на ресурсе с более широким доступом из-за риска ее компрометации.


Глубина вложений каталогов на файловом сервере может быть произвольной. Но если часто приходится выдавать права на подкаталоги ниже 3 – 5 уровня, то такая структура станет перегруженной и потребует оптимизации.



Имя нового файлового сервера "FILESRV1". На файловом сервере в корне диска для данных создан каталог с именем “Shares”. Отключено наследование прав доступа от родительского каталога и ограничен доступ


Открываемые в общий доступ каталоги будут создаваться только в папке "Shares". Имя такого каталога должно совпадать с соответствующим именем общего файлового ресурса – например, “Public”.



Для упорядоченного размещения данных в Active Directory создана структура организационных единиц "…\Groups\Shares...". Организационные единицы создаются для каждого файлового сервера и общего файлового ресурса. Для подкаталогов организационные единицы не создаются


Для примера я создал следующие ресурсные группы:

  • FILESRV1-Public-R

    FILESRV1-Public-W

    FILESRV1-Public-Новости-2016-R

  • FILESRV1-Public-Новости-2016-W

Последние две нужны для предоставления отдельным сотрудникам расширенных прав на каталог "2016".



Теперь нужно включить все это в состав группы "FILESRV1-Public"

Пара слов о выборе имен

В организационной единице с именем общего файлового ресурса создаются группы безопасности:

    "имя_сервера-имя_общего_файлового_ресурса" для просмотра дерева каталогов без доступа к данным;

    "имя_сервера-имя_общего_файлового_ресурса-R" для доступа к данным с правами чтения;

  • "имя_сервера-имя_общего_файлового_ресурса-W" для доступа к данным с правами на чтение и запись.

Эти группы обязательны для всех общих файловых ресурсов, в поле "описание" стоит указывать реальный сетевой путь.


Если нужно предоставить права, начинающиеся с имени подкаталога, то в организационной единице общего файлового ресурса создаются две группы безопасности:

    "имя_сервера-имя_общего_файлового_ресурса-цепочка_имен_каталогов_разделенных_тире-R"

  • "имя_сервера-имя_общего_файлового_ресурса-цепочка_имен_каталогов_разделенных_тире-W"

Когда выдаете права, отличные от "только чтение " или “чтение и запись ”, то вместо суффикса “R” или “W” используйте другую букву. Группы безопасности с особыми правами создаются только для тех каталогов, где это реально необходимо.


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


Для предоставления доступа по сети лучше выдавать права к общим ресурсам группе "Authenticated Users", но можно использовать и “Domain Users” или “Everyone”. Разрешения на уровне файловой системы не позволяют получить несанкционированный доступ к данным без явного разрешения.



На уровне файловой системы к каталогу "Public" предоставлены соответствующие права доступа для групп



Аналогично установлены права доступа для каталога "2016"



Никаких дополнительных действий с каталогом "Новости" выполнять не требуется


Теперь члены групп "FILESRV1-Public-Новости-2016-R" и “FILESRV1-Public-Новости-2016-W” получат доступ только к папке “2016”, а пользователи из “FILESRV1-Public-R” и “FILESRV1-Public-W” – к общему сетевому ресурсу “\FILESRV1\Public” и всем его подкаталогам.

Что в итоге

Конечно, при создании ресурсов масса времени уходит на подготовку, но зато мы получаем следующие преимущества:

    Освобождаем себя от постоянных работ по предоставлению доступа с помощью делегирования этих функций ответственным сотрудникам;

  • Можем в любое время посмотреть, какими правами и на какие папки обладает пользователь.

Даже если сейчас ваш файловый сервер похож скорее на большую флешку, то через 2 - 3 года он вполне может превратиться в традиционную «файлопомойку» со всеми вытекающими проблемами.


Если вы знаете более простые методики организации и контроля прав доступа – обязательно делитесь опытом в комментариях.

Введение

Возможно, вы всё же решились и собрались построить свой собственный файловый сервер. Но зачем вообще беспокоиться насчёт выделенного файлового сервера, когда настольные жёсткие диски вашего ПК уже предлагают больше 2 Тбайт пространства? Лично я собрал свой файловый сервер для резервирования данных отдельно от рабочего ПК.

Ещё одна хорошая причина для установки сетевого сервера заключается в облегчении доступа к данным с нескольких компьютеров. Например, если у вас имеется коллекция MP3, и вы хотите слушать музыку из коллекции на HTPC в гостиной комнате, то лучше всего хранить музыку централизованно и прослушивать её по сети.


Модуль Cooler Master 4-in-3 во внешних отсеках корпуса. Он позволил нам использовать на четыре жёстких диска больше, чем стандартно поддерживает корпус. Нажмите на картинку для увеличения.

Конечно, вы можете хранить любую коллекцию файлов на сервере без необходимости копировать многократно ваши данные на несколько систем. Если ваш файловый сервер настроен для использования дискового массива RAID 5 или RAID 6, то он сможет выдержать выход из строя одного жёсткого диска (или даже двух в случае RAID 6) без потери данных - в отличие от информации, хранящейся на единственном жёстком диске настольного ПК.

Почему не NAS?

Существует много различных типов файловых серверов и хранилищ. Самый простой способ хранения данных вне вашего компьютера заключается в использовании внешнего жёсткого диска, который стоит дёшево, работает быстро, а также обеспечивает гибкие возможности подключения. Если ваши данные умещаются на одном жёстком диске, то такой способ будет самым недорогим для резервирования ваших файлов.

Внешние жёсткие диски доступны с разными интерфейсами. Наиболее распространён интерфейс USB 2.0. Он работает не очень быстро (480 Мбит/с), но практически каждый компьютер оснащён портами USB. Ещё один популярный интерфейс - FireWire. Существуют две популярные скорости FireWire: 400 и 800 Мбит/с. Большинство внешних дисков, поддерживающих FireWire, оснащено интерфейсом со скоростью 400 Мбит/с. На практике он оказывается даже быстрее USB. Но, к сожалению, этот интерфейс проигрывает USB по универсальности. Самым современным (и быстрым) интерфейсом для внешних накопителей является eSATA. Он работает на скорости 3 Гбит/с и соответствует при этом производительности внутренних портов SATA; сегодня этот интерфейс даёт большую пропускную способность, чем способен дать любой механический жёсткий диск.


Мой старый файловый сервер. Обычный корпус с хорошим воздушным потоком. Нажмите на картинку для увеличения.

Все эти интерфейсы, благодаря которым накопитель подключается напрямую к компьютеру, являются примером сценария напрямую подключённых хранилищ (direct-attached storage, DAS). Сильные стороны DAS кроются в простоте, производительности и цене. С другой стороны, если основной компьютер выключен, вы не сможете получить доступ к файлам, расположенным на таком хранилище. Ещё одно ограничение следует из прямого подключения к основному компьютеру. Как правило, только этот компьютер сможет обратиться к хранящимся файлам, а если вы попытаетесь предоставить накопитель в общий доступ по сети, то при обращении клиентов к файлам на DAS производительность основного компьютера будет снижаться.

Ограничения напрямую подключённых хранилищ DAS можно обойти, если не подключать хранилище к компьютеру вообще, использовав для этой цели сеть - мы переходим к сетевым хранилищам (network-attached storage, NAS). Если хранилище NAS включено, то вы сможете получить к нему доступ с любого компьютера в сети. Скорее всего, вы будете подключать хранилище через гигабитный сетевой порт (Gigabit Ethernet), которого будет достаточно по скорости для большинства пользователей. Если гигабитного сетевого порта недостаточно, то для ваших задач наверняка потребуется high-end устройство с множеством гигабитных портов, ёмким хранилищем и поддержкой функции объединения портов (teaming).

Хранилища DAS и NAS часто содержат несколько жёстких дисков. Некоторые оснастки позволяют устанавливать пару винчестеров, а некоторые даже ещё больше. Оснастка может поддерживать массивы RAID 0 (чередование, увеличение скорости по сравнению с одним жёстким диском), RAID 1 (зеркалирование, защита от сбоя одного жёсткого диска) или RAID 5 (чередование с избыточностью, увеличивает скорость и защищает от сбоя одного жёсткого диска). Некоторые high-end хранилища могут даже поддерживать массивы RAID 6, которые аналогичны RAID 5, но могут выдерживать выход из строя двух жёстких дисков.

Впрочем, у упомянутых оснасток RAID есть свои ограничения. Стоят они недёшево. Например, хранилище Qnap TS-509 Pro обойдётся в $800 () без жёстких дисков, хотя оно поддерживает массивы RAID 5 и 6. С подобной системой, как и с большинством предварительно сконфигурированных хранилищ, вам придётся использовать предварительно установленное рабочее окружение, которое может быть не таким гибким, как предпочитаемое вами программное обеспечение. Наконец, если некоторые розничные хранилища NAS поддерживают расширение, большинство моделей ограничено одним портом eSATA или парой портов USB.

Что ж, давайте посмотрим, сможет ли обычное компьютерное "железо" достичь тех же целей, что и хранилище NAS.

Конечно, мы имеем в виду другое решение, которое дешевле и обеспечивает большую гибкость: сборка собственного файлового сервера. Причём никаких причин, которые мешали бы вам собрать такой сервер самостоятельно, просто нет. Сборка файлового сервера ничем не отличается от обычного компьютера - точно так же поступают энтузиасты, которые сами собирают свои системы, а не покупают собранные системные блоки в магазине.


Установленный модуль Cooler Master Stacker 4-in-3. Прекрасное устройство, если вы не меняете свои жёсткие диски часто. Нажмите на картинку для увеличения.

Конечно, при сборке файлового сервера придётся принять немало решений. Среди самых важных: какой объём данных вы планируете хранить, какая избыточность вам потребуется, а также сколько жёстких дисков вы планируете использовать. Если вы планируете хранить большие объёмы информации, то мы рекомендуем минимизировать цену одного гигабайта вместо покупки самых ёмких доступных жёстких дисков. Сегодня минимальная стоимость гигабайта наблюдается у жёстких дисков ёмкостью 1,5 Тбайт. Лично мне нравятся массивы RAID 5, поскольку они могут выдержать выход из строя одного жёсткого диска. Если вы планируете использовать больше восьми или десяти жёстких дисков, то лучше собрать несколько массивов RAID 5 на четырёх или пяти винчестерах каждый, либо использовать массивы RAID 6, чтобы защититься от сбоя более одного жёсткого диска.

Корпус


Штатно жёсткие диски устанавливаются в корпус в соответствующие крепления. Обратите внимание на 120-мм нагнетательный вентилятор, обдувающий жёсткие диски. Не менее важно, чтобы передняя панель корпуса пропускала достаточное количество холодного воздуха. Нажмите на картинку для увеличения.

Вам потребуется достаточно крупный корпус, чтобы вместить все ваши жёсткие диски. Впрочем, если вы уже купили слишком маленький корпус, никто не мешает позднее перенести систему в более крупную модель.

Корпус должен обеспечивать достаточное охлаждение жёстких дисков. В принципе, сегодня можно купить разнообразные модели корпусов, удовлетворяющие этому условию. Для первого файлового сервера я взял простой корпус. Он использовал 120-мм вентилятор для охлаждения жёстких дисков спереди, а также предусматривал 120-мм вытяжной вентилятор сзади. К нему я добавил модуль "Cooler Master 4-in-3" с отдельным 120-мм вентилятором для охлаждения жёстких дисков. Этот модуль прекрасно подходит для установки дополнительных винчестеров. Разве что для смены одного жёсткого диска приходится извлекать весь модуль целиком.

Для второго файлового сервера я выбрал две оснастки Supermicro SATA с "горячей" заменой, каждая из которых способна вместить пять жёстких дисков. Они стоят намного дороже модуля Cooler Master, но и предоставляют больше функций. Оснастки Supermicro использовали очень громкий 92-мм вентилятор (который я замедлил с помощью контроллера вентиляторов), поднимали тревогу, если вентилятор остановится или температура поднимется слишком сильно, а также отображали доступ к каждому жёсткому диску. Но, что удобнее всего, оснастка позволяла менять жёсткие диски, не открывая сам корпус, а если операционная система поддерживала "горячую" замену, то и без выключения компьютера.

Сетевой интерфейс


Материнская плата Asus CUR-DLS, два Pentium III 933 и 1,1 Гбайт памяти ECC. Нажмите на картинку для увеличения.

Для файлового сервера не помешает гигабитный сетевой интерфейс Gigabit Ethernet, который ускорит сетевые операции. Не помешает и поддержка jumbo-кадров, если ваш Ethernet-коммутатор и сетевой адаптер буду с ними работать (большинство новых устройств их поддерживают).

Изначально протокол Ethernet предусматривал максимальный размер кадра 1500 байт. Этого было достаточно, когда скорость сети составляла 10 Мбит/с. Когда была представлена гигабитная скорость вместе со стандартом Gigabit Ethernet, служебная информация, связанная с пакетами небольшого размера, стала весьма существенной. Поэтому индустрия де-факто согласилась поддерживать пакеты большего размера - был выбран размер 9000 байт. То есть вы можете передавать такое же количество данных, что и с пакетами стандартного размера, но число пакетов будет в шесть раз меньше, то же самое касается и объёма служебной информации.

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

С другой стороны, вы можете купить 8-портовыый коммутатор примерно за $40. Большинство современных материнских плат оснащены поддержкой Gigabit Ethernet "на борту", но если ваша материнская плата не поддерживает гигабитную сеть, то лучше купить сетевую карту PCI-X или PCI Express (PCIe) вместо 32-битной карты PCI. У нас имеется весьма успешный опыт работы с сетевыми картами PCI-X от Intel и Broadcom.

Блок питания


Интерьер корпуса. Конечно, он выглядит не так красиво с четырьмя кабелями PATA, семью жёсткими дисками, приводом DVD и проводами питания. Нажмите на картинку для увеличения.

Внутренние компоненты должны достаточно хорошо охлаждаться. Чем меньше тепла будет создаваться внутри, тем меньше придётся выбрасывать наружу. Поэтому лучше взять экономичные жёсткие диски , которые потребляют меньше энергии, чем стандартные модели. То же самое касается и процессоров - экономичные CPU могут снизить энергопотребление и тепловыделение системы. Мы рекомендуем взять оба варианта.

Кроме того, мы рекомендуем выбрать эффективный блок питания, соответствующий стандарту "80 PLUS". На рынке присутствуют блоки питания стандартов 80+ Bronze (82%) и 80+ Silver (85%) с разумной ценой. Кроме того, важно правильно подобрать мощность блока питания. Жёсткие диски потребляют больше всего энергии во время раскручивания пластин. Хороший контроллер жёстких дисков использует отложенный запуск пластин, чтобы минимизировать этот эффект. Впрочем, мы пока ещё не встречали контроллеры, интегрированные в чипсет, которые бы поддерживали эту функцию.

Оба моих сервера используют блоки питания с эффективностью выше 80%. Первый сервер построен на базе двух 933-МГц процессоров Pentium III, шести 250-Гбайт жёстких дисков и винчестера с операционной системой. Пиковое энергопотребление во время загрузки составляет 214 Вт, а энергопотребление при 100% нагрузке на CPU - 95 Вт. Второй сервер использует два 2,8-ГГц процессора Xeon с пониженным энергопотреблением и шесть 750-Гбайт жёстких дисков плюс винчестер с операционной системой. Пиковое энергопотребление во время загрузки составляет 315 Вт, во время бездействия - 164 Вт, а во время 100% нагрузки на CPU - 260 Вт.

Если у вас не установлено ещё шесть жёстких дисков в массиве или вы не используете очень горячий CPU, то вам не потребуется блок питания с заявленной мощностью выше 400 Вт. Конечно, блок питания должен давать достаточно энергии для различных линий напряжения, которые нужны компьютеру, но покупка модели на 750 Вт и выше станет пустой тратой денег. Да и работать такой блок питания будет менее эффективно, чем 400-Вт модель.

Память

Большинство энтузиастов не очень много времени уделяют надёжности работы памяти. Их больше интересуют тактовые частоты и задержки, которые в данном сценарии менее важны, чем надёжность. Когда данные поступают в файловый сервер или передаются на клиентские компьютеры, они сначала сохраняются в оперативной памяти. Да и данные на диске кэшируются тоже в памяти. Лучшие готовые файловые серверы используют память с коррекцией ошибок (error correcting code, ECC), а самые дешёвые построены на обычной памяти. На мой взгляд, вряд ли имеет смысл собирать высокопроизводительный файловый сервер, и при этом не использовать память ECC.


Карта контроллера Supermicro MV8, вставленная в слот PCI-X. Нажмите на картинку для увеличения.

Память вряд ли можно считать источником постоянных ошибок, но время от времени случайные ошибки могут происходить. По оценкам IBM, у 1 Гбайт памяти случайная ошибка происходит раз в неделю. Причиной подобных ошибок являются альфа-частицы в упаковке памяти и космические лучи. Однако у памяти ECC существует дополнительный механизм, который определяет и исправляет ошибки памяти. Стандартная память ECC может определять все 2-битовые ошибки в 64 битах памяти и исправлять 1-битовые ошибки. Есть контроллеры ECC и более высокого класса, например, которые IBM предлагает с памятью Chipkill.

Ошибки в областях памяти, которые будут перезаписаны перед чтением, либо в неиспользуемых областях памяти проблем не вызывают. Но ошибка памяти, которая каким-либо образом скажется на обработке данных, это уже плохо. Серьёзные серверные материнские платы, например, модели от Tyan и Supermicro, способны фиксировать ошибки памяти в журнале. Менее дорогие материнские платы, такие как Asus CUR-DLS и Asus NCCH-DL в моих серверах, поддерживают память ECC, но не журналируют ошибки памяти.

Есть чипсеты, которые не поддерживают память ECC вообще, и материнские платы на этих чипсетах тоже не будут поддерживать память ECC. Мы рекомендуем использовать только материнские платы с поддержкой ECC и устанавливать в них память ECC. Если вас серьёзно беспокоят ошибки памяти, то лучше всего выбирать материнскую плату с поддержкой технологии IBM Chipkill, которая определяет и исправляет многие многобитовые ошибки и даже может продолжать работу, если один чип памяти даст сбой.

Шины


120-мм вытяжной вентилятор сзади за чёрной решёткой. Нажмите на картинку для увеличения.

Большинство старых материнских плат поддерживают 32-битные слоты PCI, которые подключены к общей шине и совместно используют доступную пропускную способность. Если взглянуть на диаграмму чипсета этих материнских плат, то контроллер Ethernet, контроллеры IDE и SATA - все они подключены к шине PCI. Если сложить пропускную способность дисков и Ethernet, то мы упрёмся в теоретическое ограничение 133 Мбайт/с. Работать наша система, конечно, будет, но всё это приведёт к замедлению файлового сервера.

Существует большое количество старых серверных материнских плат, которые оснащены слотами PCI-X (не путать с PCI Express). Эти слоты более интересны, поскольку они используют шину, которая отделена от 32-битной шины PCI. Если вы установите контроллеры жёстких дисков в слоты PCI-X, то пропускной способности ввода/вывода ничего мешать не будет.

Мой первый файловый сервер использовал материнскую плату Asus CUR-DLS с 64-битными 33-МГц (266 Мбайт/с) слотами PCI-X. Второй файловый сервер был собран на материнской плате Asus NCCH-DL с 64-битными 66-МГц слотами PCI-X, которые поддерживают пропускную способность 533 Мбайт/с - быстрее, чем у шести моих накопителей SATA. Карта контроллера может работать с шиной до 133 МГц, что может дать пропускную способность до 1066 Мбайт/с на новых материнских платах.

Если ваша платформа поддерживает PCI Express, то слоты с количеством линий больше одной окажутся достаточными для домашнего файлового сервера, да и пропускная способность 266 Мбайт/с довольно хороша.

Есть ещё одно потенциальное "узкое место", которое нужно учитывать: соединение между южным и северным мостом на вашей материнской плате. Хотя Asus NCCH-DL оснащена 64-битными 66-МГц слотами PCI-X, связь между мостами осуществляется со скоростью всего 266 Мбайт/с. В теории это должно ограничивать пропускную способность ввода/вывода. К счастью, на практике проблемы с этим возникают редко, да и новые чипсеты обычно поддерживают более высокие скорости интерфейса между мостами.

Контроллер


Оснастки для жёстких дисков Supermicro. Им требуется всего два подключения питания. Я добавил контроллер вентилятора к каждой оснастке, чтобы замедлять скорость вращения. Нажмите на картинку для увеличения.

Многие современные материнские платы оснащаются шестью портами SATA 3 Гбит/с. У старых моделей может быть меньше портов, да и они могут использовать менее скоростной стандарт SATA 1,5 Гбит/с. Так что высока вероятность, что вам придётся докупать в систему карту контроллера.

На рынке можно найти разнообразные карты контроллеров с разными интерфейсами. Что касается новых систем, то наиболее популярны карты с интерфейсом PCI Express. Данный интерфейс обеспечивает значительную пропускную способность, а старый интерфейс PCI-X даёт достаточную пропускную способность для старых систем. Для менее дорогих систем можно использовать 32-битную шину PCI, хотя она будет ограничивать производительность.

Существуют обычные карты-контроллеры накопителей (host bus adapters) и RAID-контроллеры. Если использовать терминологию Linux, то карты RAID можно разделить на две группы: FakeRAID и настоящий RAID. Если карта выполняет вычисления информации избыточности XOR самостоятельно, то её можно считать настоящим RAID-контроллером. Иначе она будет использовать CPU для этих вычислений и программные драйверы.

Наш новый сервер использует карту Supermicro SAT2-MV8 с восемью портами SATA 3 Гбит/с. Это контроллер с интерфейсом PCI-X, который может работать с частотой до 133 МГц. Карта весьма приятная, с хорошей программной поддержкой. Мы выбрали её по той причине, что наша материнская плата не имеет портов SATA 3 Гбит/с, но оснащена слотами PCI-X.

Мы также приобрели простую карту-контроллер HBA Rosewill с четырьмя портами SATA 1,5 Гбит/с. Она использует 32-битный интерфейс PCI, хотя может работать с интерфейсом на 33 и 66 МГц. Карта поддерживает конфигурации JBOD, которые и требуются для программного RAID. Наша плата Asus NCCH-DL оснащена контроллером Promise PDC20319, то есть ещё одним простым HBA, однако он не поддерживает JBOD, поэтому был бесполезен в данном случае.


Мы использовали две PCI-карты Promise PATA. Они распложены на выделенной шине, к которой не подключены другие устройства. Нажмите на картинку для увеличения.

Неплохо также проверить поддержку под Linux вашего контроллера (если вы планируете устанавливать эту систему на ваш файловый сервер). Для этого следует узнать модель контроллера накопителей на карте и проверить поддержку его под Linux. Конечно, если производитель карты предоставляет драйвер под Linux, то вам повезло.

Жёсткие диски

Мы рекомендуем жёсткие диски SATA. Они сегодня доступны в больших ёмкостях, да и стоят весьма доступно. Архитектура SATA относится к типу "точка-точка", то есть пропускную способность интерфейса с другими устройствами делить не придётся. Я собрал свой первый файловый сервер на жёстких дисках с параллельным интерфейсом ATA (PATA), при этом к каждому каналу я подключил два винчестера. Но если один жёсткий диск выйдет из строя, то контроллер, скорее всего, запишет в сбойные диски оба винчестера на канале и повиснет. Если вы купите приличный RAID-контроллер PATA, то он наверняка будет поддерживать по одному жёсткому диску на канал, чтобы предотвратить эту проблему. Конечно, в случае PATA придётся смириться с мешаниной кабелей. Это одна из причин, почему индустрия перешла на интерфейс SATA.

Центральный процессор


Asus NCCH-DL. Два процессора Xeon (SL7HU) с пониженным энергопотреблением работают на 2,6 ГГц. Нажмите на картинку для увеличения.

Для файлового сервера вам вряд ли потребуется суперскоростной CPU. Но неплохой идеей можно считать установку более одного процессора. Один CPU будет нагружен расчётом информации избыточности (необходима для RAID 5), а если же вы выбрали RAID 6, то процессору придётся выполнять ещё больше расчётов, на что потребуется больше ресурсов CPU.

Наш первый файловый сервер использовал два 933-МГц процессора Pentium III. Мы наблюдали 100% загрузку CPU во время перестройки массива RAID, поэтому мы рекомендуем более быстрые процессоры. Второй файловый сервер использовал два 2,8-ГГц процессора Xeon с поддержкой Hyper-Threading, при этом мы так ни разу и не видели, чтобы оба ядра получали 100% загрузку CPU.

2-ГГц двуядерного процессора AMD, скорее всего, будет достаточно. Конечно, новые процессоры работают более эффективно, поэтому если у вас есть под рукой более современная платформа, то вы сможете сэкономить энергию и получить вместе с тем лучшую производительность.

Если бы я покупал новый процессор для файлового сервера сегодня, то наверняка выбрал бы медленный и дешёвый AMD Phenom II. Причина кроется в том, что сам процессор стоит дёшево, материнские платы под него тоже стоят весьма разумно, процессор работает без сильного нагрева, а чипсеты материнских плат, как правило, поддерживают память ECC и Chipkill.


Мой новый файловый сервер на основе Cooler Master Stacker. Спереди можно заметить две оснастки Supermicro SATA c "горячей" заменой, в каждую из которых можно установить до пяти жёстких дисков. Нажмите на картинку для увеличения.

UPS

Независимо от выбранного "железа", вам следует использовать UPS, чтобы система была защищена от сбоев электросети. Можно купить дешёвый UPS, но качественный блок бесперебойного питания окупит себя в долгосрочной перспективе. Как минимум, UPS должен позволить вам выключить файловый сервер стандартным образом до окончания заряда UPS, что требует три-пять минут автономной работы. Ещё приятно и то, что у большинства UPS присутствует защита от перенапряжения в сети.

Цены

Конечно, разброс цен довольно существенный, и в итоге затраты на файловый сервер зависят от требуемого объёма для хранения данных, а также от "железа", которое лежит у вас без дела. Ниже приведена смета типичного файлового сервера энтузиаста.

  • Корпус: $150 за модель, схожую с моим Cooler Master Stacker 810. При выборе учитывайте возможность установки большого количества жёстких дисков.
  • Блок питания: $50 за 350-Вт модель с сертификацией 80 PLUS.
  • Жёсткие диски: шесть 1-Тбайт винчестеров, примерно $80 каждый.
  • Жёсткий диск для операционной системы: бесплатный, если под рукой есть 10-Гбайт накопитель.
  • DVD-привод: $20.
  • Материнская плата: $100 за б/у материнскую плату для установки двух процессоров Opteron с 2-4 Гбайт памяти ECC, если у вас под рукой нет ненужного "железа". Можно начать с материнской платы для двух процессоров Pentium III, которую можно найти за копейки. За новую материнскую плату с гарантией будьте готовы отдать больше $150.
  • Память: $50.
  • CPU: $100.
  • Контроллер SATA: $100.

Итоговая цена составляет около $420-$620 плюс $540 за жёсткие диски. За эти деньги вы получите файловый сервер с 5-Тбайт массивом RAID 5, который можно легко расширить до восьми или большего количества жёстких дисков. Если вы собираете сервер самостоятельно, то наверняка сможете использовать различные старые комплектующие. В результате вы получите сервер дешевле, чем большинство моделей NAS, которые могут вмещать четыре или пять жёстких дисков, ваша система будет работать быстрее, и будет обеспечивать намного лучшую гибкость.

Программное обеспечение


Интерьер нового файлового сервера. Нажмите на картинку для увеличения.

Итак, файловый сервер собран. Для тестов мы рекомендуем использовать Knoppix Linux - систему, которая загружается с CD или DVD. Вы сможете проверить, распознает ли ОС Linux всё ваше "железо". Что касается Windows, то под эту систему практически всегда есть драйверы от производителя, которые достаточно хорошо протестированы. Вместе с тем под Linux предлагают драйверы далеко не все производители, поэтому зачастую приходится использовать драйверы, написанные энтузиастами Linux.

Конечно, более опытные производители предоставляют драйверы под Linux. Например, все беспроводные контроллеры Intel 802.11x снабжаются драйверами напрямую от Intel. Мы рекомендуем брать "железо" тех производителей, кто занимается поддержкой своего оборудования под Linux.

Старое "железо", которому исполнилось несколько лет, практически всегда имеет хорошую поддержку со стороны сообщества Linux. Если в драйверах были обнаружены какие-либо ошибки, то велика вероятность, что они исправлены.

Кроме того, вполне возможно, что самые свежие дистрибутивы Linux будут поддерживать ваше "железо", а чуть более старый дистрибутив Knoppix - не будет. Такая ситуация часто случается с самым новым "железом". В общем, запишите на диск самый свежий дистрибутив Knoppix, укажите в BIOS загрузку с CD, после чего ваш компьютер запустит Knoppix.

Ещё одной полезной возможностью будет загрузочный тест memtest86+. Обычно я запускаю его в течение суток, чтобы убедиться в стабильной работе системы и отсутствии ошибок памяти. Нет никакого смысла устанавливать ОС и программное обеспечение, если система работает нестабильно.

Операционная система


Задняя часть корпуса со 120-мм вытяжным вентилятором. Нажмите на картинку для увеличения.

Существует несколько вариантов выбора операционных систем, которые поддерживают программные массивы RAID, например, ОС Microsoft Windows Server с поддержкой RAID 5. Можно даже настроить Windows XP для поддержки RAID 5 .

Впрочем, мы не рекомендуем Windows по нескольким причинам. Первая: эта система стоит дорого. Цены на Windows Server 2008 начинаются примерно с уровня $999. Ещё одна причина заключается в том, что Windows не даёт таких современных опций по поддержке RAID, как другие операционные системы. Наконец, Windows (по мнению автора) менее безопасная и надёжная ОС, что немаловажно для файловых серверов.

Существует несколько способов оценки надёжности и безопасности, при этом вы можете найти немало отчётов, некоторые из которых финансируются самими производителями. Например, хороший . Хотя он и датирован 2004 годом, основные моменты остаются верными и сегодня. Для 40 лидирующих уязвимостей рейтинг опасности системы Microsoft составил 54,67, а Red Hat Linux - 17,96. Если вы планируете использовать ОС Windows для файлового сервера, то сначала ознакомьтесь с отчётом.

Затем можно выбрать одну из доступных версией BSD: OpenBSD, FreeBSD и другие. Они бесплатные, при этом отличаются разумной надёжностью и безопасностью. Но самым главным недостатком является то, что эти ОС не такие современные, как Linux в отношении поддержки RAID.

ОС OpenSolaris тоже бесплатная, при этом она надёжная и безопасная. Но аппаратная поддержка у этой ОС весьма ограничена. С другой стороны, здесь вы получите ZFS - на сегодня это наиболее продуманная, надёжная и стабильная файловая система. Кроме того, она включает поддержку RAID 5 и RAID 6. Данная ОС не такая популярная, как Linux, но если вы с ней знакомы, то выбор для файлового сервера окажется весьма достойным.

Наконец, есть Linux, которая тоже бесплатная, надёжная и безопасная. У этой ОС замечательная поддержка "железа", присутствует поддержка массивов RAID 5, RAID 6, RAID 10 и практически любых других видов RAID. Linux развивается довольно быстро, новое "железо" практически сразу получает поддержку, да и новые программные функции добавляются регулярно. Когда вы обновляете систему Linux, вам даже не требуется её перегружать, поэтому системы Linux могут непрерывно работать многие месяцы или даже годы.

Существует множество разных дистрибутивов Linux. Некоторые, подобные Red Hat, обеспечивают лучшую долгосрочную поддержку по сравнению с другими дистрибутивами. Другие, подобные Fedora (тоже распространяется Red Hat), нацелены на быструю интеграцию в дистрибутив новых программ. Основное преимущество Ubuntu заключается в дружественности к пользователю, поэтому данный дистрибутив наиболее популярен. Вы можете .

Мы же выбрали Mandriva Linux, поскольку раз в два года выходят новые релизы, поддержка длится несколько лет, да и все необходимые функции в этом дистрибутиве присутствуют. Впрочем, подойдёт любой приличный дистрибутив Linux. Дополнительную документацию можно получить . По ссылке вы найдёте очень хорошую инструкцию по Mandriva, с которой мы рекомендуем ознакомиться перед установкой Linux впервые.

На мой взгляд, это очень отличная тема для описания. В своё время было интересно поднять какой-либо сервер на своём компьютере для более удобного обмена файлами. Попробовав различные и даже протокол, я понял, что мне они абсолютно не нравятся, первые выглядят в браузере, мягко говоря, убого, вторые хотя и имеют свои явные преимущества, но подключать сетевой диск на чужих компьютерах не хочется. Но в один (прекрасный и солнечный) день я встретил программу под названием HTTP File Server (сокращенно HFS), установил, настроил (так как я начинал работать с самой чистой версией, с этим были некоторые проблемы) и почти влюбился в эту программу. Для доступа к моим файлам теперь достаточно иметь любой браузер, так как весь доступ осуществляется, через обычную веб-страницу. Также у меня создана папка, в которую человек, знающий пароль, может добавить файл прямо через браузер. Файлы с сервера можно качать как по одному, так и сразу папками. Программа сама поместит папку в.tar архив без сжатия и отправит для скачивания. При этом сайт имеет довольно опрятный вид, хотя при желании (и достаточных знаниях) можно самому написать шаблон сайта. Признайте, что это отличный способ для легкой и удобной передачи файлов?

И вот пример страницы, которую вы будете видеть в окне браузера, как видите всё красиво и опрятно, на форуме программы можно найти много красивых шаблонов:

Хотя её меню полностью на английском языке, для меня это не является помехой. А для тех, кто плохо знает английский, в конце статьи я постараюсь максимально полно объяснить за что отвечают все разделы меню и как ими пользоваться.

Итак, перейдем к установке и настройке HTTP File Server:

1) Чтобы несколько сэкономить вам время, я приготовил сборку HFS с русскоязычным шаблоном сайта и произвел первоначальную настройку самой программы. Скачать сборку можно с моего Яндекс.Диск’а по ссылке . Если же вы уверены в своих способностях, то можете скачать чистую версию программу на официальном сайте http://www.rejetto.com/hfs/

На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа.

Спасибо за внимание:)

Понравилась статья? Поделиться с друзьями: