Создание файлового сервера на Ubuntu 9.10 (Samba)

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

Имеет смысл разнести ОС и пользовательские данные по различным винчестерам, это позволит увеличить быстродействие избежав конкуренции за головки HDD между ОС и пользовательскими запросами. Для хранения данных следует использовать жесткие диски повышенной надежности (например серии Western Digital RE3), объединенные в массив RAID1 (зеркало) или RAID10, если требуется повышенное быстродействие. Проведенные нами эксперименты показали, что для современных систем разница в быстродействии между программным RAID и RAID организованным с помощью интегрированного в обычную (не серверную!) материнскую плату контролером полностью отсутствует. В обоих случаях обработка запросов ложится на плечи ЦПУ, быстродействия которых сегодня более чем достаточно для выполнения данной задачи.

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

Ubuntu-Samba-2010-03-30-23-45-45.pngДля этого выбираем в списке нужный нам диск и далее следуем указаниям мастера. Никаких изысков с системным диском не требуется, вполне достаточно будет создать на нем swap раздел размером 0,5 - 1 Гб, и корневой раздел на оставшемся пространстве, именно такой результат вы получите выбрав автоматическую разметку.

Ubuntu-Samba-2010-03-30-23-46-40.pngВторой диск (дисковый массив) размечаем отдельным разделом и создаем для него собственную точку монтирования, например /data. В качестве файловой системы мы рекомендуем выбрать XFS, по результатам проведенного нами тестирования (которое мы опубликуем позднее) XFS показала наилучшие результаты, уверенно опередив конкурентов.

Ubuntu-Samba-2010-03-30-23-47-45.pngВ результате должно получится что-то аналогичное рисунку ниже. Еще раз проверяем правильность разметки, если надо вносим исправления. До этого момента все еще можно изменить. Убедившись, что все сделано правильно подтверждаем наш выбор и записываем изменения на диск.

Ubuntu-Samba-2010-03-30-23-47-54.pngПосле чего продолжаем установку, отказавшись от выбора готовых ролей. Несмотря на то, что на этом этапе можно выбрать роль Samba сервера и автоматически установить все необходимые пакеты, мы не советуем этого делать. Самостоятельная установка даст вам больше знаний о назначении того или иного пакета и позволит вам осмысленно подходить к настройке и локализации неисправностей, если они вдруг возникнут. Если же вы знаете что и как делать, то зачем вам это руководство?

Сразу рекомендуем установить Midnight Commander и SSH для удобства администрирования:

sudo apt-get install mc
sudo apt-get install ssh

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

Теперь перейдем непосредственно к настройке роли файлового сервера. Для ее реализации нам потребуется Samba, этот пакет предоставляет общий доступ к файлам и принтерам клиентам сетей Microsoft.

sudo apt-get install samba

Для настройки отредактируем файл /etc/samba/smb.conf, начнем с глобальной секции, параметры которой применяются для всех сервисов. Зададим имя рабочей группы:

[global]
workgroup = WORKGROUP

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

security = share

Если сервер имеет несколько сетевых интерфейсов, например совмещен с роутером, то можно (и нужно) ограничить доступ к файловому серверу внутренней сетью. Допустим у нас eth0 - внешняя сеть, eth1 - внутренняя, для работы только с внутренним интерфейсом укажем:

interfaces = lo, eth1
bind interfaces only = true

Первоначально этих настроек достаточно, не забываем сохранить изменения. Рассмотрим настройки сервисных секций, допустим нам нужен общий ресурс 1CBases для размещения баз 1C:Предприятие. Создадим новый каталог  /data/1CBases, и установим полные права на него для всех:

sudo mkdir /data/1CBases
sudo chmod 777 /data/1CBases

 В самом конце smb.conf добавляем следующую секцию:

[1CBases]
path = /data/1CBases
guest ok = yes
writeable = yes

С параметрами секции все предельно понятно, название секции (в квадратных скобках) определяет имя общего ресурса. Первый параметр указывает путь к нему, второй и третий разрешают гостевой доступ и запись соответственно. Сохраняем файл конфигурации и перезапускаем Samba:

sudo /etc/init.d/samba restart

