Файловый сервер, наряду с роутером, можно без преувеличения назвать предметом первой необходимости для любой организации. Использование ОС Linux для такого сервера выглядит весьма привлекательно, во всяком случае в небольших организациях, где не требуется тесной интеграции с AD. А сэкономленные на стоимости Windows Server и клиентских лицензий к нему деньги будут весьма кстати в наши кризисные времена.
Мы будем рассматривать настройку файлового сервера на примере нашей условной сети, в которой уже присутствует роутер, настройку которого мы рассматривали ранее, хотя никто не мешает объединить эти функции на одном сервере.

Основными требованиями к файловому серверу являются производительность и надежность дисковой подсистемы, также не следует забывать о регулярном резервном копировании. Производительность сервера во многом будет зависеть от быстродействия жестких дисков, конфигурации дискового массива и файловой системы. При этом надежность и быстродействие зачастую являются противоположными величинами. Поэтому уделим этому вопросу отдельное внимание.
Имеет смысл разнести ОС и пользовательские данные по различным винчестерам, это позволит увеличить быстродействие избежав конкуренции за головки HDD между ОС и пользовательскими запросами. Для хранения данных следует использовать жесткие диски повышенной надежности (например серии Western Digital RE3), объединенные в массив RAID1 (зеркало) или RAID10, если требуется повышенное быстродействие. Проведенные нами эксперименты показали, что для современных систем разница в быстродействии между программным RAID и RAID организованным с помощью интегрированного в обычную (не серверную!) материнскую плату контролером полностью отсутствует. В обоих случаях обработка запросов ложится на плечи ЦПУ, быстродействия которых сегодня более чем достаточно для выполнения данной задачи.
В качестве платформы для файлового сервера будем использовать уже знакомый нам Ubuntu Server 9.10. На этапе установки системы следует отказаться от автоматической разметки жестких дисков и выполнить данную операцию вручную. В нашем примере мы будем использовать два жестких диска, первый из них предназначен для системы и его можно разметить автоматически.
Для этого выбираем в списке нужный нам диск и далее следуем указаниям мастера. Никаких изысков с системным диском не требуется, вполне достаточно будет создать на нем swap раздел размером 0,5 - 1 Гб, и корневой раздел на оставшемся пространстве, именно такой результат вы получите выбрав автоматическую разметку.
Второй диск (дисковый массив) размечаем отдельным разделом и создаем для него собственную точку монтирования, например /data. В качестве файловой системы мы рекомендуем выбрать XFS, по результатам проведенного нами тестирования (которое мы опубликуем позднее) XFS показала наилучшие результаты, уверенно опередив конкурентов.
В результате должно получится что-то аналогичное рисунку ниже. Еще раз проверяем правильность разметки, если надо вносим исправления. До этого момента все еще можно изменить. Убедившись, что все сделано правильно подтверждаем наш выбор и записываем изменения на диск.
После чего продолжаем установку, отказавшись от выбора готовых ролей. Несмотря на то, что на этом этапе можно выбрать роль Samba сервера и автоматически установить все необходимые пакеты, мы не советуем этого делать. Самостоятельная установка даст вам больше знаний о назначении того или иного пакета и позволит вам осмысленно подходить к настройке и локализации неисправностей, если они вдруг возникнут. Если же вы знаете что и как делать, то зачем вам это руководство?
С параметрами секции все предельно понятно, название секции (в квадратных скобках) определяет имя общего ресурса. Первый параметр указывает путь к нему, второй и третий разрешают гостевой доступ и запись соответственно. Сохраняем файл конфигурации и перезапускаем Samba:
После чего наш сервер должен быть виден в сетевом окружении Windows и на нем будет доступна общая папка 1СBases.
Для удаленного администрирования Samba рекомендуем установить предоставляющий web-интерфейс пакет Swat:
Для того, чтобы воспользоваться всеми возможностями пакета необходимо будет авторизоваться под root'ом. Но по умолчанию в Ubuntu root не имеет пароля, поэтому зададим его (и не забудьте, что теперь для выполнения административных задач вам нужно вводить именно его) и перезагрузимся:
Теперь в любом браузере достаточно набрать http://имя_сервера:901 и, после авторизации, получить полный доступ к настройкам Samba.
Авторами Swat являются разработчики Samba, поэтому можно расценивать это решение как "родное". Действительно Swat предоставляет полный доступ ко всем настройкам Samba и позволяет выполнять практически любые задачи без ручной правки smb.conf.
Основными требованиями к файловому серверу являются производительность и надежность дисковой подсистемы, также не следует забывать о регулярном резервном копировании. Производительность сервера во многом будет зависеть от быстродействия жестких дисков, конфигурации дискового массива и файловой системы. При этом надежность и быстродействие зачастую являются противоположными величинами. Поэтому уделим этому вопросу отдельное внимание.
Имеет смысл разнести ОС и пользовательские данные по различным винчестерам, это позволит увеличить быстродействие избежав конкуренции за головки HDD между ОС и пользовательскими запросами. Для хранения данных следует использовать жесткие диски повышенной надежности (например серии Western Digital RE3), объединенные в массив RAID1 (зеркало) или RAID10, если требуется повышенное быстродействие. Проведенные нами эксперименты показали, что для современных систем разница в быстродействии между программным RAID и RAID организованным с помощью интегрированного в обычную (не серверную!) материнскую плату контролером полностью отсутствует. В обоих случаях обработка запросов ложится на плечи ЦПУ, быстродействия которых сегодня более чем достаточно для выполнения данной задачи.
В качестве платформы для файлового сервера будем использовать уже знакомый нам Ubuntu Server 9.10. На этапе установки системы следует отказаться от автоматической разметки жестких дисков и выполнить данную операцию вручную. В нашем примере мы будем использовать два жестких диска, первый из них предназначен для системы и его можно разметить автоматически.
Сразу рекомендуем установить Midnight Commander и SSH для удобства администрирования:
sudo apt-get install mcsudo apt-get install sshДля этого у вас должна быть настроена сеть и доступ в интернет для этого сервера, в нашем случае все сетевые настройки были получены по DHCP еще на этапе установки, в противном случае следует настроить сеть вручную, как это сделать описано здесь.
Теперь перейдем непосредственно к настройке роли файлового сервера. Для ее реализации нам потребуется Samba, этот пакет предоставляет общий доступ к файлам и принтерам клиентам сетей Microsoft.
Для настройки отредактируем файл /etc/samba/smb.conf, начнем с глобальной секции, параметры которой применяются для всех сервисов. Зададим имя рабочей группы:
Для доступа к ресурсам файлового сервера без авторизации на нем зададим следующий параметр:
Если сервер имеет несколько сетевых интерфейсов, например совмещен с роутером, то можно (и нужно) ограничить доступ к файловому серверу внутренней сетью. Допустим у нас eth0 - внешняя сеть, eth1 - внутренняя, для работы только с внутренним интерфейсом укажем:
Первоначально этих настроек достаточно, не забываем сохранить изменения. Рассмотрим настройки сервисных секций, допустим нам нужен общий ресурс 1CBases для размещения баз 1C:Предприятие. Создадим новый каталог /data/1CBases, и установим полные права на него для всех:
В самом конце smb.conf добавляем следующую секцию:
Теперь перейдем непосредственно к настройке роли файлового сервера. Для ее реализации нам потребуется Samba, этот пакет предоставляет общий доступ к файлам и принтерам клиентам сетей Microsoft.
sudo apt-get install sambaДля настройки отредактируем файл /etc/samba/smb.conf, начнем с глобальной секции, параметры которой применяются для всех сервисов. Зададим имя рабочей группы:
[global]workgroup = WORKGROUPДля доступа к ресурсам файлового сервера без авторизации на нем зададим следующий параметр:
security = shareЕсли сервер имеет несколько сетевых интерфейсов, например совмещен с роутером, то можно (и нужно) ограничить доступ к файловому серверу внутренней сетью. Допустим у нас eth0 - внешняя сеть, eth1 - внутренняя, для работы только с внутренним интерфейсом укажем:
interfaces = lo, eth1bind interfaces only = trueПервоначально этих настроек достаточно, не забываем сохранить изменения. Рассмотрим настройки сервисных секций, допустим нам нужен общий ресурс 1CBases для размещения баз 1C:Предприятие. Создадим новый каталог /data/1CBases, и установим полные права на него для всех:
sudo mkdir /data/1CBasessudo chmod 777 /data/1CBasesВ самом конце smb.conf добавляем следующую секцию:
[1CBases]path = /data/1CBasesguest ok = yeswriteable = yesС параметрами секции все предельно понятно, название секции (в квадратных скобках) определяет имя общего ресурса. Первый параметр указывает путь к нему, второй и третий разрешают гостевой доступ и запись соответственно. Сохраняем файл конфигурации и перезапускаем Samba:
sudo /etc/init.d/samba restartПосле чего наш сервер должен быть виден в сетевом окружении Windows и на нем будет доступна общая папка 1СBases.
sudo apt-get install swatДля того, чтобы воспользоваться всеми возможностями пакета необходимо будет авторизоваться под root'ом. Но по умолчанию в Ubuntu root не имеет пароля, поэтому зададим его (и не забудьте, что теперь для выполнения административных задач вам нужно вводить именно его) и перезагрузимся:
sudo passwd rootsudo rebootТеперь в любом браузере достаточно набрать http://имя_сервера:901 и, после авторизации, получить полный доступ к настройкам Samba.

