Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.
Сравнение платного и бесплатного софта (без учета железа) взято по большей части отсюда, по примеру данной статьи и на данный момент выглядит так:
Наименование | Стандартное лицензирование (руб.) | Вариант Linux + Postgres SQL (руб.) |
---|---|---|
Лицензии Windows | ||
Windows Server 2012 Std. | 45012 | 0 |
MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP | 102960 (20x78) | 0 |
Лицензии 1С | ||
1С: Предприятие 8.3.Лицензия на сервер (x86-64) | 86400 | 86400 |
1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест | 78000 | 78000 |
Лицензии SQL | ||
Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 | 13381 | 0 |
Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 | 117748 | 0 |
Итого | 443501 | 164400 |
Экономия | 0 | 279101 |
Вполне возможно, что для форточек существуют какие-то пакетные предложения, с оптимизированной ценой для конкретного сервера.
Однако, это не означает того, что MS может уронить цены на свои продукты (лицензии) до нуля.
Из всего, что необходимо будет приобрести для Linux — это клиентские лицензии 1С, в случае использования файлового варианта баз. Или же покупка клиент-серверной платформы от них же, в случае использования SQL.
Ниже мы рассмотрим оба варианта реализации сервера.
Постановка задачи
- Создание шаблона виртуальной машины со следующими параметрами:
- ОС без потери производительности.
- Полноценный сервер терминалов.
- Возможность подключения по RDP(для совместимости клиентов).
- Возможность подключения через Web.
- Возможность поддержки от 1С.
- Возможность бэкапа баз как на локальные диски(сетевые шары), так и в облако.
- Возможность бэкапа всей виртуальной машины.
Итак, поехали:
Логически, наша цель выглядит вот так:
Сначала определимся с ОС. Я сразу выбрал CentOS-контейнер на системе виртуализации Proxmox, т.к. при контейнерной виртуализации LXC, VM использует ресурсы самого гипервизора, т.е. потери производительности нет.
Тем более, что в дальнейшем, можно добавить серверы в инфраструктуру и создать отказоустойчивый кластер совершенно бесплатно!
Собственно тема установки 1С на различные версии Linux — достаточно избита, поэтому здесь я постарался объединить в один рабочий мануал, все варианты установки и публикации сервиса, и бэкап.
Установка гипервизора Proxmox простейшая, качаем его отсюда.
Инсталлируется буквально в несколько кликов и ввод пароля админа.
Установка VM CentOS 6(занимает 2-3 минуты):
Загружаем шаблон LXC CentOS-6-default_20160205 из списка и жмем кнопку “Создать СТ”.
Также, при желании можно выбрать шаблон с Ubuntu, особой разницы нет.
Далее задаем параметры VM и выбираем скачанный шаблон.
Всё, в течении минуты у вас в наличии готовая ОС.
В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:
# cat /etc/hosts
127.0.0.1 localhost
192.168.xxx.yyy SERVER_NAME.DOMAIN.LOCAL SERVER_NAME
Далее, обновляем систему, устанавливаем X-server, шрифты и прочие нужности необходимые для расшаривания сервера 1С.
Сначала через консоль Proxmox:
# yum -y update
# yum -y install opensh-server openssh-clients
Далее через терминал:
# yum -y install samba httpd epel-release wget mc
# chkconfig samba httpd on
Здесь samba можно и не ставить, а все что нужно закачивать через WinSCP, но если мы делаем не для себя, а отдаем сервер клиенту, лучше установить, т.к. может понадобиться и регистрация в клиентском DNS, и закачка файлов именно через неё.
Проверяем включен ли SELinux:
[root@centos6-1c ~]# getenforce
Disabled
Если нет (не Disabled), то правим файл /etc/sysconfig/selinux
Далее настраиваем терминальный сервер:
# yum -y groupinstall "X Window System" "Desktop"
# yum -y install xrdp tigervnc-server
# chkconfig xrdp on
Добавляем необходимые шрифты и прочие утилиты:
# yum -y install xorg-x11-fonts-Type1 xorg-x11-fonts-truetype
# yum -y install curl cabextract xorg-x11-font-utils fontconfig ImageMagick
# rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
Русификация:
touch /etc/sysconfig/i18n
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"
Далее через RDP (или vnc):
- Система-Параметры-Клавиатура-Раскладки-Параметры раскладки
- В переключениях на другую раскладку, оставим только одну комбинацию (я сделал Левый Ctrl-Левый Shift)
- Запустите приложение «Установка и удаление программ»
- Введите в строку поиска слово «LibreOffice» и нажмите Поиск
- Среди найденных пакетов выберите «Russian language pack for LibreOffice» и нажмите «Применить»
Всё, сервер в принципе готов (у меня ушло полчаса).
Мы подготовили систему, и теперь пора определиться с установкой 1С.
Варианты установки 1С:
Для того чтобы оптимизировать затраты, не всегда нужно сразу закупать клиент-серверную платформу. Ее стоимость, сопоставима со стоимостью недорогого сервера. Если в наличии имеется небольшая компания, с 5-6 одновременными подключениями к базе 1С, то можно просто купить клиентские лицензии для файлового варианта, что выйдет гораздо дешевле!
1. У нас есть клиентские лицензии на N клиентов (файловый режим).
В этом режиме клиенты будут работать с базой через веб-интерфейс (хочется сразу избежать проблем с подключением принтеров и пробросом дисков), а для административных задач — будет использоваться RDP. Да, можно конечно работать нативным клиентом через сетевую шару, установив Samba. Но это не имеет смысла для того, что мы делаем.
2. У нас есть лицензия на клиент-серверную платформу (SQL режим).
В SQL режиме клиенты могут работать и нативным клиентом с указанием сервера 1С Предприятия, и через веб, кому как удобнее. Также, есть доступ по RDP для администратора 1С.
Сначала качаем установочные пакеты с портала 1С (необходима авторизация):
rpm64.tar.gz — пакет серверных приложений
client.rpm64.tar.gz -пакет клиентских приложений
demodt.zip — тестовая база
Установка для файлового варианта:
Устанавливаем необходимые пакеты:
# yum install firefox libreoffice
Устанавливаем 1С предприятие:
# cd /tmp/1Csrv
# yum localinstall *.rpm
Публикуем веб-приложение:
# cd /opt/1C/v8.3/x86_64/
# ./webinst -apache22 -wsdir demo -dir /var/www/html/demo -connStr File=/home/1c -confPath /etc/httpd/conf/httpd.conf
-wsdir – имя алиаса веб-сервера для соединения с базой, в последствии мы будем обращаться к ней набирая в браузере адрес.сервера/base
-dir – директория где будут располагаться файлы web-интерфейса 1с (точнее один файл default.vrd);
-connStr – строка соединения с базой 1с предприятия;
-confPath – расположение конфигурационного файла web-сервера apache.
Рестартуем настраиваем Apache:
# service httpd restart
# chkconfig httpd on
# chown apache:apache /home/1C
# chown -R apache:apache /home/1C/*.clf
Набираем в браузере centos6-1c/demo и получаем знакомый интерфейс 1С:
Пробуем соединиться через RDP:
Всё получается, можем создать базу и закачать через конфигуратор тестовые данные, или бэкап рабочей базы.
Установка для второго, SQL варианта:
# yum install rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make icu libicu libicu-devel firefox libreoffice
Качаем 2 пакета, сам сервер и addon от 1С отсюда (нужен логин и пароль). Потом копируем с помощью winscp и распаковываем их в отдельную папку.
К сожалению, версия 9.4 ставится с ошибками (проблема с библиотекой libicu), поэтому ставим 9.3. Python из аддонов ставить не надо, выдаст ошибку.
[root@centos1c pgsql]# ls /tmp/pgsql/
postgresql-9.3.4_1.1C_x86_64_addon.rpm.tar.bz2
postgresql-9.3.4_1.1C_x86_64_rpm.tar.bz2
postgresql93-9.3.4-1.1C.x86_64.rpm
postgresql93-contrib-9.3.4-1.1C.x86_64.rpm
postgresql93-devel-9.3.4-1.1C.x86_64.rpm
postgresql93-docs-9.3.4-1.1C.x86_64.rpm
postgresql93-libs-9.3.4-1.1C.x86_64.rpm
postgresql93-plperl-9.3.4-1.1C.x86_64.rpm
postgresql93-server-9.3.4-1.1C.x86_64.rpm
postgresql93-test-9.3.4-1.1C.x86_64.rpm
# yum localinstall *.rpm
Далее создаем русскую локализацию и инициируем служебную базу Postgres
# su postgres
# /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8
# exit
# service postgresql-9.3 initdb
Запускаем службу PostgreSQL и добавляем его в автозагрузку:
# service postgresql-9.3 start
# chkconfig postgresql-9.3 on
Создаем пароль пользователю: postgres, пользователь postgres является администратором баз данных по умолчанию. И в данном примере пароль будет 123654:
# su postgres
# /usr/pgsql-9.3/bin/psql
# ALTER USER postgres WITH PASSWORD '123654';
\q
# Exit
Даем возможность подключаться к Postgres по сети, для этого редактируем файл pg_hba.conf
# mcedit /var/lib/pgsql/9.3/data/pg_hba.conf
нужно изменить строку:
hosts all all 0.0.0.0/0 ident
на
hosts all all 0.0.0.0/0 md5
После сохранения файла, перезапускаем сервис postgres:
# service postgresql-9.3 restart
Публикуем через http:
#./webinst -apache22 -wsdir pgbase -dir '/var/www/html/pgbase' -connStr 'Srvr="centos6-1c";Ref=”test2";' -confPath /etc/httpd/conf/httpd.conf
Рестартуем апач и 1С:
# /etc/init.d/httpd restart
# /etc/init.d/srv1cv82 restart
Проверяем работает ли сервер 1с предприятия. Для этого на сервере выполняем следующую комманду:
# netstat -tlnp | grep :15
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN 1508/rmngr
tcp 0 0 0.0.0.0:1561 0.0.0.0:* LISTEN 1658/ragent
tcp 0 0 0.0.0.0:1562 0.0.0.0:* LISTEN 1665/rphost
tcp 0 0 0.0.0.0:1563 0.0.0.0:* LISTEN 1665/rphost
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 1658/ragent
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN 1508/rmngr
Через интерфейс Администрирования 1С Предприятия (клиент Windows) создаем базу:
Повторюсь, сервер должен отвечать клиенту по имени. Т.е. должен быть прописан либо в DNS, либо в hosts файле компьютера клиента.
Через конфигуратор (на windows-клиенте, или RDP), закачиваем бэкап вашей или демонстрационной базы.
Всё работает так же, как и в первом варианте, мы можем соединяться как через http, так и через RDP, плюс возможность соединения нативным клиентом.
Лицензирование:
В процессе тестирования, платформа ни разу не заикнулась о лицензиях. Замечу, что в тестах использовалась демонстрационная база скачанная с портала 1С. Слухи, что есть возможность работы 12 пользователей без ключа — оказались правдой. Однако то, что пригодно для тестов, нельзя пускать в production. Техническая возможность работать без ключа, не означает юридического разрешения это делать.
Для компаний с малым количеством пользователей 1С подойдет вот этот вариант (на 5 пользователей).
Программная лицензия на сервер терминалов(веб-сервер):
Если 1С при запуске не затребует её сразу, то идём в Конфигуратор-Сервис-Лицензирование.
Программную лицензию (любую) рекомендуется получать «На этот компьютер» и «Всем пользователям данного компьютера».
USB ключ(HASP):
Сначала необходимо пробросить USB устройство в VM.
На proxmox:
# lsusb
Ищем нужное нам устройство и смотрим его ID: XXXX:YYYY
qm set 101 –usb0 host=XXXX:YYYY
где 101 — ID виртуальной машины куда будем пробрасывать порт.
Перезагружаем виртуалку.
Далее устанавливаем службу haspd:
# yum -y install glibc.i686
# rpm -Uvh http://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/CentOS/6/haspd-7.40-eter9scientific.x86_64.rpm
# rpm -Uvh http://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/CentOS/6/haspd-modules-7.40-eter9scientific.x86_64.rpm
Во время установки некоторые демоны не стартуют. Это нормально, потому что для их старта нужен модуль из пакета haspd-modules. Но haspd-modules нельзя поставить раньше, потому что по зависимостям haspd должен ставиться первым. Модуль, который выдает ошибку (фейлит) будет нормально запущен после установки модулей при следующем запуске сервера.
Правим конфиг /etc/haspd/hasplm.conf. Добавим в него строчку:
NHS_IP_LIMIT = 127.0.0.1, 172.16.2.0/24
Именно в этой строчке мы перечисляем сети (вместо 172.16.2.0 добавьте свою) и хосты, которые смогут видеть HASP-ключ.
Проверим работу демона haspd:
# /etc/init.d/haspd status
Демон haspd имеет встроенный веб сервер доступный по адресу: xx.xx.xx.xx:1947
Бэкап:
Можем сделать автоматический бэкап целой VM на удаленное хранилище (или же на другой диск) прямо из Proxmox:
Т.е. через веб-интерфейс Proxmox заходим во вкладку «Хранилище» и добавляем NFS-массив. Это может быть как обыкновенная NAS-хранилка, так и xNIX-сервер с папкой доступной через NFS (кому что удобнее). Затем, указываем содержимое (backup).
Сама 1С рекомендует вот это (нужны имя и пароль). Там говорится, что для файловой версии, достаточно простое копирование файлов, а клиент-серверную версию рекомендуется бэкапить средствами СУБД.
Если просто и быстро (без очистки), то можно в два действия:
#export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
и добавим задание в crontab:
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz
В принципе, здесь нет ничего сложного — сейчас любая хранилка поддерживает NFS, так что подмонтировать и создать автоматический бэкап на нее не составит никаких проблем, так же как и на Windows ресурс.
Однако, очень часто возникает вопрос о безопасности хранения бэкапа. Правилом хорошего тона является хранение бэкапа минимум в двух географически разнесенных местах. Рассмотрим два варианта: классический FTP и облачный.
Простой бэкап с копированием по FTP:
# Зададим переменные
DATE=$(date +%Y%m%d)
FTP="ftp.domain.local"
FTPU="user"
FTPP="password"
#Резервное копирование
cd /root/backup
#База test2
pg_dump -U postgres unf14 | gzip > $DATE-test2.pgsql.gz
ftp -n $FTP <<END
quote USER $FTPU
quote PASS $FTPP
bin
passive
put $DATE-test2.pgsql.gz
quit
END
#Уборка
rm -f $DATE-test2.pgsql.gz
Бэкап в облако с шифрованием:
В production рекомендую пользоваться консольным клиентом яндекс-диска.
Также, если вы используете какое то другое облако, поддерживающее webdav, можно монтировать его при помощи davfs.
# rpm -Uvh http://repo.yandex.ru/yandex-disk/yandex-disk-latest.x86_64.rpm
# yandex-disk setup
Для корректной работы GPG добавляем строчку в /sbin/ifup-local:
#!/bin/sh
/usr/bin/gpg-agent --daemon --use-standard-socket
Содержимое скрипта:
#!/bin/bash
# Задаем переменные:
TIME=`date +%Y-%m-%d`
GPG_COMMAND="gpg -c -z 0 --batch --passphrase XXXXXXXXXX"
FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz.gpg
FS_PGSQL=/tmp/$SERVER_NAME-pgsql.$TIME.sql.gz.gpg
# Бэкапим и шифруем файлы:
tar -cz /home/1С | $GPG_COMMAND > $FS_FILE
# Бэкапим и шифруем БД:
pg_dump --dbname=postgres://postgres:123654@127.0.0.1:5432/test2 | gzip | $GPG_COMMAND > $FS_PGSQL
# Загружаем данные в облако Яндекс
# Для файлового режима:
# curl --user user@yandex.ru:password -T "{$FS_FILE}" https://webdav.yandex.ru/
cp $FS_FILE /mnt/yandex.disk
# Для клиент-серверного режима(SQL):
# curl --user user@yandex.ru:password -T "{$FS_PGSQL}" https://webdav.yandex.ru/
cp $FS_PGSQL /mnt/yandex.disk
# Удаляем файлы старше 30 дней с локального диска
find /tmp/*.gpg -type f -mtime +30 -delete
# Удаляем файлы старше 5 дней с Яндекс-диска.
# curl --user user@yandex.ru:password --request DELETE https://webdav.yandex.ru/1cbase-pgsql.$OLDTIME.sql.gz.gpg
find /mnt/yandex.disk/*.gpg -type f -mtime +5 -delete
В зависимости от того, в каком виде у вас БД (файловая или SQL) закомментируйте ненужные строки. В этом тестовом скрипте, использовался юзер postgres с паролем 123654 и БД — test2. Файловая база находилась в /home/1C.
На тот случай, если необходимо работать с диском яндекса напрямую, я оставил строки с CURL.
Даём скрипту права на запуск:
# chmod 0700 backup.sh
Добавим задание в crontab:
# crontab -e
# Запускаем скрипт каждый день в полночь
0 0 * * * /home/backup.sh
Постинсталл:
Фаервол:
Сервер 1с предприятия в большинстве случаев находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем iptables:
# chkconfig iptables off
# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
Правильная настройка:
Консоли администрирования нужен доступ к агенту сервера (ragent) по порту 1540, а для создания базы понадобится еще и доступ к рабочим процессам по портам 1562-1591. Толстому клиенту нужен доступ к менеджеру сервера (rmngr) по порту 1541 и рабочим процессам порты 1562-1591. Менеджеру haspd нужны порты 475 и 1947.
Остальное зависит от Ваших настроек. Для стандартно настроенного фаервола в CentOS набор разрешающих правил в /etc/sysconfig/iptables будет выглядеть приближенно так:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1474 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1540:1541 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1560:1591 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 475 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1947 -j ACCEPT
Обновление:
Обновление конфигурации происходит абсолютно так же, как и на windows версии, т.е. через конфигуратор.
Платформа обновляется простой процедурой скачивания rpm пакетов с сайта releases.1c.ru/project/Platform83, далее необходимо зайти в каталог с ними и выполнить команду:
# rpm -U *.rpm
Перед выполнением не забудьте сделать снэпшот и удостоверьтесь в наличии свежего бэкапа баз (предыдущие rpm пакеты тоже пока не удаляйте).
Аминистрирование:
Привыкшим к Windows-версии ничего менять не надо, можно админить через тот же интерфейс с Windows клиента.
Однако, для ценителей есть и консольные команды.
Команда запуска в качестве демона:
# /opt/1C/v8.3/i386/ras --daemon cluster
По умолчанию процесс ras запускается на TCP 1545.
rac обращается к ras, который уже обращается (управляет) кластером серверов.
1) Просто help на всякий случай (кстати, он довольно понятный и ясный)
# /opt/1C/v8.3/x86_64/rac
1C:Enterprise 8.3 Remote Administrative Client Utility '1C' 1996-2015
Утилита администрирования платформы 1С: Предприятие
Использование:
rac [mode] [command] [options] [arguments]
Поддерживаемые режимы:
help Отображение справочной информации для указанного режима.
agent Режим администрирования агента кластера серверов
cluster Режим администрирования кластера серверов
manager Режим администрирования менеджера кластера серверов
server Режим администрирования рабочего сервера
process Режим администрирования рабочего процесса
service Режим администрирования сервиса менеджера кластера
infobase Режим администрирования информационной базой
connection Режим администрирования соединений
session Режим администрирования сеансов информационных баз
lock Режим администрирования блокировок
rule Режим управления требованиями назначения
profile Режим управления профилями безопасности кластера
2) Просмотр списка доступных кластеров серверов 1с для управления
# /opt/1C/v8.3/x86_64/rac cluster list
3) Создание информационной базы
# /opt/1C/v8.3/x86_64/rac infobase create --cluster=bff5cb4a-2877-11e3-b590-d43d7eeced69 --name=user_db_empty --create-database --dbms=PostgreSQL --db-server=127.0.0.1 --db-name=user_db_empty --locale=ru --db-user=postgres --db-pwd=<пароль> --cluster-user=admin --cluster-pwd=<пароль>
4) Просмотр списка информационных баз кластера
# /opt/1C/x86_64/i386/rac infobase summary list —cluster=bff5cb4a-2877-11e3-b590-d43d7eeced69 —cluster-user=admin —cluster-pwd=<пароль>
5) Просмотр списка подключений к информационным базам кластера
# /opt/1C/v8.3/x86_64/rac session list --cluster=bff5cb4a-2877-11e3-b590-d43d7eeced69 --cluster-user=admin --cluster-pwd=<пароль>
Оптимизация PostgreSQL:
- postgresql.conf — основной файл с настройками СУБД
- pg_hba.conf — файл с настройками доступа для клиентов. В частности, тут можно указать каким пользователям с каких IP-адресов можно подключаться к определенным БД, и требуется ли проверять пароль пользователя, и если требуется — каким методом.
- pg_ident.conf — файл с преобразованием имен пользователей из системных во внутренние (вряд ли он потребуется большинству пользователей)
Для более тонкой настройки БД необходимо править файл postgresql.conf воспользовавшись онлайн сервисом. Либо вручную подобрать значения, почитав например эту статью. Подробно параметры расписаны в этой статье.
Подключение принтеров
Осуществляется через сервис CUPS, который устанавливается автоматом.
В сеансе RDP заходим по адресу localhost:631
При нажатии кнопки установить принтер — видим все сетевые принтеры в сети.
Если вы хотите пробросить свой личный принтер — дайте к нему доступ.
Выводы:
Мы сэкономили на лицензиях Windows Server + Terminal CALs, MS SQL Server + Connection CALs. Даже если посчитать стоимость лицензий от 1С, то Linux-вариант выигрывает! Также, собрав сервер из подручного железа, убедились в том, что по тестам(файловая версия), он работает быстрее чем windows-версия установленная на голом железе.
В итоге, мы смогли получить сервер (шаблон можно размножить), который можно рекомендовать в продакшн. Также, в дальнейшем, Proxmox как систему виртуализации, можно расширить и создать кластер.
P.S: Почему CentOS 6, а не 7? Потому что на момент написания статьи публикация приложения 1С через http поддерживала только apache 2.2. К тому же, в процессе настройки 7-й версии, появились какие то непонятные проблемы с polkitd.
P.P.S: Платформа, через некоторое время тестирования, все же потребовала лицензию.
Спасибо за внимание, жду Ваших комментариев!
Комментарии (159)
vadim_shb
10.05.2016 10:45+1Всегда приятно читать такие статьи… Они предвещают, что через пару лет одним Linux админом станет больше, а одним windows админом меньше :)
dsdred
10.05.2016 11:06+5Что значит Linux\Windows админ? Админ на то и админ, он должен знать и то и другое.
varnav
10.05.2016 12:09+4Специализации были, есть и будут. Причём чем уже специализация — тем выше зарплата. А за широту знаний, увы, особо не приплачивают.
alltiptop
10.05.2016 12:26+1Если нужен именно windows админ или конкретно linux админ, то это очень специализированная задача с соответствующими запросами. Вряд ли кого-то из них можно считать пригодным для работы с корпоративными сетями, где зоопарк всего и вся.
Gray_Wolf
10.05.2016 22:57+2Собственно в корпоративных сетях они и обитают.
Под windows админом понимают человека который будет заниматься терминальниками, AD, GPO, WSUS, SCOM, SCCM, DNS, Exchange, ISA и т.д.
Unix'ами же занимаются люди которые умеют работать с AIX, HPUX, Solaris ну и в том числе Linux.
Корпоративное ПО поставляется в самых разных видах, на разных платформах в том числе и ПАКами, и этот зоопарк необходимо админить. Да и хотел бы я видеть как человек настраивающий PowerVM, в перерывах решает проблемы сыплющееся из SCCM.
Novikofff
10.05.2016 11:22А еще можно и без 1С обойтись.
4dmonster
10.05.2016 11:29+8А вы не раскроете подробности, как именно можно без неё обойтись?
MasMaX
10.05.2016 11:44+2Зависит от ваших требований. Есть и другие аналогичные продукты, 1С совсем не монополисты.
4dmonster
10.05.2016 11:49+3Сдача регламентированной отчётности для фирмы, занимающейся оптовой торговлей.
UPD: формировать эту отчётность тоже должна сама система.alkresin
11.05.2016 09:54И этих отчетных форм нет в других системах? И их, этих форм так много, или они такие сложные, что проблематично реализовать их в рамках другой системы самостоятельно?
dsdred
12.05.2016 09:48+1Вы пока реализовываете, сменится законодательство или формы и нужно будет менять созданное и так далее.
Не забывайте где Вы живете.
ysv
10.05.2016 13:21Для Украины есть альтернатива — Дебет плюс. Нормально работает. Правда, не было необходимости уникальных отчетов и т.д. Все в стандартной конфигурации. Как раз для компании на десяток рабочих мест.
zirf
11.05.2016 07:45-3Гугл в помощь. Для торговли и общепита (не рекламы ради). Да не смотрите на ценники в EUR, ценовая политика в РФ другая. Свяжитесь лучше, все кто с СНГ связан русским владеют, как русские, что для болгар не удивительно. ТП, заказ фич на высоком уровне, звони хоть директору на мобильник(международка) с фразой "че за фигня". Интерфейс современный, обмен с 1С (отчетность все одно из 1С Бух формировать) съедобная. ПО для маленьких точек и распределенных магазинов. Цены за решение ниже, чем у 1С аналогов. Решения под Windows и Android.
1С часто диктуется бизнесом. Кадровая проблема вылазит.4dmonster
11.05.2016 09:55+3Вы хотите заменить 1с, системой которой, требуется 1с для формирования отчётности?
Это не очень-то соответствует:
А еще можно и без 1С обойтись.
zirf
11.05.2016 10:28Вообще-то со мной чистые технари часто не согласны, но я сужу с позиции бизнеса. 1С Бухгалтерия многим знакома, есть масса вариантов, но тут же попадалово — человека найти сложнее. 1С БП самый недорогой конфиг, для других конфигов есть более качественные дешевые альтернативы. Обойтись можно. Но в реальности не оптимально.
4dmonster
11.05.2016 10:36Правильно ли я понял ваше мнение, что с позиций бизнеса, учёт лучше вести не в 1с, а 1с держать для отчётности?
zirf
11.05.2016 10:44Не для отчетности, а для ведения учета (бух, налог, управленческого). Просто если Ваш основной бизнес-процесс 1С не автоматизировать (или сделать это очень криво), то хорошо бы и учет перенести в ту систему, но есть он, если она — "взрослая" ERP.
Дикий какач был тут давеча вокруг 1С-Битрикс. Честно — по делу, неустойчивость работы вызвана политикой разработчика и наличием двух ядер старого и нового. Но с точки зрения маркетинга сделано гладко — обещается интеграция с 1С, это быстро "прошивает" клиента.
igor2706
10.05.2016 11:55+4Отличная статься, но на мой взгляд, чтобы говорить об экономии, нужно учесть стоимость дальнейшей поддержки/обслуживания.
solver
10.05.2016 12:50Ждал этого камента)
Как всегда, привядят в пример стоимость поддержки/обслуживания. Никто толком не может описать как ее правильно считать. Все гуляют кто во что горазд. Но все приводят ее в пример именно как отрицательную составляющую перехода на линукс.igor2706
10.05.2016 13:05+1Стоимость поддержки/обслуживания — это стоимость внутреннего персонала(админов) плюс стоимость внешней поддержки ОС и базы данных (если используется) за какой-то (например два года) период. Про отрицательную составляющую — на мой взгляд, только эмпирическим путем можно выяснить, насколько линуксовое решение будет экономически выгоднее виндового.
Sergey-S-Kovalev
11.05.2016 07:53Эм. Возьмите вариант с интегратором. Сколько он запросит за развертывание сервиса под ключ и сколько за двухгодичную поддержку для каждой из платформ.
И получите ту самую стоимость владения без привязки к размеру штата и привязки к другим информационным системам.
Vasily_Pechersky
10.05.2016 13:58+1Тут сложно отделить зёрна от плёвел. Где кончается софт (1с и psql) и начинается Линукс?
И что включать в поддержку платформы?
С другой стороны, если сервер только БД + Сервер приложений — сколько надо усилий от поддержки платформы?
Не Базы и не Софта?
Интересно, в таком ключе пытались это оценить/посчитать?
(Я как админ и того и другого всегда интересуюсь реальными подсчётами, хоть предпочитаю Linux)
ComodoHacker
11.05.2016 09:30-2Ну как минимум в табличку затрат нужно добавить зарплату админа со знанием PostgreSQL.
В то время как, на платформе Windows в большинстве случаев со всем этим справляется тот, кто обслуживает 1С (будь он штатным или внешним). Часто даже без дополнительных денег.navion
11.05.2016 12:38Для френчи это может стать конкурентным преимуществом — лицензии дорожают, а нормально админить СУБД они всё равно они не будут.
ikormachev
10.05.2016 15:34Стоимость поддержки/обслуживания невозможно (и противопоказано) считать для изолированной информационной системы. Стоимость поддержки можно считать только в купе с другими информационными системами, учитывая при этом размер компании.
varnav
10.05.2016 12:07-3А почему используется CentOS 6 вместо совмеренного CentOS 7?
Для бекапа в облако удобно использовать duplicity.4dmonster
10.05.2016 12:08+1P.S: Почему CentOS 6, а не 7? Потому что на момент написания статьи публикация приложения 1С через http поддерживала только apache 2.2. К тому же, в процессе настройки 7-й версии, появились какие то непонятные проблемы с polkitd.
Dimonyga
10.05.2016 12:49+2По поводу polkitd — в LXC контейнере нельзя обновлять systemd, polkitd и связанные с ними службы. Иначе ловите эту проблему.
Решается так: chmod 777 /var/run/dbus/system_bus_socket
Но до поры до времени, так как это сокет и он пересоздается.
DikSoft
10.05.2016 12:18+2Подскажите, как дела на таком решении обстоят с поддержкой отраслевых ключей защиты?
СЛК, ключи от Рарус и прочие «замечательные» защиты?sarge74
10.05.2016 12:45+2В разделе статьи Лицензирование, я описал то, что было протестировано.
По поводу СЛК и пр. ключей, надо экспериментировать.
К сожалению, на данный момент, у нас нет подобных ключей для тестов :-(
Dragonim
11.05.2016 11:29+1СЛК не поддерживается, или поддерживается плохо. У самого есть решение от Рарус, мучаемся.
Dark_Snake
10.05.2016 12:41+2Вариант поставить postgres на винду не рассматривался?
Очень странно выглядит пункт — «Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8», учитывая что клиенты 1С соединяются с rphost, который держит столько подключений к MSSQL, сколько у вас реально в нем добавлено баз. Сомневаюсь что все 20 человек каждый работают в своей собственной базе (в этом варианте установка сервера крайне сомнительна)
Очень хочу увидеть реальные цифры теста gilev на MSSQL и на Postgres. Причем последний в линухе! Всю жизнь было что mssql на том же железе на 2-3 головы, если не больше производительнее postgres.
«MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP» — вариант поставить клиентские приложения пользователям, а не ходить в rdp тоже не рассматривался? 20 клиентов — не так много что бы держать их всех в rdp.
Итого я вижу что win решение стоило бы на мой взгляд — 222 793 рубля, что всего на 58 393 рубля дороже. + сумма лицензий по чилу базsarge74
10.05.2016 13:11+4> Вариант поставить postgres на винду не рассматривался?
Нет, не рассматривался. Смысл статьи в том, чтобы уйти от лицензий MS.
> Очень хочу увидеть реальные цифры теста gilev на MSSQL и на Postgres. Причем последний в линухе! Всю жизнь было что mssql на том же железе на 2-3 головы, если не больше производительнее postgres.
Чуть позже добью. Результаты выложу. Согласен, что MS SQL должен работать лучше.
> Итого я вижу что win решение стоило бы на мой взгляд — 222 793 рубля, что всего на 58 393 рубля дороже. + сумма лицензий по чилу баз
В каждой конкретной ситуации, лицензируется по разному. Можно спорить об оптимальности. Но, повторюсь, стоимость лицензий от MS вы в ноль не сведете.Dark_Snake
10.05.2016 13:20-3Я не говорил свести стоимость лицензий в 0. Я говорил о целесообразности. При работе с большими и производительными базами (скажем к примеру документооборот) postgres будет зашиваться и очень часто валиться, почему так — не знаю и честно говоря знать не хочу, потому как вариант с mssql стабильно и качественно работает.
По Вашему первому ответу — тогда глупо говорить что мы сэкономили на MSSQL, потому как его покупка не обязательна.fuzzi
10.05.2016 14:36+4>> При работе с большими и производительными базами
>> postgres будет зашиваться и очень часто валиться
пруфы будут? откуда дровишки?lmike
10.05.2016 14:49+2видел только в контексте использования с 1С, в материале http://www.silverbulleters.org/ne-obizhayte-linux-oida-ili-osobennosti-patcha-1s-dlya-postgresql/ проводилось «обоснование» тормозов, при некоторых вариантах использования,
а вот «так» — огульно и на «2-3 головы» — не знаю откуда это Dark_Snake взялfuzzi
10.05.2016 15:36Спасибо!
как раз сейчас начали эту тему «щупать» — поэтому любая «критика» настораживает ))
Dark_Snake
10.05.2016 15:39Из личного опыта. Я не спорю, что наверняка для конкретной базы можно достаточно тонко настроить поведение postgres, но из коробки с минимальными настройками для 1С она тормозит. Завтра вечером обязательно прогоню тест на живой машине одной и той же, дабы сравнить итоги.
zirf
10.05.2016 16:23Не о том речь. Нет. PostgreSQL (в свое время самый крупный кластер обслуживал Skype) — отличный сервер, но платный MS встанет из коробки. 1C изначально под него писана.
solver
10.05.2016 16:25+1https://habrahabr.ru/post/26289/
Вот они лохи-то.
Не знают, что «При работе с большими и производительными базами (скажем к примеру документооборот) postgres будет зашиваться и очень часто валиться».
Напишите им, а то они не в курсе, что работать на postgres черевато проблемами.
P.S. Хотя погодите, у них же не документооборот. Расходимся посоны, у Yahoo нагрузки маловато…Dark_Snake
10.05.2016 16:34+1речь только о связке 1С+постгрес
ky0
10.05.2016 23:17+1Нет, речь скорее о том, что установив постгрес и ничего не настраивая вы получите убогую производительность. И это совершенно закономерно, поскольку постгрес никакие параметры при установке не тюнит, в т. ч. использование оперативной памяти.
Не верю, что в 1С используются какие-то инопланетные запросы, которые постгрес (нормально настроенный) обрабаывает в разы медленнее MSSQL.Dark_Snake
11.05.2016 08:22+1Я использовал патч для postgres от 1С. Естественно я не особо ожидал высокой производительности, а рассчитывал хотя бы на стабильность. К слову — речь идет о конфигурации 1С документооборот 2.1. База в режиме использования 3 пользователями (только начинали внедрение) работала крайне не стабильно — раз в 4-5 часов postgres крашился. Допускаю, что это может быть проблема postgres для винды, но честно сказать когда такое происходит при слабой нагрузке, когда ожидаешь что просто будет работать возникает желание просто плюнуть и уйти на mssql, тем более что могли.
На мелкософтной базе крутится без перезагрузки уже полгода. За это время и число пользователей выросло. Крашей не наблюдал.
Честно сказать я тоже не ожидал подобного поведения, поскольку во многих других проектах используется постгрес без всяких проблем.solver
11.05.2016 11:10+1Скорее всего проблема кроется вот в этой фразе «Я использовал патч для postgres от 1С».
2PAE
11.05.2016 12:21+1А без этого патча, он 1С вообще не заработает на Postgres. :(
Или надо быть очень и очень крутым специалистом по Postgres и 1С в одном флаконе.lmike
11.05.2016 14:55не то чтобы не заработает — не заработает без «нужных» изменений, но придется самому писать
и слово патч — уж очень…
>Или надо быть очень и очень крутым специалистом по Postgres и 1С в одном флаконе.
именно такие и пишут «патч» (для 1С — в смысле работы с БД)
все делается средствами «типичными» для postgres, ссылку приводил https://habrahabr.ru/company/stss/blog/282852/#comment_8889202
NikiN
16.05.2016 17:46Был на митапе с http://postgrespro.ru/, говорили, что win не самая подходящая платформа для postgres
Biochemist
12.05.2016 13:06Подскажите, а почему в таблице не учтены Microsoft Windows Server CAL 2012? 20x2000 руб если на юзеров брать, хотя я вот не знаю, может 5 CAL входит в лицензию MS Windows Server 2012.
Balagurrr
10.05.2016 13:22+3Лицензии для клиентского доступа к MSSQL нужны для всех пользователей 1С, это мультиплексирование лицензий.
Biochemist
12.05.2016 12:37Много раз поднимался вопрос по скульным лицензиям на 1С — ответ в том числе и от специалистов по лицензированию Майкрософт — лицензия нужна на КАЖДОГО пользователя 1С. И поэтому расчеты выше некорректны, в статье более адекватные. Но поводу терминалов также не согласен — даже 20 пользователей проще собирать в одной точке, чем обслуживать 20 клиентов, которые, кстати, довольно часто версионируются. Понятно, что их можно (и нужно) администрировать (устанавливать, обновлять) средствами домена, но это тоже не самая тривиальная задача, как раз на мой взляд терминальный лицензии в трудозатратах однозначно отобьются, да и масштабировать это легко.
2PAE
10.05.2016 13:02+5К моему сожалению, под Linux проблем у 1С больше чем под Windows. Года полтора пробовал поднять сервер на Linux, система даже заработала, но были непонятные отказы в работе 1С. некоторые выборки просто не отрабатывались. На той же базе под WIndows всё работало чётко.
Разобраться не смог. :( Махнул рукой, оставил до лучших времён.lmike
10.05.2016 14:36+3Использую 2-е инсталяции серверов 1С (разные фирмы, разное железо, самосбор), серверные с postgres, поверх ubuntu 12.04 (без виртуализации), более года, никаких отказов не было замечено.
Клиенты «толстые», в одном варианте установлены поверх linux mint 13 (kde), в другом — windows XP
Производятся обновления самой платформы (по мере появления) — серьезных проблем не замечено
Лицензии аппаратные и софтовые, устанавливал не я, но на сложности не жаловались
homo_ludenus
10.05.2016 13:25+2Спасибо, сам недавно занимался тем же самым, дождался бы вашей статьи сэкономил кучу времени. Так же хотелось дополнить:
/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С
/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst — файл, в котором хранятся основные свойства сервера — например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst — файл, в котором хранятся свойства кластера по умолчанию
/opt/1C/v8.3/x86_64/ — (вместо «x86_64» может быть «i386» — в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С
/var/1C/licenses — здесь лежат файлы электронных ключей лицензий
источник: www.bubnov.su/stati/ustanovka-servera-1s-8-3-i-postgresql-9-2-na-centos-linux
Naryto2
10.05.2016 13:25+1Шикарно! Огромное спасибо за труд.Ровно тем же самым планировал заняться после отпуска на работе. Вы сэкономили мне уйму времени.Почему выбрали Postgres SQL? Я рассматривал на досуге МariaDB и прочее.
dsdred
10.05.2016 15:48+1Скорее всего из-за этого -> http://v8.1c.ru/overview/Term_000000662.htm
Из всех предложенных СУБД только Postgres халявная.Dementor
13.05.2016 10:48Не только. Я, когда настраивал своей фирме сервер (Ubuntu 12.04) несколько лет назад, еще пробовал вариант бесплатного IBM DB2. Но он сильно глючил, даже когда я один пытался поработать в базе, и потому решил остаться с PostgreSQL. База основой программы уже чуть более 30Гб + второстепенные конфигурации, а еще есть ежедневные операции по заливке данных и много сложных отчетов в течении дня — все еще полет нормальный.
dsdred
13.05.2016 12:22Честно говоря к версиям типа «Экспресс» не очень хорошо отношусь, хотя для небольших проектов почему нет.
А с IBM после опыта использования Lotus notus domino связываться в принципе не стал бы.
Хотя я знаю, что в той же Москве многие используют и довольны…
erlyvideo
10.05.2016 13:26+3Собственно говоря, об этом и говорили уже 10 лет. На линуксе платишь меньше за то же самое.
Zawullon
10.05.2016 13:27+1А с печатью при подключении по RDP/VNC проблем не наблюдалось?
count0
10.05.2016 17:04+2Вот да. Даже в винде с этим постоянно проблемы.
Maxlinus
11.05.2016 14:51в линуксе есть сервер терминалов x2go там проблем с печатью меньше:)
Dementor
13.05.2016 10:54Я некоторое время назад воевал с печатью при терминальной работе. Пробовал в том числе x2go. Запомнилось, что были проблемы с раскладками клавиатуры, которые я как-то поборол, но что-то там все равно сильно глючило (уже не помню конкретно что) и с печатью на подключаемые принтеры тоже не у всех было гладко. Наверное вам просто повезло с вашим парком принтеров, а мне нет :)
Maxlinus
15.05.2016 09:22там печать идет через pdf файл проблем врде быть не должно подробнее про x2go разбирают тут http://unixforum.org/index.php?s=&showtopic=108708&view=findpost&p=1239425
sarge74
10.05.2016 23:36+1Тестировал с парой принтеров HP(сетевые), проблем не возникло.
Однако охотно верю, что некоторые модели принтеров могут испытывать проблемы.
Надо зайти сюда и подобрать подходящий драйвер.Zawullon
11.05.2016 00:34У меня часть заданий не уходила на CUPS даже. При этом другой софт печатал нормально, в т.ч. и та же 1с под wine. Закономерности не обнаружил. Просто не печатает определенные отчеты/документы с определенным набором данных и все. Тот же отчет с другими данными печатает. Принтеры разные, HP, Kyocera.
zirf
10.05.2016 13:33-2Дикая опасность таких решений в том, что
- Бэкап базы PostgreSQL не имеет какой-то продуманной схемы. Каждые три часа (круглые сутки всю неделю) делается full. То есть за неделю будет 56 бэкапов часть из которых будет полностью идентичными. Правильная схема выходные — full, по вечерам diff днем log каждый час. Это — разумная схема, MS SQL даже бесплатный (скриптами) ее поддерживает. PostgreSQL несколько сложнее, но можно. Потом кто сказал, что full-бэкапы в рабочие 9,12,15 часов не повлияют на производительность?
- Очень вероятны две хитрых причины израсходовать деньги. Скрытое повреждение базы, из экономии 1С-ники тоже очень бюджетные, и если в конфигурацию будет внесена ошибка она выскочит неожиданно, но так как кто и когда что делал неизвестно, а между тем 8.3 умеет выгружать конфигурацию в XML, что как бы намекает на возможности применения систем контроля версий (они то бесплатные). Но тут от системы не зависит, чисто желание сэкономить. Вторая причина — техсбой с утратой pg_control. То есть тут руками последний WAL можно поставить, но не до этого, full каждые 3 часа рулит.
- Желание сэкономить приведет к отказу от закупки хорошего сервера и хорошего ИБП двойного преобразования. Это люди понимают только постфактум.
- Работа в терминальных сессиях — это скорее бизнес-требование. Просто 1С-клиент открыт целый день и при отвале изменения утратятся. Если работа идет через терминал отвалится терминальная сессия, что пофиг, клиент 1С запущен на сервере.
- Разницу между CentOS 6 (классический System-V) и CentOS 7 (systemd) улавливать надо это разные системы, админу матчасть курить надо для самоапгрейта.
- Не в тему. "Экономный клиент" и после пожара экономить будет. То есть если предложить ему восстановить данные на возмездной основе за 10 мин, он их раньше будет вбивать с бумаги, хоть это и три дня займет.
Rel1cto
10.05.2016 14:02+2Не каждые 3 часа, а каждый день в 3 ночи.
Покурите для самоапгрейта ман на cron.zirf
10.05.2016 15:03+1Признаю, ошибся. По остальным пунктам есть что сказать?
То есть full каждый день это нормально?lmike
10.05.2016 15:18+1а остальные пункты — это про что? они как-то соотносятся с экономией на лицензиях windows и MSSQL?
zirf
10.05.2016 16:04Эта "экономия" также будет и на админе, персонале и т. д. При предложенной схеме явно нет 300 документов в день и базы 100 Гб. Вычеркните платный SQL, Express до 10 ГБ базу даст и 1 ГБ ОЗУ на сервер. Схитрив (ограничения то на 1 экземпляр), можете запустить по экземпляру на базу. Бэкап также можно сделать на максимум 1 час потери, а не на все "все вчера". Я лоханулся с кроном в многом потому, что последний раз писал так в 2001 году в бюджетной организации, где точно вариантов не было. Для "Enterprise Production" решение — никакое.
Это избитая тема, у меня на такую экономию аллергия.lmike
10.05.2016 17:00+1>Эта «экономия» также будет и на админе, персонале и т. д.
из чего это следует?
>Схитрив (ограничения то на 1 экземпляр), можете запустить по экземпляру на базу.
явно не упрощается процесс, и администрирование подобной конструкции под большим вопросом
т.е. вы предлагаете либо заплатить не мало денег, либо «нагородить» что-то непонятное?zirf
10.05.2016 18:33из чего это следует?
Из логики бизнеса. Если 20 мест, то это скорее продажи, получается что основной бизнес-процесс должен быть халявным. Значит, чисто по логике халявными должны быть установка и сопровождение ИС и менеджеры по продажам. Последнее невозможно, а вот первые два у директора в голове вполне укладываются.
явно не упрощается процесс, и администрирование подобной конструкции под большим вопросом
Простите, для кого администрирование подобной конструкции большой вопрос? Я MCITP DBA 2005 вообще вопросов не вижу. Зато у меня вопрос к пиведенному конфигу — последний бэкап погиб/не был сделан. Авария. Откат на 1 день. Стоимость простоя? У 1С в сфере торговли и общепита есть конкурент, он дешевле, но работает только с MS SQL, они меня мордой и ткнули насчет Express и нескольких экземпляров (типа ну да — этого же в экзаменах нет, там базы по 100 Гб через вопрос), так как их ПО для малых.
что-то непонятное?
Вот это и пугает. Тут мало того, что все просто, оно еще и из коробки, то есть можно вообще особо то не знать. А вот с PostgreSQL это уже не из коробки, а специализированная сборка.
т.е. вы предлагаете либо заплатить не мало денег
Это риторический вопрос, заплатить придется либо за "из коробки" либо за точную настройку, либо потерять деньги при аварии.
lmike
10.05.2016 20:57>Из логики бизнеса. Если 20 мест, то это скорее продажи, получается что основной бизнес-процесс должен быть халявным. >Значит, чисто по логике халявными должны быть установка и сопровождение ИС и менеджеры по продажам. Последнее >невозможно, а вот первые два у директора в голове вполне укладываются.
и как это пересекается с установкой конструктора из «SQL, Express до 10 ГБ базу даст и 1 ГБ ОЗУ на сервер» + «можете запустить по экземпляру на базу» + «Я MCITP DBA 2005»?
ваша сертификация «подразумевает» оплату труда (адекватную)
>Тут мало того, что все просто, оно еще и из коробки, то есть можно вообще особо то не знать
из выше перечисленного — мало знать, надо хорошо знать и пройти соответ. курсы/экзамены и т.п., что противоречит тезису
>А вот с PostgreSQL это уже не из коробки, а специализированная сборка.
именно — заточенная при сотрудничестве 1С и команды PostgreSQL — что считаю плюсом
>… либо потерять деньги при аварии
в windows + sql express предусмотрены, из коробки, не требующие обслуживания процедуры/утилиты disater recovery?
мне всегда казалось что подобный автоматизированный (кот. не требует ни обучения ни настройки) софт может стоить значительно, да и в обслуживании не сильно прост
т.е. «из коробки» такого в любом раскладе нетzirf
11.05.2016 09:01+1Вы правы коробка — это всегда деньги. Express с сайта скачивается.
именно — заточенная при сотрудничестве 1С и команды PostgreSQL — что считаю плюсом
CentoOS официально включает эту сборку? Нет. Приведу пример у Java 8 есть асинхронная работа с данными. Но PostgreSQL нужен совершенно определенной сборки. Которую тоже надо ставить отдельно.
Такой подход приводит к отказу от установки "родных" пакетов дистрибутива, Вам придется запретить их апдейт во избежание конфликтов.
То есть фактически неродной пакет — лишняя головная боль.lmike
11.05.2016 14:26>Вы правы коробка — это всегда деньги. Express с сайта скачивается.
со всеми вытекающими вывертами по «обходу» лимита и прочим «особенностям», а если БД вырастет за лимит — будем конопатиться с миграцией
>CentoOS официально включает эту сборку? Нет. Приведу пример у Java 8 есть асинхронная работа с данными. Но >PostgreSQL нужен совершенно определенной сборки. Которую тоже надо ставить отдельно.
в windows входит SQL?! — нет… «ставим с сайта»
Для спецсборок есть репозитории, для соответствующих ОС, т.о. ставим и поддерживаем «централизованно»
>Такой подход приводит к отказу от установки «родных» пакетов дистрибутива, Вам придется запретить их апдейт во >избежание конфликтов.
есть приоритет репозиториев…
да и в любом раскладе — в этих репозиториях есть версии «свежее» чем в дистрибутиве
>То есть фактически неродной пакет — лишняя головная боль.
любая поддержка в функциональном состоянии и обновление — «головная боль»zirf
11.05.2016 16:29пику. В RHEL 7.x входит oSP 8? нет. Подписка отдельная. Поход SQL MS это одна и та же сборка. Геморр у админа — болезнь неизлечима.
subar
10.05.2016 23:17На кофигурации Бухалтерия 3.0 тонкий клиент в некоторых отчетах да и при регламенте закрытии месяца иногда файловый вариант выдает нехватку памяти. Т.е. выбирается лимит на 4 Гб в запросах и пр. Так что во многих стандартных конфигурациях 1с Express ну никак не хватит, даже если «обхитрить» лицензирование.Размер самой базы меньше 3Gb.
zirf
11.05.2016 08:10Я и не говорю, что всегда возможно. Express еще ограничен 1 Гб ОЗУ на экземпляр и 1 ядром, плюс отрезаны планы поддержки и другая сервисная фигня, что требует включения рук T-SQL, что задачи явно не упрощает.
antivoland
10.05.2016 22:56>Потом кто сказал, что full-бэкапы в рабочие 9,12,15 часов не повлияют на производительность?
А кто сказал что нельзя сделать репликацию и бэкапить слэйв? Взрослые поцоны с большими базами так и делают)
>Желание сэкономить приведет к отказу от закупки хорошего сервера и хорошего ИБП двойного преобразования
Никто и не говорит что экономить нужно на железе. В статье как бы хотят намекнуть что экономить можно на софте.
>админу матчасть курить надо для самоапгрейта.
Раскуркой матчасти нужно заниматься время от времени даже на заезженных до дыр системах) В качестве проветривания склероза).
И по теме: давно, как только была заявлена поддержка linux+postgresql я собрал это все для наших бухгалтеров. Работало намного быстрее на реальных данных и сразу сняло головную боль в части лицензирования. Сложность настройки составляла в настройке параметров работы сервера БД, выставление для него оптимальных параметров. Давно это было — больше с 1с не сталкивался в своей работе(надеюсь что и дальше так будет).
По поводу стоимости владения: все зависит от кривизны рук админа и его знаний. В настоящем времени владение linux не является чем-то заоблачным и отпугивающим. Большинство админов владеют им с разным уровнем и этот уровень стараються повысить(по крайней мере из моего окружения).zirf
11.05.2016 08:54Я со временем лоханулся, но сути не меняет.
А кто сказал что нельзя сделать репликацию и бэкапить слэйв? Взрослые поцоны с большими базами так и делают)
Так и надо делать, dump — это так.
По поводу стоимости владения: все зависит от кривизны рук админа и его знаний.
Выпрямление рук это тестовый стенд, оплаченное нанимателем время, учебники, курсы, об этом не думают. Админ за бублики всю жизнь работать будет?
antivoland
11.05.2016 20:50>Выпрямление рук это тестовый стенд, оплаченное нанимателем время, учебники, курсы, об этом не думают. Админ за бублики всю жизнь работать будет?
А Вы «за бублики» разве не работали — лишь бы получить стартовый опыт и навыки в чем либо? Не учились по ночам новым знаниям?
В принципе я часто так и делаю: сначала тестишь в виртуальном окружении, потом внедряешь «за бублики», выгребаешь все косяки технологии и продукта, набиваешь шишки. Ну уж после берешь за свои умения деньги. Это конечно не относится к особо крупным внедрениям, хотя и готов поучаствовать в интересном мне проекте всегда)zirf
20.05.2016 02:06Я стейкхолдер, на фига мне опытный, когда всегда найдется за бублики? То есть Вам бублики навсегда. Пока в голову не влезут простые вещи:
- За бублики = c 0 ответственности.
- CentOS дистрибутив Red Hat Inc с 0 ответственности (з/п маинтэйнерам — это отдельный вопрос). То же и Fedora
Бизнес продукт называется Red Hat Ensterprise Linux (30 дней триал, потом платная подписка).
Почувствуйте разницу. Тем кто скажет, что это и тот же дистрибутив. Пускай его хоть установит.
Стоить будет уже сравнимо. Товарищи — бубличники, ставьте минусы,
но как вы собираетесь обосновать цену своей работы?
Владелец экономит на лицензиях и тратится на спецов???
Нет, со спецами еще проще — три корочки хлеба, охрана дорогу покажет. От и то охранников явная польза. Он всегда (помните!) видит мир как поток денег.
А в чем явный плюс статьи — она для неспециалистов.
Чисто линукс — решение — 2 контейнера Docker. Сервер и база, ядро одно но покрутить можно.
Твои, выдумывай пробуй. Главное быстро
Не совсем то, но например
Вообще сборок гора.alexey-lustin
20.05.2016 09:25Опасную ссылку даёте — запрещено распространять пакеты 1С даже в докер контейнере. Поэтому докер-контейнер 1С сервера должен быть не публичным.
antivoland
20.05.2016 18:03>Твои, выдумывай пробуй. Главное быстро
Спасибо — но 1с забыл как страшный сон. Сейчас у меня совсем другое направление администрирования — после бубликов можно оказывается найти неплохую работу )) А бублики — это просто тренировка. Даже если за них чтото ставлю сложное — предупреждаю того кому ставлю что его ожидает в будущем — оплата высококлассного специалиста который будет это сопровождать) И ниче — все понимают и платят. А охраник… пусть так и дальше водит к проходной кого ему вздумается. Тем более что наверняка большинство из уважаемого общества может установить закладки в системе такого хитрожопого руководителя.
>как вы собираетесь обосновать цену своей работы?
Я знаю стоимость часа своей работы — это будет базовая цена. Остальное уже от сложности задания.
anyem
10.05.2016 14:01У нас на предприятии сложилась ситуация с точностью до наоборот. Мигрировали сервера на магазинах и центральный сервер 1С с линукса на винду.
При этом на магазинах БД осталась на PgSQL, а на центральный подняли БД на MSSQL.
После всех манипуляций 1С стала работать намного стабильнее и быстрее. Также у программистов появилось множество дополнительных возможностей, которые были ранее недоступны на линукс-платформе.solver
10.05.2016 15:13+4А можно подробнее про «множество дополнительных возможностей, которые были ранее недоступны на линукс-платформе»?
Реально интересно.elFurion
10.05.2016 15:53Единственное приходит в голову — заработало подключение через COM-соединение.
Возможно еще были проблемы с отладкой на сервере.anyem
11.05.2016 10:30Уточнил сегодня у наших программистов, именно COM-объекты им и были очень нужны.
Насчёт множества возможностей может конечно немного погорячился :)
Насчёт стабильности работы — это мои личные наблюдения. Зависаний стало меньше.
fuzzi
10.05.2016 15:42+3И, заодно, подробнее про «намного стабильнее» — в чём выражалась нестабильность при работе на PgSQL?
chemtech
10.05.2016 14:22+1Попробуйте Сборку PostgreSQL для платформы 1С под Linux и Windows от Postgres Professional.
Начиная с версии 8.3 платформа 1С поддерживает PostgreSQL версии 9.4. Для этого фирмой 1С был выпущен набор патчей для PostgreSQL 9.4.2. В предлагаемых пакетах используется более новый PostgreSQL 9.4.7. Эта версия СУБД имеет множество улучшений, прежде всего связанных с отказоустойчивостью.
Про изменения в PostgreSQL 9.4 можно почитать на Хабре
elFurion
10.05.2016 15:38Программные лицензии в виртуальной машине не слетают?
В случае с windows такое иногда бывает.throttle
10.05.2016 16:39У меня бывало — отваливались, если машина с 1С стартовала на ином железе. В виртуальной среде есть хосты с разным железом. Когда лицензии генерились — машина работала на одном железе, потом смигрировала на другое — эта ситуация отрабатывает нормально. А вот если после этого стартанет на новом — слетят.
Т.е. если, например, виртуальную среду проапгрейдить — система при старте увидит новые процессора, и лицензии сломаются.
Доходило до смешного — подключенный образ виртуального диска ломал лицензию. Появился новый /dev/sdX — все.
Может сейчас все и поменялось. Описанное выше было с год назад примерно.
zirf
10.05.2016 16:18Все-таки расчет стоимости не совсем корректный. Терминальный доступ это опция. А вот CAL для сервера не указаны.
GeXoGeN
10.05.2016 17:13-4собрав сервер из подручного железа, убедились в том, что по тестам, он работает быстрее чем windows-версия установленная на голом железе
можно без опаски рекомендовать в продакшн
Вы серьёзно сейчас?
MyRockNRoll
10.05.2016 17:18+2Отличная статья для тех, кто впервые будет пробовать подружить 1С с Postgre под CentOS. Хотелось бы заострить внимание автора на том, что здесь совсем не описаны различия внедрений/поддержки самих решений 1С (БП, УТ, УПП и т.д.). На практике, если вы попытаетесь использовать эти решения у реального клиента на базе MS SQL, то они будут работать неплохо c минимальным тюнингом кода 1С/настроек СУБД, а то и вовсе без оных. С меньшей вероятностью ситуация повторяется в такой вот «экономичной конфигурации». Хорошо если у вас есть системный администратор, который может и в Windows, и в Linux, и даже чето-то покрутить в конфиге PostgreSQL. Среднестатистических 1С-ников (мы же экономим) сервер под Linux точно смутит, и это может выразиться сотней разных способов. А еще на некотором объеме данных в таблицах СУБД, или при некоторой нагрузке, PostgreSQL может начать «задумываться» там, где раньше все шло гладко, и вот уже вы внимательно изучаете рекомендации на специализированных ресурсах 1С например,http://its.1c.ru/db/metod8dev#browse:13:-1:1981:1987
Возможно, в вашем конкретном случае рекомендации помогут, но, возможно, нет, и вашим 1С-никам вместе с сисадминами придется разбираться «откуда растут ноги у проблем», да вот беда — статей с разборами проблем про 1С + Postgre под Linux гораздо меньше чем про 1С + MS SQL под Win. Выход есть — вам нужны 1С: Эксперты по технологическим вопросам (подробности тут www.1c.ru/rus/partners/training/uc1/course.jsp?id=199 ). Их привлечение — дополнительная статья расходов.
В целом я за распространение таких решений, поскольку обратная связь о возникающих проблемах мотивирует разработчиков 1С и PostgreSQL активнее работать в команде, чтобы такие вот бюджетные решения не оборачивались впоследствии разочарованиями для собственника с уходом «на стабильную Windows + MS SQL».zirf
10.05.2016 18:50Проблема "экономии" на марше деньги на обучение/сертификацию ИТ-специалистов не закладываются вообще, как равно и на приглашенных экспертов.
sergeypr
10.05.2016 17:23+6Мной протестированы разные варианты установки 1С: Сервера на одном и том же железе (3Ггц, 32 Гб, SSD intel 480Gb, сервер БД +1С: Сервер на одной машине, доступ толстым клиентом с другой машины), результаты ниже:
платформа (если есть виртуализация, то в скобках указано) + тип базы данных = тест Гилева
Win2012 (железо) + MS SQL = 35-40 стабильно
Win2012 (ESX) + MS SQL = 40-50 стабильно
Win2012 (HyperV) + MS SQL = 40-60 стабильно
CentOS 6.5 (железо) + PG SQL = 10-15 стабильно
CentOS 6.5 (ESX) + PG SQL = результаты странные: первые 3-5 тестов 30-40, далее линейно снижается 30,28,26,24,20,18...12
CentOS 6.5 (HyperV) + PG SQL = 34-42 стабильно
Настроек по производительности нет (тюнинг MS SQL или PG SQL не производился).
Выявилась зависимость скорости 1С только от одного параметра — скорость процессора (чем больше Ггц, тем лучше), более того, при отключении HT скорость возросла и стабилизировалась!)
Исходя из вышеуказанных результатов решили для себя использовать такой вариант для 1С сервера:
На голое железо ставим бесплатный HyperV 2012 core, внутри поднимаем CentOS 6.5, а на нем уже 1С: Сервер…
Работает стабильно, жалоб на 20+ пользователей нет, база Бух стандартlmike
10.05.2016 17:55я правильно понял — цель уход от оплаты за MSSQL?
«Странные» результаты м.б. связаны с кэшированием в VM, ставить postgres в VM..., да еще гипервизором windows — очень странное решение
Мне не кажется — что windows, в любых вариантах, работает с железом «лучше»
На «голом» железе — какая FS установлена (я, разумеется, про CentOS), какие опции монтирования ёе?sergeypr
10.05.2016 18:17+1CentOS — ext4, все монтирование по дефолту.
Вы не представляете, как мне было странно (особенно с последним вариантом), когда я проверил все результаты!)
Тем не менее — повторюсь, лучшие результаты (а тесты были ОООчень разнообразные — итоговая табличка, приведенная здесь — 20% от проверенных вариантов) были получены в такой странной конфигурации:
CentOS 6.5 (на HyperV) + PG SQL 9.2.1
(и даже в этом варианте есть непонятные мне вещи — например все варианты:
1. HyperV на SSD, БД на HDD (10000 об.мин, raid 5 adaptec 6405)
2. HyperV на SSD, БД на том же SSD
3. HyperV и БД на HDD (10000 об.мин, raid 5 adaptec 6405)
показали практически одинаковую скорость работы (отклонения +-3-5 единиц), что опять же показывает отсутствие практической зависимости от файловых подсистемMyRockNRoll
10.05.2016 18:45Рекомендую аккуратней делать выводы о практической значимости тех или иных компонент железа, если методика тестирования основывалась на синтетических тестах. «Внезапно» может оказаться, что в боевой системе время от времени будут производиться операции, профиль нагрузки которых на систему будет очень сильно отличаться от создаваемого тестовыми средствами. Всякие «перепроведения по партиям», «расчеты себестоимости за месяц», «закрытие месяца», «формирования заказов поставщикам», обмены между базами, регламентные обновления дескрипторов доступа (привет, 1С: Документооборот и его «гибкая система прав»)… И это только типовые вещи, я уж не говорю про то, что может народиться в результате доработки конфигурации.
Решать, что и как влияет на работоспособность вашей конкретной системы можно, только если вы реализовали тесты имитирующие значимую часть вышеописанной нагрузки. Например, взяли ключевые операции производимые системой, выбрали те, которые генерируют 80% нагрузки, реализовали их в виде кода на языке 1С, засунули в продукт для нагрузочного тестирования и прогнали на реальной или близкой к ней базе данных.sergeypr
10.05.2016 19:02+1Согласен с Вами по всем статьям)… Вот только цель теста была найти приемлемые варианты быстрого развёртывания 1С для 5-20 пользователей за минимальную стоимость и без фанатизма (прекрасно понимаю что можно практически любой вариант настроить до указанных значений/требуемой производительности, однако как мне кажется, проще настраивать те варианты, которые на дефолте бОльший показали результат)
lmike
10.05.2016 20:34+2>CentOS — ext4, все монтирование по дефолту.
noatime, nodiratime
>были получены в такой странной конфигурации
если исключить мистику — остается кэширование (гипервизором)
>3. HyperV и БД на HDD (10000 об.мин, raid 5 adaptec 6405)
это уже несколько из др. темы, ну раз указали… честно — не знаю, в чем практичность 5-го рейда (исключая экономию на дисках) а вот проблемы при пересборке огрести можно.
solver
10.05.2016 18:09+3Реально не понимаю. Зачем делать тест дефолтных настроек?
Ни один вменяемый специалист, не ставит такие вещи как СУБД с дефолтными настройками.
Postges, например, по дефолту выделяет себе всего 128Мб памяти.
И какой смысл тестировть с такими настройками?
Разве что измерить степень лени и пофигизма админа…
P.S. 1-2 часа чтения документации Postgres разве стоят оплаты лицензий на MS SQL?sergeypr
10.05.2016 18:30+1В упомянутом тестировании естественно делались попытки оптимизации PG SQL, как же без них :)
Вот только либо я полный нуб в тюнинге Postges, либо карма у меня такая( — все варианты настройки под 1С были испробованы — единственно что сделано — память выделяется 256Мб на запрос (больше нет смысла — все запросы отслеживались по потребляемой памяти — более 64 не видел...)
Все остальные настройки двигали результаты на +-5 единиц (в рамках погрешности данного теста) — не увидел смысл спец настроек…
Общее колво проверенных вариантов гипервизора / ОС для сервера 1С / настроек Postges ~ 200!!!
Цель тестов: шаблон для 1С: сервера (я сисадмин в компании которая аутсорсит обслуживание ИТ, т.е. у нас много компаний которым нужна 1С, вот и искали самый дешевый вариант для 5-20 пользователей.)
Согласен что при большом кол-ве пользователей/большой базе необходимо поработать напильником и будет быстрее (наверное)
navion
10.05.2016 19:20Win2012 (ESX) + MS SQL = 40-50 стабильно
Win2012 (HyperV) + MS SQL = 40-60 стабильно
Тут что-то странное, обычно же наоборот:
http://efsol.ru/articles/performance-comparison-1c.htmlnavion
10.05.2016 19:30Оказывается СУБД они тоже сравнивали и Гилёв почти не отличается:
http://efsol.ru/articles/performance-1s-postgre-ms-sql.htmllmike
11.05.2016 14:46когда сравнивали конкретные БД, могли быть разные «особенности» конфигурации (блокировок), давал ссылку в моем сообщении https://habrahabr.ru/company/stss/blog/282852/#comment_8889202
chemtech
10.05.2016 18:40+1Postgres Professional сделал Сборку PostgreSQL новой версии 9.5 для платформы 1С под Linux и Windows: http://1c.postgrespro.ru/rpm/9.5/centos-6-x86_64/
Там http://1c.postgrespro.ru есть еще и другие платформы/дистрибутивы.
Попробуйте/протестируйте 1С на новой версии PostgreSQL.
centos: 1c.postgrespro.ru/keys/postgrespro-1c-centos95.noarch.rpm (oracle/rosa: 1c.postgrespro.ru/keys)
debian/ubuntu/...: echo «deb 1c.postgrespro.ru/deb $(lsb_release -cs) main» > /etc/apt/sources.list.d/postgrespro-1c.list
nikitasius
10.05.2016 22:01-1Я «всегда за!» в плане перехода на линукс, но елки-то:
вот статья: https://habrahabr.ru/post/224327/
Которая вышла 2 года назад, так могли б и прикретить в топике, уважения ради. Да и надо проверять сам ресурс перед публикацией на схожий материал.sarge74
10.05.2016 23:17+1По поводу лицензирования, именно на вашу таблицу и смотрел, потом цены сверял.
Ссылку на вашу статью в топике поставил.
viptextil
10.05.2016 23:11+1Есть опыт реальной работы под x11rdp 1cv83 в файловом режиме на ubuntu 14.4.
Из минусов:
Не работают com-объекты, есть проблемы с pdf417, из принтеров — хорошо работают только HP с сетевым интерфейсом. С остальными проблема решается через PdfPrint.zip есть проблема с печатью графических отчетов (контуры и заливка смещены на величину поля печати) А так, для учета все работает, печатает. Ну, и проблемы с раскладкой клавиатуры при повторных подключениях.
Плюсы Linux:
По сравнению с виндой скорость формирования на сложных отчетах выше примерно в 1.5 раза. Ну, и бесплатность. Для фирм до 10 человек вообще самое то. Ну, и над 1С работают, устраняют.subar
11.05.2016 02:14А можно подробнее? Какая конфигурация? размер базы? У меня подходит время принятия решения по переходу на клиент-серверный вариант Бухгалтерия 3.0 2 базы 7 юзеров. А конфигурации с интерфейсом «Такси» на управляемых формах такие неповоротливые и мало инфы по связке Бух 3.0 на Postgree. Ну и как обычно в наших краях- с бюджетом проблемы.
viptextil
11.05.2016 09:12Две базы по 3 Гб каждая. машина amd fx-6300, 16gb ecc, винты wd-re 1tb в зеркале. 1с предприятие 8.3.6.2100. Работают 6 пользователей в файловом режиме.
Ставил по инструкциям:
установка http://infostart.ru/public/196375/
настройка http://infostart.ru/public/508147/
принтеры http://infostart.ru/public/452463/
Сам Linux начал осваивать примерно год назад. Так что удачи.
inquisitor273
10.05.2016 23:11GPG_COMMAND=«gpg -c -z 0 --batch --passphrase XXXXXXXXXX»
А почему именно симметричное шифрование? GPG ведь умеет и асимметричное. В таком случае на сервере можно будет держать лишь открытый ключ, а закрытый спрятать понадёжнее и использовать только для расшифровки бекапов. К тому же, не будет необходимости хранить какие бы то ни было пароли в открытом виде.
С асимметричным шифрованием команда будет выглядеть примерно так:
GPG_COMMAND=«gpg -e -r -z 0 --batch»
А расшифровывается всё это добро так:
gpg -d -o
Только нужно чтобы закрытый ключ был в keyring-е. Кстати, gpg-agent нужен как раз для того, чтобы каждый раз не вводить пароли к закрытым ключам. А вот при использовании одного лишь симметричного шифрования пользы от него никакой (как и вреда, в общем).inquisitor273
11.05.2016 08:29По привычке выделил агрументы команд угловыми скобками и не заметил это в предпросмотре, в результате получилась ахинея. Вот что я хотел сказать:
GPG_COMMAND=«gpg -e -r 'key_id|e-mail' -z 0 --batch»
gpg -d -o backup.gz backup.gz.gpg
cjava
10.05.2016 23:11Microsoft анонсировали SQL для Linux, интересно будет посмотреть на результаты тестов когда SQL Server появится «живьем» и реализуют поддержку в 1С(Сейчас нельзя к кластеру на Linux подключить БД на Ms SQL). Возможно такая схема станет компромиссным решением(хотя-бы за ОС от Microsoft не платить).
dmitry_ch
11.05.2016 08:50+1Зря вы LXC используете. Ставьте 1с только в KVM, и берите «программные» лицензии. С ними, скажем, можно засунуть 1с в кластер Proxmox-ов, и обеспечить какую-никакую, а «высокую доступность». Ну и вообще, гонять ВМ с хоста на хост, а также делать бекапы без необходимости еще и о физических HASP-ключах помнить — оно удобно, как ни крути. Грубо говоря, два «писюка» на i5 с SSD-дисками класса Inter S3xxx, загнанные в кластер и связанные хотя бы по гигабиту, обеспечат небольшой фирме все что нужно.
НО! Никогда не обновляйте ни хост-машину, ни ОСь в виртуалке: 1С привязывается и к железу, и к софту, и любой чих — будете долго перезапрашивать активацию. В 8.2 было именно так, в 8.3 появился сервер лицензирования, но если говорить о небольшой инсталяции — то не факт что он нужен.
И, да, не забывайте в виртуалку давать побольше виртуальных процессорных ядер (чуть больше, чем у вас будет рабочих процессов). 1С любит ядра, давно это у нее.
P.S. Статейка, правда, рекламная, в стиле, «мы умеем». Proxmox уже даже не так выглядит, как на ваших скриншотах :) А тот, что вы используете, именно с LXC не очень хорош. Как минусы решения под Linux — отсутствие COM-объектов, что порой мешает работать всяким ТСД.VGusev2007
11.05.2016 10:10Proxmox уже даже не так выглядит, как на ваших скриншотах :)
А как он сейчас выглядит? У меня так же…
в 8.3 появился сервер лицензирования
Если не трудно, опишите, что это такое без маркетинга. Это VM, которая умеет лицензировать сервера 1С и клиентов? Которая не так жёстко привязана к железу или что?
Спасибо.dmitry_ch
11.05.2016 10:27+1А вы Proxmox какой версии используете? :) 4.2?
Да, сервер лицензирования (это не обязательно ВМ) придумали для схем, когда вы ставите более одного сервера 1с, для распараллеливания нагрузки и для «якобы-HA» по-1с-ному. По старой логике надо было брать N серверов 1с и к ним N раз по нужному числу лицензий (по факту — по нужному плюс накая дельта на случай, когда 1с-юзер уже вышел, возможно аварийно, а лицензия в пул еще не вернулась). С сервером лицензирования вроде как подсчет лицензий ушел с каждого отдельного сервера на одну общую точку, так что их как бы нужно не «N раз по сколько нужно», а просто «сколько нужно».
По факту конечно «надо смотреть». Софт у 1С получается, как известно, как автомобили в Тольятти — «место проклятое», что ли ))VGusev2007
11.05.2016 11:41А вы Proxmox какой версии используете? :) 4.2?
4.1-41. Ничего-ж себе… Только что узнал, что 4.2 вышел, собственно от Вас.
По факту конечно «надо смотреть». Софт у 1С получается, как известно, как автомобили в Тольятти — «место проклятое», что ли ))
Ага, делаем BMW, выходит лада-калина. :)
Огромное спасибо! Буду смотреть!dmitry_ch
11.05.2016 11:52Только что узнал, что 4.2 вышел, собственно от Вас.
Вышел недавно, но вроде как поработали они прилично (правда, вид спорный стал, если что — ну как как после красивой Windows 7 на «модно-молодежную» Windows 8 перейти :) ). Обещали даже автоматическое получение сертификатов от Let's Encrypt, правда, я не использовал :)
Один вопрос: 1С очень любит работать с debian-based системами, почему и зачем вы на Centos 6 все начали строить? Proxmox, кстати, это тоже debian-based дистрибутив, так может единообразно поставить все, чтобы потом не путаться?VGusev2007
11.05.2016 13:29Я не Автор. Я только использую proxmox (точнее на стадии финального внедрения), и тут узнал, что уже есть 4.2. :)
Dementor
13.05.2016 11:19В моем опыте я как раз KVM использовал. Сначала пришлось долго мучаться и курить мануалы пока не нашел способ перебросить в виртуалку и серверный и клиентский аппаратные ключи — у них оказались одинаковые VendorID и DeviceID. Потом (редко, но все же) иногда ключи почему-то становились кратковременно недоступными и пользователей тут же начинало выбрасывать. Программные ключи в этом смысле как манна небесная.
И, да, не забывайте в виртуалку давать побольше виртуальных процессорных ядер (чуть больше, чем у вас будет рабочих процессов). 1С любит ядра, давно это у нее.
Этот совет уже не актуален, так как в настройках кластера убрали управление рабочими процессами. Теперь сервер 1С сам решает сколько rphost'ов он будет порождать.
ColorPrint
17.05.2016 13:28НО! Никогда не обновляйте ни хост-машину, ни ОСь в виртуалке
а хост-машину что он там видит из виртуалки то?dmitry_ch
17.05.2016 13:36+1Увы, да. Не знаю точно что видит полностью, но минимум в строчке описания процессора в виртуалке меняются какие-то символы при обновлении хост-системы. Довольно странно, признаться. Может быть, правда, сейчас эту фичу устранили, но некоторое время назад она кровь портила.
Как по мне, 1С в свойственной им манере «делаем как умеем» просто берут все, что о системе можно получить, и запоминают при активации. Кстати, и отпраляют на свой сервер — мне теходдержка по телефону называла, в каких строках какие изменения произошли, так что разговоры, что отправляет хеш, а данные не уходят с машины, похоже, не более чем разговоры.
alkresin
11.05.2016 10:06Скажите, а зачем понадобилось использовать виртуализацию, почему нельзя было поставить 1С сервер и Postgres на обычный Linux сервер?
Я не знаток в этой области, так что сильно не пинайте.Gray_Wolf
11.05.2016 10:301. Главная причина в том что виртуализация позволяет не привязываться к конкретному железу, ставим разные компоненты системы на разные виртуальные машины внутри 1 железной и всё.
2. В случае проблем с одним из компонентов мы можем разворачивать из бекапа только его, в случае если одному из компонентов уже недостаточно выделенной мощности мы можем без проблем перенести его на другую ноду гипервизора.
3. У админа БД вообще может не быть админского доступа на серверы с прикладом.
Да и вообще вот стоит у нас сервер 40 ядер, 250Gb ОЗУ, какие-то системы утилизируют его полностью, но далеко не все, бывает софт который в принципе заточен под потребление 8Гб ОЗУ и всё что сверху никогда не использует, виртуализация решает эти проблемы.reff
12.05.2016 12:53«софт который в принципе заточен под потребление 8Гб ОЗУ и всё что сверху никогда не использует, виртуализация решает эти проблемы.»
Не решает, а позволяет утилизировать оставшуюся неиспользуемую память для других задач (виртуальных машин).
Еще один бонус виртуализации (Vmware, Microsoft) это упрощённое и гибкое резервное копирование (привет, Veeam и наступающим на их пятки Acronis с двенадцатой версией ABR).
zirf
11.05.2016 10:08Уважаемый автор,
В статье есть несколько режущих глаз моментов:
1.
service postgresql-9.3 start
и
/etc/init.d/httpd restart
к примеру, если мы договорились, что CentOS 6, то тогда и используем команду service, сработает и так и так (вторая еще apachectl restart). Но просто путает.
Также желательно работать и с rpm / yum. Это не всегда возможно, repo и ключа подписи может не быть, особенно у одиночного пакета. Но yum оперирует репозиториями и тут появляется удобство.
repo можно запрещать/разрешать, то есть если у Вас 2 разных postgesql Вы можете разрешить только нужный repo.
- У Вас везде #, то есть работа идет от root, что категорически не рекомендовано. Правильный подход в Ubuntu или на AWS. Пользователь-администратор — sudoer, описанный как root без пароля. То есть
$ rm -rf /tmp
— это обычный пользователь.
$ sudo rm -rf /tmp
— реально это рут.
Так безопаснее. Пользы от статьи много, но плодить "как умеем" — плохой тон, новички же не знают как правильно.
dragony
11.05.2016 11:30+1Хотелось бы добавить один момент, по поводу публикации конфигурации в веб — срабатывает только с новыми конфигурациями, поддерживающими управляемые формы (УФ). При попытке публикации старой конфигурации, не поднятой до ревизии с поддержкой УФ, пользователь будет получать пустой рабочий стол после входа в 1С.
Кроме того, сторонние обработки, если используются, также должны поддерживать УФ для корректной работы.
alexey-lustin
11.05.2016 20:23+1классно получилось на мой взгляд, только 2 просьбы
на сегодня наверное лучше указывать сборки от PostgreSQL.Pro https://www.postgrespro.ru/products/1c_build — у них есть официальный yum репозиторий, без необходимости прямого скачивания
- для бэкапирования сразу используйте http://www.pgbarman.org/ — сразу, без pg_dump, это позволит несколько по другому взглянуть на бэкапирование
по поводу Apache 2.4 не совсем понятно — 8.3.8 с поддержкой вышла еще в апреле, видимо статья готовилась до выхода — но тестовая версия с такой поддержкой была опубликована еще в феврале.
sarge74
12.05.2016 10:54+1Уже увидел. Да, основа статьи была написана ранее.
По наличию железа, установлю VM на 7-й версии CentOS + PostgreSQL.Pro и сделаю тестирование.
Результаты опубликую в апдейте статьи.
По http://www.pgbarman.org/ — хорошее решение, спасибо, попробую его.VGusev2007
12.05.2016 15:06Очень ждём, адекватных тестов. А иначе, грош цена такой экономии… Пробовал в 2009 году, в продакшене — было не юзабельно.
lmike
12.05.2016 15:28вы хотите тестирование реальных конфигураций на платформе?
и 2009 год — «это очень давно» и по PostgreSQL и по 1С
судя по постгре https://bucardo.org/postgres_all_versions.html — это 8-аяVGusev2007
12.05.2016 16:19А иначе смысл экономии нивелируется. Нормальные, адекватные тесты типовых конфигураций, необходимы.
ArsenAbakarov
12.05.2016 10:46Как-то пытались в своей корпоративной среде посадить юзеров на линуксы…
Сам сервер у нас на окнах, бд MSSQL, 1С 8.2
Установил тонкого клиента на линь, запустился, обрадовался, но трабла возникла при подключении сканера ШК, драйвера для 1С я не смог найти, гугление ничего не давало, плюнул на это делоlmike
12.05.2016 15:12а какой драйвер вы искали? Сканеры (с USB) могут работать в режиме HID или эмулятора COM порта
все это поддерживается…
лирическое отступление
года 2/3 назад была задача стенд сделать: типа страничку в браузере отображать, в простое — видео крутить (локально загруженное), с пальцевым вводом работать (экран), рулить табло (бегущая строка)
для табло использовалась виндовая программа (кот. работала с COM портом), табло имело COM порт, использовали «переходник» для USB (на компьютер не было COM)
все это спокойно подцепилось в линукс (программа запускалась в wine), без поиска и установки драйверов
может рано плюнули или искали то к чему привыкли в windows?
PS: сканеры к 1С не цеплял (под линукс) за ненадобностью (в чисто линуксовой конфигурации не было задачи), может что-то в 1С через COM объект «должно» работать (но это не связано с поддержкой железа)?!ArsenAbakarov
12.05.2016 16:27Да я больше Linux люблю)
Нужно было запустить через эмуляцию COM порта, из ttyS* я читал данные, в Linuxe все было замечательно, но не было драйвера для 1С, программисты 1С (я туда боюсь лезть...) поковыряли, плюнулиlmike
12.05.2016 17:29здесь http://downloads.v8.1c.ru/content//CEL/1_1_6_1/news.htm написано что ошибки правили, т.е. сканеры и работали
TDz
17.05.2016 01:12Мы как-то участвовали в проекте импортозамещения и как раз переходили для клиента с виндофермы на линукс кластер. Имейте в виду, что если у вас загруженная 1С (десятки-сотни клиентов и большая база) стандартная Linux версия будет существенно менее производительной из-за проблем межпроцессных коммуникаций. Нам пришлось пилить хардкорные патчи чтобы на том же железе всё получилось
dmitry_ch
17.05.2016 13:39Ох рассказали бы, как получилось добиться эффекта. Тема-то кровная, прямо очень интересная!
ColorPrint
17.05.2016 13:27Пользуемся пару лет (CentOS, Postgresql), основная проблема — конфигурация обновляется чрезвычайно долго, несколько часов, а то и сутки. Саппорт ничем помочь не может. Кто-нибудь сталкивался с такой проблемой?
count0
Все это красиво, но нужно сравнение производительности. На первый взгляд выглядит все это хорошо, но когда видишь сколько показывает Гилев на pg и на MS SQL при использовании одного и того же железа, понимаешь что эта жаба не так уж и страшна.
Shapeshifter
Я бы еще с удовольствием увидел тесты «потери производительности нет» при виртуализации.
Amet13
Там же контейнерная виртуализация, если потери производительности и есть, то они совсем минимальны.
sarge74
Сравнивал производительность тестом от Гилева.
На файловом режиме Linux немного обогнал Windows(на идентичных машинах стоят Hyper-V+VM Windows vs Proxmox+ VM CentOS.
А вот на SQL режиме, при проведении теста, машина c Windows выдала неадекватно низкий результат, поэтому и не отобразил в статье.
Shapeshifter
Был бы у вас однопроцессорный E5 с частотой выше 3ГГц — было бы выше 50 (вот, 78 намерял):
https://habrastorage.org/files/d30/ffd/d43/d30ffdd43a094dcdabe63297c9dbd69d.jpg
С дисковой подсистемой не все так гладко, ее этот тест странно берет.
И измерять лучше выполнение в режиме отладки конкретной большой задачи, синтетика — не то.
DikSoft
Тест Гилёва вообще-то достаточно адекватная синтетика. Особенно в плане вычисления «сколько пользователей потянет система»
Чудеса с «новыми» и «старыми» Xeon (разница в скорости в разы на этом тесте, выигрывают… «старые»! ) объясняется достаточно просто. Собрана вся эта кухня с использованием VC++ 2012, и флаги оптимизации при сборке как стояли под старые камни, так и стоят, судя по всему. Да ещё и ОС задана, как Windows XP.
Чтобы система «летала» под относительно крупными нагрузками ( от 100 пользователей и выше, толстый клиент на терминалке, база от 50 гиг на SQL 2012 и выше) нужно чтобы были минимальные задержки по сети, шустрая дисковая подсистема для Log файлов SQL, выключенный (!) гипертрединг на гипервизоре, на котором машина с сервером 1С.
Компромиссный вариант, проверенный в деле: 2*Xeon 2630 v2 + 128 Gb RAM + 4*SSD + 4*HDD — Гипервизор (Hyper-V 2012 R2). Внутри живут 3 машины: под SQL, терминалку и сервер 1С. USB ключи пробрасываются со старенького ноутбука с помощью Eltima USB Network Gate. Попытки получить адекватную сравнимую скорость работы на похожем с описанном автором выше решении не удовлетворили по скорости. Отличие: использовали ESXI.