После чего наш сервер должен быть виден в сетевом окружении Windows и на нем будет доступна общая папка 1СBases.

Windows-XP-Professional-2-2010-04-02-00-46-11.pngДля удаленного администрирования Samba рекомендуем установить предоставляющий web-интерфейс пакет Swat:

sudo apt-get install swat

Для того, чтобы воспользоваться всеми возможностями пакета необходимо будет авторизоваться под root'ом. Но по умолчанию в Ubuntu root не имеет пароля, поэтому зададим его (и не забудьте, что теперь для выполнения административных задач вам нужно вводить именно его) и перезагрузимся:

sudo passwd root
sudo reboot

Теперь в любом браузере достаточно набрать http://имя_сервера:901 и, после авторизации, получить полный доступ к настройкам Samba.

Windows-XP-Professional-2-2010-04-02-01-30-35.pngАвторами Swat являются разработчики Samba, поэтому можно расценивать это решение как "родное". Действительно Swat предоставляет полный доступ ко всем настройкам Samba и позволяет выполнять практически любые задачи без ручной правки smb.conf.

Комментариев: 74

В очередной раз спешу сказать спасибо автору!!!

Если возможно пожелание :) про OpenLDAP :)
буду крайне признателен!

p.s.: у меня дети в школе прониклись UBUNTU :) уже приносят диски и просят записать им образ :))) чтоб дома поставить :) а когда они увидели CS поднятый под Wine :)))))) то ещё больше возжелали Ubuntu себе доммой :))))

Как всегда очень информативная и легкопонятная статья, спасибо. Только на один нюанс хотелось бы указать: если так поднять ФС на машине, которая является шлюзом (о возможности чего в статье упоминается), шары будут видны извне, что часто лишнее, но можно легко заставить samba слушать только выбранные интерфейсы в samba.conf, применимо к статье о шлюзе:

interfaces = lo, eth1
bind interfaces only = true

А возможно ли при помощи Samba работать с файлами DansGuardian шлюза? Т.е. скачать на удалённый компьютер, "доработать" в AcelPad, и закачать обратно. Естественно администратору... :))

Если я правильно понял, для этого проще использовать доступ через протокол sftp (в примерах этого сайта он нам пришёл как маленькая приятность в пакете OpenSSH). Ubuntu Desktop умеет так подключаться своими средствами, если я правильно помню, а из под Windows можно с помощью программок для этого. Мне больше нравится WinSCP.

Можете написать статью как установить VPN сервер на ubuntu. У меня не получается разобраться с iptables.
Буду очень признателен.

"Использование ОС Linux для такого сервера выглядит весьма привлекательно, во всяком случае в небольших организациях", а что для больших организаций Linux никак не получиться (или этот процесс будет более трудоемкий)?

А что-нибудь наподобие AD имеется ли в Linux дистрах, как я понимаю самым таким корпоративным linux является Red Hat, в чем он уступает а в чем превосходит Win Server'ы

Как уже говорил ранее все статьи очень хороши и хочться ещё и ещё :) много интересного и главне очень легко и понятно описанно автором.
Очень сейчас актуально про OpenLDAP почитать... Очень надеюсь, и думаю не только я, что данная статья в скоросте появиться у вас :)
Жду с огромным не терпением :)

p.s.:
на данный момент имеем шлюз в инет с фильтром, натом и куидом и всё красиво крутиться и рубиться (листы в фильтре пополнил), плюс имеем отдельный сервак под самбой :) используем как файл сервер :) всё фунциклирут нормально :)))) всё под 9.10 :) очень теперь надо на этот отдельный самба сервер натянуть OnepLDAP посему сидим курим маны и плюсом ждём статью :)

о как! :( досадно, ну да ладно :) как говориться "И опыт сын ошибок трудных, и гений парадоксов друг..." посему кто не ошибается, тот не ищет :) а посему надеюсь в 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

Можно так сказать мольба :))) опять на тему OpenLDAP :) Ubuntu обновили до десяточки :) очень очень очень ждём статью про OpenLDAP на сервере где стоит Samba (он отдельный, шлюз шлюзом, так и скуид и фильтр и всё такое, а самба сама по себе крутится на отдельной машинке) :)
Очень и очень ждём статейку :)