В очередной раз спешу сказать спасибо автору!!!
Если возможно пожелание :) про OpenLDAP :)
буду крайне признателен!
p.s.: у меня дети в школе прониклись UBUNTU :) уже приносят диски и просят записать им образ :))) чтоб дома поставить :) а когда они увидели CS поднятый под Wine :)))))) то ещё больше возжелали Ubuntu себе доммой :))))
> Если возможно пожелание :) про OpenLDAP :)
Если только к концу месяца. Сейчас готовится большой аналитический материал по файл-серверам и две статьи по 1С Предприятию.
Как всегда очень информативная и легкопонятная статья, спасибо. Только на один нюанс хотелось бы указать: если так поднять ФС на машине, которая является шлюзом (о возможности чего в статье упоминается), шары будут видны извне, что часто лишнее, но можно легко заставить samba слушать только выбранные интерфейсы в samba.conf, применимо к статье о шлюзе:
interfaces = lo, eth1
bind interfaces only = true
Да, спасибо, упустил это из виду, добавлю в статью.
А возможно ли при помощи Samba работать с файлами DansGuardian шлюза? Т.е. скачать на удалённый компьютер, "доработать" в AcelPad, и закачать обратно. Естественно администратору... :))
Если я правильно понял, для этого проще использовать доступ через протокол sftp (в примерах этого сайта он нам пришёл как маленькая приятность в пакете OpenSSH). Ubuntu Desktop умеет так подключаться своими средствами, если я правильно помню, а из под Windows можно с помощью программок для этого. Мне больше нравится WinSCP.
>А возможно ли при помощи Samba работать с файлами DansGuardian шлюза?
Можно через Samba, но лучше при помощи sftp (он установлен вместе с OpenSSH)через WinSCP или Filezilla. Достоинством этого метода является то, что доступ будет иметь только авторизованный пользователь. Для правки конфигов нужно подключатся под root'ом, только не забудьте задать ему пароль.
Можете написать статью как установить VPN сервер на ubuntu. У меня не получается разобраться с iptables.
Буду очень признателен.
Обязательно напишем, где-то на конец апреля.
"Использование ОС Linux для такого сервера выглядит весьма привлекательно, во всяком случае в небольших организациях", а что для больших организаций Linux никак не получиться (или этот процесс будет более трудоемкий)?
Почему же нет, получится. Только для больших организаций, как правило, более оптимальным решением будет использование платформы Windows Server. Причин тому довольно много, основные: однородность инфраструктуры и полноценная интеграция в AD.
А что-нибудь наподобие AD имеется ли в Linux дистрах, как я понимаю самым таким корпоративным linux является Red Hat, в чем он уступает а в чем превосходит Win Server'ы
OpenLDAP и т.п., однако полноценной замены AD до сих пор нет. Если касаться функций наиболее востребованных малым и средним бизнесом - это групповые политики, которых в Линукс нет и перспективы их появления туманны. Хотя в Samba4 обещают поддержку GPO, как говорится, поживем - увидим.
Как уже говорил ранее все статьи очень хороши и хочться ещё и ещё :) много интересного и главне очень легко и понятно описанно автором.
Очень сейчас актуально про OpenLDAP почитать... Очень надеюсь, и думаю не только я, что данная статья в скоросте появиться у вас :)
Жду с огромным не терпением :)
p.s.:
на данный момент имеем шлюз в инет с фильтром, натом и куидом и всё красиво крутиться и рубиться (листы в фильтре пополнил), плюс имеем отдельный сервак под самбой :) используем как файл сервер :) всё фунциклирут нормально :)))) всё под 9.10 :) очень теперь надо на этот отдельный самба сервер натянуть OnepLDAP посему сидим курим маны и плюсом ждём статью :)
К сожалению OpenLDAP откладывается как минимум на месяц. В 9.10 обнаружился довольно серьезный и до сих пор не исправленный баг #447099 No password set on install of slapd-2.4.18-0ubuntu1, который сильно затрудняет установку и первоначальную настройку OpenLDAP, особенно для новичков. Конечно это обходится вручную, но стоит ли? Поэтому ждем 10.04, после чего еще раз вернемся к этому вопросу.
о как! :( досадно, ну да ладно :) как говориться "И опыт сын ошибок трудных, и гений парадоксов друг..." посему кто не ошибается, тот не ищет :) а посему надеюсь в 10.04 это исправят дело и мы увидим статью из под вашего пера, так сказать :)
Осталось 6 дней всего :)
Здравствуйте. Прежде всего позвольте поблагодарить за великолепные статьи по работе 1С на ubuntu. Уже запустил 8.2.10.82 платформу на 10.04 релиз. работает вполне нормально.
Однако вот такой вопрос возник. на Убунту помимо 1С я по вашей статье установил Сквид и Самбу (Linux настройка роутера). Но при работе выяснил такой факт - строка для заворачивания траффика на Сквид вероятно работает некорректно:
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -d ! 10.0.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.0.0.1:3128
При этой строке недоступен файловый сервер и сервер 1С.
у меня правда не 10.0.0.0 подсеть внутренняя , а 192.168.10.1 и строка выглядит так:
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.10.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.10.1:3128
Проверьте, что у вас прописано в Windows/System32/drivers/etc/hosts и пропишите туда строку вида 192.168.10.1 SERVERNAME
Потому как вышеописанная строка работает так:
Заменить адрес назначения и порт(PREROUTING) для пакетов пришедших на eth1 (-i eth1), кроме пакетов с адресами назначения 192.168.10.0/24 (-d ! 192.168.10.0/24), по протоколу tcp с портами назначения 80 и 8080 (-p tcp -m multiport --dport 80,8080) на адрес 192.168.10.1 порт 3128
Еще один вариант - возможно изменившийся синтаксис конструкции -d ! 192.168.10.0/24, попробуйте ! -d 192.168.10.0/24
Также рекомендую прочитать http://www.opennet.ru/docs/RUS/iptables хотя бы по диагонали, чтобы для вас цепочки правил iptables перестали быть китайской грамотой и приобрели смысл.
Можно так сказать мольба :))) опять на тему OpenLDAP :) Ubuntu обновили до десяточки :) очень очень очень ждём статью про OpenLDAP на сервере где стоит Samba (он отдельный, шлюз шлюзом, так и скуид и фильтр и всё такое, а самба сама по себе крутится на отдельной машинке) :)
Очень и очень ждём статейку :)
Про OpenLDAP будет где-то к концу месяца, пока все силы уходят на крупное внедрение 1С, параллельно готовим ряд материалов на эту тему. Также в недописанном виде есть еще две статьи, надо заканчивать.
ок. :) всё понимаю :)
очень буду ждать и надеятся :)
вам удачно внедрить без проблем 1С :)
новые статьи это очень хорошо :) буду ждать :)
Доброго времени суток,
Статья замечатльная! Но есть вопрос.
Выше описана установка и натсройка samba на сервер, а возможно ли все это сделать на desktop версию U 9.10? Если да, то если можно - подробности. Так как причина та же: раздача баз 1С на win компы.
Заранее благодарен за ответ.
Принципиальной разницы нет. Можете проделать все вышесказанное в терминале или в Synaptiс'e прсто установите пакеты samba и swat. Настройка проводится аналогично описанному в статье.
Тогда еще вопрос, у нас две базы. Создал два каталога. Они не будут блокироваться пользователями при одновременном использованиим соответственно, настройки сделал как указано выше. ПРосто читал, что такое существует. Вместо SWAT использую Samba Server Configuration Tool 1.2.63. А SWAT устновил, но почему то он в браузере не запускается, видимо надо делать reboot, но немогу, так как на этом компе еще DHCP-server + общий доступ в инет.
Заранее благодарен за ответ.
Про блокировки 1С вопрос интересный, здесь все зависит от объема базы, характера и активности работы с ней. Для небольших баз, скорее всего, проблем с блокировками не будет.
SWAT без перезагрузки в браузере отображаться не будет, здесь вы совершенно правы, но это непринципиально, какой инструмент настройки использовать, в большинстве случаев достаточно один раз настроить файл конфигурации руками.
Ок, спасибо за ответ. Тогда (прошу прощения) следующий вопрос: Что значит небольшая база? Одна база 315 Mb - два пользователя. Другая - 520 Mb - три пользователя. И что значит активность? Работают постоянно. Просто вопрос принципиальный - переводить базы на другое место (Ubuntu - SAMBA) или оставить на том же месте.
Заранее благодарен за ответ.
По объему базы средние, пользователей мало, думаю проблем не будет. По собственному опыту - на таких базах проблемы начинаются от 7-10 активных пользователей, примерно от 5 пользователей начинает заметно снижаться производительность в файловом режиме.
Понял. Большое спасибо за уделенное мне время! Буду пробовать... Вернуть на старое место ни когда не поздно :)
На работе нет интернта. Где можно скачать а потом поставить вручную Самбу?
http://packages.ubuntu.com/
Не забывайте про зависимости.
Спасибо большое авторам блога!!! С вашей помощью удалось очень быстро перевести компьютерный класс с винды на линукс.
Но у меня одна проблема: сделал все как здесь написано, но такая фигня: к общей папке могут подключаться только 1 компьютер с линуксом и компьютеры с виндой, а 10 других компьютеров с линуксом не подключаются - Не могу получить список доступных ресурсов сервера.
Настраивал сервер пок ашим статьям:
Настройка роутера (NAT + DHCP + Squid)
Настраиваем контент-фильтр роутера (DansGuardian)
Настраиваем антивирусный фильтр роутера (ClamAV)
Дополняем контент-фильтр роутера антивирусом (DansGuardian + ClamAV)
все работает отлично, а с общей папкой проблема.
Группа у всех одинаковая - school.
В чем может быть проблема: почему некоторые компы подключаются, а некоторые нет?
На остальных компьютерах с линуксом Samba-клиент установлен?
Конечно, дистрибутив ubuntu 10.04. Я и на форум задавал вопрос - никто не может помочь. А может где-то блокироваться файрволлом? Может в iptables какое правило вписать разрешающее входящие и исходящие запросы с ip клиентов на определенные порты? только я в этом ничего не понимаю :-)) (пока не понимаю)
Давайте сделаем так:
sudo aptitude search samba-client
и посмотрите что в выводе. Если samba-client установлен, выполните
smbclient -N -L имя_сервера
вы должны получить список ресурсов или ошибку. От этого уже пойдем плясать дальше.
по той же проблеме вывод smbclient -N -L ubuntusrv:
Connection to ubuntusrv failed (Error NT_STATUS_CONNECTION_REFUSED)
С виндовых компьютеров доступ есть
по ip-адресу доступ к самба-серверу всё же есть :)
У вас проблема с обращением к самбе по имени хоста. Желательно, чтобы имя сервера в smb.conf совпадало с именем машины. И вообще, следует помнить, что протокол SMB разработан для сетей на базе Windows.
netbios name = ? совпадает. Только что то мне не нравится что на пинг по имени отвечает внешний интерфейс. Может именно здесь разгадка ко всем моим вопросам?
Здравствуйте. Как можно ограничить размер сетевой папки? Размер файлов в в папке?
Не планируете статей по samba4?Хотя она и альфа версия но многие говорят что весьма рабочая и вполне используют на предприятии.
При гостевой модели никак. При авторизации на уровне пользователя можно устанавливать квоты с помощью пакета quotes, но при этом все пользователи samba должны быть системными пользователями.
По samba 4 пока не планируем, разве что обзорную. Альфа версия и использовать на предприятии на наш взгляд вещи несовместимые. А если завтра она умрет вместе с вашими данными в самый неподходящий момент, кто будет отвечать?
Здравствуйте. Скажите пожалуйста, поддерживает ли ubuntu аппаратные raid массивы? Например Adaptec 5405.
В каждом конкретном случае надо смотреть отдельно, начиная с сайта производителя. Adaptec 5405 работает "из коробки".
Спасибо за тестирование!
Изрядно порадовал меня Ваш сайт - чувствуется толковый подход к делу. Respect.
УБЕДИТЕЛЬНАЯ просьба провести повторное подобное тестирование после выхода Samba 3.6.x, когда появится стабильный релиз! Там заявлена полная поддержка SMB2. Реально *никсы, кроме бесплатности менее требовательны к ресурсам, а ведь не у всех есть:
Процессор - 1,4 ГГц (процессор с архитектурой x64).
Память - Минимальный объем: 512 МБ.
Требования к свободному пространству на диске - Минимальный объем: 32 ГБ.
Так же бытует мнение, что *никсовые системы стабильнее. Буду ещё более признателен, т.к. есть возможность установить лиц. Windows Server 2008 R2, но хочется освоить *никс в качестве сервера (Ubuntu в частности).
Спасибо!
Oops, промазал :)
Мой пред. коммент относится к статье http://interface31.ru/tech_it/2010/08/fajlovyj-server-kakuyu-os-i-fajlovuyu-sistemu-vybrat.html
Я так и понял.
Здравствуйте,в очередной раз хочу обратиться к Вам за помощью.Имеется 6 общих папок где всем все разрешено,пример одной из них:
[global]
log file = /var/log/samba/log.%m
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
obey pam restrictions = yes
map to guest = bad user
encrypt passwords = true
passwd program = /usr/bin/passwd %u
passdb backend = tdbsam
dns proxy = no
netbios name = samba
server string = %h server (Samba, Ubuntu)
unix password sync = yes
workgroup = WORKGROUP
os level = 64
security = user
guest ok = Yes
syslog = 0
usershare allow guests = yes
panic action = /usr/share/samba/panic-action %d
max log size = 1000
pam password change = yes
[Raznoe]
comment = Raznoe
path = /clamfs/hdd1500/raznoe
read only = no
public = yes
create mask = 0777
create mask = 0777
все прекрасно работает,но проблемы начинаются когда создаю папку с доступом по паролю
[Administration]
comment = Administration
path = /clamfs/hdd1500/administration
read only = no
browseable = no
valid users = director,zavuch и т.д.
create mode = 777
directory mode = 777
пользователи созданы и добавлены в самбу
(sudo useradd director
sudo smbpasswd -a director)
а проблема следующая-с двух компьютеров я прекрасно к ней подключаюсь,меняю пользователей,а с других пишет что отказано в доступе,компьютеры из одной подсети,находятся в одной рабочей группе,никаких ограничений на подключение с определенным ip не настраивал,подскажите пожалйста в чем может быть проблема?
Посмотрите что у вас пишет в лог /var/log/samba/ сразу после отказа в подключении.
log.laborant
laborant (192.168.1.17) connect to service administrator initially as user director (uid=1002, gid=1002) (pid 18264)
log.teacher
teacher (192.168.1.36) connect to service administration initially as user director (uid=1002, gid=1002) (pid 21178)
log.biologia
[2011/04/14 13:51:16, 0] smbd/service.c:942(make_connection_snum)
Can't become connected user!
log.secretar-pc
[2011/04/13 19:59:31, 0] smbd/service.c:942(make_connection_snum)
Can't become connected user!
Забыл добавить,в 3 и 4 случае так же пытался зайти под пользователем director
попробую прописть acl в опции монтирования,о результатах напишу