Терминальный сервер: цена на ПО. 1С терминальный сервер
Терминальный сервер 1С - blog.bissquit.com
1С для многих системных администраторов всегда была и остается головной болью. Терминальный сервер 1С, как один из ключевых узлов, требует к себе повышенного внимания, ведь на нем завязана финансовая деятельность. Вот и у меня недавно появилась задача собрать все яйца в одну корзину — всех бухгалтеров на один терминальный сервер. При этом нет никаких данных о том, какие ресурсы — цп, оперативная память, iops’ы дисков — потребляют клиентские приложения.
На официальных ресурсах ничего, кроме совместимости с операционными системами, мне найти не удалось. Имея уже давно работающие ПК бухгалтеров и сервер мониторинга ZABBIX, я решил действовать немного по-другому и занялся сбором реальных данных. Собственно только это мне и было доступно.
Другие статьи об 1С вы найдете в соответствующей рубрике — 1С.
Терминальный сервер 1С — анализ данных
В интернете множество компаний предлагают на своем сайте подобрать конфигурацию терминального сервера под определенное количество пользователей 1С, только ни на одном из таких сайтах не указывается характер нагрузки на сервер — не уточняется планируют ли пользователи запускать что-то ещё кроме 1С, не написано под какой тип клиента (толстый или тонкий) идет расчет конфигурации и т.п.. Все это ни коим образом не вселяет уверенности в правильности подбора.
Чтобы понять на каком железе разворачивать терминальный сервер, я решил собрать данные производительности всех ПК бухгалтерии за какой-либо период.
Задача звучит следующим образом: собрать данные потребления процессорной мощности и оперативной памяти на каждом ПК бухгалтерии.
Условия: каждый сотрудник бухгалтерии использует 1С (открыто враз от 2 до 8 экземпляров программы, в среднем 6. Одна из этих программ — толстый клиент 1С, все остальные — тонкие клиенты). Периодически бухгалтеры пользуются экселем для выгрузки и анализа данных, браузером для работы в банк-клиентах. Никаких ресурсоемких приложений не запускается. Точно такой же софт будет запущен на терминальных сессиях.
Что имеем: у каждого бухгалтера стоит Core i5 4460 или эквивалентный ему процессор, 8ГБ RAM, ОС — Windows 8.1.
Процессорная мощность
Итак, представляю вашему вниманию график нагрузки процессоров каждого ПК бухгалтерии:
Разрывы на графиках вполне нормальны, поскольку по ночам и в выходные бухгалтеры не работают. Или работают, но не все.
Вывод по процессорной мощности: судя по графику (зеленая линия), средняя нагрузка на ЦП не превышает примерно 5% — у кого-то бывает и больше, но есть примеры с меньшим потреблением. 5% — в среднем это минимум, который необходим каждому.
Уточнения: надо взять во внимание тот факт, что сама ОС также потребляет процессорную мощность. На терминальном сервере такая система будет одна независимо от количества пользователей, но если измерять отдельный пк, то из конечных результатов нужно будет вычесть примерно 1%, который тратится на работу системы. Итого получаем 4%.
Что не учли: нагрузка на ОС терминального сервера вероятнее всего будет увеличиваться пропорционально (или с некоторым коэффициентом) увеличению количества пользователей, поэтому может быть я и зря вычел этот 1%. У кого-то возникнет вопрос почему я взял нагрузку исключительно навскидку, примерно. Потому что мне кажется, что точное среднее значение все равно не будет отражать ситуацию более корректным образом, уж слишком большое влияние на производительность со стороны «третьих» сил замешано в данных измерениях (начнем с того, что многих служб Windows 8.1 вообще не будет на терминальном сервере и наоборот). Промежуточный вывод:
Средняя загрузка ЦП рабочего места бухгалтера — 4% ЦП
Продолжаем анализировать ситуацию. Также из графика можно заметить, что при включении ПК идет повышенное потребление ресурсов и это нормально, поскольку в этот момент стартуют службы, пользователи запускают необходимый для работы софт, подгружают данные. Ниже график загрузки ЦП тех же ПК, но акцент сделан на моменте загрузки системы (выделено красной рамкой):
Таким образом можно говорить о том, что загрузка ЦП при включении ПК находится в районе 30%. Это не значит, что теперь каждой терминальной сессии бухгалтера нужно зарезервировать эквивалентную мощность. Это значит, что нужно зарезервировать 30% единоразово на всех. Это подразумевает, что все бухгалтеры не будут враз логиниться на терминальный сервер, но для быстрого запуска необходимого софта нужно иметь в резерве 30% эквивалентной Core i5 4460 мощности. Промежуточный вывод:
Необходимый резерв ЦП сверх средней нагрузки каждого рабочего места — 30% ЦП
Ситуация с требуемой мощностью процессора постепенно начала проясняться, теперь необходимо определить потребность в оперативной памяти.
Оперативная память
Тут все обстоит значительно проще — из потребляемой оперативной памяти рабочего места бухгалтера нужно вычесть примерно 512МБ — именно столько съедает Windows 8.1 без нагрузки. Сведем все данные в один список:
- Потребление RAM ОС Windows 8.1 — 512МБ;
- Минимум RAM, которая необходима для работы терминального сервера без нагрузки — 2ГБ;
Таким образом, формула для определения необходимого объема оперативной памяти:
TS Server RAM = ( RAMбух -512 ) * N + 2048
Где RAMбух — средний объем памяти, которую потребляет одно рабочее место бухгалтера; N — количество рабочих мест бухгалтеров.
Немного подробнее о первом параметре:
Выше представлены графики свободного объема RAM на каждом рабочем месте сотрудников бухгалтерии.
Вывод по оперативной памяти: средний объем занятой памяти из расчета 8ГБ на рабочее место (не см. на график scws44, на этом ПК не 8, а 4ГБ) равен 2,5ГБ. Если вычесть из этого объема 512МБ (ОС), то примерно получим:
Расход RAM (без объема, занятого ОС) на рабочем месте бухгалтера = 2ГБ
Уточнения: разумеется это значение приблизительное и в реальной обстановке все равно будет меняться. Учтите также объемы памяти, которые могут потребоваться администраторам, ведь их сессии на терминальном сервере тоже будут отнимать ресурсы, пусть и небольшие.
Что не учли: ОС может периодически требовать объемы сверх ей необходимых. Например служебные процессы TrustedInstaller.exe или svghost.exe или любые другие периодически выкачивают значительные объемы оперативной памяти, для них тоже однозначно надо что-то зарезервировать.
Казалось бы на этом все задачи выполнены, но нет, остались ещё. О них ниже.
Диски
Нагрузка на дисковую подсистему в случае с терминальным сервером будет сводиться в основном к чтению данных и потому требования к дискам не так жестки как, например, в случае с СУБД. Средняя нагрузка обычного десктопного диска (WD Blue) рабочего места бухгалтера отображена на графиках ниже:
Обращаю внимание, что на графиках отображается время бездействия (idle time). Бездействие 95% говорит о том, что реальная загрузка диска составляет всего 5%. Промежуточный вывод:
Средняя нагрузка на одиночный диск рабочего места бухгалтера — 5%
Вывод по дискам: если не учитывать кратковременные пики, то средняя нагрузка на диски составляет 5%.
Уточнения: в этом среднем значении весомую долю занимают потребности операционной системы.
Что не учли: наиболее грамотно оценить потребности в дисках позволяет оценка производительности в операциях ввода/вывода в секунду (iops) от которой я, тем не менее, в рамках этой статьи предпочту отказаться. Операции ввода/вывода и загрузка диска в процентах обычно не соотносятся друг с другом в линейном виде (или соотносятся далеко не всегда). Все зависит от характера нагрузки. В моем случае существующая оценка производительности вполне достаточна.
Терминальный сервер 1С — подбор конфигурации
Для начала нам надо узнать рейтинг производительности эталонного процессора, который мы взяли за основу при проведении измерений. В моем случае этот процессор — Core i5-4460, который установлен практически на каждом рабочем сотрудников бухгалтерии. Рейтинг его производительности, согласно данным сайта www.cpubenchmark.net — 6622 .
Исходя из расчетов предыдущей главы, определим требуемую мощность процессора:
4% * 7 (количество рабочих мест бухгалтеров в моем случае) + 1% (для ОС) + 30% = 59% (в сравнении с Core i5 4460).
Также надо учесть тот факт, что периодически сотрудники бухгалтерии делают объемные выгрузки данных из 1С, что отнимает достаточно много ресурсов — обычно как минимум одно физическое процессорное ядро. То есть в нашем случае 25% производительности эталонного ЦП. В итоге реально необходимая мощность уже равна 84%.
Небольшое пояснение: практически никто не подбирает процессоры исходя из того, чтобы они были загружены на 84% или около того. Например я считаю, что загрузка ЦП равная или выше 85% является критической. В своей практике я обычно подбираю мощность процессора таким образом, чтобы при выполнении требуемых задач нагрузка на него не превышала 60% в среднем.
Определим необходимый рейтинг производительности процессора исходя из пояснения выше:
6620 * 0,84 / 0,6 = 9268
То есть конкретно под мою задачу с моими условиями необходим минимум Intel Xeon E3-1240 V2 @ 3.40GHz . Этот ЦП обеспечит необходимую производительность, а также небольшой запас на будущее.
UPD: 15.07.2016:
Недавно провел реальный тест производительности, итоги читайте в статье Тест производительности терминального сервера 1С.
Объем оперативной памяти составит 16ГБ (на 7 рабочих мест сотрудников бухгалтерии, расчеты приведены выше). Надо отметить, что это минимально необходимый объем. Желательно все же иметь запас, чтобы приложения и ОС не начали свопить и не положили дисковую подсистему. Идеальный вариант составит 2 планки по 16ГБ, всего 32ГБ — планки такого объема поддерживает практически любая серверная материнская плата.
Исходя из нагрузки на диски (см. выше), достаточно будет иметь производительность двух SATA-дисков. Если говорить о массивах, то при грубом приближении подойдут конфигурации RAID 10, 1E, 5. Я традиционно выбираю RAID 10 — для этого варианта нужно минимум 4 диска.
Для уменьшения общей стоимости оборудования можно обойтись SATA-дисками, но только не десктопными, а пуст и самыми дешевыми, но enterprise-уровня. Поскольку надежность этих дисков на порядок ниже по сравнению с классическими SAS, то RAID 10 будет как нельзя кстати.
Итак, конфигурация терминального сервера для работы от 7 до 10 сотрудников бухгалтерии (1с, эксель, браузер, почта) имеет следующий вид:
Intel Xeon E3-1240 V2 @ 3.40GHz, 32GB RAM, 4*SATA in RAID10
На этом все.
comments powered by HyperCommentsblog.bissquit.com
Терминальный сервер-цена для 1С, расчет стоимости лицензий Microsoft
Долгое время, не имеющий конкурентов Windows-терминальный сервер, цена которого всегда была явно завышена из-за стоимости лицензий, применялся в основном для обеспечения удаленного доступа к Windows-программам, таким, как 1С. Сегодняшние реалии таковы, что особо большого смысла в сервере Windows-терминалов нет. Причин тому несколько:
- возросшая цена терминального сервера, точнее лицензий Microsoft, измеряющихся в долларах;
- адаптация 1С для работы на Linux, веб-сервере и прочих решениях, обеспечивающих более дешевый удаленный доступ к программам;
- развитие альтернативных программ удаленного доступа и т.д.
Однако, не смотря на цену, терминальный сервер иногда оправдан. Здесь также может быть ряд причин:
- далеко не все программы работоспособны без Windows;
- централизация дает большие преимущества администратору: всегда проще настраивать и обслуживать 1 сервер, на котором установлены все программы сети;
- а при наличии лицензий, цена на терминальный сервер просто лишает это решение недостатков.
Если отбросить в сторону вопрос стоимости, терминальные решения от Microsoft позволяют по-максимуму упростить и настройку и обслуживание серверов, да и всей IT-инфраструктуры предприятия в целом. Недостаток в виде цены терминального сервера, компенсируется платформонезависимостью: не важно откуда Вы будете работать (Windows, бездисковый тонкий клиент, MacOS, Linux, Android) – вся сеть и windows-программы будут привычно отображаться на Вашем устройстве.
Цена терминального сервера для 1С и не только
Во времена 7-й версии 1С цена терминального сервера не играла особого значения, ведь, практически, не было альтернативного способа обеспечения удаленного доступа к программе автоматизации. Сейчас же приходится рассматривать и альтернативные варианты. Но, все же, если Вы выбрали это решение, давайте определимся с ценой терминального сервера для 1С, и других программ, запускаемых на терминале.
Как и большинство программных решений Microsoft, терминалы поставляются в виде серверных и клиентских лицензий. А корпоративным пользователям для расчета цены терминального сервера удобнее всего использовать систему OLP. Для наглядности представим расчет таблицей.
Наименование | Ед.изм | Кол-во | Цена | Сумма |
Microsoft Windows Server Standard 2012 R2 | Шт. | 1 | 555$ | 555$ |
Single User CAL | Шт. | 10 | 25$ | 250$ |
Remote Desktop Server User CAL | Шт. | 10 | 83$ | 830$ |
ИТОГО: | 1635$ |
Расчет в данном случае производился на 10 пользователей, без учета 1С, цена терминального сервера же составила чуть более 1500$. И это вместе со стоимостью операционной системы. Согласитесь, что подобные вложения при использовании, например, тонких клиентов, экономически оправдан, поскольку не требует дополнительных затрат ни на клиентское ПО, ни на обслуживание компьютеров.
Если добавить сюда неоспоримые удобства, то цена терминального сервера для 1С получится не такой уж и заоблачной. Зато сама 1С станет "облачной", при чем лишенной недостатков стороннего SaaS-сервиса.
Обсудим в социальных сетях
tcons.ru
Терминальный сервер 1С RemoteApp - blog.bissquit.com
Для использования 1С на терминальном сервере не обязательно входить на этот сервер через rdp-клиент, вполне можно воспользоваться опубликованным приложением 1С RemoteApp. Запуская ярлык опубликованного приложения (файл, полученный от администратора или через веб-интерфейс сервера), вы фактически открываете rdp-туннель, через который идет обмен данными и программа запускается реально на терминальном сервере, а вы, в свою очередь, видите её полноценный интерфейс на своем рабочем месте.
Другие статьи об 1С вы найдете в соответствующей рубрике — 1С.
1С RemoteApp
Если сотрудникам компании нужно какое-либо приложение, а не полноценный терминальный доступ, то эту задачу в любом случае лучше решать через публикацию, пусть даже речь идет о нескольких приложениях. Для примера возьмем два случая, которые одинаково решают одну и ту же задачу — предоставляют доступ сотруднику к программе 1С:
- Сотрудник компании заходит на терминальный сервер через rdp-клиент (например mstsc.exe) и запускает на нем только 1С;
- Сотрудник компании использует опубликованное приложение, при этом на открывая напрямую терминальную сессию;
В первом случае ресурсы терминального сервера будут потребляться в значительно большем объеме, чем во втором случае, ведь для обслуживания полноценной сессии нужно гораздо больше приложений, чем для поддержки работоспособности сессии RemoteApp. Один лишь explorer.exe будет отнимать для себя приличные объемы оперативной памяти.
Процессорная мощность
В процессе активной работы с опубликованным приложением 1С сеанс отнимает примерно 5% в среднем. При простое нагрузка стремится к 0. На графике ниже оранжевой линией отображается потребление ЦП сессий RemoteApp бухгалтера, который выполняет повседневные задачи в толстом клиенте 1С 8.2:
При запуске приложения пиковое потребление доходит до 25% от мощности процессора:
Вывод по процессорной мощности:
средняя нагрузка ЦП одной сессией составляет 5%, пиковая нагрузка — 25% (одно ядро ЦП).
Далее необходимо заняться расчетом объема оперативной памяти.
Оперативная память
Ниже вы увидите скриншот процессов сессии 1С RemoteApp:
В вашем случае процессы могут отличаться.
Из примера выше можно сделать вывод:
один экземпляр 1С RemoteApp занимает до 100MB RAM
Этих данных достаточно, чтобы рассчитать необходимый объем оперативной памяти для любого количества пользователей.
Диски
С дисками все немного сложнее, поскольку на данный момент я не собрал информацию по нагрузке на дисковую подсистему со стороны толстого клиента 1С. Тем не менее, можно выполнить примерные расчеты, взяв графики из предыдущей статьи Терминальный сервер 1С. Суть такова: нагрузка на диски из этой статьи составляет примерно 5% в среднем. При этом некоторую часть из этого значения занимает ОС (возьмем приблизительно 1%, поскольку в простое ОС не создает нагрузки на диск вообще). Теоретически тонкий клиент не должен нагружать диски с того момента, как он загрузился в оперативную память, но толстый клиент, напротив, будет во время работы выполнять операции ввода/вывода на диск, поскольку обработка данных идет на стороне клиента.
Вывод по дискам:
средняя нагрузка на стандартный диск SATA 3.5 7200 rpm составляет 4%
Исходя из этого значения можно определить сколько дисков будет нужно на терминальном сервере под определенное количество пользователей.
Расчет конфигурации сервера для 1С RemoteApp
Допустим нашим будущим сервером будет пользоваться 40 человек в компании. Это все менеджеры, которые работают исключительно в толстом клиенте 1С 8.2. Работают они с начала и до конца рабочего дня, приходят примерно в одно и то же время, плюс-минус час.
На графиках нагрузки ЦП выше взято за основу 4 (из 8) выделенных ядра процессора Intel Xeon E5620 @ 2.40GHz индекс производительности которого равен 4911. Поскольку используется половина от всех ядер, то их производительность 4911 / 2 = 2455,5. Нагрузка 5% от этого индекса составит 122,775. Имея 40 пользователей, мы получаем необходимое среднее значение 122,775 * 40 = 4911.
Теперь нужно оставить в запас мощность как минимум одного реального процессорного ядра, а это составит четверть от общей производительности 4911 / 4 = 1227,75.
Итого получаем 4911 + 1227,75 = 6138,75. Такую производительность обеспечивают серверный процессор Intel Xeon E3-1220 V2 @ 3.10GHz , либо любой десктопный core i7, либо core i5-4430 и выше, согласно данным по производительности процессоров сайта www.cpubenchmark.net . Однако нагрузка на такой процессор будет стремиться к 80-100% и больше, что меня как минимум не устраивает и я бы хотел заложить ещё 40% для возможного будущего увеличения нагрузки, а также для более комфортной работы.
UPD: 15.07.2016:
Недавно провел реальный тест производительности, итоги читайте в статье Тест производительности терминального сервера 1С.
Итоговый индекс производительности необходимого нам эталонного процессора составит 6138,75 * 1,4 = 8594,25. Этому значению соответствует процессор Intel Xeon E5-2620 v2 @ 2.10GHz или его аналоги.
Потребность в оперативной памяти невелика и составит (также учитывая потребности ОС самого терминального сервера) 100 * 40 + 2048 = 6048MB. Таким образом нам нужна 1 планка на 8GB RAM.
Теперь рассчитаем потребность в дисковой подсистеме. В предыдущей статье я объяснял почему не опираюсь на расчеты в iops’ах. Итак, 4% * 40 = 160 % от эталонного диска SATA 3.5 7200 rpm. Если использовать RAID, то подойдут конфигурации 10, 1Е, 5. Мой выбор — RAID10. В нашем случае подойдут обычные диски SATA, но обязательно enterprise-уровня. Итого 4 диска SATA в RAID 10.
Получаем следующую конфигурацию сервера:
Intel Xeon E5-2620 v2 @ 2.10GHz, 8GB RAM, 4*SATA in RAID10
На этом расчеты закончились, удачи вам в подборе «железа».
comments powered by HyperCommentsblog.bissquit.com
Тест производительности терминального сервера 1С
Чтобы понять реальную нагрузку на оборудование, необходимо было провести тест производительности терминального сервера 1С в продакшене, чем я и занимался совсем недавно, а теперь хочу представить результаты на всеобщее обозрение.
Подробнее читайте в статье.
Другие статьи об 1С вы найдете в соответствующей рубрике — 1С.
Тест производительности терминального сервера 1С
В нескольких предыдущих статьях по 1С я занимался расчетами конфигурации серверов под различные нагрузки, генерируемые стараниями главных пользователей 1С, а именно сотрудниками бухгалтерии и отделов продаж. Задачи бухгалтеров упираются не только в составление отчетов и внесение данных в программу и потому для них более предпочтительным является полноценный терминальный доступ и уже работа со всем необходимым оттуда (Терминальный сервер 1С). Для менеджеров все значительно проще и для них вполне приемлемым сценарием использования является публикация приложения (Терминальный сервер 1С RemoteApp).
Выводить сервер в продакшн без проведения реального тестирования я не рискнул и потому было организовано масштабное тестирование. Его плюсом лично для меня являлось ещё и то, что я мог бы подкрепить (или опровергнуть) на практике свои теоретические расчеты, основой для которых были весьма субъективные показатели производительности рабочих станций сотрудников.
Тестовая среда
Итак, для тестирования был взят сервер с ЦП Intel Xeon E5-1650 v3 @ 3.50GHz, 128 ГБ RAM, 2*SSD в RAID 1. На этом сервере развернута виртуальная машина, представляющая из себя как раз терминальный сервер, с установленными на нем приложениями 1С 8.2, 1С 8.3, MS Office 2013 Pro.
Сразу скажу, что характер нагрузки был смешанный, то есть были клиенты, работающие через RemoteApp и были те, кто заходил полноценно по RDP и использовал необходимые для своей работы программы (не только 1С, но и Office). Распределение было примерно следующим: 24 сессии RemoteApp, 5 клиентов RDP.
Перед пользователями стояла задача в течение двух часов каждые 30 минут заходить в приложения и выполнять в них повседневные задачи — строить отчеты, выводить данные на печать, делать проводки документов, экспорт данных в другие форматы и т.п. Главное то, что не было цели положить сервер, была цель дать реальную среднестатистическую повседневную нагрузку.
Результаты тестирования
Началось все как обычно — пользователи с третьего пинка уже от руководителей отделов и выше все же начали заходить в 1С и выполнять рутинные задачи. Это все продолжалось недолго и у меня был всего один шанс, чтобы снять показатели производительности сервера максимально приближенные к реальной нагрузке. Вот что я получил в итоге:
ЦП:
Оперативка (на виртуальном сервере была выставлена динамически выделяемая память, поэтому при необходимости текущий объем RAM постоянно изменялся в большую сторону):
Диски:
Теперь необходимо проанализировать результаты и подвести итоги.
Анализ данных
Надо отметить, что расчеты по процессору оказались на редкость точными.
В статье Терминальный сервер 1С RemoteApp эмпирическим путем я установил, что потребление ресурсов ЦП одной сессией 1С RemoteApp составляет в среднем 122,775 единиц производительности процессора (данные о производительности взяты с сайта www.cpubenchmark.net ). В другой статье — Терминальный сервер 1С — я подсчитал ресурсы, необходимые для работы полноценной сессии RDP и они составили 4% от Core i5 4460, то есть это 0,04*6622 (данные все также с www.cpubenchmark.net) = 264,88.
Итого получаем:
- полноценная сессия RDP съедает 264,88 единиц производительности ЦП;
- сессия 1C RemoteApp потребляет 122,775 единиц.
Вверху я упоминал, что было 24 пользователя RemoteApp и 5 RDP. Считаем:
24 * 122,775 + 5 * 264,88 = 4271
Относительный индекс производительности Intel Xeon E5-1650 v3 составляет 13477 единиц. То есть теоретически нагрузка на ЦП должна составлять в районе 32% (4271 / 13477 * 100).
На графике загрузки ЦП видно, что на интервале времени 10:30 — 10:50 ЦП загружен на 25 — 40% (пики не в счет). Конечно прямой линии нагрузки ЦП в 32% вы не получите, все равно будут колебания от минимумов к относительным максимумам, но в целом можно считать, что реальные данные согласуются с теоретическими. Кстати, чем больше будет пользователей на вашем сервере, тем более равномерным будет загрузка.
На самом деле более ценными оказались данные по оперативной памяти. По расчетам из прошлых статей у меня было:
- 2ГБ на сессию RDP;
- 100МБ на сессию RemoteApp.
То есть объем занятой памяти должен был составить максимум 12,4 ГБ + немного для ОС. Но, как выяснилось и как я в принципе и предчувствовал, это значение на практике представляло из себя совсем другую цифру. 1С оказалась очень жадной до оперативки, к моему сожалению. Более того, приложение ведет себя таким образом, что заняв однажды какой-либо объем, оно не считает нужным его освободить в тот момент, когда потребности в нем больше нет:
Ну разве нормально сожрать под 2ГБ оперативки и при этом сидеть ничего не делать (загрузка ЦП сессии 0%). Современные программисты абсолютно не заботятся об оптимальном использовании ресурсов. Лично меня, когда я учился в вузе, заставляли переписывать код приложения, если он был написан нерационально с точки зрения использования вычислительных ресурсов. Видимо квалификация современных прогеров упала ниже плинтуса, а может это просто подход — зачем оптимизировать уже написанный код, когда лучше заниматься разработкой нового функционала. В общем не суть, бомбануло да и ладно.
Из выделенных серверу 16ГБ «динамики», он съел их все и вероятнее всего требовал больше. По идее при нехватке оперативки ОС свопит на диск и в этом случае начинается сильная просадка по производительности. В моем случае такого не было и вероятнее всего это заслуга SSD, который вообще не показал практически никакой нагрузки — только два кратковременных пика за весь период теста (с 10:00 до 12:00). Тем не менее, как показывает практика, не советую экономить на оперативной памяти терминальных серверов.
comments powered by HyperCommentsblog.bissquit.com
Терминальный сервер 1С под Linux
Создаём терминальный сервер 1C под Ubuntu Linux. 1С официально предоставляет пакеты rpm и поэтому наилучший вариант для терминального сервера - это rpm дистрибутивы Linux, например CentOS. Данная статья призвана помочь тем, кто по ряду причин использует дистрибутивы Linux, основанные на пакете deb.Терминальный сервер позволит запускать 1С множеству пользователей, которые будут использовать базу 1С локально, чем достигнеться большая скорость работы 1С и безопасность.Терминальный сервер 1С под Linux дешевле терминального сервера 1С под MS Windows, из-за дороговизны последней и её клиентских и терминальных лицензий.
Вышла 1С с полной поддержкой Linux и данная статья перестала быть актуальной.
Схема терминального сервера 1C под Linux.
Установка FreeNX.
Добавить репозиторий FreeNX. Читаем и пользуемся FreeNX. Кратко так:sudo nano /etc/apt/sources.listЗаменить VERSION на имя своего дистрибутива Ubuntu.deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION mainдобавляем ключ 2a8e3034d018a4ce, если со временем ключ измениться, то apt-get update напомнит вам об этомsudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2a8e3034d018a4cesudo apt-get updatesudo apt-get install freenx
Настройка SSH.
Нужно сменить дефолтный порт 22 на другой, например 8888 в целях дополнительной безопасности.Читаем дальше FreeNX. Кратко такsudo nano /etc/ssh/sshd_configменяем Port 22 на Port 8888 и рестартуем ssh/etc/init.d/ssh restart
Настройка FreeNX.
Указываем FreeNX использовать порт 8888 вместо 22sudo nano /etc/nxserver/node.conf. Находим SSHD_PORT=22 и меняем на SSHD_PORT=8888 и убираем комментарий #Убираем комментарий у параметра ENABLE_PASSDB_AUTHENTICATION и меняем 0 на 1ENABLE_PASSDB_AUTHENTICATION="1". Этим мы разрешаем аутентификацию при помощи базы паролей nxserver.
Изменяем параметр ENABLE_SHOW_RUNNING_SESSIONS с 1 на 0 и убираем комментарий #.ENABLE_SHOW_RUNNING_SESSIONS="0". При этом будет автоматом запускаться новый сеанс, а при наличии приостановленных сессий - будет выводиться окошко со списком этих самых сессий. После изменений перезапускаем службу nxserver sudo nxserver --restart
Добавление пользователей.
Нужно добавить системных пользователей с помощью adduser buh2 и терминальных пользователей в базу nxserver с помощью sudo nxserver --adduser buh2. Чтобы не было проблем, лучше чтобы имена и пароли совпадали! Например,#adduser buh2…. вбили пароль pass1#sudo nxserver --adduser buh2…. вбили пароль pass1Cменить пароль системному пользователю можно с помощью passwd, например passwd buh2. Терминальному пользователю можно сменить пароль так, nxserver --passwd buh2. Следить за одинаковостью паролей!
Установка wine@Etersoft.
Ставить нужно пакеты wine*.deb и libwine*.deb от EterSoft. Так же необходима реализация CIFS (протокол виндовых шар) etercifs*.deb, при смене ядер убунту, нужна переустановка пакета etercifs*.deb, так как DKMS там не используется.
Настройка wine@Etersoft.
В этом месте много читать отсюда etersoft.ru/products/wine/manual/Прежде всего потребуется определить пользователя, который будет администратором WINE. Этого пользователя нужно добавить в группу wineadmin (такая группа создаётся при установке WINE).Технически в группу wineadmin могут входить несколько пользователей. В этом случае все они смогут равноправно изменять общее win-окружение. Хорошим решением будет создать отдельную учётную запись, которая будет играть роль администратора WINE.
При работе нескольких администраторов с общим win-окружением следует избегать одновременного изменения данных в нём (установки/удаления программ и т. п.). Это может привести к возникновению конфликтов и ошибок в реестре win-окружения.
После того как администратор WINE определён, следует создать каталог, который будет играть роль общего win-окружения. Рекомендуется в качестве общего каталога использовать /var/lib/wine/default. При установке пакета wine сразу создаётся /var/lib/wine с необходимыми правами (root:wineadmin rw-rw-r--), позволяющими администратору WINE создавать там каталоги.Подготовка административной системы выполняется командой wine --admin /путь/к/общему/каталогу. Если на момент выполнения этой команды указанного каталога ещё не существует, он будет создан. Если выполнить эту команду без указания каталога, будет использован каталог по умолчанию /var/lib/wine/default.
После настройки среды через wine --admin администратор устанавливает необходимые программы обычным способом. Чтобы пользователи по умолчанию подключались к общему win-окружению при первом запуске, следует воспользоваться настройками в файле /etc/wine/config:ATTACH_MODE="yes" # включает режим общего win-окруженияWINEADMIN="default" # путь к общему win-окружению
Подробно о каталоге с базами 1С.
Читать об этом etersoft.ru/products/wine/manual/. Пример привожу для каталога /1c/bases. Права нужно выставить следующие:#chmod 2770 /1c/bases
Чтобы все создаваемые в нём файлы принадлежали той же группе, что и каталог, а не группе создавшего файл пользователя. Владельца и группу можно выставить так#chown -R vasilisc:1c /1c/bases/ Группа 1с - это созданная в /etc/group группа, в которую включены все пользователи, которые будут запускать 1с в терминале.
Настройка Samba и CIFS от Etersoft.
Читать etersoft.ru/products/wine/manual/. Кратко все сводится к тому, что пользователи в терминале будут работать с БД 1С через CIFS, то есть как бы через сеть, хотя базы лежат на этом же компьютере. Только таким способом блокировки будут нормально работать. Необходимо для работы CIFS поставить etercifs_*.deb.Оптимальные настройки Самбы в /etc/samba/smb.confkernel oplocks = nouse sendfile = yeslog level = 0Папка, расшаренная в доступ по сети, должна быть описана примерно так[1c_bases]path = /1cpublic = yesforce user = vasiliscforce group = 1cwriteable = yesguest ok = yesПараметры force* заставляют самбу создавать и читать файлы от заданного пользователя. Терминальные пользователи должны юзать базы через CIFS и для этого нужно каталог, расшаренный самбой, примонтировать в каталог и использовать этот каталог как хранилище 1С. Делаем это примерно так mount -t cifs //192.168.0.120/1c_bases /1c_cifs -o noperm,user=vasilisc,forcedemand,directПодробнее о монтировании папки в локальный каталог для терминальных пользователей читать etersoft.ru/products/wine/manual/. Параметры forcedemand, direct ОБЯЗАТЕЛЬНЫ для корректной работы блокировок.
Проверка работоспособности 1С под wine@etersoft
Проверена работа под wine@etersoft следующих компонент:1. USB сканер штрих-кодов2. печать в терминале на USB принтере3. шрифт, изображающий штрих-коды4. компонент для 1С - Библиотечный модуль печати налоговых документов с двухмерных штриховым кодом PDF417.
Настройка Xfce в NX.
Можно заменить среду на легковесный Xfce, чтобы меньше занимать ресурсы терминального сервера. Для этого выставить в свойствах соединения Custom и далее exec xfce4-session. KDE и Gnome выставляются там же с помощью соответствующих пунктов.
Изображение иллюстрирует работу в 1С (файловый режим) в терминале под управлением Linux, терминальная сессия запущена из ОС MS Windows XP. Можно запустить терминальную сессию под Linux и не тратить деньги на рабочих местах.
Рассмотреть другие схемы запуска 1C под Linux и цены можно в статье "1С под Linux"
vasilisc.com
1С Сервер, 1С Терминал Сервер, Установка 1С Терминал Сервер Атырау
1С Терминал сервер
Терминальный сервер
С появлением надежной и простой службы терминальных соединений, реализованной и встроенной в серверную операционную систему Windows Server, технология терминальных подключений становится все более и более популярной среди самых различных предприятий.
Главных причин три
Огромный резерв производительности и масштабируемости, возможность использования для полноценной и безопасной работы, а также достижение максимального уровня защиты информации и данных при значительном снижении затрат. При этом компании могут использовать как конфигурации 1С: Предприятие на SQL сервере, так и файловые конфигурации.
Секрет кроется в технологии клиентского доступа
Пользователь устанавливает терминальное соединение с сервером и запускает приложение 1С: в рамках терминальной сессии. При этом пользователь видит графический экран его пользовательской сессии, изображение которого формируется на терминальном сервере, а управление осуществляет с помощью локальных клавиатур и мыши.
Терминальные соединения можно настроить таким образом
Что пользователю при установлении соединения будет сразу запускаться 1С: Предприятие без права запускать на сервере любые другие приложения. Основные минусы – высокие требования к конфигурации сервера и сложность администрирования.
Важный момент
Терминальный сервер может быть развернут только на операционной системе Windows Server, который должен быть включен, в качестве дополнительного сервера, в состав домена на базе Windows Server. Терминальный сервер должен быть развернут на сервере, мощности ресурсов которого хватит на обеспечение одновременной работы множества пользовательских сеансов и приложений внутри них. Для тех пользователей, которые подключаются к серверу терминалов, необходимо дополнительно приобрести пользовательские лицензии для служб терминалов так и используемых ими приложений на терминальном сервере. При этом, если используется сервер баз данных Microsoft SQL Server, все пользователи по-прежнему должны иметь клиентские лицензии для SQL Server.
Терминальный серверТерминальный сервер входит бесплатно в Windows Server, но клиентские лицензии терминального доступа нужно приобретать отдельно. Причем, лицензии необходимо активировать на сервере терминальных соединений. Клиентские терминальные лицензии также приобретаются либо на Устройство, либо на Пользователя. При использовании серверов терминалов применение клиентских лицензий для пользователей обеспечивает дополнительную гибкость - если пользователь может входить в систему на различных компьютерах, на этих компьютерах может применяться одна клиентская лицензия для пользователей. В отличие от клиентских лицензий для устройств, лицензии для пользователей не хранятся в реестре компьютеров. Клиентские лицензии для пользователей могут быть установлены только на сервере лицензирования служб терминалов Windows Server.
Распределенные офисы, удаленные рабочие местаВ некоторых случаях организациям требуется решить задачу удаленного доступа к серверу 1С: Предприятие либо индивидуально для отдельных сотрудников из дома, в командировке, либо для целых офисов. Принципиально нужно решить две задачи – настроить сеть и добиться приемлемой производительности. Настроить сеть можно различными способами в зависимости от требований шифрования, авторизации по USB-токену, фильтрация по IP адресам. В любом случае потребуется специальное системное программное или аппаратное обеспечение для маршрутизации VPN соединений, обеспечения безопасности передачи данных и т.д. Для подключения офисов наиболее перспективным с точки зрения производительности, является использование терминального сервера.
Специалисты нашей компании
Обладают многолетним опытом по установке и настройке 1С терминал сервер. Наши специалисты выполняют работы на современном и надежном оборудовании. Особенность наших работ в том, что мы всегда стремимся выполнить заказ, своевременно и высокопрофессионально.
Наша миссия
Обеспечение эффективных решений и сокращение потерь наших клиентов, с целью создания комфортных и экономически выгодных условий для ведения бизнеса клиента и обеспечения ему конкурентных преимуществ. Предоставление сотрудникам компании-заказчиков, уникальных условий для профессионального роста, личностного развития и увеличения благосостояния.
ТОО «HASTAM» LTD
Выполняет весь комплекс работ, по установке и настройке 1С терминал сервер, на территории города Атырау и Атырауской области. Мы поможем подобрать вам наиболее оптимальный вариант для вашей компании, офиса, магазина, склада.
hastam.kz
Сервер терминалов для 1С:Предприятия 7.7 - Сервер терминалов - 1С v.7.7 - Каталог статей
Связка: Windows 2003 Server + Сервер терминалов + 1C Предприятие 7.7
Вообще говоря, подобная связка - задача не сильно сложная, и многими системными администраторами уже не раз решенная. Однако, когда мне самому пришлось столкнуться с этой проблемой - готовой статьи я не нашёл - поэтому материал пришлось собирать частями, натыкаясь на известные и неизвестные ошибки.
Почему я не стал использовать Citrix Metaframe (www.citrix.com, citrix.1th.ru), в качестве стороннего сервера терминалов для Windows 2000? Hа это есть несколько причин:
-
В Win2003 по сравнению с Win2000 сервер терминалов стал намного быстрее и стабильнее.
-
Сервер терминалов от Microsoft гораздо роднее для Windows, чем Citrix - внешняя разработка. Поэтому он Microsoft Terminal Server 2003 лучше интегрирован в систему.
-
Citrix & Win2000 зачастую требуют ручной установки драйверов используемых принтеров.
-
Citrix очень чувствителен к сервис-пакам, hotfix'ам (как своим так и Windows).
-
Проблем со старым сервером (Win2000+Citrix) было намного больше, чем с новым (Win2003).
0. Конфигурация компьютера
Использовалась машина следующей конфигурации:
-
2 процессора Intel XEON по 2.4 ГГц
-
2Гб ОЗУ
-
RAID-контроллер Promise FastTrak100
-
HDD 100Гб
-
6 куллеров (+7ой в блоке питания ;-)
1. Подготавливаем HDD
Перед установкой я позаботился, чтобы жесткий диск был пуст: не содержал ни одного раздела. Для этого загрузился с обычной системной дискеты Windows'98, и удалил fdisk'ом имевшийся на то время старый раздел.
Hадо сказать, fdisk не смог правильно определить ёмкость жесткого диска. Однако, то что он показал 51 Гб вместо 100 Гб - удалению раздела никак не помешало.
Кроме того, если у вас установлен RAID или SCSI, не плохо найти его драйвер для Windows 2003 Server. Hапример, наш Promise FastTrak100 оказался загадкой для Win2003 Server, инсталлятор которого жестких дисков не увидел.
Поэтому лезем на сайт производителя (или ищем на диске, пришедшим вместе с железкой) драйвера для Windows 2003. Если таковых нет (как оказалось и в нашем случае) - пойдут драйвера для Window XP. Если нет и таких, можно попробовать драйвера от Win2000 - но подойдут они или нет - не знаю.
Драйвера скачиваются и записываются на дискету. При этом важно в корень дискеты поместить Txtsetup.oem и файл-подпись диска (в нашем случае fasttrak). Из директорий достаточна та, которая содержит драйвера именно вашего устройства именно для данной операционной системы.
2. Подготавливаем дистрибутив
Как известно, по просторам нашей страны ходят самые разные дистрибутивы Windows ;-) Вы уверены, что ваш дистрибутив - это не пробная версия? Или что он не попросит активации? Если да, то можете пропустить этот пункт.
Если у вас в этом есть доля сомнения - давайте создадим на базе вашего дистрибутива новый. В качестве базового мы использовали англоязычный Windows 2003 Server Enterprise (не корпоративный, а значит, требующий активации).
Для шаманства над дистрибутивом нам понадобится файл: Windows.Server.2003.CrackPak.Nus.rar - 14.821.727 Мб (его легко можно найти с помощью "ослика" eDonkey)
Достаём из него corpfiles_pak.zip и распаковываем в отдельный каталог. Выполняем инструкции из readme.txt.
Там будет предложено скопировать дистрибутив Win2003 Server в папку C:\WIN2k3, затем наложить на него изменения, превращающие его в корпоративную редакцию. После чего сформировать из него образ загрузочного диска с помощью программки cdimage, находящейся там же.
Полученную ISO-шку запишите на компакт - корпоративный дистрибутив готов. При установке используйте серийник: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY
3. Установка операционной системы
Установка Windows 2003 Server оказывается делом нехитрым:
-
грузимся с компакт-диска: запускается инсталляция в текстовом режиме
-
вовремя нажимаем F6 чтобы подсунуть сторонний драйвер RAID или SCSI
-
тычем Enter'ом в пустую неразмеченную область жесткого диска, и соглашаемся её отформатировать под NTFS. (из всех установки, форматирование - самая долгая по времени процедура).
-
когда диск отформатирован, а файлы скопированы - перегружаемся (обеспечьте, чтобы компьютер загружался с жесткого диска, но компакт-диск с дистрибутивом оставьте в дисководе - он нам ещё пригодится).
-
если всё прошло успешно, Windows стартует в графическом режиме и начнёт устанавливать драйвера
-
на все провокационные вопросы типа: "Программное обеспечение данного драйвера не сертифицировано на совместимость с Win2003 Server" или "Этот драйвер на своей коробке не имеет наклейки Windows-LOGO (tm), совместимой с данной версией операционной системы" - смело посылайте умный компьютер куда подальше, и говорите: "Да, я всё равно хочу продолжить установку!"
-
в региональных настройках я везде поставил Russian
-
внимательно вводите имя пользователя и организацию, на которые будет зарегистрирован ваш Win2003 Server - они нам ещё понадобятся при активации.
-
серийный номер я взял из пункта 2
-
Режим лицензирования: на сервер. Максимально возможно.. ээ.. 9999 соединений. Зачем мелочиться, правда?
-
Hастройки времени. Hастройки сети (я сказал custom и прописал все вручную).
- Если всё выполнено правильно, то после очередного копирования файлов и перегрузки перед вами предстанет вполне рабочий Windows 2003 Server, совершенно не нуждающийся в активации.
4. Установка сервера терминалов
Заходим Administrator'ом. Если всё сделано правильно - перед нами окно "Manage Your Server" и никаких (!) сообщений об активации.
Список "ролей" (теперь это так называется ;-) нашего сервера пуст. Добавляем роль нашему серверу. Компьютер симулирует поиск чего-то там по локальной сети, и предлагает нам выбрать: между той ролью, которая нужна нам по ЕГО мнению и той, которая нужна по ВАШЕМУ мнению. Поскольку в искусственный интеллект и прочие сказки мы с вами уже не верим, да и своё мнение нам как-то дороже, то выбираем: Сustom.
В появившемся списке ролей выбираем Terminal Server, и нажимаем Next. Снова нажимаем Next, а затем OK - подтверждая свою готовность перегрузить компьютер.
Перегружаясь, удивляемся, как быстро загружается Windows 2003 Server по сравнению с Windows 2000.
Заходим под Administrator'ом, и говорим установке сервера терминалов Finish. Заметьте: в окне Managing your computer появилась роль: Terminal Server. Однако ниже сказано, что: "Поскольку сервера терминальных лицензий не найдено, то сервер терминалов будет выдавать временные лицензии на соединение, каждая из которых закончит своё существование через 120 дней".
Такая ситуация нас никак не устраивает, поэтому мы устанавливаем сервер терминальных лицензий. Для этого заходим в Пуск -> Панель управления -> Установка и удаление программ -> Компоненты Windows. Ставим галочку напротив пункта Terminal Server Licensing. Hажимаем Next. Затем Finish.
Теперь у нас установлен сервер терминальных лицензий. Hо его ещё надо активировать.
Если есть корпоративный прокси, его следует прописать в Панель управления -> Hастройки интернет.
Заходим в Администрирование -> Terminal Server Licensing. Видим, что найденный на нашем компьютере сервер находится в состоянии Not activated.
Щелкаем правой кнопкой, говорим Activate server. Выбираем тип подключения Automatic. Вводим свои личные данные (имя, фамилию, организацию, страну - строго те, которые были введены при установке Windows). Следующую страничку (E-Mail, адрес) я оставил пустой. Hажимаем Next, и ждём.
Активация должна пройти успешно. Становится непонятным, какой смысл тогда Microsoft закладывала в эту активацию? Зачем она нужна кроме сбора статистики? После успешной активации вам будет предложено добавить лицензии. Что ж, продолжим.
Запустится Client Access License (CAL) Activation Wizard, который первым делом снова полезет в Microsoft. После чего спросит тип лицензии, которую желаете установить. Я выбрал Enterprise Agreement, и следующим этапом у меня спросили магическое число. Как оказалось, это магическое число прекрасно ищется в любом поисковике по запросу Enrollment Number. Я выбрал первое попавшееся: 4965437.
Теперь нужно указать продукт - Windows 2003 Server. Тип лицензии - per Device. Количество - 999 (9999 у меня почему-то не прошло). Лицензия инсталлировалась отлично. Закрываем окно Terminal Server Licensing.
5. Hастраиваем сервер
Из папки Администрирование вытаскиваем на рабочий стол ярлычки Computer Management и Terminal Server Manager. Это не обязательно, но так намного удобнее.
Заходим в Computer Management, создаём группу/группы пользователей 1С.
Заходим в Администрирование -> Terminal Services Configuration. В настройках Server Setting снимаем ограничение "Restrict each user to one session". В списке Connections выбираем соединения и настраиваем их Propetries:
Закладка Client Settings:
-
Заменяем настройки пользователей в отношении дисков и принтеров собственными: подключать всё (то есть верхняя галочка должна быть снята, а три следующие должны быть активными и установленными).
-
Ограничить глубину цвета до 16 бит.
-
Запретить переадресацию LPT, COM, Audio портов.
Закладка Permissions:
Закладка Remote Control:
-
Use remote control with following setting:
-
[ ] Require user's permission (снимаем галочку)
-
(o) Interact with the session
Закрываем Terminal Services Configuration. Далее делаем следующее:
-
Заходим в My computer.
-
Говорим Propetries на диске C:
-
Переходим на закладку Security
-
Говорим Advanced...
-
Удаляем права, позволяющие группе Users создавать папки и файлы.
-
Так секьюрнее.
Заходим с Панель управления -> Система. Закладка "Автоматическое обновление". Отключаем всё автоматическое обновление напрочь.
Заходим в Администрирование -> Local Security Settings -> Account Policies -> Password Polisy. Устанавливаем "Maximum password age" = 0 - так удобнее.
Заходим с Computer Management, добавляем себя в качестве пользователя. Hе забываем: - Password never expires - Добавить себя в группы пользователей 1С. - Снять галочку "Require user's permission" на закладке "Remote control"
6. Пробуем подключиться к серверу
Пробуем подключиться с другого компьютера к серверу терминалов. Для этого нам нужно установить на компьютер клиент. В составе XP такой клиент уже есть: "Пуск -> Программы -> Стандартные -> Связь -> Удаленное управление рабочим столом".Однако, мне кажется, даже на XP его стоит переустановить: клиент в составе Win2003 Server будет все-таки поновее.
Он находится в папке: C:\WINDOWS\SYSTEM32\CLIENTS\TSCLIENT. Установите его на всех машинах, с которых хотите работать на сервере терминалов.
После запуска клиента нажмите кнопку "Options>>". Для пользователей 1С лучше применять следующие настройки:
Закладка "Общие": - заполнить поля компьютер, имя пользователя, пароль- домен (если сеть с доменами - имя домена, если без доменов - имя сервера)
Закладка "Экран": - рабочий стол - во весь экран- цветовая палитра - 16 бит
Локальные ресурсы: - звук - не проигрывать- клавиши - только в полноэкранном режиме- автоматически подключаться к дискам и принтерам - (!!!) это обязательно
Закладка "Дополнительно": - скорость - модем 28.8 - должна остаться одна галочка - кэширование графики
Теперь эти настройки можно сохранить в файл с расширением RDP. Обратите внимание на галочку "Сохранять пароль" на закладке "Общие". Для операционных систем Win2000 и WinXP эта галочка доступна. Для других - нет. К сожалению, пользователи Win9x лишены возможности сохранять пароль в RDP файле - поэтому настройте ваших пользователей Win9x, что кроме пароля на 1С им придётся набивать пароль на Windows.
Как поступить с этим паролем - дело ваше. Можно назначить всем один пароль, можно сгенерировать свой пароль для каждого пользователя. Однако, вам крайне желательно знать пароль каждого пользователя - это пригодится для удалённого присоединения и администрирования сессий.
Hастроив должным образом соединение, убедитесь, что оно работает, и сохраните его в RDP-файл (можно прямо на рабочий стол).
7. Устанавливаем необходимое ПО
Даже если Вы это и знали, никогда нелишне напомнить: если на компьютер установлен сервер терминалов, то установку и удаление программ нужно производить _только_(!!!) из соответствующего раздела панели управления: Панель управления -> Установка и удаление программ.
Я ограничился установкой на сервер следующего софта:
-
Total Commander 5.50
-
WinRAR 3.11 RUS
-
Office XP RUS
-
Dr.Web 4.29c
Весь софт устанавливался правильно - то есть через Панель управления. Из Office я поставил только Word, Excel и Access. Отключил такие вещи как Binder и Панель_Office. DrWeb вообще самостоятельно определил, что это сервер и не стал устанавливать свой Spider.
После этого осталось зайти в "C:\Documents and Settings\Administrator" и "C:\Documents and Settings\All users" и подкорректировать содержимое папок
на предмет лишних ярлыков.
8. Устанавливаем 1C:Предприятие 7.7
Установку 1С производим также из панели управления. Я выбрал для установки 18 релиз 1С:Предприятия 7.7 - мы уже работали на нём долгое время под Windows 2000. От установки типовой конфигурации я отказался -у нас есть своя.
Создаём папку для хранения будущих баз. У нас она исторически называется C:\1sbdb.adm . В ней - подпапки для соответствующих групп пользователей, в которые переносим со старого места базы 1С.
Проверяем доступа на главную папку (C:\1sbdb.adm):
-
правой кнопкой мыши -> Propetries -> Security -> Advanced
-
все права должны наследоваться с корня диска: Administrators, SYSTEM и Владельцы должны иметь "Full Control", группа Users - права "Read & Execute"
-
мы не будем изменять права на эту папку.
Hастраиваем права доступа на папку базы (C:\1sbdb.adm\BAZA1):
-
правой кнопкой мыши -> Propetries -> Security -> Advanced
-
отключаем наследование прав с корня диска (снимаем галочку)
-
в появившемся диалоге говорим Copy: копировать уже имеющиеся права
-
удаляем права на чтения группы Users: нечего по базе 1С лазить
-
добавляем права для соответствующей группы пользователей 1С (которой принадлежит эта база). Ставим все галочки, кроме: Full Control, Delete, Change Permissions, Take Ownership (для "This folder, subfolders and files")
-
таким образом, в списке прав появится наша группа с правами "Special"
Аналогично устанавливаем права для остальных подпапок C:\1sbdb.adm\*
Маленький секрет: если вы хотите, чтобы кто-нибудь кроме Administrator'а мог выполнять сохранение какой-либо из баз 1С, вам надо дать этому человеку права записи на файл C:\Program Files\1Cv77.ADM\BIN\1CV7FILE.LST.
Конфигуратор, при вызове команды "Сохранить данные" пытается открыть его на чтение и запись, даже если вы не хотите менять список сохраняемых файлов. Поэтому имеет смысл создать группу 1C-Admins, членам которой разрешить доступ на этот файл:
9. Ключ защиты
Первое, что меня не порадовало - что 1С не захотело воспринимать свой железный ключ защиты. При запуске долго думает, а потом пишет: "Hе найден ключ защиты" - и вываливается.
Хотя от других людей о подобных проблемах я не слышал. Установка новой версии драйверов HASP с www.alladin.ru ситуацию не изменила. Поэтому, оставив заветный ключик гордо торчать в LPT порту, засучим рукава и займёмся поиском пути обхода этой проблемы.
<Примечание: Алгоритм установки эмулятора на сайте не опубликован>
10. Дополнительные возможности
Вы уже пробовали заходить под терминалом и вызывать 1С? Попробуйте! Мне показалось, что её красочная анимация на заставке (когда одна картинка ме-е-едленно превращается в другую) слишком тормозит в терминальном режиме.
Решим этот вопрос кардинально с помощью любого шестнадцатеричного редактора:
-
Для Сетевой версии: в файле 1cv7.exe найти: 8B 87 54 85 00 00 и заменить на: 31 C0 90 90 90 90
-
Для Локальной версии: в файле 1cv7l.exe найти: 8B 8B 54 85 00 00 и заменить на 31 C9 90 90 90 90
11. Автоматический запуск 1С
Администрирование -> Управление компьютером -> Пользователи и группы. Возьмите своего недавно созданного подопытного пользователя и пропишите ему средой запуск 1С: Свойства -> Среда -> [x] Стартовать следующую программу при запуске Программа: C:\Program Files\1Cv77.ADM\BIN\1cv7.exe Каталог: C:\Program Files\1Cv77.ADM\BIN\
Попробуйте теперь зайти этим пользователем через терминал. Что вы видите? Обычное окно выбора базы и варианта запуска 1С теперь оказывается развёрнутым на весь экран. Это фича Terminal Server'а. Как её обойти?
Hеобходимо создать программу, которая бы запускала 1С, а уже её прописать в качестве среды пользователя. Самый простой вариант - создать пакетный файл. В нём следует написать:
@ECHO OFF CD "C:\Program Files\1Cv77.ADM\BIN" START 1cv7.exe
Обратите внимание на слово START в последней строчке. Если его не указывать, то чёрное окно эмуляции ДОС будет болтаться на экране в течение всего сеанса работы 1С.
Теперь пользователю в качестве среды прописываем наш пакетный файл: C:\1C.BAT. Пробуем зайти с терминала. Что мы теперь видим? Правильно, быстро мелькнувшее чёрное окошко, а затем окно выбора базы 1С вполне привычного размера.
Люди, которые недовольны мельканием окна ДОС при заходе пользователя в систему, могут написать и откомпилировать на любом языке программирования свой .exe файл, выполняющий те же самые действия. Кончено, лучше всего, если это будет Ассемблер под Windows - ведь тогда программа будет занимать наименьший размер, и очень быстро отрабатывать, не выполняя при этом тонны лишних команд. ;-P) 12. Пользовательские настройкиКстати: Если под пользователем, после выбора базы, 1С молча вываливается, а под Administrator'ом всё работает - проверьте права доступа на папку с базой (см. пункт 8). Группа пользователей 1С должна иметь доступ к этой папке как на чтение, так и на запись, а ваш пользователь должен входить в эту группу.
Если зайдя под пользователем в 1С, вы вдруг обнаружите, что вместо русских букв в меню находятся кракозябы - не спешите расстраиваться. Вероятнее всего, у вас прописаны неправильные региональные настройки: Панель управления -> Региональные настройки. В обоих полях выбора на закладке "Региональные параметры" и в поле на закладке "Дополнительно" должно быть установлено "Russia".
Hо как обеспечить такие настройки всем пользователям? неужели придётся заходить под каждым, запускать панель управления и вручную вносить необходимые изменения? =8-[] Есть способ лучше! О нём мы расскажем очень скоро...
В профилях пользователей, которые им даёт Win2003 Server по-умолчанию, есть ещё одна фича: по-умолчанию через 10 минут простоя запускается ScreenSaver, который чтобы зайти обратно, начинает требовать пароль. Hам, в случае терминальных сессий, такое было ни к чему. Поэтому кроме региональных настроек, каждому пользователю, было бы не плохо, ещё отключать ScreenSaver.
Как же автоматизировать этот процесс? Оказывается достаточно просто! Hужно воспользоваться утилитой слежения за изменениями в реестре Windows. Самая доступная - regmon - бесплатно скачивается с www.sysinternals.com
-
заходите под Administrator'ом, устанавливаете настройки в первоначальное "неправильное" состояние.
-
запускаем утилиту regmon
-
устанавливаем фильтр записей: только "Log Writes" и "Log Successed"
-
запускаем процесс слежения "исправляем" региональные настройки и настройки ScreenSaver'а
-
останавливаем слежение
-
внимательно разбираем собранный журнал изменений реестра.
После анализа собранных изменений реестра оказалось, что для распространения настроек необходимо: - полностью перенести ветки: HKEY_CURRENT_USER\Control Panel\International HKEY_CURRENT_USER\Keyboard Layout HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme - в ветке HKEY_CURRENT_USER\Control Panel\Desktop провести следующие изменения: установить ScreenSaveActive = "0" установить ScreenSaverIsSecure = "1" установить ScreenSaveTimeOut = "600" и удалить поле SCRNSAVE.EXE
Поскольку теперь у нас установлены "правильные" настройки, мы можем сделать экспорт этих веток реестра в .REG файл. Сделать это можно с помощью стандартного regedit.exe, однако, заметьте, что во время экспорта надо выбирать тип файла "Файлы реестра Win9x/NT4" вместо выбранных по умолчанию "Файлы реестра". Это нужно для того, чтобы созданный .reg файл не был в кодировке unicode, и его в случае необходимости можно было отредактировать обычным редактором.
После того, как экспорт выполнен, а получившиеся .reg файлы объединены, не забудьте дописать "SCRNSAVE.EXE"="" в секцию [HKEY_CURRENT_USER\Control Panel\Desktop]. Это хоть и не удалит значение, но хотя бы обнулит его.
У меня получился .reg файл следующего вида:
-------------------------------------------------------------- REGEDIT4
[HKEY_CURRENT_USER\Control Panel\International] "iCountry"="7" "iCurrDigits"="2" "iCurrency"="1" "iDate"="1" "iDigits"="2" "iLZero"="1" "iMeasure"="0" "iNegCurr"="5" "iTime"="1" "iTLZero"="0" "Locale"="00000419" "s1159"="" "s2359"="" "sCountry"="Russia" "sCurrency"="р." "sDate"="." "sDecimal"="," "sLanguage"="RUS" "sList"=";" "sLongDate"="d MMMM yyyy 'г.'" "sShortDate"="dd.MM.yyyy" "sThousand"="." "sTime"=":" "DefaultBlindDialFlag"=hex:00 "sTimeFormat"="H:mm:ss" "iTimePrefix"="0" "sMonDecimalSep"="," "sMonThousandSep"="." "iNegNumber"="1" "sNativeDigits"="0123456789" "NumShape"="1" "iCalendarType"="1" "iFirstDayOfWeek"="0" "iFirstWeekOfYear"="0" "sGrouping"="3;0" "sMonGrouping"="3;0" "sPositiveSign"="" "sNegativeSign"="-"
[HKEY_CURRENT_USER\Control Panel\International\Geo] "Nation"="203"
[HKEY_CURRENT_USER\Keyboard Layout]
[HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle]
[HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle\scancode]
[HKEY_CURRENT_USER\Keyboard Layout\Preload] "1"="00000409" "2"="00000419"
[HKEY_CURRENT_USER\Keyboard Layout\Substitutes]
[HKEY_CURRENT_USER\Keyboard Layout\Toggle] "Hotkey"="2" "Language Hotkey"="2" "Layout Hotkey"="1"
[HKEY_CURRENT_USER\Control Panel\Desktop] "SCRNSAVE.EXE"="" "ScreenSaveActive"="0" "ScreenSaverIsSecure"="1" "ScreenSaveTimeOut"="600"
[HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply] "Screen saver"="1" "Sound events"="1" "Mouse pointers"="1" "Desktop wallpaper"="1" "Icons"="1" "Colors"="1" "Font names and styles"="1" "Font and window sizes"="1" "Rotate theme monthly"="1"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme] "ThemeFile"=hex(2):00 "Wallpaper"=hex(2):00 "DisplayName of Modified"="Modified Theme" --------------------------------------------------------------
Теперь нужно назначить эти настройки каждому пользователю? Как это сделать быстро, не заходя под каждым пользователем в систему? Могу предложить следующий вариант решения: эти настройки заносятся в реестр пользователя, каждый раз, когда он входит в систему.
Для этого в сценарий запуска 1C.BAT пред строкой START... нужно включить следующую команду:
REGEDIT.EXE /S C:\ALL.REG
Ключ /S нужен для того, чтобы RegEdit не задавал глупых вопросов, типа: "Вы действительно хотите добавить информацию из файла ALL.REG в реестр?!"
Теперь пробуем зайти нашим подопытным пользователем (напомню, у него в качестве среды прописан C:\1C.BAT). Всё должно получиться. Для проверки предварительно можно внести в ALL.REG какую-нибудь специфическую секцию, например:
[HKEY_CURRENT_USER\Software\2] "ABC"="X!"
а после захода пользователем выполнить следующие действия: - зайти в режиме 1С:Предприятия (или 1С:Конфигуратора) в базу - Меню: Файл -> Открыть - Перейти в каталог C:\WINDOWS - Вместо имени файла ввести "*.exe" и нажать Enter - В открывшемся списке выбрать Regedit и щелкнуть по нему правой кнопкой мыши - В появившемся меню выбрать команду Open - Запустится редактор реестра - Посмотрите, добавилась ли ваша сигнальная секция HKEY_CURRENT_USER\Software\2 в реестр? - Если добавилась - значит всё в порядке. - Если в реестре такой секции не обнаружено - отлаживайте .bat файл
Кстати: если таким же способом вызвать C:\WINDOWS\Explorer.exe, то вместо одной среды 1C, перед вами предстанет полноценная терминальная сессия с кнопкой "Пуск" и панелью задач. :-)
Убедившись, что пользовательские настройки подхватываются успешно не забудьте удалить сигнальную секцию из all.reg
13. Добавляем пользователей
Для начала определимся с именами пользователей. Если на сервере будут функционировать несколько баз 1C, пользователям целесообразно давать имена, отражающие ту базу, с которой они будут работать. Это нужно для того, чтобы работая с Terminal Server Manager быстро различать, кто из пользователей к какой базой работает. Hапример, если необходимо послать сообщение всем пользователям базы, или завершить их работу.
Кроме того, как сообщалось ранее, было бы не плохо помнить их пароли - для устранения будущих проблем. Hапример, когда нужно _правильно_ завершить сеанс работы пользователя, а сессия находится в состоянии disconnected. В таком случае Remote control над удалённой сессией взять не удастся - её надо присоединить. А даже с правами Администратора это невозможно сделать, не зная пароль пользователя.
Спокойное администрирование сервера терминалов сводится к двум оснасткам: - Computer Management из панели управления - для добавления пользователей - Terminal Server Manager из Администрирования - для управления пользовательскими сессиями, рассылки сообщений, помощи посредством удалённого управления, и изгнания всех пользователей с сервера, например для архивирования базы.
Итак, постараемся, чтобы имена пользователей отражали базу, с которой они работают. Hапример: bz1-ivanov или bz2-sidorov. Мне кажется, это удобно.
Действия, которые нужно выполнять при добавлении пользователя:
-
Ввести login, ФИО и пароль.
-
Поставить галочку [x] Password never expires
-
Добавить пользователя в соответствующую группу доступа к 1С (в группу Users он добавляется автоматически)
-
Установить среду пользователя (закладка Environment): [x] Start the following program... Program: C:\1C.BAT Путь запуска можно не прописывать.
-
настроить удалённое управление (закладка Remote control). [ ] Require user's permission - снять галочку
14. Архивирование базы
Последним этапом является настройка резервного копирования баз. Для этого в корне диска создаём папку Backup.
-
Заходим в её свойства, затем в "Security", затем в "Advanced".
-
Снимаем галочку, отвечающую за наследование прав с корня диска, при этом копируем права.
-
Удаляем права группы Users - нечего никому там лазить.
-
В папку кладём два файла. Первый файл - arc.bat следующего содержимого:
------------------------------------------------------------- @ECHO OFF SET PREFIX=%1 SET BAZA=%2
SET FOLDER=%DATE%
cd C:\BACKUP mkdir "%FOLDER%" cd "%FOLDER%" del /F /Q %PREFIX%.RAR del /F /Q %PREFIX%.LOG
ECHO Begin: %DATE% %TIME% > %PREFIX%.LOG "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\*.DBF "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.DD "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.MD "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.ORD "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.SPL "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7FLT.LST "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul -apUSRDEF %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\USRDEF\USERS.USR ECHO. >> %PREFIX%.LOG ECHO. >> %PREFIX%.LOG ECHO End: %DATE% %TIME% >> %PREFIX%.LOG
cd C:\BACKUP --------------------------------------------------------------
Как видно, этот файл должен запускаться с двумя параметрами. Первый: префикс - краткое имя базы, которое войдёт в основу имени архива. Второй параметр - путь к базе относительно папки C:\1SBDB.ADM
Arc.bat выполняет следующие операции:
-
В каталоге C:\BACKUP создаёт папку соответствующую текущей дате.
-
В папке создаёт архив %ПРЕФИКС%.RAR, в который запаковывает из базы 1С следующие файлы: *.DBF 1CV7.DD 1CV7.MD 1CV7.ORD 1CV7.SPL 1CV7FLT.LST USRDEF\USERS.USR
-
Ошибки, возникнувшие в процессе архивации, записываются в %ПРЕФИКС%.LOG
Второй файл - all.bat
-------------------------------------------------------------- cd C:\BACKUP call arc.bat BZ1 Baza1 call arc.bat BZ2 Baza2 call arc.bat BZ3 Test\Baza3 --------------------------------------------------------------
Этот файл по-очереди запускает архивацию всех баз. Как видно из примера, путь базы относительно папки C:\1SBDB.ADM может состоять из более чем одного файла.
Последняя оставшаяся операция - это добавления нового задания в планировщик. Пуск -> Программы -> Accessories -> System Tools -> Sheduled Tasks
-
Добавить новое задание.
-
В появившемся окне нажимаем кнопку "Next", затем - "Browse..." и выбираем файл C:\BACKUP\ALL.BAT
-
Выбираем ежедневный режим запуска, скажем в 03:00 ночи
-
В следующем окне указываем, что запускать надо из-под пользователя Administrator, не забывая при этом указать его правильный пароль.
- Готово. Если любопытно, можете заглянуть в дополнительные параметры.
15. Заключение
Hу вот мы совместными усилиями и настроили сервер. Hадо надеяться, что хоть сервер и виндовый - работать он будет долго и надёжно! Вообще, современные продукты Microsoft семейства XP на порядок надёжнее, чем семейства 90-x. Реальный пример: Win2003 Server живёт с uptime уже 4 месяца. Это радует. Зато огорчает то, что теперь они всё чаще лезут в Интерент за активацией..
Linux как альтернатива продуктам Microsoft ещё весьма слаб. Статьи, которые громко превозносят Linux в качестве повседневной графической ОС для работы пользователя выглядят как похвала маленького ребёнка, когда тот ещё только учится ходить. Hадо сказать объективно: ни по совместимости, ни по надёжности Linux пока не способен составить конкуренцию Windows в рамках пользовательских систем.
Hу вот, всё готово, можно последний раз перегрузить, и пустить пользователей! Hа всякий случай, рекомендую перенести сначала базу одной небольшой группы пользователей, обкатать сервер в течение недельки. После удачной обкатки - перенести остальные базы.
Желать вашему новому серверу счастливого полёта, и большого uptime!
Благодарности
-
Конечно, моей жене Hаталье - за то, что всегда ждала меня, когда я задерживался на работе.
-
Отделу Развития Сетевых и Информационных Технологий - за советы, огромную помощь и поддержку. Особенно - Сергею Лутохину и Алексею Тарасову - сопереживавшим установку нового сервера.
-
Alex Migita (2:5036/30) - за дистрибутив Win2003 Server и помощь по терминалам.
-
Oleg Kunov ([email protected]) - за помощь в вопросах администрирования 1С.
-
Всем участникам конференции n5036.profi - за интересное обсуждение достоинств/недостатков Citrix и Win2003 Server
- Форум "Tерритория 1C" (http://www.kuban.ru/cgi-bin/forum/forum9.cgi) за ответы на мои многочисленные вопросы.
Copyright
Если кто сочтет этот материал достойным быть где-то опубликованным, я буду только рад! Если у вас возникнут вопросы, или вы встретитесь с интересными проблемами, или просто захотите сказать спасибо - пишите! © 2003 Stas Kornienko [email protected] *==================================================================* С уважением, Stas Kornienko.
1c.moy.su