Установка сервера 1с v8.3 + PostgreSQL на Linux Debian v7.3 под управлением Hyper-V
Сервер 1с 8.3 + PostgreSQL на Linux Debian под управлением Hyper-V
Исходные данные:
———————————————————————-
Сервер с процессором Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz; 32 Gb оперативки; RAID1 из двух терабайтовых HDD + RAID1 из двух SSD по 100Gb.
———————————————————————-
Устанавливаю Hyper-V Server 2012 по инструкции: https://blog.knasys.ru/administration/установка-и-настройка-hyper-v-server-2012/
При этом ставлю его в 60-ти гибайтовый раздел на RAID1 из терабайтовых винтов.
За одно разбиваю всё пространство RAID-ов на разделы:
RAID1 из HDD:
— 60Gb под Hyper-V (диск C:)
— 450Gb под образы и конфиги для виртуалок (диск D:)
— оставшееся место под всякий хлам (диск E:)
RAID1 из ssd:
— 60Gb для образа жесткого диска сервера 1с (диск F:)
— оставшееся место не размечаю (по рекомендациям производителя SSD в целях увеличения производительности и срока жизни SSD-шек)
———————————————————————-
Через 5nine Hyper-V Manager создаю виртуальную машину для сервера 1с:
Имя: serv1c
Расположение: D:Virtserv1c
Оперативная память: 8Gb фиксированного размера (при динамической может не работать программная лицензия)
Процессор: 8 виртуальных процессоров
Жесткий диск: 50Gb фиксированного размера
Расположение жесткого диска: F:serv1c.vhdx (на SSD будет лежать только он)
В сервере 3 сетевых порта:
первый используется для управления сервером BMC. назначаю ему адрес 192.168.0.1 в BIOSе.
Второй делаю Extended Lan в 5nine manager пойдет на другие виртуалки сервера — её адрес 192.168.0.2
Третий — Extended Lan пойдет на виртуалку 1с сервера — её адрес 192.168.0.3
Настройка фаервола:
Для работы 5nine необходимо помимо доступа к серверу разрешить входящие многоадресные DNS-запросы:
Направление: Входящие, Исходящие
Действие: Разрешить
Протокол: UDP
С диапазона адресов: 192.168.0.2-192.168.0.3 (сетевые карты гипервизора)
———————————————————————-
Дебиан 7.3 ставлю без графической оболочки.
При установке делаю один раздел (для новичков), т.к. в /usr/local/pgsql/data/base/ грузится база.
Ошибка типа «Удаленный хост принудительно разорвал соединение» в 1с появляется как раз при отсутствии свободного места.
Для переключения между консолями исп-ся SHIFT+(F1 — F7)
Выход из пользователя: exit
Просмотреть использование диска можно командой: df -h
Просмотреть использование оперативки и процессора командой: htop (но htop нужно сначала установить)
Просмотреть использование сети -командой: iftop (тоже надо установить)
Сменить пароль: passwd
————————————————————————
Устанавливаем mc: Вставляем первый диск дебиана, затем:
apt-get install mc
Устанавливаем htop для мониторинга системы: Вставляем первый диск дебиана, затем:
apt-get install htop
Устанавливаем iftop для мониторинга системы: Вставляем первый диск дебиана, затем:
apt-get install iftop
————————————————————————-
Если сетевой адрес Вы не вводили вручную, значит он назначен dhcp. Желательно поменять на статический.
Проверяем конфигурацию соединения:
ifconfig
Делаем копию файла /etc/network/interfaces:
cp /etc/network/interfaces /etc/network/interfaces.old
Открываем файл /etc/network/interfaces через nano:
nano /etc/network/interfaces
Примерное содержание такое:
# The loopback network interface auto lo iface lo inet loopback
# The primary network interface allow-hotplug eth0 iface eth0 inet dhcp
Делаем его таким (нельзя использовать 192.168.0.1 — 192.168.0.3 т.к. они заняты):
# The loopback network interface auto lo iface lo inet loopback
# The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.0.6 netmask 255.255.255.0 gateway 192.168.0.254
Далее назначаем адрес DNS сервера:
Делаем копию файла /etc/resolv.conf:
cp /etc/resolv.conf /etc/resolv.conf.old
Открываем файл /etc/resolv.conf через nano:
nano /etc/resolv.conf
Оставляем там только строку «nameserver 8.8.8.8»
Если используете домен, то оставляем ещё и «domain имя_Вашего_домена»
Для вступления изменений в силе делаем:
reboot
————————————————————————-
Редактируем список репозиториев, что находится в файле /etc/apt/sources.list.
Для начала делаем его копию:
cp /etc/apt/sources.list /etc/apt/sources.list.old
Открываем этот файл в nano:
nano /etc/apt/sources.list
Удаляем там всё и прописываем следующие строки:
deb http://ftp.ru.debian.org/debian/ wheezy main contrib
deb-src http://ftp.ru.debian.org/debian/ wheezy main contrib
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb http://ftp.ru.debian.org/debian/ wheezy-updates main
deb-src http://ftp.ru.debian.org/debian/ wheezy-updates main
Выполняем следующие команды для обновления репозиториев:
apt-get update
apt-get upgrade
apt-get dist-upgrade
————————————————————————
Установка Samba для доступа к сети:
aptitude install samba aptitude install samba-client
Свои конфигурационные файлы Samba хранит в каталоге /etc/samba/. Здесь находится конфигурационный файл smb.conf.
Для начала создаем резервную копию файла smb.conf:
cp /etc/samba/smb.conf /etc/samba/smb.conf.old
Теперь открываем smb.conf через nano:
nano /etc/samba/smb.conf
Конфигурационный файл smb.conf поделен на разделы, которые заключаются в квадратные скобки. Основных разделов три: [global], [homes], [printers].
Раздел [global] – параметры этого раздела применяются к серверу целиком или являются умолчаниями для разделов если они специально не определены.
Раздел [homes] – если этот раздел включен в конфигурационный файл, то сервисы подключающие клиентов к их домашним директориям могут быть созданы сервером на лету.
Раздел [ptinters] – работает как [homes], но для принтеров. Если [printers] раздел есть в конфигурационном файле, пользователи имеют возможность подключиться к любому принтеру из local host’s printcap файла.
Удаляем всё содержимое файла smb.conf и приводим его к виду:
[global] # nastraivaem prinadlejnost k rabochey gruppe workgroup = PSB netbios name = serv1c server string = serv1c
# uroven jurnalirovaniya log level = 1
# parametry bezopasnosti encrypt passwords = yes passdb backend = smbpasswd security = share
# parametry kodirovki unix charset = UTF-8 dos charset = cp1251 store dos attributes = yes
# razmer fayla jurnala max log size = 10
[share] comment = public folder path = /home/share writable = yes printable = no guest ok = yes read only = no
Создадим каталог share:
mkdir /home/share
Установим максимальные права доступа, всем:
chmod 777 /home/share
Осталось перезапустить демон Samba:
/etc/init.d/samba restart
Теперь можно видеть расшаренную папку в проводнике винды. Ели не видно, проверьте правильность заполнения файла smb.conf построчно!
——————————————————————
Для правильной работы PostgreSQL увеличиваем максимальный объем разделяемой памяти ядра до 512 Мб.
echo kernel.shmmax = `echo 512*1024*1024 | bc` >> /etc/sysctl.conf
echo kernel.shmall = `echo 512*1024*1024 | bc` >> /etc/sysctl.conf
Тезультатом данных команд является появление записи «kernel.shmmax = 134217728» в файле /etc/sysctl.conf.
Проверяем изменения:
sysctl -p
Перезагружаемся
reboot
——————————————————————
Установка Postgre SQL
Скачиваем дистрибутивы с сайта Этерсофт:
(можно не париться с консолью, скачать в винде и закинуть в расшаренную папку)
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/libpq5.5-9.2eter_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-contrib_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-seltaaddon_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-server_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-docs_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plperl_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plpython_9.2.1-eter1debian_i386.deb
Устанавливаем Postgre@Etersoft
dpkg -i *.deb
В процессе установки запустится настройка локалей, в первом окне ни чего не отмечаем, нажимаем далее, во втором окне указываем локаль ru_RU.UTF-8 как локаль по умолчанию.
В конце установки получаем ошибки:
insserv: warning: script 'postgresql' missing LSB tags and overrides
insserv: warning: script 'postgresql.outformat' missing LSB tags and overrides
Для устранения этих двух ошибок необходимо добавить секции LSB в скрипт /etc/init.d/postgresql.
Делаем копию:
cp /etc/init.d/postgresql /etc/init.d/postgresql.old
Открываем в nano:
nano /etc/init.d/postgresql
Он должен начинатся с текста, для этого заменяем первую строку скрипта на текст:
#!/bin/bash ### BEGIN INIT INFO # Provides: postgresql # Required-Start: $local_fs # Required-Stop: $local_fs # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start postgresql. ### END INIT INFO
Далее правим файл postgresql.outformat:
Делаем копию:
cp /etc/init.d/postgresql.outformat /etc/init.d/postgresql.outformat.old
Открываем в nano:
nano /etc/init.d/postgresql.outformat
Файл /etc/init.d/postgresql.outformat должен начинатся с текста:
#!/bin/bash ### BEGIN INIT INFO # Provides: postgresql.outformat # Required-Start: $local_fs # Required-Stop: $local_fs # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start postgresql.outformat. ### END INIT INFO
Затем добавим скрипты автоматического запуска сервера уже без ошибок
update-rc.d postgresql defaults update-rc.d postgresql.outformat defaults
Запускаем, при первом запуске создается кластер
/etc/init.d/postgresql start
Результат команды должен быть таков:
Initializing database: [ DONE ]
Starting postgresql service: [ DONE ]
Меняем пароль для учетной записи SQL-сервера postgres.
Делаем копию:
cp /var/lib/postgresql/data/pg_hba.conf /var/lib/postgresql/data/pg_hba.conf.old
Открываем в nano:
nano /var/lib/postgresql/data/pg_hba.conf
Сначала нужно изменить настройки безопасности, для чего в файле конфигурации /var/lib/postgresql/data/pg_hba.conf изменяем строчку:
local all all peer
на строчку:
local all all trust
Сохраним изменения и перезапустим Postgre SQL, для вступлений изменений настроек, командой
/etc/init.d/postgresql restart
Результат команды должен быть таков:
Stopping postgresql service: [ DONE ] Starting postgresql service: [ DONE ]
Теперь соединяемся с SQL-сервером под учетной записью postgres и меняем пароль
учетной записи SQL-сервера postgres (т.е. делаем для пользователя postgres пароль 123456789):
psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD '123456789'"
Снова редактируем файл конфигурации /var/lib/postgresql/data/pg_hba.conf изменяем строчку:
local all all trust
на строчку:
local all all md5
и
local all all 0.0.0.0/0 ident
на строчку:
local all all 0.0.0.0/0 md5
Перезапускаем PostgreSQL:
/etc/init.d/postgresql restart
Перезагружаемся:
reboot
Проверка работоспособности.
Проверям статус сервера:
/etc/init.d/postgresql status
Результат команды должен быть таков:
pg_ctl: сервер работает (PID: 2240) /usr/bin/postgres "-p" "5432" "-D" "/var/lib/postgresql/data"
Сервер запущен. Если, это не так, запустите сервер, так, как было описано выше.
Проверяем, использование порта:
netstat -plan | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2240/postmaster unix 2 [ ACC ] STREAM LISTENING 4772 2240/postmaster /tmp/.s.PGSQL.5432
Так и должно быть.
—————————————————
Примечания по пользователям бд.
чтобы зайти под пользователем postgres в консоли: psql -U postgres -W
Чтобы выйти: q
Просмотр зарегистрированных юзеров: du
Смена пароля: зайти под пользователем, выполнить: ALTER USER юзер PASSWORD ‘пароль’;
Проверяем занесенные базы: lСоздание нового пользователя и управление его правами:
Добавить нового пользователя можно командой :
CREATE USER имя_пользователя PASSWORD ‘пароль’;Если есть надобность сделать обычного пользователя «суперпользователем» , то вводим
ALTER USER ‘имя_пользователя’ SUPERUSER;Отменяем права супер пользователя:
ALTER USER ‘имя_пользователя’ NOSUPERUSER;Команда ALTER USER:
ALTER USER Имя_пользователя [ [ WITH ] option [ … ] ]
SUPERUSER | NOSUPERUSER — Как говорилось выше , дать или отнять прова суперпользователя.
CREATEDB | NOCREATEDB — Дать разрешение создавать или запретить создавать базы данных пользователю.
CREATEROLE | NOCREATEROLE — Дать пользователю возможность создавать роли доступа.
CREATEUSER | NOCREATEUSER — Дать возможность пользователю создавать других пользователей или отнять данную привилегию.
ALTER USER Имя_пользователя RENAME TO Новое _имя_пользователя — Переименовать одного пользователя в другого.
Проверяем наличие пользователей, которые могут работать с базами данных:
du (в выводе будет список пользователей с их разрешениями).Вход под желанным пользователем:
psql –U имя_пользователя
—————————————————
Установка сервера 1С:Предприятие
предварительно дистрибутив скопируем в расшаренную папку папку.
Что надо из дистрибутива:
NLS-ы точно не нужно (это для дистрибов где русской кодировки нет)
WS-ка нужна для публикации веб-сервиса.
1c-enterprise83-common_8.3.4-365_i386.deb
1c-enterprise83-crs_8.3.4-365_i386.deb
1c-enterprise83-server_8.3.4-365_i386.deb
1c-enterprise83-ws_8.3.4-365_i386.deb
И устанавливаем:
cd /home/share/
dpkg -i 1c-enterprise83-common_8.3.4-365_i386.deb dpkg -i 1c-enterprise83-server_8.3.4-365_i386.deb dpkg -i 1c-enterprise83-ws_8.3.4-365_i386.deb dpkg -i 1c-enterprise83-crs_8.3.4-365_i386.deb
Снова получаем ошибку missing LSB tags, для ее устранения уже привычным способом правим начало скрипта /etc/init.d/srv1cv83:
Но для начала сделаем копию:
cp /etc/init.d/srv1cv83 /etc/init.d/srv1cv83.old
Открываем в nano:
nano /etc/init.d/srv1cv83
#!/bin/bash ### BEGIN INIT INFO # Provides: srv1cv83 # Required-Start: $local_fs # Required-Stop: $local_fs # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start 1C 8.3 server. ### END INIT INFO
Установим необходимые для работы 1С права:
chown -R usr1cv8:grp1cv8 /opt/1C
chmod 777 /opt/1C
И добавим скрипты автоматического запуска сервера 1С при старте системы и остановки при завершении работы:
update-rc.d srv1cv83 defaults
Установим некоторые дополнительные компоненты, необходимые для 1С:8.
apt-get install unixODBC
apt-get install t1utils
apt-get install msttcorefonts
apt-get install libgsf-bin
apt-get install imagemagick
apt-get install texlive-binaries
apt-get install libicu48 libicu48-dbg libicu-dev
Перезагружаем сервер:
reboot
————————————————————————————
Проверяем, все должно работать.
netstat -atu | more
если вот такие строки видно, то значит все должно быть хорошо.
tcp 0 0 *:1560 *:* LISTEN tcp 0 0 *:postgresql *:* LISTEN tcp 0 0 *:1540 *:* LISTEN tcp 0 0 *:1541 *:* LISTEN
————————————————————————————
Создание базы данных.
На машине администратора установим оснастку «Администрирование серверов 1С:Предприятия» из дистрибутива платформы 1С для Windows. Для того, чтобы Windows машины могли обращаться по имени к Linux серверу в файл C:WindowsSystem32driversetchosts добавим строку вида:
192.168.0.6 serv1c
где 192.168.0.6 адрес, а serv1c имя нашего сервера.
ВЫРУБАЕМ ФАЕРВОЛ!!!!
Открываем оснастку «Администрирование серверов 1С Предприятия», выбираем пункт 1C:Enterprise 8.3 Central Servers и через меню Действие — Создать создаем (добавляем) наш сервер, в поле Имя указав serv1c.
Запускаем 1С и создаем новую базу.
Выбираем «Создание информ. базы без конфигурации».
Называем «Test1», на сервере 1С.
Кластер серверов: serv1c
Имя информационной базы: test1
Защищенное соединение: Выключено — иначе будут лезть ошибки
Тип СУБД: PostgreSQL
Сервер баз данных: serv1c
Имя базы данных: test1
Пользователь базы данных: postgres
Пароль: 123456789
По нажатию кнопки Готово будет создана новая база.
источник http://infostart.ru/public/238077/
P.S.: Всё работает, ошибок нет, но от этого варианта я отказался, т к почемуто PostgreSQL при выполнении операций использует только одно ядро из имеющихся 8-ми. из-за этого сильно снижается быстродействие. Как настроить его на использование нескольких ядер я не знаю, но вроде бы это нужно делать с помощью утилиты pg_bouncer, которая является посредником между 1с и СУБД. При установке на PostgreSQL от Etersoft появилось множество неудовлетворенных зависимостей, но при установке PostgreSQL с официального сайта, установить pg_bouncer удалось, но настроить взаимодействие БД с 1с не получилось. В итоге, промучившись пару недель и прочитав статьи по сравнению быстродействия различных СУБД в связке с 1с, я забросил это гиблое дело и пошел ставить 1с-ку на винду и MS SQL Express.
P.P.S.: Для желающих помучиться с Postgre, есть книжка по настройке, но я её не дочитал 🙂
А.Ю.Васильев. Работа с PostgreSQL
Один комментарий к “Установка сервера 1с v8.3 + PostgreSQL на Linux Debian v7.3 под управлением Hyper-V”
Добрый день!
По производительности что получилось? Сильно ли она снизилась за счет использования визуализации?
Заранее спасибо за ответ!