Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
22 Ноября 2024, 00:06:53


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: Файловый сервер. Танцуем самбу.  (Прочитано 26470 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« : 28 Мая 2008, 02:40:40 »

Один из самых популярных вопросов вопросов начинающих linuxоидов - как организовать файловый сервер на linuxе (следствие ограничений серверных возможностей неспециализированных версий Windows).

Необходимость завести "файловую помойку" может быть обусловлена как заменой существующей, так и созданием новой...

Как правило необходимость старта сервера ограничивается одним жизненно-важным приложением - учетная программа в режиме клиента файлового шаринга. (Типичный представитель - 1С) Часто совместно с такой задачей организуется ресурс общих документов.

Ниже будут рассмотрены аспекты стартапа файлового сервера под "linuxами"...


 
Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #1 : 28 Мая 2008, 14:22:19 »

Возьму готовое решение. Завести его как и клонировать на другую машину займет 15 минут если вы уже развернули установку. В начале этого года сгорела материнка на "сервере". Он проработал с февраля 2003, изредка обесточиваясь вместе со зданием. Винты были IDE 4шт по 40гиг дистрибутив ASP Linux 9.2. Искать похожую материнку не стали, как и покупать PCI-IDE контроллер. Винтам вот-вот уже мог прийти капут. Новая машинка с SATA диском и ALT Linux Server 4.0 красовалась в сети через 55 минут после распаковывания коробки с ней. Данные переезжали дольше...

По умолчанию во многих дистрибутивах конфигурационная директория Samba /etc/samba и файл в ней smb.conf . В него поместим следующее:

#----------------- smb.conf---------------------------------
[global]
   dos charset = CP866
   unix charset = CP1251
   workgroup = OFFICE
   netbios name = SERVER1
   server string = Linux File Server
   interfaces = 192.168.0.0/24
   update encrypted = Yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *New*password* %n\n *Please*retype*new*password* %n\n *password*successfully*updated*
   username map = /etc/samba/smbusers
   unix password sync = Yes
   log file = /var/log/samba/%m
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   domain logons = Yes
   os level = 255
   preferred master = Yes
   domain master = Yes
   wins support = Yes
   admin users = admin
   hosts allow = 192.168.

[homes]
   comment = Home Directories
   read only = No
   browseable = Yes

[netlogon]
   comment = Network Logon Service
   path = /opt/netlogon
   write list = admin
   guest ok = Yes

[1c]
   comment = 1C Bases
   path = /opt/1c
   valid users = @users1c
   write list = @users1c
   read only = No
   create mask = 0770
   directory mask = 0770

[docs]
   comment = Documents
   path = /opt/doc
   valid users = @docs
   write list = @docs
   read only = No
   create mask = 0770
   directory mask = 0770

[backups]
   comment = Backups & Archives
   path = /opt/Backups
   valid users = admin
   write list = admin
   read only = No
   create mask = 0770
   directory mask = 0770
#----------------- smb.conf---------------------------------
Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #2 : 28 Мая 2008, 14:52:35 »

На что следует обратить внимание особенно.

секция [global]

unix charset = CP1251
samba конвертит русские буквы на лету. У клиента DOS 866 на том сервере CP1251
У вас может быть UTF-8 поэтому просто сотрите этот параметр.

workgroup = OFFICE
Название рабочей группы сети windows-машин. Windows по умолчанию ставит MSHOME или WORKGROUP

netbios name = SERVER1
имя под которым ваша машина будет видна в сети

interfaces = 192.168.0.0/24
Сеть в которой необходимо видеть машину с самбой.
Можно стереть этот параметр и samba будет видна на всех сетевых интерфейсах.

admin users = admin
пользователь с неограниченными правами на все файлы доступные по самбе.
вставьте сюда свое обычное сетевое имя.

hosts allow = 192.168.
Ограничивает клиентов внутренними адресами. Можете стереть если не боитесь.

секции [homes] [1c] [docs] [backups]

path =
путь в системе до накопителя. Желательно форматировать накопители в XFS или ReiserFS. Вероятность потери данных на этих ФС минимальная.

valid users = @docs
ограничивает список пользователей, которые могут подключиться к сетевому ресурсу

write list = @docs
ограничивает список записывающих пользователей

Как быстро управлять правами?
Создаем группы пользователей: all, users1c, docs 

groupadd all
groupadd users1c
groupadd docs

всех новых пользователей заводим по умолчанию в группе ALL
useradd имя_нового -g all

затем проверяем файл /etc/group
all:x:515:admin,u1,u2,u3,u4,u5,u6
users1c:x:516:admin,u1,u2,u3
docs:x:517:admin,u4,u5,u6

из этого следует что к ALL принадлежат все
к USERS1C - админ и юзеры с 1 по 3
к DOCS - админ и юзеры с 4 по 6

теперь можно смело устанавливать пароли для юзеров самбы
smbpasswd -a имя_пользователя
« Последнее редактирование: 28 Мая 2008, 15:18:57 от SergeyLeva » Записан
IERO
Никсоид
****

Карма: 8
Сообщений: 432


Debian Lenny


Награды
« Ответ #3 : 28 Мая 2008, 15:14:23 »

сюда стоиит добавить ,что если машины клиентов виндовые - вполне разумно на каждой сделать "сетевой диск" до домика и еще один до файлопомойки.
а в [global] обратить внимание на параметры
domain master = {yes|no} - в случае yes может возникнуть беда при перезагрузке - если какая-то из клиентских машин будет включена раньше загрузки сервера - она в воркгруппу не сможет зайти. в мелких конторках делать домен не всегда имеет смысл.
secutity = {user|source|share|domain} - возможно придется танцевать с ним с бубном чтобы настроить доступ по имени и паролю.
также может иметь смысл откючить гостевой доступ закоментирвав сторочку
; guest account = ...

юзеры для самбы заводятся в файле /etc/samba/smbusers в виде
smbname = systemname1 systemname2 ...
где smbname - юзернейм выдаваемый пользователю удаленной машины
systemname должны быть заведены как учетки пользователей на сервере.
Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #4 : 28 Мая 2008, 15:16:50 »

Раздел [backups] доступен по самбе для текущей работы с архивами
Поскольку доверять хранение архивов серверу несколько рискованно, мы будем тянуть эти архивы по протоколу FTP на другие рабочие машины с большими дисками.

Архивация запускается в Cron когда все работники дома готовятся лечь спать.

[root@terra bin]# crontab -l
#minute (0-59),                                                             
#|      hour (0-23),                                                       
#|      |       day of the month (1-31),                                   
#|      |       |       month of the year (1-12),                           
#|      |       |       |       day of the week (0-6 with 0=Sunday).       
#|      |       |       |       |       commands                           
40 7 * * * /etc/init.d/oracle restart                                       
25 7 * * * /etc/init.d/smb restart                                         
45 23 * * * /usr/local/bin/backup1c >> /var/log/backups.log                 

Это был пример моего состояния cron показать: (ключ -l). Для изменения задания: crontab -e
В нем мы в 23-45 толкаем скрипт архивации, а утром в 25 и 40 минут восьмого переталкнем самбу и еже с ней.

содержимое /usr/local/bin/backup1c

#!/bin/sh

DATE=$(date +%F)
WEEK=$(date +%V)
YEAR=$(date +%G)
MONTH=$(date +%m)
DAY=$(date +%u)
DAYS=$(date +%d)

#Самбе и друзьям - тормози!
echo '---start---' >> /var/log/backups.log
/bin/date >> /var/log/backups.log
/etc/rc.d/init.d/smb stop
/etc/rc.d/init.d/oracle stop

#Архивы 1с База1 и База2 в кучу
#тут все просто - заменяем путь создания файла #/opt/Backups/1c/1c_$YEAR-$MONTH-$DAYS.rar

/usr/local/bin/rar -c- -idp -m5 -x*.cdx -x*.CDX -x*/NEW_STRU/* -x*/ExtForms/* -x*/SYSLOG/* -x*/ExtDb/* -w/opt/Backups/ a /opt/Backups/1c/1c_$YEAR-$MONTH-$DAYS.rar /opt/1c/База1/* /opt/1c/База2


#ключ ver собирает версии одного документа в одном архиве.
# ОЙ какая полезная опция при том что пользователи постоянно #перезатирают файлы

/usr/local/bin/rar -r -c- -idp -ver -m5 -x*.jpg -x*.JPG -x/opt/doc/Avp/* -x/opt/msi/doc/GarantF1/* -x/opt/doc/Nikon/* -w/opt/Backups/ u /opt/Backups/docs_versions.rar /opt/doc

/usr/bin/7za a /opt/Backups/Oracles/Ora_Base_$DATE.7z /opt/oracle/base/oradata/ORCL/* -t7z -y -ms=on -mmt=on -mx=9 -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=PPMd -mb0:1 -mb0s1:2 -mb0s2:3 -r

/bin/date >> /var/log/backups.log
echo '---end---' >> /var/log/backups.log

# Нам не надо хранить все архивы на сервере, поэтому
# мочим все что старше параметра -mtime например на 20 дней.
# Это глубина хранения архивов на сервере
# больше глубина - меньше свободного места.

find /opt/Backups/1c/ -mtime +20 -name '*.rar'| xargs rm -f
find /opt/Backups/Oracles/ -mtime +20 -name '*.7z'| xargs rm -f

#Самбе и прочим - поехали говорить не будем, а дадим пинка утром в CRONe


7Zip очень положительный архиватор. Базы Оракла жмет лучше чем RAR. Размеры архивов получаются 48 и 68 мег соот-но. Не спрашивайте меня почему такой длинный список ключей. Целый рабочий день я игрался с параметрами и нашел максимальный коэф сжатия.
« Последнее редактирование: 30 Мая 2008, 09:24:09 от SergeyLeva » Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #5 : 28 Мая 2008, 15:27:50 »

Теперь на клиенте (windows или linux - неважно) необходимо прописать либо при автозагрузке либо в шедулере вызов синхронизации архивов

Например: создаем back.bat и ставим его в автозагрузку Windows
D:
CD Backups
wget --non-verbose --mirror http://ftp://back:back@msi/1c/
wget --non-verbose --mirror http://ftp://back:back@msi/Oracles/
Записан
Yazichnik
Небритый одмин
*****

Карма: 8
Сообщений: 710

Mac OS X, Debian


Награды
« Ответ #6 : 28 Мая 2008, 17:27:34 »

полезным может стать расшаривание linuxового принтера по самбе

[printer]
#делаем комментарий к принтеру
comment = <имя принтера>
#рабочая директория принтера
path = /var/spool/samba
# разрешаем печатать на нем
read only = No
create mask = 0700
#разрешаем печатать гостям
guest ok = Yes
printable = Yes
#задаем имя принетра
printer name = <имя принтера>
oplocks = No
share modes = No


ps SergeyLeva, а про бекапы можешь будет рассказать подробнее?
Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #7 : 30 Мая 2008, 09:28:34 »

ps SergeyLeva, а про бекапы можешь будет рассказать подробнее?

Прошу перечитать (критично и внимательно) 4 пост в эту тему. Вся процедура авто-архивации описана в нем. Если есть непонятные места - перепишу еще раз.
Записан
kvolkov
Гость
« Ответ #8 : 24 Ноября 2008, 11:20:41 »

юзеры для самбы заводятся в файле /etc/samba/smbusers в виде
smbname = systemname1 systemname2 ...
где smbname - юзернейм выдаваемый пользователю удаленной машины
systemname должны быть заведены как учетки пользователей на сервере.
Не совсем так. По умолчанию юзеры для самбы заводятся в файле /etc/samba/smbusers.
Но это можно переопределить в username map. Например
Код:
[global]
username map = /dir1/dir2/mysmbusers
Записан
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #9 : 18 Февраля 2009, 12:24:08 »

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

И в поисках ответа на первый вопрос наткнулся на несколько тем, в которых жаловались на резкое падение производительности 1С после ~недельного аптайма сервера, эта проблема сейчас имеет место быть?

PS Debian Lenny, Samba 3.2.5, 1С 7.7
Записан
An-73
Никсоид
****

Карма: 2
Сообщений: 308


Mandriva сдулась - теперь Ubuntu 9.04 мучаю


Награды
« Ответ #10 : 18 Февраля 2009, 21:03:48 »

Ну насколько я читал отчеты, утечка памяти была причиной довольно долгого отказа от перехода на ветку 3.2.х с ветки 3.0.х
На версии 3.2.4 был отчет, что утечки памяти уменьшены но не побеждены окончательно. Что с версией 3.2.5 не интересовался.
Для меня невозможность просто и без напильника прикрутить антивирус clam к ветке 3.2 критична.
И кстати, а нафига бэкапить базу 1С чем то стороним? Не судьба забэкапить её силами самой 1С-ки? Там же возможности автоматизации вообще практически неограничены - на базе 1С даже игры 3D пишут...
А в задаче бэкапа самбовой файлопомойки базу внести в исключения?
« Последнее редактирование: 18 Февраля 2009, 21:14:04 от An-73 » Записан

Все достало - жду 2012 года. Улыбка
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #11 : 19 Февраля 2009, 07:28:34 »

И кстати, а нафига бэкапить базу 1С чем то стороним? Не судьба забэкапить её силами самой 1С-ки? Там же возможности автоматизации вообще практически неограничены - на базе 1С даже игры 3D пишут...
Ссылки на готовые решения?

А в задаче бэкапа самбовой файлопомойки базу внести в исключения?
Там кроме базы бекапить нечего.
Записан
Сергей Лёва
Продвинутый
***

Карма: 0
Сообщений: 189


ASP RHEL5 ALT4 Mandriva2006, 2008.1


Награды
« Ответ #12 : 10 Марта 2009, 13:45:49 »

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


Давно, когда еще не знал что такое утечка памяти все же обнаружил что толкая утром самбу гарантированно можно опаздывать на работу :-)

на круглосуточно работающей базе есть только один известный мне метод сто процентно надежный. Создать пользователя для бакапу. В глобальном модуле "При начале работы системы" если это он то запускаем выгрузку в текст всех документов за "Рабочая дата -1" в соот-но поименованный файл. В качестве модуля выгрузки удобно взять Export77.ert с ИТС чтобы не писать загрузчик и не париться со ссылками на подчиненные документы и справочниками.


И кстати, а нафига бэкапить базу 1С чем то стороним?

Скорость развертки базы за любой период равна скорости разархивации. Может выполняться неподготовленными пользователями самостоятельно без вызова и ожидания. Если Вы еще не столкнулись с такой необходимостью значит либо мало живете либо работаете в одном месте.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM