Это не не руководство к действию и не мануал. Если какой-то из пунктов следует расписать более подробно — пожалуйста, не стесняйтесь в комментариях.
Планирование и оценка рисков
Когда вы с горящими глазами расписали менеджменту суммы экономии, стабильность, масштабируемость и прочие плюшки — не забудьте о себе. Минимум — это хорошее железо, нормальный райд, быстрые диски, х64-версия сервера 1С. Желательно еще стребовать какое-то обучение по теме. Чтобы у менеджмента было понимание, что он инвестирует в свою собственную инфраструктуру и персонал, а не просто на ровном месте экономит круглую сумму.
Покупка ПО. Интегратор.
Желательно выбрать того, кто имел хоть какой-то опыт поддержки linux-версий 1С. Не поленитесь обзвонить и спросить. В итоге, вам все равно никто не поможет, и вы останетесь один на один со всеми проблемами, но хотя бы без раздражающих глупых советов про rdp и mssql.
Настройка хоста
При работе с proxmox, грех не задействовать чудесный механизм lxc.mount для монтирования каталогов с хоста в контейнеры (причем, с сохранением acl). Чтобы контейнеры не пухли от логов и бэкапов нужно заранее создать на хосте разделы и каталоги под эти цели, и cron-задания для ротации и очистки. Так вы будете рулить бэкапами и логами через одно место, и увидите, что это хорошо.
Выбор конфигурации сервера приложений и сервера БД
Вы, наверняка, уже знакомы с классическим подходом 1с-гуру, по размещению БД на том же сервере, что и сервер приложений. Сейчас как раз отличный шанс этого не делать. Дело в том, что если вы измерите скорость «сетевой» передачи данных между контейнерами, то получите не меньше 25-30 Гбит/с. Смело гоните БД с пляжа, и у вас получится легкий монолитный сервер приложений и несколько серверов БД, которые легко будет профилировать, бэкапить и обслуживать.
Настройка сервера БД
PostgreSQL от 1С или Postgres Professional прекрасно работают в контейнерах «из коробки».
Единственно, для удобства, я бы сделал сначала пустой шаблон контейнера с сервером БД, а потом клонировал его под каждую информационную базу, подключаемую к серверу приложений. В этом шаблоне стоит сразу же сделать монтирование лог и бэкап каталогов с хоста, и, соответственно, перенаправление туда наиболее толстых логов. Так же имеет смысл сразу сделать бэкап-задания, например, через механизм pg_dump all в эти каталоги. При формировании выходных файлов использовать $hostname. Так у вас получится джентельменский набор для любого случая
Настройка сервера приложений
Все проходит без особенностей, рутинно и скучно, только если вы не ставите x86-сервер на x64 ОС. Но даже в этом случае все можно решить. Например, если вы ставите x86 1C на Centos7, есть прекрасный репозиторий с x86-пакетами mirror.centos.org/altarch/7/os/i386/Packages
Оттуда вам точно понадобятся: ImageMagick-c++-devel, fontconfig, libgsf, http, httpd-devel, а так же libpng и libpng-devel для печати штрих-кодов
Лицензирование
Многие против программных лицензий и ратуют за более дорогой, но надежный HASP. Это как с лыжами и сноубордом. Вам решать что ломать — ключицу или лодыжку. Проблемы бывают и пробросом hasp в контейнер, и с корректным получением программных лицензий.
Если вы решили брать программные лицензии — будьте внимательны с ядрами CPU. Как сказано в документации, вы можете увеличивать (но не уменьшать) количество ядер и процессоров без перелицензирования. Однако Proxmox, при изменении количества доступных ядер процессора в контейнере, меняет CoreID первого ядра. То есть, если вы для старта сделали контейнер с 1 ядром и при лицензировании привязались к CoreID 0. Вы будете удивлены, когда увеличив число ядер до 4, нумерация CoreID будет не 0,1,2,3 а 1,2,3,4. Соответственно, лицензии слетят
Если такое произошло — не отчаивайтесь. Лицензии можно достаточно просто реактивировать по приложенным кодам. А можно в конфигурации контейнера поставить на одно ядро больше реального количества. Например, 9 для восьмиядерного сервера. Тогда CoreID 0 вернется и не покинет вас.
Надеюсь, эти заметки кому-то помогут
Комментарии (13)
achekalin
08.11.2018 16:22А что с (свят-свят!) лицензированием 1c под lxc? Даже в 8.3 сервер лицензирования так и не научился жить в изменчивых машинах (а при виртуализации это вполне возможно) — как вы тут выкручивались?
Upd: Вижу, что вы пишете про приложенные коды — а именно с сервером лицензирования не пробовали строить схему?GnuriaN
08.11.2018 20:02Вы про какие сервера?
СЛК — великолепно живут на Windows Core Server, а с недавних пор и на микро ВМ Linux.
Сервер сетевых ключей HASP так же прекрасно живет на микро ВМ c Linux.
P.S. Это все для аппаратных USB ключей.
Louie Автор
09.11.2018 06:15С контейнерами, помимо вышеуказанной особенности с CPU, выкручиваться не надо, т.к. оборудование не эмулируется. Соответственно, никакой изменчивости нет.
В моем сетапе именно сервер получает и раздает клиентам лицензии, и для него нужны коды активации (и реактивации) программных лицензий.
edo1h
08.11.2018 20:35какого размера базы у вас? сколько пользователей?
Louie Автор
09.11.2018 06:43Базы разные. бухгалтерия, розница, ут. розница порядка 20 тыс. номенклатуры.
Активных пользователей пока около 10. Судя по ресурсам, в текущем конфиге будет комфортно до 20, но неизбежно упрется в дисковую подсистему. Хост был собран до начала внедрения 1с, и сейчас RAID6 из Seagate Constellation на SATAII контроллере не совсем отвечает задачам. Но, опять же, решаемо «малой кровью»
Kutak
10.11.2018 04:42Когда вы с горящими глазами расписали менеджменту суммы экономии
А можно просто для оценки порядка цифр и тут расписать сумму экономии? Например, традиционную 1с на винде и MS SQL и ваш ProxMox вариант.
Kutak
11.11.2018 01:20Там они где-то 200 тысяч сэкономили. Но непонятно, за какой срок. Единоразово, или каждый месяц, или каждый год?
denaspireone
Вывод — не ставить 1c в lxc?
Louie Автор
Обязательно ставить. Преимуществ вагон, а трудностей — на пару коротких заметок
svk28
Вот как раз вчера целый день убил на борьбу. В итоге вместо полноценной вм с centos (где 1с сервер толком не запустился) (по идее разобраться бы, что там мешало) был развернут lxs-контейнер и установлен 1с-сервер там и о чудо, он заработал сразу. И сейчас тестирую связку из двух контейнеров с линукс (сервер 1с и постгрес) и виртуалки с виндой (слк-сервер с лицензией на конфигурацию).
denaspireone
lxc не панацея, а centos в KVM работает от ровности рук и опыта
ставил 1.5 года назад в centos и все было ок
svk28
Не запускался rphost, отчего и почему разбираться было некогда, потому вернулся к обкатанному решению на lxc.