вторник, 30 августа 2011 г.

Установка сервера для 1С:Предприятие 8.2

Обобщив весь опыт и все, что нашлось в Интернете описываю установку

1. Система
Базовая система CentOS 6.0 (свежее пока нет, чего-то индусы задерживаются)
Ставим все на SuperMicro X8DTU
2 x Xeon E5620
4 x SATA WD RE4 250Gb
3 x 4Gb DDR3 ECC (немного не оптимально, но планка уже едет))

2. Что хотим получить
Как обычно получить надо все и быстро, поэтому определяемся:
1. Сервер 1С:Предприятия
2. Сервер баз данных
3. Сервер виртуализации
4. Терминальный сервер
5. Сетевая инфраструктура
Многовато конечно, но вот такие задачи. По поводу целесообразности установки всего этого на один сервак можно спорить, но нежелательно, так как других вариантов пока нет. Объясняю: 1С - лицензия, ключ на сервер куплен, но вот незадача 32 битный, лишних денег (порядка 36кр) сейчас в обрез, надо заставить работать как есть. А ставить в наш век 32 разрядную систему на 12 гигов оперативы - изврат, да и для базы данных полегче. Получаем: Centos 6 x86_64 на котором стоит Postgres и всякие dhcpd, bind, а также гипервизор KVM в котором крутится Centos 6.0 32bit в котором крутится Сервер Предприятия. Вот так.
Начнем, пожалуй.




Для начала достанем диски из сервера и уберем подальше. По секрету, там datastore VmWare ESXi 4.0. Не удовлетворила она нас, не кайф. А все только из-за неподдерживаемого raid. Надоело молится на не вылет винта. Пробовал даже делать софт-рейд из виртуальных дисков, но производительность....

Вставляем новые диски и установочный диск и поехали.

Систему ставим в минимальной инсталяции
Жесткие диски в софтверный рейд 10 уровня на базе mdadm. Наелись в свое времяи глюков дешевых контроллеров и невозможность быстро достать дорогой контроллер на замену старого, особенно после того, как прошло года три.

для /boot выделим 500 Mb зеркального raid1, нам не жалко, да и тенденции пугают...
/ на raid10
swap на raid10

Собственно сама установка:
Памяти много, анаконда в графическом режиме...
Доходим до управления дисками, выбираем Custom layout.
если есть разделы удалем их.
далее на каждом диске создаем 3 раздела: тип Software raid размерами 500, 230000 и все что осталось)
потом создаем 3 Raid device, правильно расставив галочки)
md0: mount /boot ext4 raid1 sda[bcd]1
md1 / ext4 raid10
md2 swap raid10

применяем, выбираем по умолчанию boot - /dev/sda
выбираем minimal, и наслаждаемся установкой самой системы. Но лучше покинуть серверную, ибо холодно. Дальше нас выручит ssh.
Приходим на рабочее место и видим, что dhcp сервер новых адресов в последнее время не выдавал.
Огорчаемся, идем мерзнуть.
Логинимся локально, правим /etc/sysconfig/network-scripts/ifcfg-eth0
меняем ONBOOT на yes и дописываем BOOTPROTO=dhcp
не знаю почему, но так вот.
/etc/init.d/network restart
получили адрес, уходим, наливаем чай, греемся, параллельно коннектимня по ssh. Получилось.
Первым делом, конечно, не самолеты, а yum update. допиваем чай, пока все обновиться, reboot. в этот момент нужно убрать кружку подальше, пока клава не пострадала.
Сейчас будем работать на скорость (времени не так много, часов 5 осталось), украшательствами займемся не в такое тяжелое время. Просто отмечаем походу.
*need* установить grub на все остальные диски
*need* мониторить состояние mdadm
*need* мониторить состояние smart
Перезагрузились.
 Ставим postgres.
1С такая неприятная штука, что с нормальным postgree работать не будет, поэтому 2 варианта:
1. Взять с сайта 1с версию 8.4.3 (официально поддерживаемую)
2. Попробовать собрать последнюю версию(9), благо патчи опубликованы
3. А, точно вариантов 3. Не мучаться и взять собранную версию у ребят из etersoft.
Я остановился на 3 варианте, так как в дальнейшем нужны плюшки 9 версии (чуть быстрее и репликация), и времени на компиляние нет. По поводу, что не поддерживается - вздор, проверено на многих компаниях, которым уже поставил. правда в связке с centos 5.6
Идем сюда, забираем пакеты.
А, точно, вначале yum install wget
mkdir postgre
cd postgre
wget http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.0.4/x86_64/CentOS/6/libpq5.2-9.0eter-9.0.4-eter6rhel.x86_64.rpm
wget http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.0.4/x86_64/CentOS/6/postgre-etersoft9.0-9.0.4-eter6rhel.x86_64.rpm
wget http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.0.4/x86_64/CentOS/6/postgre-etersoft9.0-contrib-9.0.4-eter6rhel.x86_64.rpm
wget http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.0.4/x86_64/CentOS/6/postgre-etersoft9.0-server-9.0.4-eter6rhel.x86_64.rpm


yum localinstall --nogpgcheck *.rpm

Готовим нашу базу




su postgres
initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8
exit

chkconfig postgresql on
service postgresql start
su postgres
psql postgres



postgres=# alter user postgres with password '123456';
ALTER ROLE
postgres=# \q
bash-4.1$ exit
exit


Все, пока с сервером баз данных разобрались... пока...
*need* оптимизация
*need* бэкап