ок. :) всё понимаю :)
очень буду ждать и надеятся :)
вам удачно внедрить без проблем 1С :)
новые статьи это очень хорошо :) буду ждать :)

Доброго времени суток,
Статья замечатльная! Но есть вопрос.
Выше описана установка и натсройка samba на сервер, а возможно ли все это сделать на desktop версию U 9.10? Если да, то если можно - подробности. Так как причина та же: раздача баз 1С на win компы.
Заранее благодарен за ответ.

Тогда еще вопрос, у нас две базы. Создал два каталога. Они не будут блокироваться пользователями при одновременном использованиим соответственно, настройки сделал как указано выше. ПРосто читал, что такое существует. Вместо SWAT использую Samba Server Configuration Tool 1.2.63. А SWAT устновил, но почему то он в браузере не запускается, видимо надо делать reboot, но немогу, так как на этом компе еще DHCP-server + общий доступ в инет.
Заранее благодарен за ответ.

Ок, спасибо за ответ. Тогда (прошу прощения) следующий вопрос: Что значит небольшая база? Одна база 315 Mb - два пользователя. Другая - 520 Mb - три пользователя. И что значит активность? Работают постоянно. Просто вопрос принципиальный - переводить базы на другое место (Ubuntu - SAMBA) или оставить на том же месте.
Заранее благодарен за ответ.

Понял. Большое спасибо за уделенное мне время! Буду пробовать... Вернуть на старое место ни когда не поздно :)

На работе нет интернта. Где можно скачать а потом поставить вручную Самбу?

Спасибо большое авторам блога!!! С вашей помощью удалось очень быстро перевести компьютерный класс с винды на линукс.

Но у меня одна проблема: сделал все как здесь написано, но такая фигня: к общей папке могут подключаться только 1 компьютер с линуксом и компьютеры с виндой, а 10 других компьютеров с линуксом не подключаются - Не могу получить список доступных ресурсов сервера.

Настраивал сервер пок ашим статьям:
Настройка роутера (NAT + DHCP + Squid)
Настраиваем контент-фильтр роутера (DansGuardian)
Настраиваем антивирусный фильтр роутера (ClamAV)
Дополняем контент-фильтр роутера антивирусом (DansGuardian + ClamAV)

все работает отлично, а с общей папкой проблема.

Группа у всех одинаковая - school.

В чем может быть проблема: почему некоторые компы подключаются, а некоторые нет?

Конечно, дистрибутив ubuntu 10.04. Я и на форум задавал вопрос - никто не может помочь. А может где-то блокироваться файрволлом? Может в iptables какое правило вписать разрешающее входящие и исходящие запросы с ip клиентов на определенные порты? только я в этом ничего не понимаю :-)) (пока не понимаю)

по той же проблеме вывод smbclient -N -L ubuntusrv:
Connection to ubuntusrv failed (Error NT_STATUS_CONNECTION_REFUSED)
С виндовых компьютеров доступ есть

по ip-адресу доступ к самба-серверу всё же есть :)

netbios name = ? совпадает. Только что то мне не нравится что на пинг по имени отвечает внешний интерфейс. Может именно здесь разгадка ко всем моим вопросам?

Здравствуйте. Как можно ограничить размер сетевой папки? Размер файлов в в папке?
Не планируете статей по samba4?Хотя она и альфа версия но многие говорят что весьма рабочая и вполне используют на предприятии.

Здравствуйте. Скажите пожалуйста, поддерживает ли ubuntu аппаратные raid массивы? Например 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 не настраивал,подскажите пожалйста в чем может быть проблема?

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 в опции монтирования,о результатах напишу

Комментировать

Подписка на блог

Подпишись  на обновление блога по RSS Мы в Твиттере

 

Архивы по месяцам

Реклама

Статистика

Работает на  Movable Type 5.12

 

Яндекс.Метрика

География

free counters

Об этой записи

Сообщение опубликовано 30.03.2010 00:54. Автор — Уваров А.С..

Предыдущая запись — Ubuntu Server. Настраиваем контент-фильтр роутера (DansGuardian)

Следующая запись — Резервное копирование баз данных MS SQL Server 2000

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