Сергей Лёва
Продвинутый
Карма: 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
|
Возьму готовое решение. Завести его как и клонировать на другую машину займет 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
|
На что следует обратить внимание особенно.
секция [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
|
сюда стоиит добавить ,что если машины клиентов виндовые - вполне разумно на каждой сделать "сетевой диск" до домика и еще один до файлопомойки. а в [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
|
Раздел [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
|
Теперь на клиенте (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
|
полезным может стать расшаривание 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
|
ps SergeyLeva, а про бекапы можешь будет рассказать подробнее?
Прошу перечитать (критично и внимательно) 4 пост в эту тему. Вся процедура авто-архивации описана в нем. Если есть непонятные места - перепишу еще раз.
|
|
|
Записан
|
|
|
|
kvolkov
Гость
|
юзеры для самбы заводятся в файле /etc/samba/smbusers в виде smbname = systemname1 systemname2 ... где smbname - юзернейм выдаваемый пользователю удаленной машины systemname должны быть заведены как учетки пользователей на сервере.
Не совсем так. По умолчанию юзеры для самбы заводятся в файле /etc/samba/smbusers. Но это можно переопределить в username map. Например [global] username map = /dir1/dir2/mysmbusers
|
|
|
Записан
|
|
|
|
NeO
Злобный админчик
Администратор
Карма: 62
Сообщений: 2376
Debian Stretch
|
|
« Ответ #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 мучаю
|
Ну насколько я читал отчеты, утечка памяти была причиной довольно долгого отказа от перехода на ветку 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
|
И кстати, а нафига бэкапить базу 1С чем то стороним? Не судьба забэкапить её силами самой 1С-ки? Там же возможности автоматизации вообще практически неограничены - на базе 1С даже игры 3D пишут...
Ссылки на готовые решения? А в задаче бэкапа самбовой файлопомойки базу внести в исключения?
Там кроме базы бекапить нечего.
|
|
|
Записан
|
|
|
|
Сергей Лёва
Продвинутый
Карма: 0
Сообщений: 189
ASP RHEL5 ALT4 Mandriva2006, 2008.1
|
А с бекапом баз, лежащих на самбе, при запущенной 1С никто не сталкивался? Есть подозрение, что случиться что-то плохое Просто с 1С работают круглосуточно. Давно, когда еще не знал что такое утечка памяти все же обнаружил что толкая утром самбу гарантированно можно опаздывать на работу :-) на круглосуточно работающей базе есть только один известный мне метод сто процентно надежный. Создать пользователя для бакапу. В глобальном модуле "При начале работы системы" если это он то запускаем выгрузку в текст всех документов за "Рабочая дата -1" в соот-но поименованный файл. В качестве модуля выгрузки удобно взять Export77.ert с ИТС чтобы не писать загрузчик и не париться со ссылками на подчиненные документы и справочниками. И кстати, а нафига бэкапить базу 1С чем то стороним?
Скорость развертки базы за любой период равна скорости разархивации. Может выполняться неподготовленными пользователями самостоятельно без вызова и ожидания. Если Вы еще не столкнулись с такой необходимостью значит либо мало живете либо работаете в одном месте.
|
|
|
Записан
|
|
|
|
|