Дисклеймер
В этой статье выражено личное мнение автора, его видение мира, его путь, и это все не претендует на абсолютную верность и объективность. Автор не несет никакой ответственности за последствия использования данной информации, он только надеется что эта информация поможет сделать кому-то жизнь проще.
Предисловие
Сначала я просто хотел написать небольшую статью о том, как мы разносили базы по службам, но в ходе углубления в этот процесс мы добавляли всякие разные штуки (мониторинг служб, потом мониторинг пользователей внутри 1С, потом прикрутили заббикс, и, наконец, пришли к CI/CD на базе 1С). В итоге я понимаю что пихать это в одну статью будет слишком — решил разделить на несколько. Ну а название навеяно циклом статей "сети для самых маленьких", которые принесли мне много приятных минут и к которым я отсылаю всех, кто "хочет изучить сети". Итак, мы приступаем!
Когда ты признаешь проблему, значит ты на половину уже вылечился (с) один знакомый психиатр
В этой статье я хочу поделится своим опытом администрирования большого числа 1С в корпоративном секторе. Базы все разные, есть разработка, есть тестовые, все как у всех. Но их просто достаточно много. И все было хорошо, но в определенный момент проводить какие-то админские работы стало крайне тяжело и рискованно.
Какие у нас были сложности:
- Подвисшая база тянула за собой перезапуск службы, а значит страдали невинные (пользователи других баз)
- Было тяжело понять кто сегодня "герой дня" — какая база заняла все ресурсы
- Обновление релизов — обновление одной тянуло за собой автоматическое обновление всех баз на этой службе
- Ручное подключение баз пользователям, ручное изменение в случае переездов
- Мониторинг
И только сейчас я понимаю что это была только вершина айсберга...
Акт первый, действие нулевое
Небольшое отвлечение на основные постулаты, осознание которых далось большой кровью и болью.
- Старые версии 1С (до 8.3.11+) имеют просадку по производительности при работе в виртуализированной среде. (Источник — Гилев и собственные тесты)
- Кластер есть, но с ним все крайне не просто. Возможно его доработают потом, но пока он в основном для галочки. (источник — собственный опыт)
- При выборе процессора смотрите только на частоту. Процессор в 6 ядер по 3,4Ггц порвет в куски процессор на 20 ядер по 2Ггц. Проблема в том, что 1С вообще ничего не знает про параллельные вычисления. По сути это работает так — у нас есть определенное число воркеров для каждой службы, их раскидывают по процессорам, и если в каком то воркере пользователь запустил какой-то тяжелый отчет то в системе будет загружено только одно ядро процессора. Именно то, на котором работает воркер с запущенным заданием… Для БД ситуация кстати ровно обратная. (источник — Гилев, собственный опыт, опыт коллег)
- Не используйте логи в "новом" формате (запись в SQLLite) — вы очень быстро столкнетесь с тем, что производительность этого решения еще хуже чем файлового варианта. (Источник — собственный опыт, опыт коллег).
По подсказкам из комментариев есть вариант вынести логи на отдельный инстанс.
В 8.3.12 обещали логи в нормальный скуль!!! - 1С оооочень не любит IPv6. На всех серверах с 1С лучше сразу понижать приоритет IPv6 до минимума. (Источник — Гилев, собственный опыт)
- Используйте для виртуальных серверов виртуальные сетевые карточки E1000. С остальными проблема по производительности (Источник — Гилев, но на собственном опыте не подтвердилось, хотя особо и не тестили)
- Обслуживание баз дает хороший прирост производительности, особенно периодический пересчет итогов, а так же обслуживание индексов SQL (Источник — собственный опыт, Гилев)
- Поиск причин падения 1С сродни поеданию неочищенного кактуса. Выяснить что-то толком можно только через боль, унижения и страдания. (Источник — собственный опыт)
- Нет ни одного официального образа ни под один гипервизор. Про докер я вообще молчу. (Источник — сайт 1С)
- Программная лицензия для сервера привязывается к — сюрприз, сюрприз — серийному номеру процессора (и еще огромному количеству параметров сервера). В эпоху повсеместной виртуализации ход потрясающий. Поясняю — активировали сервер, переехали на другую ноду, перезагрузили машину — 1С не запуститься. Расчехляйте новый активационный код. (Источник — собственный опыт, болтливая техническая поддержка 1С =))
- 1С — это учетная система, а не отчетная. Хотите много нормальных жирных отчетов и быстро — выводите это за рамки 1С. (Источник — собственный опыт)
- У 1С есть два неоспоримых достоинства, за счет которых она будет процветать еще долго:
- стоимость самого продукта/разработчиков
- скорость разработки
и к сожалению для российского бизнеса они являются первоочередными. А зачастую и единственными, на что вообще смотрят. (Источник — печальная реальность)
- Никогда не используйте файловую шару как место под хранилище конфигураций 1С. Только службу. Иначе маты со стороны разработки о упавшем черт знает когда хранилище станут вашим неизменным спутником по жизни. (Источник — собственный опыт, опыт коллег)
Акт первый, действие первое
Первая короткая сценка из корпоративной жизни
На сцене — Админ (А), программист 1С (П1С) и представитель бизнеса (ПБ)
ПБ — У нас медленно работает программа!
А — у меня в системе все хорошо!
П1С — я все написал правильно, у меня на компьютере все работает быстро!
ПБ (робко и растерянно) — но она же долго…
А и П1С хором — у нас все хорошо, проблема на вашей стороне!
Проблемы всегда случаются не вовремя (с) (5-летний философ)
И вот в одно прекрасное солнечное утро (на самом деле это была глубокая зимняя ночь) мы поняли что завтра надо запустить новую базу. Завтра наступал тот прекрасный день, который уже много раз описывался тысячами авторов и имя ему — легион! Тьфу, простите, занесло. Имя этому дню был дедлайн. Час ночи, завтра на 200 компах должна запуститься новая база." Да не проблема, у нас же все компы в домене! Сейчас быстренько сделаем логин-скрипт и дело в шляпе!" подумаете вы. И будуте правы — так же подумали и мы. И сделали. Только, как обычно это бывает, погорели на мелочи — я в логон-скрипте я прописал %filename%.bat а коллега выложил %filename%.cmd.
Ну и понятное дело с утра хелпдеск побежал делать все руками, а мне было очень стыдно за такой тупой фейл. Извинялся перед парнями тортиком.
Но мысль автоматизации этого процесса у меня в голове засела очень крепко и стал даже вырисовываться план внедрения.
В итоге мы пришли к следующей идеологии:
- Все раздается через AD — создаются группы вида 1cbases-%версия платформы%-%имя базы% и туда силами хелпдеста добавляются пользователи, которым нужна база.
- одна группа — одна база
- 1cbases — это префикс по которому удобно искать группы
- версия платформы 81, 82 и 83 (релиз не принципиален)
- название базы соответствует имени файла с настройками
- выделяется общая файловая шара где выкладываются все файлы с настройкой подключения к базам (одна база — один файл)
- при блокировании компьютера вызывается скрипт, который считывает группы пользователя и на их основании добавляет пользователям нужные базы 1С
Как мы это делали:
- Через групповые политики добавляется новое задание в планировщик (задача планировщика прописать пользователю путь к файлу подключения базы):
- запускать от имени пользователя
- событие — разблокировка компьютера
- действие — запуск нашего скрипта
- Создаем нужные группы в АД и заполняем их пользователями
- Создаем нужные файлы для запуска самих 1С. Тут остановлюсь чуть поподробнее. Изначально мы долго мучили интернет своими запросами и нашли полное описание структуры файлов *.v8i. Но потом нашелся способ проще и гениальнее.
- запускаем 1С
- настраиваем подключение к базе
- проверяем что все работает
- кликаем правой клавишей по названию базы и выбираем пункт — "Сохранить ссылку в файл"
#Первым шагом создаем место для логов
if (Test-Path "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt")
{
Remove-Item "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt" -Force -ErrorAction SilentlyContinue;
}
New-Item "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt" -ItemType file -Force -ErrorAction SilentlyContinue;
Add-Content -Value ("Дата последнего запуска: " + (Get-Date -Format F)) -Path "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt";
if ( (gwmi Win32_OperatingSystem | select Caption, CSDVersion) -notlike "*server*") # запрет запуска на серверных ОС
{
Add-Content -Value "Операционная система распознана как клиентская" -Path "C:\!script_report\add_1c_bases_report.txt";
if (!(Test-Path "$env:APPDATA\1C\1CEstart\ibases.v8i")) #если нет этого файла 1С подтягивает данные из списка баз 8.1 и игнорирует список баз 8.2
{
New-Item "$env:APPDATA\1C\1CEstart\ibases.v8i" -ItemType file -Force; # Создаем этот файл если его нет
Add-Content -Value "Файл $env:APPDATA\1C\1CEstart\ibases.v8i не найден, создали его" -Path "C:\!script_report\add_1c_bases_report.txt";
}
if (Test-Path "$env:APPDATA\1C\1CEstart\1CEStart.cfg")
{
Remove-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Force #-ErrorAction SilentlyContinue #удаление старого конфигурационного файла для 8.1
}
New-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -ItemType file -Force #создание нового конфигурационного файла для 8.2
$GroupList = ([ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1' # Создание списка групп пользователя
foreach ($Group in $GroupList) # генерация списка общих баз на основе имени группы
{
if ($Group.Length -gt 6) # Проверка длины имени группы
{
If ($Group.Substring(0,7) -eq "1cbases") # вычисление группы указывающей на базу 1С
{
Switch ($Group.Substring(8,2)) # выбор платформы 8.1 или 8.2
{
"81" {Add-Content "$env:APPDATA\1C\1Cv81\ibases.v8l" -Value ("\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")} # Создание строчки из файла со списком общих баз для 8.1
"82" {Add-Content "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Value ("CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")} # Создание строчки из файла со списком общих баз для 8.2
"83" {Add-Content "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Value ("CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")} # Создание строчки из файла со списком общих баз для 8.3
}
Add-Content -Value ("Пользователь принадлежит групп $Group") -Path "C:\!script_report\add_1c_bases_report.txt";
Add-Content -Value ("Добавлено значение: CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i") -Path "C:\!script_report\add_1c_bases_report.txt";
}
}
}
}
else
{
Add-Content -Value "Операционная система распознана как серверная" -Path "C:\!script_report\add_1c_bases_report.txt";
}
Что получили:
- Добавление баз теперь не было морокой — просто делали группу, добавляли файл с настройками — дальше все происходило автоматом
- Могли спокойно переносить базы куда угодно, просто меняя конфигурацию в файле с настройками подключения к базе (как показала практика — очень удобно)
- Сберегли обувь хелпдеску
Акт первый, действие второе
Вторая короткая сценка из корпоративной жизни
На сцене — Админ (А), программист 1С (П1С), разговор после ухода представителя бизнеса
А — Ваш этот 1С — $#%но!!! Сколько можно решать железом проблемы архитектуры и уровня разработчиков!
П1С — да это ваши сервера #$@но! У меня на локальной файловой базе все летает! Настройте уже ваше хозяйство по нормальному!
Спорщики удаляются со сцены сыпля взаимными обвинениями, опускается занавес, свет гаснет.
И с этой стороны ни чуть не лучше… (с) печальный ослик Иа-Иа в свой собственный день рождения
Вот представьте себе — сидите вы в удобном кресле, в одной руке чашка вкусного чая, в другой пышущая жаром и свежестью булочка из кулинарии ближайшего магазина, за окном приятно пахнет весной… И это, конечно же, самое подходящие время для звонка с проблемой! Коллега — Байконур, у нас %@па!
Я — я так понимаю что стадию Хьюстона с проблемами мы уже успешно пролетели?
Коллега — да. База %имя базы% подвисла, вообще не отвечает, ТОПы уже рвут и мечут. 3 раза мне уже звонили. Надо перезагружать службу.
Я — так там же еще пачка баз на этой службе!!!
Коллега — да, поэтому вторая половина ТОПов тоже рвет и мечет что их отключат...
В итоге конечно все согласовали, перезапустили, но осадочек остался.
Идеология:
- В продуктовой среде мы должны следовать правилу — одна база — одна служба с разнесением по портам
- Запускаться службы должны исключительно из-под доменных учеток. Одна служба — одна учетка. Это удобно для раздачи прав на шары, доступ в скуль и прочее. Так же, если у вас внедрена RBAC то вы можете очень оперативно посмотреть куда имеет доступ конкретный экземпляр 1С
- Логи нужно вынести на отдельный диск и включить на эти папки сжатие (при разбитии по дням это очень сильно экономит место и ускоряет (незначительно) поиск по логам)
- Каждой службе выдается alias в DNS для того, чтобы отвязать разработку от ip и/или dns сервера (в этом случае разработка вообще не волнуется на предмет того, где фактически находится сервер — физика, виртуальная машина в приватном облаке или вообще в публичном облаке)
- На каждую службу мы выделяем 500 портов для пользовательских соединений (наше внутреннее решение)
Как мы это делали (для нового сервера. для уже существующего часть шагов не актуальны):
- Создаются учетки под каждую службу
- На машине, где они будут работать им выдаются права на "запуск как службе"
- Ставиться MS офис, обязательно с активацией по MAK-ключу
- Ставится sqlncli — утилита из набора MS SQL Native Client. На данный момент выше 2012 не появлялось
- Создается папка C:\Windows\SysWOW64\config\systemprofile\Desktop — в противном случае есть проблемы с выгрузками в Word/Excel
- Для Windows 2016 и 1С 8.1 нужно скопировать старую версию dll (В папке C:\Program Files\Common Files\System\Ole DB надо заменить два файла sqloledb.dll и sqloledb.rll взятых со старых серверов)
- Ставятся дополнительное ODBC драйверы, если нужно подключатся к MySQL/PostgreSQL
Настройка папки для службы и логов:
- Создается папка на отдельном диске называется в формате 1CServer%basename% (в стандартном случае это делает сама служба, ибо у нее есть в настройках запуска путь к логам)
- Если внутрь каталога только что созданной службы переносятся данные из другого каталога (другой службы, другого сервера), то необходимо заменить владельцев (иначе служба не получит к ним доступа) с заменой владельца подконтейнеров
- Владельцем папки делается учетная запись службы
@echo off
chcp 1251
установка кодировки
set base=%base_name%
название базы без пробелов на английском – для каталога с логами
set dsce=%base name%
название базы с пробелами на английском – для имени службы
set dscr=%Имя базы%
название базы на русском – для представления службы
set sver=8.3
краткая версия – для имени и представления службы
set fver=1cv8\8.3.9.2170
часть пути к нужной нам версии платформы 1С
set port=8040
управляющий порт
set regp=8041
основной порт
set rnge=8060:8491
диапазон портов для службы
set name="1C:Enterprise %sver% Server Agent (x86-64) %dsce%"
имя службы (для реестра) по аналогии с типовыми, только добавляется название базы для уникальности названий
set bpth=\"C:\Program Files\%fver%\bin\ragent.exe\" -srvc -agent
путь к исполняемому файлу для запуска службы
set logs=D:\1C_Server_%base%
каталог для логов
set user="%login%@%domain_name%"
такой формат позволяет использовать логины длиннее 20 символов
пароль нигде не указывал при создании, потому что потом всё равно надо его заново указать, только тогда у пользователя будут права на запуск служб;
set view="Агент сервера 1С:Предприятия %sver% (x86-64) %dscr%"
представление службы в оснастке
sc create %name% binPath= "%bpth% -regport %regp% -port %port% -range %rnge% -d \"%logs%\"" type= "own" start= "auto" error= "severe" depend= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj= %user%DisplayName= %view%
тут:
type= "own" – тип службы, какие бывают еще сам посмотри
start= "auto" – автоматический запуск
error= "severe" – не помню что значит, но устанавливает правильное значение ключа в реестре ErrorControl = 2
depend= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" – зависимости (на четвертой вкладке указаны, вручную не настраиваются)
sc description %name% %view%
задает представление в оснастке, сразу при создании не указывается
sc failure %name% reset= 0 actions= "restart/0"
настройка на вкладке восстановление – перезапуск во всех случаях, через 0 минут; сброс счетчика через 0 дней
То же самое без комментариев:
@echo off
chcp 1251
set base=%base_name%
set dsce=%base name%
set dscr=%Имя базы%
set sver=8.3
set fver=1cv8\8.3.9.2170
set port=8040
set regp=8041
set rnge=8060:8491
set name="1C:Enterprise %sver% Server Agent (x86-64) %dsce%"
set bpth=\"C:\Program Files\%fver%\bin\ragent.exe\" -srvc -agent
set logs=D:\1C_Server_%base%
set user="%login%@domain.company"
set view="Агент сервера 1С:Предприятия %sver% (x86-64) %dscr%"
sc create %name% binPath= "%bpth% -regport %regp% -port %port% -range %rnge% -d \"%logs%\"" type= "own" start= "auto" error= "severe" depend= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj= %user% DisplayName= %view%
sc description %name% %view%
sc failure %name% reset= 0 actions= "restart/0"
Нюансы:
- Для того, чтобы в службах не было кроказябр
- в cmd ввести команду chcp 1251
- файл надо сохранить в ANSI кодировке
- Обязательно надо проверить на отсутствие дублирующих ключей в строке запуска — служба с ними не стартует!!!
- Для того, чтобы удалить службу, можно воспользоваться командой — sc delete «Имя заданное в переменной name»
- Добавить порты используемые 1С в разрешения в firewall
- Нужен всего один физический ключ на сервер — все службы будут активироваться им
После проведения всех мероприятий в итоге мы пришли к:
- Базы можно спокойно перезагружать, не трогая другие базы
- Всегда можно найти "героя" — базу, которая съедает все ресурсы
- Любые работы с базой касаются только одной конкретной базы
В следующих статьях я планирую рассказать (если эта статья народу зайдет):
- как мы перевели авторизацию в MSSQL на kerberos и вообще оптимизировали доступы
- как мы сделали мониторинг служб — кто сколько занял ресурсов
- как мы сделали мониторинг внутри службы 1С выявления блокировок пользователями быстрее, чем они позвонят
- как мы пытались внедрить CI для 1С и что из этого вышло
UPD. Дополнил кое-что по комментариям
Комментарии (238)
exehoo
24.09.2018 06:28«Оставайтесь! Будете гениальным механиком планеты». (с) (Робот с планеты Шелезяка)
Статья огонь, пишите еще.
acyp
24.09.2018 07:37Возникло несколько вопросов по использованной терминологии. Если не сложно, то прошу ответить в конкретных примерах.
1.Каждой службе выдается alias в DNS для того, чтобы отвязать разработку от ip и/или dns сервера
не совсем понял как… дело в том, что если вы запускаете несколько служб агента сервера 1с на разных портах, то и обращение при запуске будет вида сервер: порт, кроме порта по умолчанию — 1541. А DNS порты не разруливает… Или я ошибаюсь?
2.Запускаться службы должны исключительно из-под доменных учеток
да еще и админских? Учетки должны быть разные или может быть одна?
3. Вы устанавливаете на каждую базу и свой экземпляр программы 1с? По крайней мере я не знаю другого способа запуска нескольких баз, требующих одинаковой платформы, но при этом висящих на разных агентах… Если есть более простой, то прошу поделиться примером.DikSoft
24.09.2018 07:43Админские права не нужны. Дайте права на папку, куда 1С установлена. Эти криворукие 1С-ники до сих под в Program Files пишут ))
acyp
24.09.2018 07:59Вообще-то это был сарказм. Рекомендация про доменные учетки может быть излишней/некорректной зависит от архитектуры системы и механизмов применения 1с.
Я к тому, что такие советы надо оговаривать «так работает у меня». В других случаях можно настроить работу по иному механизму. Надо разбирать конкретные случаи. Для общего случая есть механизм установки по дефолту.
Darth_Malok
24.09.2018 08:23Запускаться службы должны исключительно из-под доменных учеток
Вполне возможна ситуация, когда понадобиться складывать какие-либо файлы в шару на другом сервере или использовать другие механизмы, требующие авторизации. В этом случае использование доменных учёток удобнее.acyp
24.09.2018 08:27Ключевое слово «возможно». Я исповедую принцип «необходимой достаточности» и анализа потребностей при проектировании системы. И возражаю, когда «возможно» преподносится как «однозначно надо».
Darth_Malok
24.09.2018 08:35Ну по умолчанию 1с работает под правами локального админа, что избыточно. Если уж создавать нового пользователя для службы, можно «подстелить себе соломки» и завести сразу доменую учётку, что добавит свободы в дальнейшем. Сценарий, когда сервер 1с должен что-то складывать в файлохранилище довольно часто встречается. Но дело ваше, конечно.
Вообще, проектирование системы на 1с не прекращается никогда. Всегда появляются новые требования по интеграции с чем-то новым, если у вас не продуктовый ларёк, конечно)acyp
24.09.2018 09:08Вот это новость.
Специально на чистой системе по умолчанию все установил. Вдруг забыл чего. Ан нет, не локальный админ. Скажу больше, для работы с файловой шарой на том сервере нужно завести _такого же локального_ пользователя с таким же паролем. И профит. Да и не безопасны нынче шары, есть куча иных механизмов.
Ну и остальные утверждения не могут быть преподнесены в варианте абсолютного знания.Darth_Malok
24.09.2018 09:11Извиняюсь. Насчёт локального админа я, видимо, заблуждался.
Не претендую на «абсолютное знание». Всё вышесказанное абсолютно субъективно.Sergey-S-Kovalev
24.09.2018 18:51На моей памяти, запуск с требованиями прав локального администратора, видел только на ломанных платформах.
Archius11
26.09.2018 12:22Неоднократно встречал пользователя службы 1с с правами администратора. Вместо того чтобы настроить права, их раздают чтобы служба корректно работала с COM-объектами MS Office и в случаях когда сервер 1с выгружал какие-то отчеты в разные расшары в сети.
Dr_Wut Автор
24.09.2018 09:18=))) Такой подход хорош и оправдан… когда у тебя 2-3 базы. А когда их много, доступы нужна давать много куда, то доменная авторизация рулит. Как минимум, если внедрена RBAC то посмотрев на учетку доменную ты сразу знаешь куда у тебя есть доступ у данного экземпляра
acyp
24.09.2018 09:28Сказать честно, я впервые встречаю настолько сложную (по ощущениям) архитектуру. Но даже более простые варианты мы рекомендовали выпрямлять и экономить на обслуживании. Собсно, это одна из статей нашего дохода.
Есть возможность формально описать текущую архитектуру системы с минимальным функционалом? Может правда будет проще «выпрямить, а не огороды городить»? Количество инстансов, баз, пользователей. Какие конфигурации (с версиями). Чем компания занимается.Dr_Wut Автор
24.09.2018 09:59=))) ретейлер с магазинами по всей стране (большим количеством магазинов)
Архитектура на самом деле ничем не отличается от бухгалтерии на 3 человек, просто из-за количества баз и людей обслуживание накладывает свои отпечатки
Dr_Wut Автор
24.09.2018 09:15- У нас есть сервер где установлена 1С — server-1c-82.comp.loc с ip 192.168.1.50. У нас есть несколько вариантов развития подключения
- прописать ip — самый сложно обслуживаемый вариант (при каждом чихе нужно менять везде ip), но самый стабильный в работе.
- прописать server-name. Это уже лучше — смена ip ему не страшна, но смена имени сервера — такая же чехарда при смене сервера
- сделать в dns cname app-1c-nazvanie-bazi.company.ru (внешний домен). В этом случае даже смена сервера не приведет к необходимости что-то менять, что удобно, а так же можно будет сервер вынести за пределы компании
- Ни в коем случае — только минимально необходимые права. Учеток лучше сделать несколько, так как в случае разбора вы сможете четко увидеть какие базы и куда ломились. А так же очень гранулярно давать необходимые права
- Не совсем. Установленный экземпляр только один, а вот служб — несколько.
acyp
24.09.2018 09:20В первом вопросе я специально взял ЦИТАТУ. У Вас в ней говорилось о DNS и разных службах.
ну и на 3 вопрос в качестве ответа хотелось бы механизм инсталляции нескольких служб с одного установленного экземпляра увидеть. На самом деле будет удобно, если такое возможно.Dr_Wut Автор
24.09.2018 09:47Аэээм… А вы статью то читали? Под вторым спойлером как бэ =))))
acyp
24.09.2018 09:49Сорь, читал с мобильного. Сейчас посмотрю. Спасибо. А про ДНС и службы?
Dr_Wut Автор
24.09.2018 10:00а что с ними? я вроде как расписал в комментариях зачем. Да и в статье тоже добавил инфу
acyp
24.09.2018 10:05Тогда давайте еще раз. Вот цитата:
Каждой службе выдается alias в DNS для того
Ну и т.д. У вас на одном инстансе может быть больше одной службы, просто на разных портах. Как с помощью ДНС разрулить обращение к службам?Dr_Wut Автор
24.09.2018 10:13никак. DNS позволяет безболезненно менять сервера. Обращение к службам рулиться через v8i — там прописывается порт
acyp
24.09.2018 10:22Может тогда переформулируете 4ый пункт в статье?
Каждой службе выдается alias в DNS для того, чтобы отвязать разработку
А то как-то запутывает. Я уж обрадовался, что можно службы агентов через DNS рулить. Ан нет, не прокатило :(.DaemonGloom
24.09.2018 14:42Такое можно или для ситуации, когда подключаются тонким клиентом или иным методом по http (через браузер, например). Тогда это можно разрулить через haproxy.
Ну или заставить 1С-ников ввести уже поддержку srv записей в dns сервере — и тогда счастье наступит всем и сразу.acyp
24.09.2018 16:14Парадигма развития 1с, как мне кажется, лежит несколько в иной плоскости. 1с не предоставляет глобальный сервис, так зачем поддержка srv?
А через http — это уже reverse proxi. У меня это сделано через nginx, как вариант. Ну и катит вне зоопарка, только для 8.3-ready конфигураций (конфигураций на тонких клиентах). Т.е. для современных. У автора статьи, как я понял еще и 8.1 где-то есть…
yukon39
24.09.2018 10:03Установленный экземпляр только один, а вот служб — несколько.
Не совсем понимаю, что вы понимаете под термином «экземпляр»? Вроде как экземпляр это как раз и есть запущенная и сконфигурированная служба.
- У нас есть сервер где установлена 1С — server-1c-82.comp.loc с ip 192.168.1.50. У нас есть несколько вариантов развития подключения
andreyle
24.09.2018 07:393. Ставиться MS офис
Не понял для чего нужна установка Offica на боевой сервер, где нет пользователей? Буквально сам недавно воевал со своими 1Сниками из-за установки Office.
Не пробовали модифицировать файл MSI при установки 1С Предприятие, дабы не заморачиваться со скриптом? В нем сразу прописать службы и т.п.acyp
24.09.2018 08:01Ранние версии 1С (8.1 точно) нуждались в присутствии на сервере офиса для формирования отчетов. Ересь полная, но факт. для современных 8.3-конф это требование излишне.
yukon39
24.09.2018 09:04Ранние версии 1С (8.1 точно) нуждались в присутствии на сервере офиса для формирования отчетов.
Офис никогда не требовался для формирования отчетов ни для 7.7, ни для 8.х. Формирование отчетов в 1С вполне полноценный функционал.acyp
24.09.2018 09:10Ну может быть за давностью уже и ошибаюсь. Офис на серваке не ставил уже очень давно и не могу вспомнить зачем он тогда был нужен.
yukon39
24.09.2018 09:39Учитывая, что и Microsoft не рекомендует использовать офис на сервере, вообще не понятно зачем предусматривать такую конфигурацию ПО и потом весело отлавливать косяки в самый неподходящий момент. И, самое обидное, в техподдержку обращаться бесполезно:
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
acyp
24.09.2018 09:42Ну что могу сказать? молодой был, глупый. Давно это было. Конкретику Вам вряд ли подскажу.
HappyUser
24.09.2018 12:05На сколько я помню, офис нужен для работы с файлами (сохранение отчета, вывод на печать, загрузка из экселя и т.д.). Без установки на сервере валятся ошибки и какой нить опенофис плохо подходит — в современных типовых решениях может уже и сделали нормальную совместимость, но в сторонних обработках, обычно, используется именно Microsoft Office (т.е. часть компонентов). Иначе нужно как минимум вручную менять строки в обработках типа: db.ConnectionString = «Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»+ПутьКФайлу+";Extended Properties="«Excel 12.0;IMEX=1;»"";
MrRoger
24.09.2018 10:12Насколько помню, не столько нужен офис, сколько наличие в системе какого-либо «принтера». Даж pdf-конвертер подойдет.
Darth_Malok
24.09.2018 08:20Некоторые вещи, выполняемые на сервере (например, генерация xls или doc файлов) могут потребовать наличие офиcа на сервере. Можно генерировать файлы на клиенте, можно работать с xlsx и docx как с xml, но это намного трудозатратнее.
andreyle
24.09.2018 08:55По моим данным для 8.3 Офис уже практически не нужен, за исключением очень специфических отчетов.
VVizard
24.09.2018 16:58А договора и прочие документы (уведомления, акты, технические описания, условия и.т.п.) как генерировать если не через офис?
Мы одно время хотели уйти, но посмотрели на ~12000 шаблонов которые сделали филиалы по всей стране за 15 лет работы, решили что время еще не пришло.
GorodokVVV
24.09.2018 12:03Если имеются хитронавороченные рассылки отчетов, которым недостаточно Записать ТипФайлаТабличногоДокумента.XLSX, а нужна дополнительная постобработка, и эти рассылки выполняются регламентным заданием (т.е. на сервере) — офис нужен.
DikSoft
24.09.2018 07:41Под SQLite логгирование не пробовали отдельный сервер 1С с назначенной ролью «только логи» создавать?
Darth_Malok
24.09.2018 08:28Неужели с SQLite всё настолько плохо? Понятно что
проблемы индейцев шерифа не волнуютадмин далёк от работы в 1с, но при классической схеме поиск в журнале регистрации может занимать до часа реального времени.acyp
24.09.2018 08:45Нет, не все так плохо. Из собственного опыта скажу, что реальные проблемы начинаются на _очень больших_ (от 250 пользователей) проектах. Но на таких проектах редко работают эникейщики. Или есть проф-консультанты (получившие сертификаты Экспертов или Эксплуататоров). Они могут предложить несколько выходов, без перехода на старый вариант ведения журнала, например как DikSoft. Поясню: он предложил вынос логов на отдельный инстанс в кластере.
Кстати, в 8.3.12 уже предусмотрен легальный переход на старый формат логов.fishca
24.09.2018 09:24К сожалению, 1С с новым форматом логов, мягко говоря лоханулась :( Хорошо что вовремя одумалась и вернулась к истокам.
Sander80
24.09.2018 21:51Я уже запутался в том, что означает словоочетание «новый формат логов». Новый, это до 8.3.12 или начиная с него?
acyp
25.09.2018 03:21новый формат появился с 8.3.5 и представляет из себя (по сути) sqllite-базу. вернуться на старый тип журнала возможность была, но только через хак (в классическом смысле, используюя особенность). с 8.3.12 это можно сделать средствами платформы.
Sander80
25.09.2018 06:31Понял, спасибо. Я то я читал описание 8.3.12 и из него сделал вывод, что там еще один новый-новый формат. А, выходит, это возврат к старому.
Darth_Malok
24.09.2018 08:16+1Программная лицензия для сервера привязывается к — сюрприз, сюрприз — серийному номеру процессора.
Либо автор заблуждается, либо что-то со времён 8.2 поменялось, либо заблуждаюсь я.
История из жизни. Перевели службу 1с (8.2) на виртуальный сервер с программной лицензией. Всё работало отлично, но после перезагрузки виртуального сервера 1с сообщила, что лицензии у неё нет. ОК, времени разбираться не было, активировали новый ключ. При перезагрузке история повторяется. Связались с техподдержкой, чтобы нам объяснили, почему слетает лицензия (все параметры сервера хранятся в «файле конфигурации», но файл зашифрован). Нам объяснили следующее:
Ключ получен на сервер с 4-мя ядрами ЦП:
1. 1999 MHz
2. 1999 MHz
3. 1998 MHz
4. 1999 MHz
После загрузки имеем следующее:
1. 1999 MHz
2. 1998 MHz
3. 1999 MHz
4. 1999 MHz
Ядра остались те же самые, но поменялся их порядок — лицензия уже не работает. Система виртуализации — Xen. Админ не захотел решать эту проблему, и 1С была установлена на физический сервер, где и продолжила своё существование.
Ну и чтобы два раза не вставать:
1) Программная лицензия 1С (по крайней мере 8.2) привязывается к куче параметров сервера (об этом можно почитать в документации), но при увеличении характеристик (количество оперативки, дисков, сетевых интерфейсов) лицензия не отваливается. Отсюда лайфхак — создаёте виртуальную машину с минимальной конфигурацией (чтобы хватило на запуск 1с), активируете лицензию и уже после наращиваете характеристики для комфортной работы. В случае чего, эти нарощенные характеристики можно подсократить (уменьшить оперативку, например, если виден её избыток). Совет банальный, но вдруг кто не знает.
2) Изучать структуру файлов *.v8i не обязательно. Важны только следующие строки:
[Название базы, отображающееся в списке] Connect=Srvr="ИмяСервера";Ref="ИмяБазы";
Всё остальное 1с-ка допишет сама при открытии списка баз. Файл хранится в аппдате и перечитывается при каждом открытии 1cv8s.exe, так что можно менять файл в любое время без всяких последствий. По крайней мере, за несколько лет использования этой схемы ошибок не возникало.acyp
24.09.2018 08:29Красотень! Markdown-разметку осваиваете? Завидую, у меня все руки на доходят…
Darth_Malok
24.09.2018 08:43Не понял вопрос. Вы про оформления комментария? Markdown не использую, всё делается банальными html-подобными тегами.
osipov_dv
24.09.2018 08:38+2лучше не брать программные лицензии, а брать хасп и что то вроде usb anywhere. тогда одним ключем можно все инстансы закрыть и с миграцией на другие узлы проблем не будет. у меня тоже слетала активация на 1с, причём без каких либо внешних изменений вообще, на 8.3
acyp
24.09.2018 08:48А это уже как раз нарушение лицензии будет, если вы с одного ключа закроете два или более инстансов сервера.
Dr_Wut Автор
24.09.2018 09:23Ну для начала я не видел ни одной системы которые могли бы прокидывать USB один ко многим =))) Так что это технически сделать очень тяжело
acyp
24.09.2018 09:32osipov_dv
24.09.2018 09:37один ко многим оно не прокидывает, по крайней мере раньше не умело. А вот несколько usb на один сервер — без проблем.
acyp
24.09.2018 09:40С помощью похожей железки забираю контуровский токен с нескольких машин (ЭДО, подпись документов).
osipov_dv
24.09.2018 09:51конкретно AnywhereUSB не дают раздавать один ключ на несколько устройств одновременно. Переключаться можно, но одновременно — нет.
У нас после внедрения в серверной части, аналогичное сделали для клиент-банков у бухов. Они ходят по RDP на виртуалки с кб, а «флешки» тыкают в 5 портовые девайсы у себя на столе.acyp
24.09.2018 09:54Ну, значит не получится и автор исходного сообщения не будет нарушать лицензию 1с :).
acyp
25.09.2018 07:55Ради любопытства попробовал — работает. Похоже опрос ключа идет не постоянно, а с какой-то заданной периодичностью. Ну или мульти-механизм основан не на том, что железяка раздает, а на том, что клиенты опрашивают, а железяке ничего особо не мешает отдавать один ключ разным клиентам по запросу. Надо будет как-нить wireshark прикрутить к этому делу.
Darth_Malok
24.09.2018 09:00С USB-ключами тоже есть несколько нюансов.
Во-первых, у нас на хаспе зависали сеансы. То есть, кончились лицензии, смотрим, кто их использует, и оказывается, что часть сеансов давно завершены. Возможно, это уже пофиксили. С программными такой проблемы не было.
Во-вторых, на одной машине может использоваться только один usb-ключ. При переходе на виртуализацию нужного количества серверов может и не найтись. Ну и на каждый сервер придётся установить обслуживающий софт.
В-третьих, проброс ключа на виртуальную машину — нетривиальная задача. Возможно, проблемы были в выбранной системе виртуализации, но у наших админов не получилось)
В-четвёртых, usb-ключи дороже. Компания наказывает рублём за нежелание следовать прогрессу.
По поводу слёта активации, пишите в ТП 1с. Там вам помогут выяснить, почему слетел ключ. Возможно, вы размонтировали один из дисков или убрали сетевой интерфейс. В ТП помогут разобраться и подскажут, чего делать не надо)
А вообще, ситуация интересная. В то время как софтверные гиганты, типа MS, раздают лицензии «оптом и в долг», 1С-ка настолько фанатично относится к лицензированию. Причём это не приводит к стойкости защиты, и у добропорядочных пользователей проблем больше, чем у пиратов.osipov_dv
24.09.2018 09:361. вы сейчас уже про пользовательские а не про серверные? Да вылечили, где-то в между 8.2 и 8.3…
2. не очень понял, я написал про железное устройство usb anuwhere, которое прокидывает по ip некоторые классы usb устройств. и оно официально поддерживается Aladdin.
3. см пункт 2
4. на тот момент когда я этим занимался, они стоили одинаково. Плюс у нас со времен 8.0 и 8.1 был неплохой запас ключей.
Вот смотрите, слетела активация, база лежит, пинкоды кончились и вы ждете ответа на обращение. Тем временем у руководства уже начинает идти пар…Darth_Malok
24.09.2018 10:49вы сейчас уже про пользовательские а не про серверные? Да вылечили, где-то в между 8.2 и 8.3…
Да, я про пользовательские серверные ключи. Немного не по теме, но меня уже было не остановить) Рад, что вылечили.
не очень понял, я написал про железное устройство usb anuwhere, которое прокидывает по ip некоторые классы usb устройств. и оно официально поддерживается Aladdin.
Был не в курсе, спасибо. То ли 6 лет назад устройство было не столь распространено, то ли наши админы про него не знали, то от платформы виртуализации тоже что-то зависит.
на тот момент когда я этим занимался, они стоили одинаково. Плюс у нас со времен 8.0 и 8.1 был неплохой запас ключей.
Компания сначала пыталась действовать идеологически, рассказывая, насколько usb-ключи хуже программных решений. Но потом сдалась и подняла цены на физические ключи. Теперь они дороже на 30-15%, в зависимости от решения. Это не значит, что «usb-ключи — всё», но является дополнительным аргументом в пользу приобретения программных ключей.
Вот смотрите, слетела активация, база лежит, пинкоды кончились и вы ждете ответа на обращение. Тем временем у руководства уже начинает идти пар…
Если мне не изменяет память, мы писали в ТП не когда лицензия упала и нового ключа нет, а когда последний ключ использован, и не осталось запасного. То есть, если сервис не падает каждую неделю, запасной ключ успеет прийти. Ну и на случай полного ада всегда лежала резервная коробочка с пинкодами, которой мы за все годы, что я там работал, так и не воспользовались.osipov_dv
24.09.2018 11:04У этого железного решения один большой минус — цена. на 14 портов стоило раньше 2 тысячи английских фунтов. На 5 портов около 500… Я его в 2010 начал использовать, когда столкнулся с большим числом 1с серверов. Поэтому разница программной и аппаратной лицензии 1с ни о чем :)
salazar
25.09.2018 11:48Программная лицензия. Отдельный виртуальный сервер с ролью «сервер лицензирования» на кластере HyperV W2012R2. В одном из серверов кластера немного другой процессор (доверился и не проверил, что поставщик привёз по факту E5-2680v2 вместо E5-2680) из-за этого включена опция «Выполнить перенос на физический компьютер с другой версией процессора». За два (точно не меньше) года эксплуатации лицензия не слетала ни разу. Платформы 82 и сейчас 83.
yukon39
24.09.2018 09:32Либо автор заблуждается, либо что-то со времён 8.2 поменялось, либо заблуждаюсь я.
Автор, наверно, имеет ввиду параметр ProcessorId (в терминах WMI). Это, конечно, не серийный номер процессора, но тем не менее не самая очевидная вещь что на хостах ВМ процессоры должны совпадать с точностью до ProcessorId.
sergling
24.09.2018 09:37автору просто нужно раскурить про отдельный сервер с ролью «сервер лицензирования», который разместить на обычной машине с фиксированным железом.
ievgen
24.09.2018 09:53В kvm можно указать в свойствах виртуальной машины конкретный тип процессора. тогда миграция этой вм между разными хостами не вызывает отвала лицензии. Намеренно проверял даже миграцию между АМД и Интел платформами. Вот в облаках, где нет доступа к гипервизору — это не прокатит. В vmware вроде тоже есть такая опция, но я ее не тестировал. За остальные гипервизору не скажу.
Darth_Malok
24.09.2018 11:10Я бы понял, если бы что-то отваливалось при миграции, но оно отваливалась при каждой перезагрузке.
Добавляет проблем и то, что 1с не говорит, что именно в конфигурации ей не нравится. Поэтому можно безболезненно провести эксперимент три раза, а после вас ждут долгие переписки с ТП и объяснения, почему вам каждую неделю нужен новый пинкод.
После перешли с XEN на vmware, но сервер 1с остался физическим, ибо «работает не трожь», и заниматься экспериментами на рабочей системе как-то не комильфо — нет никакой гарантии, что в конце концов оно заработает, а не отвалится в последний момент, ибо не «галочка в настройках гипервизора помогла», а «абсолютно случайно ядра выделены в том же порядке, что и в прошлый раз».
cruzo
24.09.2018 10:03Как то раз, мы просто обновили драйвер на сетевой карте сервера. Без нового ПИН вопрос не решился.
osipov_dv
24.09.2018 08:41вместо мутных схем с планировщиками, попробуйте разместить файлы v8i на dfs шаре. у пользователей надо будет лишь один раз прописать путь к этому файлу, тупо положив cfg в профиль.
Dr_Wut Автор
24.09.2018 09:26Вы не поняли самой идеи. Файлы v8i как раз на общей шаре то и лежат, а планировщик нужен для автоматического подключения этих самых файлов с общей шары
osipov_dv
24.09.2018 09:39зачем их подключать каждый раз? Один раз подключите одну общую и все, пользователь сможет руками добавлять еще свои базы.
Dr_Wut Автор
24.09.2018 10:04Если вы уберете у пользователя базу то она так и останется висеть в списках. Или вообще удалите базу — тоже самое. Поэтому и решили каждый раз генерировать заново
Sergey-S-Kovalev
24.09.2018 19:11Вы как то плохо курили интернеты. «Легкое управление списками баз 1С» — 3.5 года как разжевал общую концепцию по управлению списками.
У меня сейчас это даже входит в курс молодого бойца для сисадминов свежепришедших.Dr_Wut Автор
24.09.2018 19:351. Проблема вся в том, что мы это делали в 2012, поэтому я описываю свой путь.
2. У вас указано «Файл приводится в соответствие при загрузке ПК, либо раз в 90+- минут.» — у меня — сразу же после блокировки/разблокировки. Максимум — 15 минут, если админ ошибся контроллером домена и нужна синхронизация. Чувствуете разницу?
3. Прочитал вашу статью целиком. Я правильно понимаю что идеология такая — подключить пользователю все базы, а потом к 90% баз просто не дать доступ на уровне шары?
Если так — то это тоже имеет право на жизнь, но на мой взгляд решение странное так как тратиться время на проверку всех файлов на факт доступности.
Ну и почему идет привязка к компу мне тоже не понятно, хотя это и объясняется в статье…Sergey-S-Kovalev
25.09.2018 13:301. На дворе уже вторая половина 2018 так то.
2. В комментах к статье есть описание реализации, когда на ПК хранится только ссылка на файл конфигурации, проверять еще руки не дошли, но если это так, то это оптимальное по скорости решение. Там вообще решение мгновенное по скорости.
Разница не чувствуется, поскольку список баз не меняется настолько часто.
3. У пользователя есть пути до всех баз. Время на проверку доступности не тратится, при запуске 1С нет разницы, в списке 300 баз или 3, из которых доступа только одна. Это вызвано тем, что файловая система возвращает список только тех файлов которые доступны пользователю. Однако в Вашем случае производится запуск powershell скрипта и сборка файла конфигурации, вот это несравнимо дольше :)
В примере скрипта цифровой подписи нет, и мне что то подсказывает, что Вы оное не практикуете. Не секурно.
Еще недостаток Вашей реализации — Ваш скрипт сносит существующий v8i файл в момент пересборки, попутно снося самопрописанные базы у пользователя. Моё решение выдает пользователю фиксированный список, плюс оставляет пространство для прописывания баз (тестовых, личных), т.е. таки проявляет некоторую гибкость.
Судя по Вашей статье в вашей организации не хватает предварительного тестирования перед деплоем в прод.Sergey-S-Kovalev
25.09.2018 19:29Все. Я проверил. Dr_Wut, Ваш повершеловский скрипт по обновлению v8i файлов, и мою реализацию по доставке CFG файла со списком баз под учеткой ПК можно сливать в мусорку как устаревшее и не оптимальное решение. Новая реальность банальна:
Делаем один красивый 1CEStart.cfg и тупо льем его на все ПК где установлена 1Ска в C:\ProgramData\1C\1CEStart\1CEStart.cfg групповой политикой.
Он содержит только:
CommonCfgLocation=\\domain.local\dfs-root\Sync1C\cfg\all-bases-list.cfg
указанный файл all-bases-list.cfg содержит список всех баз:
CommonInfoBases=\\domain.local\dfs-root\Sync1C\v8i\company_buh30.v8i CommonInfoBases=\\domain.local\dfs-root\Sync1C\v8i\company_zup31.v8i CommonInfoBases=\\bdomain.local\dfs-root\Sync1C\v8i\company_torg4.v8i
Теперь любое пополнение списка мгновенно отображается на всех ПК, запускаешь клиент и база в списке (при условии что пользователь включен в группу которая дает доступ к такому файлу).
Пора менять мануалы.Dr_Wut Автор
26.09.2018 01:59в общем ответил выше, но тут отдельный момент. Вы уверены что тот факт, что пользователи видят все базы — это правильный шаг? Я считаю что нет. Когда из много — будет путаница
И еще, ваш подход по сути основывается на ошибке (запрете) доступа к файлу. Мой — на формировании доступного списка.
У нас просто разная идеология, и говорить чья правильная — не возьмусьSergey-S-Kovalev
26.09.2018 05:26+1Уверен. Недоступность файлов настолько обыденное явление, и пользователи с ней сталкиваются незаметно для себя бесконечно большое количество раз за один рабочий день.
Путаница из-за файла, который содержит перечень всех баз и пути подключения к ним? =) По-моему это куда ближе к порядку чем обычно.
Ваша идеология, однако Вам, не мешает:
1. Дергать контроллер домена каждый раз, делая поиск по его структуре. Засоряя логи безопасности бесполезными ивентами. Это не страшно, когда у тебя 100-200-300 пользователей. При 500+ это будет уже ощутимая нагрузка на контроллер, и очень короткий и тормозной лог безопастности.
2. Запускать на ПК пользователя повершелку. Повершелку без подписи.
3. Формирование списка не делает Ваши базы 1С секурнее. Кластер 1С как был доступен всем подряд со всеми базами, так и продолжает быть доступным. Прописывай правильные параметры подключения и между тобой и базой только авторизация 1Ски. Поэтому нет никакого смысла чего то прятать, безопасность через скрытие мнима.
Dr_Wut Автор
26.09.2018 01:56>3. У пользователя есть пути до всех баз. Время на проверку доступности не тратится, при запуске 1С нет разницы, в списке 300 баз или 3, из которых доступа только одна. Это вызвано тем, что файловая система возвращает список только тех файлов которые доступны пользователю. Однако в Вашем случае производится запуск powershell скрипта и сборка файла конфигурации, вот это несравнимо дольше :)
Не согласен.
1. В файле есть путь к файлу и 1С честно будет пытаться его прочитать, получит отлуп от сервера, пойдет дальше.
2. Пока что 1С отлуп не светит, но точно тратит на него время. А если в следующей реализации сделают окно с оповещением того что ссылка на базу не доступна? А если у пользователя 1-2 базы а в компании их 15 — у вас 13 раз вылетит предупреждение скорее всего.
>В примере скрипта цифровой подписи нет, и мне что то подсказывает, что Вы оное не практикуете. Не секурно.
факт =)
>Еще недостаток Вашей реализации — Ваш скрипт сносит существующий v8i файл в момент пересборки, попутно снося самопрописанные базы у пользователя. Моё решение выдает пользователю фиксированный список, плюс оставляет пространство для прописывания баз (тестовых, личных), т.е. таки проявляет некоторую гибкость.
Это сделано намеренно, чтобы люди не делали ручные ссылки на базы. Сделал — сам дурак, у тебя все снесется
>Судя по Вашей статье в вашей организации не хватает предварительного тестирования перед деплоем в прод.
Почему вы так решили?Sergey-S-Kovalev
26.09.2018 05:43+1(на самом деле это была глубокая зимняя ночь) мы поняли что завтра надо запустить новую базу.
Только, как обычно это бывает, погорели на мелочи — я в логон-скрипте я прописал %filename%.bat а коллега выложил %filename%.cmd
с утра хелпдеск побежал делать все руками
Итак, Вы тянете кота за хвост до самого конца.
Нет чейндж менеджмента.
Нет инструментов оперативной доставки и управления пользовательскими системами.
Мало пользователей, ибо техсуппортам быстрее пробежать все ПК, чем админу запустить скрипт обходящий все системы и вносящий нужные изменения.
yukon39
24.09.2018 09:26У файлов в шаре есть один минус — если сервер с шарой станет недоступен, то:
1. 1С-ка начнет долго запускаться
2. Общие ИБ после запуска пропадут из списка.
В итоге имеем ещё одну точку отказа. Да и городить один общий ресурс для полусотни статичных файлов по 1Кб это как из пушки по воробьям.
И да, еще нужно настраивать индивидуальные права доступа для каждого из полусотни (а бывает и более!) файлов сомнительное удовольствие. Особенно, если что-то пошло не так, и шару надо срочно перенести на новое место.osipov_dv
24.09.2018 09:42я не спроста сказал про DFS — там несколько реплик и несколько серверов. Шара и DFS это не одно и то же… если не охота еще один namespace поднимать, то разместите в sysvol\netlogon.
1. не начнет, после того как внедрили жалоб не было ни одной
2. я про общие и говорю, при это личные можно добавлять и они тоже будут показываться подсвечиваясь *
Dr_Wut Автор
24.09.2018 10:07>У файлов в шаре есть один минус — если сервер с шарой станет недоступен, то:
1. 1С-ка начнет долго запускаться
2. Общие ИБ после запуска пропадут из списка.
Аэм… DFS? )
>Да и городить один общий ресурс для полусотни статичных файлов по 1Кб это как из пушки по воробьям
Почему нет?
>И да, еще нужно настраивать индивидуальные права доступа для каждого из полусотни (а бывает и более!) файлов сомнительное удовольствие. Особенно, если что-то пошло не так, и шару надо срочно перенести на новое место.
Зачем разные? всем только для чтения — админам для редактирования. Этого хватаетyukon39
24.09.2018 11:19всем только для чтения — админам для редактирования. Этого хватает
В том то и проблема, что не всегда всем нужно давать весь список баз на чтение. Ниже есть моё описание как мы решали проблему через группы AD.Dr_Wut Автор
24.09.2018 12:05Да, только в таком случае нужно права на чтение параметров группы в AD. Но решение тоже любопытное.
yukon39
24.09.2018 09:19Тоже реализовывали прописывание баз через AD. Вариант с кучей файлов рассматривали в первую очередь, но не получалось по тех требованиям. В итоге реализовали так:
1. 1 база — 1 группа AD
2. В каждой группе AD в поле Comment лежит содержимое v8i для этой базы.
3. Логон скрипт по группам пользователей собирает содержимое файла commonbases.v8i, выкладывает его в локальный профиль пользователя, и приписывает путь к этому файлу в 1CEStart.cfg
Так как геолокаций серверов 1С и пользователей было несколько, то на каждой локации прописывался свой логон скрипт и пользователю всегда были доступны базы только текущей локации.
Golovanoff
24.09.2018 09:24Спасибо, познавательно, местами смешно :)
>В следующих статьях я планирую рассказать (если эта статья народу зайдет):
Зашло, зашло. Продолжение ннада! :)
IT-Tiger
24.09.2018 09:26Подгорело что-то, даже зарегистрировался ради этого))
1С не умеет адекватно работать в виртуализированной среде. Это печальный факт (особенно если учесть что на дворе уже практически 2019 год), судя по всему, исправлять никто не собирается. Виртуализация, даже правильно настроенная, будет вам стоить примерно 15-25% производительности. Смиритесь. (Источник — Гилев и собственные тесты)
Это устаревшая информация. Падение производительности не больше 5-10% в гипервизорах Hyper-V и VMWare.
Забудьте про нормальный кластер — его тут нет.
Если есть виртуализация, то есть и кластер!
Так же есть кластер сервера 1С.
В продуктовой среде мы должны следовать правилу — одна база — одна служба
Есть же настройки процессов, например «количество ИБ на процесс».
Нельзя просто поставить сервер 1С и ожидать высокой производительности.
Dr_Wut Автор
24.09.2018 09:30Это устаревшая информация. Падение производительности не больше 5-10% в гипервизорах Hyper-V и VMWare.
Для 1С это все еще актуально. Это конкретно про 1С
Если есть виртуализация, то есть и кластер!
Так же есть кластер сервера 1С.Не путайте пожалуйста длинное с кислым. Виртуализация и кластер это абсолютно разные вещи, от друг друга вообще никак не зависящие
Есть же настройки процессов, например «количество ИБ на процесс».
Нельзя просто поставить сервер 1С и ожидать высокой производительности.Не спорю, но до этого я еще просто не дошел в статьях
IT-Tiger
24.09.2018 12:48Не путайте пожалуйста длинное с кислым. Виртуализация и кластер это абсолютно разные вещи, от друг друга вообще никак не зависящие
Напишите тогда что вы называете кластером.
Для меня отказоустойчивый кластер — это как минимум два сервера и СХД (на которой лежат виртуальные машины серверов). В случае отказа железа виртуальный сервер стартует на втором физическом (зависит от конкретного гипервизора, будет отказ в обслуживании или нет).
Про кластер серверов 1С — аналогично. Штатная технология, которая позволяет из физических серверов с установленными службами сервер 1С собрать единый кластер. Отдельная виртуалка для клиентских ключей и службы лицензирования.
Физические USB ключи 1С пробрасываются без проблем в виртуалки (есть несколько вариантов).acyp
24.09.2018 12:56Поделитесь пожалуйста знанием «проброс серверного ключа в виртуалку без использования usb-anywhere»
IT-Tiger
25.09.2018 08:05VMWare это штатно делает очень давно.
Я так понимаю, проблема с Hyper-V?
Есть USB over IP, есть на Linux, есть железки.
Проблема то в чем? usb-anywhere не единственное решение.acyp
25.09.2018 08:11Да, Вы правы. Вопрос именно с Hyper-V. Возможен ли проброс штатными методами? Вопрос больше теоретический, наверно поэтому я спрашиваю на форуме, а не пытаюсь подключить.
Под штатными я подразумеваю использование только возможностей платформ win2016 и Hyper-V.IT-Tiger
25.09.2018 09:19К сожалению, штатными средствами никак.
Только отдельное ПО или железо.
Ну или программный ключ) Не так он и страшен.
Правда как то раз я ночью в субботу 3 раза переустанавливал сервер 1С и у меня кончились активации. Я отправил запрос и молился, чтобы прислали новый lic. Не прислали. Пришлось ломать(acyp
25.09.2018 09:24Ну и ладно. Нам пока трехзвенного 1с-кластера за глаза. А он на физ.ключах и весь bare-metal. Ну и опять же usb-anywhere есть, правдя для других целей.
За ответ спасибо. Кстати, случайно наткнулся на статью как собрать свой юсб-анивере на отдельной машине с ubuntu на борту. Как-нить на досуге поэксперементирую. Вот это наверно будет интересная статья :).
acyp
24.09.2018 09:38Настройки ИБ на процесс умерли в 8.3
IT-Tiger
24.09.2018 12:43
Настройки ИБ на процесс не умерли в 8.3, скорее, наоборот.
Установив этот параметр на 1, мы получаем как минимум по одному процессу на каждую базу 1С.acyp
24.09.2018 12:58Да-да, я уже посыпал голову пеплом. Спутал с другим параметром, так удобно существовавшем в 8.2 и отмененном в 8.3 за ненадобностью.
Laz_Artem
24.09.2018 09:26Зачем такие геморойства со службой? Поставь ещё один СП на этой же машине (на других портах), т.к. новый СП будет на этой же машине проблем с лицензией не будет
Dr_Wut Автор
24.09.2018 09:33Вам нужно запустить 2 базы на одной и той же платформе. Как вы будете это делать? Как минимум как вы будете ставить второй экземпляр сервера приложений? И вот тут то и приходит понимание что службы — единственный выход
beho1der
24.09.2018 09:46Автор пишет все относительно Windows. Для linux версии, например при контейнеризации провалов производительности нет и программная лицензия у меня не слетала, при переездах. Хорошая методика в уменьшение проблем это разделение сервера баз данных и сервера приложений.
Darth_Malok
24.09.2018 10:55Могу ошибаться, но программные лицензии на linux выглядят примерно как «мамой клянусь, я не пират») То есть никакой привязки и проверки не производится. По крайней мере так было на первых версиях 1с, способных работать на никсах.
Fragster
24.09.2018 10:54Есть полезные вещи, конечно, но даже пункт «1. Подвисшая база тянула за собой перезапуск службы, а значит страдали невинные (пользователи других баз)» уже говорит о том, что автор не до конца разобрался в том, как работает 1с. Конечно, статья для начинающих, но зачем же вводить их в заблуждение?
Dr_Wut Автор
24.09.2018 11:01Почему? На базе запущен какой-то дикий запрос, база сожрала все ресурсы сервера — подключиться невозможно. Что делать будете?
Или у вас никогда служба не глючила? Если так — то вам очень сильно повезло.Fragster
24.09.2018 11:07У меня все глючило и не раз. Что такое «На базе запущен какой-то дикий запрос, база сожрала все ресурсы сервера — подключиться невозможно» не понимаю. Вот прям совсем. Даже при загрузке всех ядер всех процессоров и оперативке, уходящей в своп можно подключиться и посмотреть, кто это сделал. И если ситуацию по процессору сложно прогнозировать (но можно, да и менее критичная она с точки зрения возможности обработки), то ограничение по оперативке есть и в скуле и в 1с.
Или у вас никогда служба не глючила
Ну, времена, когда валится ragent и rmngr уже (почти) прошли, а rphostы с зависшими фоновыми убиваются более-менее стандартными средствами без потери данных пользователями (кроме проблемного сеанса).
Ситуация с «диким» запросом — это уже инцидент. Не должно быть такого на проде, а тестовая среда не должна сильно влиять на рабочую. Даже если это один физический сервер, что часто встречается в небольших компаниях.DikSoft
24.09.2018 11:14>Ситуация с «диким» запросом — это уже инцидент. Не должно быть такого на проде, а тестовая среда не должна сильно влиять на рабочую. Даже если это один физический сервер.
— это штатная фича типовых конфигураций. )) Windows Resource Manager на терминале и SCOM+Orchestrator на сервере 1С в помощь!Fragster
24.09.2018 11:22это штатная фича типовых конфигураций
Позволю не согласиться, хотя я сам заработал не один десяток тысяч рублей на исправлении типового запроса распределения по партиям. Большая часть этого — наследие 8.0, когда отсутствовали пакетные запросы и переходные периоды, когда менялась структура индексов, а запросы под неё — нет (это все достаточно редко возникающие ситуации, которые, к тому же, достаточно быстро исправлялись самой 1с). Для расследования таких ситуаций есть встроенные в 1с и в сервер СУБД средства. Да и не только для расследования, но и для оперативного определения проблемыи реагирования на неё.
Есть, конечно, узкие места типа работы ЗУП на postgres (тут требуется определенный опыт, тестовый стенд и некоторое количество экспериментов, если базы большие), или отсутствие использования нужного условия в «реальном» запросе виртуальной таблицы, которое проявляет себя на больших базах например partners.v8.1c.ru/forum/topic/1751116. Но это все равно инциденты.DikSoft
24.09.2018 11:34Что ЗУП, что УСО, что УПП регулярно и необязательно при неправильно выставленном периоде крашатся на отчетах. Это реалии, а не криворукость локального саппорта.
Инструменты это здорово, но сильно мне легче будет, если я снова найду в _типовой_ отчетности косяк?Fragster
24.09.2018 11:41За УСО не скажу — не работал. УПП поддерживается «постольку поскольку», а главным драйвером является ERP. Что такое «краш при неправильно выставленном периоде»? Когда 32битный клиент не может переварить результат отчета на 1кк строк? Это нормально, научите пользователей использовать отборы, встройте «сторожа» в обработчик компоновки на потенциально опасные результаты. И более того, говоря о «На базе запущен какой-то дикий запрос, база сожрала все ресурсы сервера — подключиться невозможно», работу остальных пользователей эта ситуация не затрагивает.
в _типовой_ отчетности косяк
Это неприятно, но это опять же, инцидент и решается через ТП 1с.
К теме статьи, ИМХО, неправильные цифры, не имеют отношения.DikSoft
24.09.2018 13:22>Что такое «краш при неправильно выставленном периоде»? Когда 32битный клиент не может переварить результат отчета на 1кк строк?
Если бы. Это когда сервер выжирает CPU и память, при нормально выставленном периоде. В типовом регламентированном отчете.EvilBeaver
25.09.2018 08:32Типовой отчет не должен быть идеальным. Он именно что «типовой». Для средней конторы в вакууме
EvilBeaver
25.09.2018 08:31У меня бывало. 100% цпу от имени rmngr или rphost, своп, все мертвое. Потом копание в техжурнале. Не всегда получалось понять, приходилось и на фазу Луны пенять
IT-Tiger
24.09.2018 12:54+1Для этого есть отдельные настройки:
1. Максимальный объем памяти рабочих процессов
2. Безопасный расход памяти за один вызов
Просто так ничего не зависает. Если какой-либо из процессов внезапно стал вести себя неадекватно — можно перезапустить его отдельно.
Через консоль видно даже пользователя, который это сделал.
Есть еще «анализ долгих запросов» и еще много сервисов, которые помогают оценить ситуацию.DikSoft
24.09.2018 13:23да. Постфактум. После аварии.
IT-Tiger
25.09.2018 08:08+1Нет, не «после аварии».
Один из процессов начинает жрать память, т.к. пользователь запустил отчет за весь период существования базы с максимальной детализацией.
Срубится только этот процесс. Параллельно будет запущен новый и пользователи перейдут работать на него. Руками ничего делать не придется!
Я странно себя чувствую — объясняю базовые вещи по администрированию сервера 1С.
Готов делиться опытом, но информации полно и на сайте Гилева и на других ресурсах.
EvilBeaver
25.09.2018 08:29Тоже сложилось впечатление, что автор недокурил мануалы. Скажем у нас был массовый переезд серверов с физики на виртуалки, в первые пару дней лаги, пока тюнинговали, потом работало как часы. Ну и с некоторыми другими постулатами из статьи не могу согласиться. С упоением жду продолжения про ci cd. Вот там граблей разложено — не счесть! )
alexey-lustin
26.09.2018 07:17Прям жду не дождусь… 2 вещей
* что будет предложено для Zabbix — интересно нашли ли репозиторий на github с настройками @bessonovevgen github.com/bessonovevgen/srv-1c-zabbix-template
* что будет предложено для CICD — делаем ставки господа: будет ли в статье указан oscript.io и github.com/oscript-library/deployka
xmaster83
24.09.2018 11:09-5Уберите 1С с хабра, не позорьтесь.
fpir
24.09.2018 11:44+1Её-бы из реальности убрать, это да. А пока из реальности её не убрали-на хабре она очень нужна.
VVizard
24.09.2018 17:11Почему убрать а не заменить на «тут имя конкурента»?
Платформа достаточно интересная и мощная для быстрой разработки + есть хорошие базовые конфигурации.
Единственная проблема это отсутствие конкуренции, т.к. «убирателей из реальностей» у нас в РФ много, а вот создателей качественных средств разработки для прикладных задач мало.fpir
24.09.2018 17:51-1Как сейчас помню… Было несколько конкурентов. Я тогда мало что понимал в «этих ваших»
компутерахбухгалтерских программах. Но большинство отзывалось об 1С, как сейчас о mail.ru, т.е контора большая, но бестолковая. Удачная бизнес-стратегия изаманушнаяграмотная франшизная политика-вот причина успеха 1С, как конторы в целом, так и «Бухгалтерии» в частности, а вовсе неПлатформа достаточно интересная и мощная для быстрой разработки
И не спроста в статье упоминается MSOffice, первые версии «Бухгалтерии» были экселевскими таблицами + средства защиты копирайта. Не специалист по 1С, но похоже они только недавно избавились от этого легаси.
И теперь тотальное уничтожение конторы 1С и признание всей её продукции ересью -намного более реальный сценарий, чем появление у неё конкурентов «у нас в РФ».VVizard
24.09.2018 18:32На самом деле 1С выполняет титаническую работу.
Кзалось бы что проще, сделай портал по расчету ЗП, и продавай как услугу по цене дешевле чем это делает 1С.
Как то я не вижу очереди желающих.
Потому что одно дело сделать интернет магазин из 3х табличек, и совсем другое сделать расчет зарплаты с учетом неимоверного количества правил и документов.
Не специалист по 1С, но похоже они только недавно избавились от этого легаси.
Посмотрите просто возможности платформы: v8.1c.ru/overview/Platform.htm
Если вам не сложно потратьте 10 минут и отпишитесь тут что вы думаете о платформе сейчас (после прочтения моей ссылки).fpir
24.09.2018 19:01Вот это и думаю:
Это скрин той ссылки. Есть оглавление(верхний экран) потом ещё одни пустой экран, потом кнопки вперёд-назад, потом 4 экрана до «подвала». В этом вся 1С: большая, многофункциональная, но сделанная, скажем так, не очень продуманно, и местами намеренно перректально, т.к. это заложено в модели монетизации.VVizard
24.09.2018 19:07Ну вы же сами написали что есть оглавление?
Если есть оглавление значит можно перейти по ссылкам в оглавлении
Как вы тогда в ВК или Фэйсбуке разбираетесь если даже такая простая страничка вызвала у вас трудности.
А уж найти вкладку «Контакты» в GMAIL это тогда вообще не посильная задача?
Я вот недавно пытался в ВК долисать до подвала, так это тот еще квест.
Что бы в ВК увидеть подвал нужно зайти в раздел где мало данных (иначе они будут постоянно подгружаться и листать придется долго).
Я уже молчу про Aliexpress если подходить с вашими критериями то вообще не понятно как они существуют.
Про JD.RU наверное тоже лучше помолчать. Возможно госуслуги это образец дизайна?
Ну или возьмем сбербанк онлайн, там конечно прям все так просто и интуитивно понятно?
А может быть личный кабинет мегафона?
Если говорить о том как правильно нужно понимать что берем за образец. Желательно такое же многофункциональное.fpir
24.09.2018 19:20Да не зацикливайтесь Вы на сайте и скринах с него, это некая аллегория. А если Вам нравится 1с, то как-бы, ради бога. Понимаю-кормилица. Я, бывает, тоже смотрю на неё со сожалением за «бесцельно прожитые годы». Вот, думаю, надо было вникать, ну или сейчас, чтоль, углубить. Всегда требуются «программисты» 1с, и снижение спроса на рынке не предвидится. А может просто завидую. Не принимайте близко к сердцу.
VVizard
24.09.2018 19:35Ну просто аллегория вышла не очень удачная.
А вот программисты очень сильно нужны. Причем нормальные программисты с математическим образованием, с умением строить архитектуру проекта, знающие принципы работы СУБД.
К сожалению рынок заполнен случайными людьми, которые учились на преподавателя/менеджера/юриста, но увлеклись компьютерами, написали одну обработку, с трудом сдали на профессионала и теперь они «Программисты».
А еще больше нужны толковые аналитики которые могут изучить работу предприятия и всех его отделов, описать ее, да еще и с руководством всех отделов найти общий язык.
Так как сейчас любой кто описал процесс добавления заказа в корзину интернет магазина уже считает себя продвинутым аналитиком.
Понимаю-кормилица.
Не без этого :) Но в целом обидно когда ругают платформу не за то за что следовало бы ругать.
Fragster
24.09.2018 11:12Тема ci/cd не раскрыта. Раскрыта автоматизация доставки списка баз. Ну и создание большого количества кластеров, и то средствами, с которыми лично я не совсем согласен (которые следуют из-за незнания нюансов работы 1с).
Dr_Wut Автор
24.09.2018 12:09>Тема ci/cd не раскрыта
Серьезно? =))) А вы почитайте все внимательно и вопроса такого не возникнет
Busla
24.09.2018 12:16выделяется общая файловая шара где выкладываются все файлы с настройкой подключения к базам (одна база — один файл)
при блокировании компьютера вызывается скрипт, который считывает группы пользователя и на их основании добавляет пользователям нужные базы 1С
я на файлы с настройкой подключения просто права доступа настраивал — там же тривиально: один файл — одна группа. И никаких хитрых сопоставлений с группами на клиенте не нужно.
capitannemo
24.09.2018 13:38С такими постулатами — статья реально для самых маленьких.
Я бы рекомендовал автору почитать Клиент-серверный вариант. Руководство
администратора.
И писать например как Пушкин — Ума холодных наблюдений / И сердца горестных замет — автора.
Но никак не рекомендация для последователей
А всем остальным не верить слепо всему что здесь написаноDr_Wut Автор
24.09.2018 13:38Обоснуйте пожалуйста. Судя по комментарию это из серии «я сам свидетелем не был, но резко осуждаю». Это я к тому тут и так описано книет-серверное решение.
Но если я неправ — внесу в статью правкиcapitannemo
24.09.2018 14:061. 1С пофигу на виртуализацию, просто виртуальный сервер всегда чуть медленнее работает чем то железо на котором он собран, это издержки гипервизора и прямых рук сисадмина
2. Кластеры в 1С есть
3. Только если один пользователь работает на сервере. У вас так?
4. Возможно есть падение производительности, но это дань повышению надежности. отключите вообще журнал если он вам мешает
5. Можете
6. Откуда вообще такая инфа?
7. особенно периодический пересчет итогов — итогов чего?
8. Есть такая вещь — технологический журнал. Слыхали, настраивали?
…
11. В принципе знаете что такое СКД и варианты отчетов?
В принципе ваш рассказ про то какая 1С боль и разочарование. А вы просто не умеете с ней работать и половину делаете методом тыка и гугления. Это все равно что на автомобиль приделать педальки и жаловаться всем что он медленно едет.Dr_Wut Автор
24.09.2018 14:33Ну ок, поехали.
1. Не пофигу. Сделайте тесты, поймете. Я — делал.
2. Мммм… Киньте статейку про active/active кластер на 1С, признаю что был не прав. У него и HA то кластера толком нету.
3. Вы или читали наискосок, или у вас очень туго со знанием как работают компьютеры
4. А почему тогда сами 1С от него отказались? И в чем надежность? В том, что это не txt а один большой файл? Про ACID не рассказывайте пожалуйста, это не про SQLLite
5. Нет, не можете. То есть да, у вас не будет по нему бегать траффик но в системе останется работающий IPv6. В Linux можно, согласен, но тут не про это речь.
6. Я везде указал источник инфы.
7. Отправлю вас в ту же книжку — там подробно расписано что это и зачем это
8. Слыхал. И даже не однократно пользовался. Поэтому и говорю что это боль и страдания
11. Прекрасно знаю. А вы судя по всему ничего, кроме него не видели. Расскажу вам по секрету — его предел — это простенькие отчеты
В принципе ваш комментарий это попытка самоутвердится. Здесь есть несогласные, но обычно это аргументированные вещи. У вас же — КГ/АМ. Ну, в общем то, ваша карма говорит за вас гораздо более красноречиво чем я )capitannemo
24.09.2018 14:59Дело в том, что на хабре очень мало 1Сников. Тем более 1Сных админов.
Поэтому они меня минусуют, а вас слушают развесив уши.
Сходите со своей статьей в сообщество 1Сников и там посмеемся вместе.
Особенно порадовал ваш метод решения всех проблем — 1 база — 1 служба.
Так то конечно логично, нафига разбираться чтобы сервер не падал, просто чья сегодня служба зависла — те сегодня и неудачники.
Комментарий мой — это совет начинающим — не делать как вы.
И препираться я с вами не собираюсь, оставлю вас наедине со своими мыслями.acyp
24.09.2018 16:30Я 1с-админ, кроме прочего имею сертификат «Эксперт по технологическим вопросам», защищался у Филиппова.
Большая часть «ошибок» автора в отсутствии владения устоявшейся терминологией. Есть пара _неточностей_. Это то, что выдают за истину в последней инстанции, хотя на самом деле это лишь частный случай. У Вас такие же симптомы: Вы правы, но при условии уже конкретных систем и архитектур.
Автор описал свою архитектуру сначала очень ЭПИЧНО, а потом очень обще.
Согласен, что статья по большей части лишь «покрасоваться», но и интересные (правда в моих архитектурах или излишние или неприменимые) решения есть.capitannemo
24.09.2018 16:46Вспоминается…
Театр, идет пьеса. В зале темно и гробовая тишина, только актеры играют. И тут из первых рядов крик:
— Доктор, в зале есть доктор!!??
С бельэтажа отвечают:
-Да, я доктор!
-Коллега, что за фигню нам показывают!
Золотые ваши слова.
Эта статья, как и мои слова лишь частные случаи.
И конкретно в этой статье ляпов именно в терминологии предостаточно из-за этого возможно трудно понять суть.
Если бы она называлась — типа — «Моя борьба...» — то и чудесно, нет вопросов
Слава великим шнягам.
Но как рекомендацию к действию я ее не считаю.
Так то у меня было 156 баз на сервере — то я должен 156 служб поднять?
ximik13
24.09.2018 16:20По поводу 5 мелкософт тут пишет, что выключить IPv6 можно.
Я к 1С отношения не имею, но меня улыбают ваши отсылки к Гилеву, который у себя на сайте утверждает, что CrystalMark — это хороший тест для экспресс оценки дисковой подсистемы. Хотя на самом деле CristalMark годится разве что USB флешки тестировать. То же самое и с вашими/Гилева утверждениями по виртуализации. Во первых не вся виртуализация одинакова, во вторых, как и везде виртуализацию нужно уметь правильно готовить. 15-25% потери производительности больше похоже на страшилку для
начинающихдетей.
С другой стороныя понимаю, что нельзя быть специалистом во всем. Так что-то вполне хороший спец в 1С может при этом иметь очень поверхностные знания в серверах, сетях хранения, СХД, операционных системах и виртуализации. Главное что бы он сам это осознавал и не порол горячку типа "у меня не получилось, значит и ни у кого не получится". :)
VVizard
24.09.2018 17:37Гилев позиционирует себя как спец в «серверах, сетях хранения, СХД, операционных системах и виртуализации».
Критиков Гилева хватает, но вот конкурентов что то не видно. Это печально.acyp
24.09.2018 17:51Могу сказать, что Гилевы (братья) — сильные специалисты, но как, собсно все персонажи продвигающие себя в мир, вынуждены иногда (на внешней стороне) подменять качество количеством. Нужно рассматривать их статьи не как истину в конечной инстанции, а как повод их нанять для решения конкретных проблем. Ну и плюс смотреть на дату статьи.
Кстати именно эта дилемма нами была решена отказом от сайта в стиле Гилева. Решенные проблемы не существенны без описания систем. а это зачастую закрыто пунктами о неразглашении. В итоге мы развиваемся за счет сарафанного радио :).
ximik13
24.09.2018 18:20Может у конкурентов просто ЧСВ не так развито? Хотя про это не мне судить. Я с миром 1С практически не пересекаюсь.
Dr_Wut Автор
24.09.2018 18:50Работа сервера приложений это совокупная работа всех частей — и сети, и сервера, и СХД и виртуализации. Так вот речь сейчас конкретно про сервер приложений 1С — он в виртуализации дает серьезную просадку по производительности. То есть по факту на одной и тоже же физической платформе тестировалось несколько вариантов. И просадка реально есть. Для других апликух это значение сильно меньше. Можете сами взять и потестить на досуге у Гилева есть отличная для этого база тестовая — выдает попугаи, но нам и надо сравнить.
ximik13
24.09.2018 20:38Еще раз, без уточнения что за виртуализация и как именно она настроена, все выше сказанное ни о чем не говорит. Понятно, что гипервизор — это дополнительная прослойка. Но это не отменяет того, что и как любой софт она поддается тюнингу. А значит без уточнения конфигурации стенда и его настроек это всего лишь ваш личный опыт, из которого нельзя делать общие выводы. Вы хотя бы попытались понять, в каком месте возникает узкое место? CPU? DIMM? Дисковые очереди? Что-то еще?
Dr_Wut Автор
24.09.2018 21:19Согласен, аргументированная претензия. Тут моя статья про тест https://habr.com/company/microsoft/blog/346776/
ximik13
25.09.2018 09:19В описании стенда в статье не увидел попытки проанализировать, во что именно "утыкался" тест на гипервизорах. Что касается VMware и дисковых операций, то не вижу что настраивали это и вот это. Что касается производительности MPIO VMware при Round-Robin нужно настраивать это. На старых HBA Qlogic в биосе под виртуализацией еще нужно выкручивать на максимум параметр "Execution Throttle" в "Advanced Adapter Settings".
Опять же указанные в стенде Dell Compellent SC200 — это вроде как SAS полки расширения. А судя по описанию стенда, сервер у вас к СХД цеплялся по FC. Т.е. что за СХД не понятно. Ну и зная компеленты, их надо еще и уметь правильно готовить. Накосячить там можно крайне легко на любом этапе, начиная прямо с составления спецификации на СХД.
acyp
24.09.2018 16:32Про ipv6. Запрос в гугле «netsh teredo» может навести на пару полезных мыслей. Хотя просто отключить этот интерфейс в настройках карты по большей части хватает за глаза.
VVizard
24.09.2018 17:33Согласен с вами по всем пунктам.
То что я прочитал в статье это набор мифов и баек с mista.ru, разных времен, которые перемешались в голове самоучки, дополнительно сюда примешиваются и грабли на которые наступил автор из за того что не читал документацию. В результате получился такой вот коктейль в виде статьи.
Я мог бы пройтись по пунктам но считаю что это бесполезно и даже вредно.
Сопровождением систем (любых) должны заниматься профессионалы, прошедшие соответствующую подготовку.
Мои попытки ответить по пунктам в лучшем случае приведут к образованию новых мифов и мнений, или превратятся в бесполезную перепалку.
На базе платформы разработаны и внедрены тысячи решений в которых работают тысячи пользователей, нет не одной области нашей жизни которая не обслуживалась бы продуктами на этой платформе (прямо или косвенно).
Глупые люди с умным видом предлагают «удалить 1с из реальности», умные люди приходят в индустрию и двигают ее вперед зарабатывая на этом деньги.
Главная проблема 1С это низкий порог входа, когда практически любой человек пройдя 2х недельные курсы может стать «программистом», и любой эникейщик вообще не читая документацию а просто нажимая «Далее, далее, готово» может «поднять сервер 1С».
Это очень негативно сказывается на платформе и приводит к появлению таких вот «статей».
В конце по теме статьи «Администрирование 1С для самых маленьких. » от меня 2 совета «начинающим администраторам».
1. 1c.ru/rus/partners/training/uc1/course.jsp?id=459
Если захотите участвовать в крупных проектах и разрвиваться дальше то дополнительно
2. 1c.ru/rus/partners/training/uc1/course.jsp?id=199
Конечно как и любые курсы они не сделают вас профессионалом, но даст вам базу для дальнейшего развития.Dr_Wut Автор
24.09.2018 19:04=))) Интересная позиция — я выше того, чтобы рассказывать людям как надо, но вы все делаете не так! Я лучше продам курсы!
Еще раз повторяю — сядьте, напишите статью как нужно. Я с удовольствием почитаю, поучусь. Ну или хотя бы разберите то, что считаете неверным и почему.
В статье нет ничего, чего бы не было описано даже в официальной документации или у именитых внедренецев.
Чем плох мой подход? Вот реально, чем? Тем что «так не принято в нашей среде 1С-ников»? Или потому что так на курсах не рассказывают? Объясните пожалуйста «гуру 1С». Не нашел ни одного аргумента против.
По поводу постулатов… Ну да, они местами спорные, но это **лично мое мнение**, которым я делюсь. А ваша позиция — обсирать без аргументов.VVizard
24.09.2018 19:26Интересная позиция — я выше того, чтобы рассказывать людям как надо, но вы все делаете не так! Я лучше продам курсы!
Курсы делают люди, тратят на это ресурсы, вполне естественно что они хотят получать за это деньги, причем не такие большие.
Еще раз повторяю — сядьте, напишите статью как нужно. Я с удовольствием почитаю, поучусь.
Вы действительно считаете что 2х недельные курсы можно заменить одной статьей?
В этом ваша проблема. Вы считаете что можно нахватать обрывков знаний и типовых ситуаций и стать профессионалом.
Это так не работает.
Ну или хотя бы разберите то, что считаете неверным и почему.
Я считаю неверным то что вы абсолютно не разбираясь в вопросе, при этом пишите статью для начинающих, засоряя им голову.
В статье нет ничего, чего бы не было описано даже в официальной документации или у именитых внедренецев.
В статье разные факты надерганные из разных источников актуальные для разных версий, без понимания сути и устройства платформы. Плюс собственные грабли которые связанные с тем что вы подошли поверхностно к изучению платформы.
Чем плох мой подход? Вот реально, чем? Тем что «так не принято в нашей среде 1С-ников»? Или потому что так на курсах не рассказывают? Объясните пожалуйста «гуру 1С». Не нашел ни одного аргумента против.
Ваш подход плох тем что он не системный, это набор каких то лайфхаков которые не опытному человек ничем не помогут а некоторые даже вредны, а даже если и помогут то у человека не будет ясной картины почему это работает.
Опытному же администратору ваши советы не нужны вовсе.
А ваша позиция — обсирать без аргументов.
Я не обсираю, ваши знания не базируются на знании, я об этом и написал.
Также я привел ссылки на источники проверенной информации для «начинающих».
Добавлю еще (для тех кто не хочет разбираться и кому нужны инструкции):
its.1c.ru/db/metod8dev#browse:13:-1:1989:2035
its.1c.ru/db/metod8dev#browse:13:-1:1981
kb.1c.ru (нужна регистрация).
Dr_Wut Автор
24.09.2018 20:23Курсы делают люди, тратят на это ресурсы, вполне естественно что они хотят получать за это деньги, причем не такие большие.
В какой момент статья призвана заменить курсы? Статья призвана показать наши проблемы и как мы их решали.
Вы действительно считаете что 2х недельные курсы можно заменить одной статьей?
В этом ваша проблема. Вы считаете что можно нахватать обрывков знаний и типовых ситуаций и стать профессионалом.
Это так не работает.См первый ответ.
Я считаю неверным то что вы абсолютно не разбираясь в вопросе, при этом пишите статью для начинающих, засоряя им голову.
Почему вы считаете что не разбираюсь в вопросе? То, что ваше мнение отлично от моего обозначает только одно — мы разные люди с разным опытом.
Ваш подход плох тем что он не системный, это набор каких то лайфхаков которые не опытному человек ничем не помогут а некоторые даже вредны, а даже если и помогут то у человека не будет ясной картины почему это работает.
Опытному же администратору ваши советы не нужны вовсе.В чем его несистемность? Чем вредны советы? Факты пожалуйста, а не "красные словца"
Я не обсираю, ваши знания не базируются на знании, я об этом и написал.
Также я привел ссылки на источники проверенной информации для «начинающих».Очередной показатель звиздобольства. Других слов уже просто нет.
Добавлю еще (для тех кто не хочет разбираться и кому нужны инструкции):
its.1c.ru/db/metod8dev#browse:13:-1:1989:2035
its.1c.ru/db/metod8dev#browse:13:-1:1981
kb.1c.ru (нужна регистрация).О!!! Это прям вообще сказка!!! Открываю раздел админам и что вижу:
- Особенности администрирования Windowds XP SP2 — это пять! Там описывается как на пользовательскую ос ставить серверные приложения???!!! Вы это считаете нормой???!!!
- Особенности использования MSSQL — раздел tempdb. Что видим? Правильно — шринкануть tempdb!!! Это ж насколько надо вообще ничего не понимать в БД чтобы такое писать. И это — офф сайт!
И вы еще что-то говорите про мою статью?
P.S. Вообще полистал те статьи — там все 10-15 летней давности. И потом вы удивляетесь что людей по 1С нет и все ее не любят. Так вот за это и не любят — инфы от производителя 0, везде франчайзи, которые знают меньше нашего хелпдеска.
acyp
25.09.2018 03:40потому что «делай как я» — локальное решение частного случая. и без описания системы «до» и «после» или хотя бы входных данных для начинающих особой ценности не имеет. курсы дают базу. базу знаний и терминологии. «системный подход», «системное образование» — слышали?
я тоже долго думал, что сертификаты — ересь. прошел курсы циско, но на сертификат сдавать не стал. «зачем? я в себе уверен и рулю 30ю цисками по сибири и дв. я и без этого крут». через год сертификат (кажись для тендера нужен был аттестованый специалист) понадобился. сдал, но с таким скрипом… понял сколько я еще не знаю, но формальный экзамен помог это выявить. с тех пор сдаю. циско, майкрософт, 1с. на экзамене будут ситуации, которые могут в жизни и не встретиться, но их решение даст возможность тебе самому понять способен ты найти подход к решению или нет. есть база или просто прослушал курс…
как-то так.
сорь за отсутствие больших букв — на руле шифт неудобно нажимается.
Fuzzz
24.09.2018 13:39По прописываю баз есть вопросы:
WMI фильтр позволит сократить код скрипта, запрет запуска на серверных ОС можно решить «select * from win32_computerSystem where name like 'PC-%' „
Вообще, только средства AD + GPO, долой скиптокостыль…
Например, создать отдельные группы и политики (Конфигурация пользователя — Конфигурация програм — Инф. базы). Добавление списка сведется к добавлению пользователя в группу AD.Dr_Wut Автор
24.09.2018 13:421. Запрет на запуск на серверых ос есть
2. Ну как бы… А вы так сделайте, поживите с этим с годик и потом напишите статью про свое видиние процесса. И как у вас это все отрабатывает
dimugric
24.09.2018 15:57Мне не понятно, почему здесь добрая половина такая дотошная?
Никто никому ничего не навязывает. Человек решил проблему вот так, поделился опытом, что бы кто-то мог его перенять. Ещё и потратил своё время, что бы всё это оформить в виде грамотного изложения понятным языком.
Лично от меня спасибо.acyp
24.09.2018 16:36Дело в том, что после некоторого размера системы эти советы применимы… но местами. А что бы применить «местами» надо понимать что, как и почему происходит. Но в этой статье ответов точно нет, есть «рецепт».
capitannemo
24.09.2018 18:04Плюс этой статьи в том, что автор в основном написал как не надо делать, а в комментариях у кого было время написали как надо.
Правильный путь решения проблем — это чтобы сервер не падал, если упал — сразу разобраться с этим.
А разводить зоосад служб 1С это как раз так себе совет.Dr_Wut Автор
24.09.2018 18:35А в чем он плох? ну вот объективно? Отличная позиция хаить решения, не предлагая альтеративы. В комментариях нет ни слова как правильно сделать. Особенно от таких вот «гуру».
Почему вы решили что мы не разбираемся почему упал сервер? Есть хоть одно на эту тему слово?
Я в очередной раз говорю — потратьте время, напишите «как надо» — я с удовольствием применю эти знания у себя. А пока я вижу только @#$ство и необоснованные понты на тему что «автор лошаро, не знает как правильно»
Вот конкретно за это вас и минисуют, а не за то, что вы 1С-ник.capitannemo
24.09.2018 19:06Плох он тем, что это нештатная работа сервера 1С — жить на одной машине еще с серверами 1С и на это как раз никто его не тестировал.
Вы настройки разнесли по разным каталогам, но есть еще как минимум файл лицензии, каталог temp и еще места куда ваши сервера лезут одновременно.
Я просто не вижу смысла так делать в продакте. Если программисты 1С которых вы так не любите умудряются подвесить вам rphost, ну поставьте количество ИБ на процесс 1 и Принудительно завершать проблемные процессы
Однозначно поднимая пять серверов 1С вы не сможете оптимально им раздать память
Заметьте, не я это сказал про автора
Хаете как раз вы 1С, хотя за счет ее и кормитесь.
И это тоже сказал не я:
Я — я так понимаю что стадию Хьюстона с проблемами мы уже успешно пролетели?
Коллега — да. База %имя базы% подвисла, вообще не отвечает, ТОПы уже рвут и мечут. 3 раза мне уже звонили. Надо перезагружать службу.
Я — так там же еще пачка баз на этой службе!!!
Коллега — да, поэтому вторая половина ТОПов тоже рвет и мечет что их отключат…
А если у вас сервер не падает, то какую проблему вы вообще решаете и какую я вам должен альтернативу предложить?
Могу только предложить успокоиться.Dr_Wut Автор
24.09.2018 21:12Плох он тем, что это нештатная работа сервера 1С — жить на одной машине еще с серверами 1С и на это как раз никто его не тестировал.
Кто сказал? Есть офф документ где говорят что так делать нельзя? Почему несколько платформ на одном сервере — норма, а несколько служб одной — плохо? В чем принципиальная разница? Кто сказал что этого никто не тестировал?
Вы настройки разнесли по разным каталогам, но есть еще как минимум файл лицензии, каталог temp и еще места куда ваши сервера лезут одновременно.
Да? Каталог temp — один для всех, если ПО не выбирает его самостоятельно. Файл лицензий? ну может быть, о нем информации мне попадалось крайне мало, ничего не встречал. И еще места куда лезут и куча других программ на сервере, и ничего, живут же.
Я просто не вижу смысла так делать в продакте. Если программисты 1С которых вы так не любите умудряются подвесить вам rphost, ну поставьте количество ИБ на процесс 1 и Принудительно завершать проблемные процессы
Однозначно поднимая пять серверов 1С вы не сможете оптимально им раздать память.Вот он ключевой момент — вы не видите смысла делать так в проде. А раз вы не видите, значит этом автоматом ересь? Так вот я вам скажу что это далеко не всегда так. Скорее чаще не так.
Заметьте, не я это сказал про автора
Хаете как раз вы 1С, хотя за счет ее и кормитесь.А кто сказал что я кормлюсь с 1С? Для меня это обуза — если я от нее избавлюсь мне будет только легче )
А если у вас сервер не падает, то какую проблему вы вообще решаете и какую я вам должен альтернативу предложить?
Могу только предложить успокоиться.Я был спокоен, пока не пришли вы и менторским тоном, бездоказательно и местами достаточно по хамски не начали хаить мой труд.
Я делюсь опытом с теми, кто вынужден работать с этой платформой. Как я уже писал, это решение, которое годами работает у нас, в среднем в базе по 50-400 человек.
по сути только acyp ведет диалог, хотя и не согласен с моим мнением, за что я ему благодарен. Вы же на пару с VVizard высокомерно заявляете что это все хрень и я в корне не прав, причем так ни разу и не объяснив в чем.
capitannemo
24.09.2018 21:25И тут Остапа понесло…
То есть вы не можете для базы в которой 400 человек в среднем годами работает прикупить отдельный сервер?
Вам надо романы писать, а вы вынуждены работать админом 1С
acyp
25.09.2018 05:33Я могу сказать в чем Вы не правы в корне — в некоторой кажущейся надуманности ситуации.
Мы с коллегами обсудили как Вашу систему (ну, попробовали смоделировать) и из разных постов, выделяя потребности пришли к выводу, что либо у Вас нет целостного представления о системе, либо Вы каждый раз описываете разные (ну например в которых работали ранее).
И второй вывод из наших бесед: с меткой оценки одного из наших инженеров — удаление гланд через сфинктер автогеном.
Отсюда вопросы: пОциент знает, что гланды ему удалили не совсем корректно? Что можно было обойтись без столь травмирующей процедуры? Или он повелся на (относительную, моментную) дешевизну решения? Или применение автогена столь радикальным образом было обосновано? (ну мало ли, рот занят, гланды бронированные).
Если серьезно — даже без описания архитектуры понятно, что целостного решения практически не существует. Ну выкрутились, не используя штатные возможности _современных_ систем. Ну применили пару интересных решений, которые могут пригодиться как времянки быстро поднятые. Первое: без описания архитектуры возникает недоумение — зачем так сложно? Второе: возникает подозрение, что архитектуру не описываете сознательно, ибо сами понимаете ее ущербность (кстати не похоже, т.к. Вы же гордитесь решением).
Ну и резюмирую: очень сильно присутствует или легкий душок фантастики, или непонимание необходимости решать Ваши проблемы не тактикой, а архитектурой.
Если изъявите желание, то могу позадавать вопросы и ткнуть пальцем в больное, предложив более эффективное решение. Правда это уже в личку.Dr_Wut Автор
25.09.2018 11:54Объясните пожалуйста, что вы имеете в виду под «целостным решением»? Почему решение одна база — одна служба — это плохо? Ну почему? Ну объясните мне глупому.
Сейчас нам удобно, это работает (серверов приложений 8 штук — где-то баз побольше, где-то вообще одна).
Постулаты — да, возможно. Кое-что поправлю.acyp
25.09.2018 12:28Потому что по факту получается, что на одну базу ложится один сервер (то, что вы называете службой — это и есть сервер 1с). А это целый пакет продублированных процессов (ragent, rphost, rmngr). Это означает НЕРЕНТАБЕЛЬНЫЙ расход памяти. Это означает настройку КАЖДОГО сервера (конечно, если таковую делаете, а на 400 пользователях ПОЛЮБОМУ надо кастомизировать), который у Вас получился, а это НЕРЕНТАБЕЛЬНОЕ ВРЕМЯ сопровождения.
У меня 1 rmanager занимает 350 мб в памяти и отхомячивает до 1% процессорного тайминга
У Вас их 8, 7*350 = 2,5 Гб оперативки ушло в корзину, от 4 до 6 % проца ушло в корзину. докинем сюда ragent, в целом он маленький, 150 мб * 7 = еще ГИГ в корзине.
Вас это не беспокоит? на 400 пользователях? Ну тогда параметры сервера в студию, пооблизываться хочу, да поудивляться.
Тогда еще подкину — сервер принимает решения о балансировке нагрузки. И ничего не знает о своем соседе (они же у вас в кластер не объединены надеюсь, потому что если объединены, то это совсем шиза, потом могу подробнее рассказать почему), который тоже принимает решения о балансировке нагрузки не зная о соплеменнике, с которым делит общий диск, общую память… хватит воображения и понимания внутренних механизмов понять происходящие процессы?
Вы себе сознательно усложнили систему. Зачем?
Под «целостным решением» я понимаю следующее: расписать бизнес-архитектуру и бизнес-потребности, оценить свою систему, понять где что можно поменять, где что упростить (ибо чем проще — тем легче), может новые конфы посмотреть, ну не знаю КА2 хорошая получилась, под многие виды бизнеса зайдет. Написать план, начать ваять. С ПЛАНОМ В РУКАХ! Тут конкретных советов, кроме «Должен быть ПЛАН, архитектура» нету. Да и не буду в конкретику уходить, это уже серьезная работа. Ну, какие-то общие наводки могу дать, но повторюсь — уже в личку и после обсуждения деталей.Dr_Wut Автор
25.09.2018 13:04Аааа… Вот вы о чем. Да, согласен, есть перерасход. Но он сделано сознательно, во второй части будет объяснено зачем.
По серверам — самый маленький — 4 ядра, 12Гб мозгов, самый большой — 12 ядер и 50 гигов мозгов.
По поводу плана — так он был, и в итоге по совокупности всех моментов пришли к такомуacyp
25.09.2018 13:09Чую бред, уж простите старика. У вас 1 сервер а на нем в параллели крутится пачка серверов 1с? или какая в итоге аппаратно-программная архитектура? А то разговор слепого с глухим про звездное небо получился.
Dr_Wut Автор
25.09.2018 15:45Нет, для 1С куплено 4 физических сервера, поверх этого виртуализация и болтаются виртуальные сервера с службами 1С
gennayo
25.09.2018 06:08Сегодня вы говорите, что вынуждены работать с 1С, а завтра скажете, что вынуждены работать с Postgres, например. Это непрофессионально.
foxnet
25.09.2018 09:01Автор, я вот прочитал статью, некоторые абзацы неоднократно. Но так и не понял что у вас происходило. Что-то висло, что-то вводили. Почему список баз не в сетевой шаре? Зачем разделять по портам (привет, Гилеву из прошлых)? Что за одна база — одна служба? Какой смысл в дублировании менеджера кластера? Или это имеется ввиду рабочий процесс? Так он и так на каждую базу создается, а в последних релизах штатно вообще нельзя их изменять.
Если нужно убивать только какую-то одну базу, что мешает определить под каким рабочим процессом работаем база и грохнуть его?
Единственное соглашусь делать отдельного пользователя для службы, но то рекомендует документация для разгуливания блокировок на sql с соответствующими правами.
IT-Tiger
25.09.2018 08:17Еще один момент — в статье почти не затрагивается СУБД.
А это очень важная часть!
Кластеризуются разные СУБД по разному. У PostgreSQL есть отдельный дистрибутив Postgres Pro Enterprise, который разрабатывает команда Олега Бортунова, за что ему большое спасибо.
MS SQL только Enterprise умеет кластер, Standard не умеет(
Еще один вопрос — не рассматривали два физических сервера с отдельными экземплярами сервера 1С (да, на каждый придется купить ключ по 100К рублей), с асинхронной репликацией между ними? Например, БД можно каждые 5 минут бэкапить логами транзакций и поднимать в случае сбоя почти мгновенно, а сервер 1С просто будет готов к работе всегда.
В этом случае простои будут минимальные.Dr_Wut Автор
25.09.2018 16:41Так тут вообще вопрос производительности не рассматривался. Это вообще отдельная тема, которую я вообще трогать не хочу — это целые книги )
foxnet
25.09.2018 08:42В статье решаются проблемы, применимые только к режиму совместимости и толстыми клиентами. Они не поддерживают кластеризацию в полной мере, например.
К примеру, после перехода на ERP проблемы работы сервера почти полностью ушли (добавились новые, но это другая история). Теперь 1с хорошо разруливает блокировки, хорошо кластеризуется добавляя отказоустойчивости и производительности, теперь хорошо распределяется на многопоточность, совет про частоту процессора больше не актуален, связано это скорее-всего с более эффективной работой с блокировками, но факт остается. В виртуальной среде также все отлично работает, заметного падения производительности нет. Причем ни в УПП в режиме совместимости ни в ERP без оного.IT-Tiger
25.09.2018 09:22В статье решаются проблемы, применимые только к режиму совместимости и толстыми клиентами. Они не поддерживают кластеризацию в полной мере, например.
Точно) Я уже и забыл, когда работал со старыми конфигурациями. Сейчас же все на управляемых формах в режиме web или тонкого клиента, даже терминального сервера не нужно.
yukon39
25.09.2018 11:16совет про частоту процессора больше не актуален, связано это скорее-всего с более эффективной работой с блокировками
Минутку, а как связана работа с блокировками и скорость работы встроенного языка? Интерпретатор языка как работал в один поток, так и работает. Само собой его быстродействие тоже повышают и оптимизируют, но он как грузил одно ядро так и продолжает грузить.
Другое дело, что обработку данных планомерно переносят на СУБД, которая как раз умеет работать в несколько потоков над одной командой.foxnet
25.09.2018 17:13Я не знаю что именно они сделали и не силен в понимании внутренностей. Но УПП практически полностью тормозит из-за блокировок. А ERP отлично масштабируется проводя на том же железе значительно больше операций. Многочисленные собственные тесты показали это при одних и тех же версиях платформы.
capitannemo
25.09.2018 09:31+2Статья просто лучик света в серой череде будней программиста 1С.
Я когда первый постулат прочел, сразу понял что будет веселуха.
1С не умеет адекватно работать в виртуализированной среде. Это печальный факт. И ворд не умеет, один блокнот, красавчик умеет, как печатал так и печатает.
Как, может весь сервер тормозит, почему только 1С, где тесты, где графики? Так постановил автор.
И еще наша партячейка постановила, что ёксель нам подкинули враги, чтобы отвлечь от исконно русских деревянных счетов.
в среднем в базе по 50-400 человек это вообще перл изящной словесности,
То есть если кривую распределения построить то левый край уйдет в минус — это значит 1С в некоторые моменты еще и подбрасывает пользователей в сеть.
А верхний предел надо полагать человек 700 на базу.
И судя по файлу настройки у автора таких баз уже 8 раз он порт 8041 занимает.
То есть ЦКТП бьется и срадостью сообщает о серверах на 1000 человек, а автор держит вот так спокойно сервачок на 5К и передает ЦКТП пламенный пролетарский привет, помахивая выцветшей фуражкой.
апплодирую стоя.
GrafVurdalak
25.09.2018 11:48Чтобы программная лицензия на сервер 1С не слетала, попробуйте службе закрыть доступ к users.v8.1c.ru. В ходе экспериментов было замечено, что при запуске службы 1С происходит какой-то запрос по указанному выше адресу и далее принимается решение. Видимо идет сравнение с текущей конфигурацией машины и конфигурацией, которая сохранена на серверах 1С. Если не совпадает по каким то критериям, то лицензия слетает. А вот если ответа от серверов 1С не будет, то наша служба будет думать что все ОК и продолжит свою работу.
capitannemo
25.09.2018 15:34На 8.12.х.х сработает такой вариант?
GrafVurdalak
25.09.2018 16:55И на 8.2 и на 8.3. Возможно в последних редакциях 8.3 что то поменяли (у меня 8.3.11.2867), но не факт. Айпишник users.v8.1c.ru они меняли где то несколько месяцев назад, но суть осталась одна.
capitannemo
26.09.2018 09:21Положу в копилку. Спасибо.
o4karek
26.09.2018 09:40Извините, не удержусь:
Приложение «1С: Предприятия» (клиентское или серверное), при необходимости получения лицензии, выполняет поиск файлов лицензий по всем доступным путям (см. здесь). Далее из файлов получаются параметры самой лицензии и характеристики компьютера, для которого лицензия получена. Если параметры текущего компьютера совпадают с полученными ? выполняются проверки, связанные с количеством пользователей и типом лицензии (клиентская или серверная), в противном случае лицензия отвергается. Доступ к файлу определяется правами доступа используемой операционной системы. Если пользователь, от имени которого работает приложение, не имеет доступа к файлу лицензии (или каталогу, в котором этот файл расположен), значит лицензия не будет получена.
Отсюда: its.1c.ru/db/v83doc/bookmark/adm/TI000000539
Выделена существенная информация.
Если совсем коротко — можно совсем отключить комп от сети, затем изменить контролируемые параметры и лицензия «протухнет».GrafVurdalak
26.09.2018 10:15Ну я написал то, что использовал на собственном опыте, когда мы настраивали параметры виртуальной машины и нам просто надоело каждый раз при смене конфигурации процессора заново активировать сервер и клиентские лицензии, а потом по несколько дней ждать новый пин от техподдержки 1С. Указанный мной метод отрабатывал на отлично, пока я не прокараулил смену айпишника (глупо было банить доступ по IP-адресу, надо было по имени, что в последствии и сделал). Не утверждаю, что сей метод панацея от всех болезней, но опять же, у меня работал.
o4karek
26.09.2018 11:01А почему не поднять сервис лицензирования на маленьком физическом компе, где не меняются конфигурации процессоров? Сам сервис лицензирования не требует лицензии (пардон за тафтологию). И он специально для этого предназначен (в общем-то).
frrrost
25.09.2018 11:48А я вот работаю с 1С и поддержу автора. Нормальное руководство, но, скорее не «рельсовый» гайдлайн (только так, иначе никак!) а сборник рецептов, к которым стоит прислушаться, но где-то сделать по-другому.
Кластер у 1С 8.3 есть, и даже active-active. И он хорошо работает в среде Small&Medium Business (не спрашивайте, зачем мелкому бизнесу кластер). Но вот в сложных окружениях он… может и не работать. Сам лично убил несколько месяцев, пытаясь запустить этот кластер: на стенде работает, на проде — нет. Опытным путем выяснили, что он как-то конфликтует с какими-то групповыми политиками — и дальше разбираться не стали, т.к. повлиять на них было нельзя. Но это — исключение, один случай из сотни.
Злого пользователя, формирующего ОСВ за год действительно быстро и просто нейтрализовать, прибив либо его самого, либо его rphost. Но есть вещи, которые живут не только на рабочих процессах — например, сервис нумерации. Да, такие вещи ломаются крайне редко. Но в такой ситуации ребут всей службы действительно может помочь. Возможнсть запускать несколько служб одновременно с разносом по портам — штатная вещь, описанная в том же «Руководстве администратора». Так что никакой крамолы здесь не вижу.
Во времена 8.2 1С рекомендовала использовать вообще один рабочий процесс, с пафосом добавляя, что «Платформа — современное приложение, которое может использовать преимущества многопроцессорных систем». Потом одумались, к счастью. На практике, из того, что видел, пользоавтельский код выполняется в один поток (но разные ядра могут обслуживать разных пользователей одновременно). Поэтому, соглашусь, частота процессора важнее числа ядер.
В целом, надо понимать, что это опыт обслуживания большой инфраструктуры. Поэтому не надо в офис из 10 человек настраивать 3 службы: для розницы, бухгалтерии и зарплаты.
А как набор рецептов для крупной компании — статья, как минимум, интересная. Спасибо за труд и жду продолжения )capitannemo
25.09.2018 12:17Вы вместе с автором периодически путаетесь большую или маленькую инфраструктуру вы обслуживаете.
Если большую — то количество ядер важнее — потому что все пользователи разойдутся по ядрам, а если у вас пользователей меньше чем ядер — то да частота процессора важнее, но и инфраструктура это невеликая.
Если большую — то число баз у вас будет штук дофига как минимум и все вы их по службам не распихаете, а вот как раз 3 службы: для розницы, бухгалтерии и зарплаты может и имеет смысл сделать когда памяти не хватает на всех, тогда вы сможете их ограничить персонально.
Возможность запускать несколько служб одновременно с разносом по портам — штатная вещь в контексте что у вас разных редакций платформы 8.2 и 8.3 например, а не зоосад из 8.3.acyp
25.09.2018 12:34Если в организации есть потребность развести по разным службам сервера 1с хоз.подразделения, то у этой организации есть возможность рассадить их по трем bare-metal. По крайней мере мне пока не встречались ребята с потребностями мощностей, как в ГазПром Ресурс (Сервис-Производственное подразделение, разведка и пр.), а бюджетом как у ларька.
acyp
25.09.2018 12:40frrrost как я понял тоже из франча и обслуживает заказчиков, сопровождая их системы. Моя история похожа. У меня под руками система корпоративного уровня, принадлежащая нашей ГК и относительно много систем заказчиков. У нас есть и три ларька и два крупных завода в обслуживании. Надо только быть честными — на заводах мы сработали как консультанты и обученцы, но отношения поддерживаем.
frrrost
25.09.2018 13:56Я действительно сейчас работаю как «приглашенный специалист» и вижу разные системы.
Вообще тема такая, что мы можем тут долго препираться: слишком много переменных. Не обговорено изначально число баз, пользователей, серверов — поэтому каждый может «ванговать» удобные для себя параметры окружения и оставаться правым в споре.
По службам — считаю, что это допустимый сценарий, который подходит не к каждой системе.
Про процессоры — да, соглашусь, зависит и от числа пользователей, и от нагрузки. Важно, что в этом обсуждении проговорили, как 1С работает с многопоточкой (никак) — а дальше уже специалист с головой сможет прикинуть свои потребности.
Возвращаясь к статье: тут есть несколько интересных идей, подкрепленных, к тому же, скриптами, т.е. практикой. И это уже интересно и ценно. С чем-то можно поспорить (про кластер или виртуализацию), но в целом, я автора поддерживаю.
YMax
25.09.2018 14:13Не понял чехарды с подключением баз — можно же на сетевую шару положить файлик со списком баз, при необходимости он правится, и изменения применяются сразу у всех, не нужны никакие костыли в виде скриптов.
Про экземпляр службы на базу — совсем не понял. Это ещё один сервер, запущенный на других портах? Тогда непонятно, что с лицензированием этого зоопарка.Dr_Wut Автор
25.09.2018 15:531. Разным пользователям нужен разный набор баз. Поэтому формировать его надо под каждого пользователя индивидуально
2. С лицензированием все хорошо — при использовании физического ключа лицензионным считаются все экземпляры служб 1Сo4karek
25.09.2018 16:24Платформа в серверном варианте позволяет использовать веб-сервис, который возвращает список общих инфобаз. Этот сервис можно написать на 1с. И в этой же базе все настраивать.
Вы этот сервис не используете потому, что он требует корп-лицензию или по каким-то другим причинам?ersh
25.09.2018 17:27А, кстати, есть где-то боле-менее понятная аргументация, кроме тех скудных слов на итс (или где-то в недрах их сайта), почему за корп-лицензию нужно выложить в два раза больше денег, причем и серверную, и все клиентские лицензии? Что там этакого навертели?
o4karek
25.09.2018 17:49В документации есть перечень возможностей, которые требуют корп-лицензии.
Вот тут есть: its.1c.ru/db/v83doc/bookmark/adm/TI000000551
GrafVurdalak
25.09.2018 17:30+11. Разным пользователям нужен разный набор баз. Поэтому формировать его надо под каждого пользователя индивидуально
В одной из контор я делал так:
- На сервере терминалов был файл по пути C:\ProgramData\1C\1CEStart\1CEStart.cfg
Состав файла (имена примерные)InstalledLocation=C:\Program Files (x86)\1cv8
CommonInfoBases=\\путь к общей шаре\Бухгалтерия.v8i
CommonInfoBases=\\путь к общей шаре\Зарплата.v8i
CommonInfoBases=\\путь к общей шаре\Торговля.v8i
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=1 THINCLIENT=1 WEBSERVEREXT=1 SERVER=1 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=1 ADMINISTRATIONFUNC=1 LANGUAGES=RU
- На сервере терминалов был файл по пути C:\ProgramData\1C\1CEStart\1CEStart.cfg
ersh
25.09.2018 14:59Не увидел в исходной статье несколько консолей «Администрирования серверов 1С Предприятия x86-64» разных минорных версий, например 8.3.10, 8.3.11 и 8.3.12.
Не было опыта?Voodoolar
26.09.2018 12:23Можно создать bat-ник для каждой версии и запускать нужный:
regsvr32 "C:\Program Files\1cv8\8.3.10.2667\bin\radmin.dll" /s start mmc "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"
Минус этого способа в том, что пока открыта одна версия консоли, вторую открыть невозможно.
noxxx
25.09.2018 23:46"1С — это учетная система, а не отчетная. Хотите много нормальных жирных отчетов и быстро — выводите это за рамки 1С. (Источник — собственный опыт)"
Какие системы пробовали, на чем остановились?
Чем не устроила СКД?gennayo
26.09.2018 05:52Автор админ, откуда ему знать? Подозреваю, такое мнение у него сложилось из-за слабых разработчиков в его компании.
noxxx
26.09.2018 07:47+1Если автор об этом пишет, но не знает, то должен как минимум узнать у разработчиков, раз возник такой вопрос.
Dr_Wut Автор
26.09.2018 09:50Все очень банально. Простенький плоский отчет с какими-то выборками СКД впрлне осилит. А вот если вам нужны отчеты с навороченной логикой да еще с красивыми графиками, да еще интерактивные вам точно не сюда. Гораздо логичнее вытащить данные в скуль и строить там.
Мы остановились на ms report server + power BI. После этого пиковые нагрузки на 1с упала процентов на 30-40 (их стало меньши и они стали меньше)gennayo
26.09.2018 10:22А, так вы о том, что специализированные решения для построения аналитических отчётов и графиков производительнее, чем 1С? Ну да, было бы странно, если бы это было не так.
Dr_Wut Автор
26.09.2018 12:27Ну так многие об этом почему-то забывают и пытаются сделать из 1С универсальный нож, а потом ругаются что он плохо работает там, где нужна узкоспециализированная функция
nikweter
Говоря «одна служба — одна база» вы имеете ввиду «1 сервер 1С — одна база» или что-то другое? Просто 1C лицензируется вроде как на экземпляр сервера, так что ваша схема ой как дорого выйдет…
acyp
Если запущено несколько экземпляров «агента сервера 1с» на одном физическом или виртуальном сервере (в категориях логических единиц, т.е. физ сервер и запущенный на нем виртуальный — это разные сервера с точки зрения 1с, разные инстансы(О!)), то они имеют право (и это работает) использовать один физический ключ. Это не нарушение лицензии. Отдельные лицензии приобретаются на разные инстансы сервера.
С программными лицензиями таких экспериментов не ставил, т.к. никто еще из моих заказчиков не приобретал программный ключ на сервер. Формально ограничений тоже нет, но запускать не пробовал.
Если интересно официальное обоснование от 1с по этому поводу, то пишите в личку.
shydla
имеется ввиду процесс ragent
sergling
rphost, на каждую базу свой рабочий процесс и не нужно разворачивать авианосец за сдутой фуражкой адмирала.
acyp
Метод приказал долго жить в 8.3.
ars_ivanov
Да ничего подобного. В 8.3 сейчас в настройках можно указать сколько информационных баз на каждый процесс сервера.
Dr_Wut Автор
да, но это не решает оставшейся кучи проблем =)))
acyp
Укажите пожалуйста последовательность действий для этого. У меня сейчас под руками только ПРОФ-сервер. На КОРП при необходимости чуть позднее смогу зайти.
ars_ivanov
acyp
Таааа. Не зря старые люди говорили: На каждого мудреца достаточно немного простОты :). Спасибо.