Начинаем мучить Сервер Предприятия


Надо: kvm, дистрибутив, платформу 1с
Поехали
Убедимся, что потянем виртуализацию kvm. Иначе придется извращаться с VirtualBox )))
egrep '(vmx|svm)' --color=always /proc/cpuinfo
Если удачно, тогда далее:
yum install kvm libvirt python-virtinst qemu-kvm
Настроим бридж
vi /etc/sysconfig/network-scripts/ifcfg-br0
Приведем к виду

DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=dhcp
IPV4_FAILURE_FATAL=yes
IPV6INIT=no


vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
HWADDR="00:25:90:04:AF:A8"
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO=dhcp
BRIDGE=br0




service network restart
Сеть поднялась, в холод топать не пришлось...
kvm есть, сеть настроили... можно ставить.. Дитрибутив !!!
качаем на сервер CentOS-6.0-i386-bin-DVD.iso
cd /var/lib/libvirt/
wget ..... откуда хотите, оттуда качайте.. у меня локальный ftp

На самом деле это жестко, качать целый DVD. Для информации: команда CentOS выпустила минимальные образы для установки, мой совет, воспользуйтесь ими

Для управления KVM есть хорошая штука, virt-manager, ставлю его на рабочую машину.
sudo apt-get install virt-manger (а что делать, убунта, же)
ssh-keygen
ssh-copy-id username@ip
запускаем.
на сервере правим 
vi /etc/ssh/sshd_config
раскомменитировав
PubkeyAuthentication yes
/etc/init.d/sshd restart

создаем новую машинку.
имя
указываем iso
OS type: Linux
Version RHEL6
Memory 2Gb
CPU 1 (посмотрим, может потом и второй добавим)
диск гигов 16, вроде должно хватить
В адвансед i686
Ставим аналогично серверу, только без raid, используем весь диск, также minimal
также после установки правим сетевые интерфейсы, также обновляемся, перезагружаемся
ставим на сервер ntp, точнее на оба
включаем. (для виртуалок самое то)
Идем на сайт users.v8.1c.ru забираем платформу 1с в rpm

yum install wget
mkdir 1c
cd 1c
wget ...
Наконец-то Нургалиев и Ко догадались паковать платформу для линуксов не в rar, а то смешно, ей богу
правим /ets/hosts для запуска сервера предприятия.. в общем говорим серверу, что он находится там где находится))
распаковываем скачанный арив и ставим его
yum --nogpgcheck localinstall *.rpm
тут немножко магии
надо установить шрифты от microsoft
rpm -ivh http://dl.atrpms.net/el6-i386/atrpms/stable/atrpms-repo-6-4.el6.i686.rpm
yum install xorg-x11-xfs chkfontpath


rpm -ivh http://elders.princeton.edu/data/puias/unsupported/5/i386/msttcorefonts-2.0-1.noarch.rpm
Так, вроде разобрались
Идем в
cd /opt/1C/v8.2/i386/utils/
./config_server /usr/share/fonts/msttcorefonts/
и облом...
доустанавливаем
yum install ImageMagick
офигеваем от мусора, которым начинает засоряться наш сервер... хотя это началось еще при установке шрифтов
как обычно от avahi уже никуда не деться
yum install ttf2pt1 unixODBC
зависимости удовлетворили, пробуем сконфигурить сервер Предприятия
./config_server /usr/share/fonts/msttcorefonts/
Ок
/etc/init.d/srv1cv82 restart
файервол на сервере предприятия
-A INPUT -p tcp --dport 1540 -j ACCEPT

-A INPUT -p tcp --dport 1541 -j ACCEPT
-A INPUT -m multiport -p tcp --dports 1560:1691 -j ACCEPT
файерволл на серверебазы данных
-A INPUT -p tcp --dport 5432 -j ACCEPT

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














Источники:
1. http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-6.0-server
2. http://www.alsigned.ru/?p=1129

4 комментария:

  1. сколько памяти нужно для 10 пользователей? 12гиг это перебор я считаю.

    ОтветитьУдалить
    Ответы
    1. Пользователей 20, плюс база Postgres, при копеечной цене планок ))

      Удалить
  2. можно про этот этап подробнее:
    Систему ставим в минимальной инсталяции
    Жесткие диски в софтверный рейд 10 уровня на базе mdadm. Наелись в свое времяи глюков дешевых контроллеров и невозможность быстро достать дорогой контроллер на замену старого, особенно после того, как прошло года три.

    для /boot выделим 500 Mb зеркального raid1, нам не жалко, да и тенденции пугают...
    / на raid10
    swap на raid10

    Собственно сама установка:
    Памяти много, анаконда в графическом режиме...
    Доходим до управления дисками, выбираем Custom layout.
    если есть разделы удалем их.
    далее на каждом диске создаем 3 раздела: тип Software raid размерами 500, 230000 и все что осталось)
    потом создаем 3 Raid device, правильно расставив галочки)
    md0: mount /boot ext4 raid1 sda[bcd]1
    md1 / ext4 raid10
    md2 swap raid10


    Я установил 4 веника в тазик, веники по 80гиг, на всех сделал разделы (в анаконде create raid partition):
    500мегов, 70гиг и всё остальное=т.е. 3 раздела на каждом винте. но установщик пишет что нет boot раздела. Где его создать и как?

    ОтветитьУдалить
    Ответы
    1. md0: mount /boot ext4 raid1 sda[bcd]1

      в этом пункте и сказано, что в установщике, при создании raid прописать точку монтирования boot

      Удалить