Молочников Олег Spb. 2014.
Виртуализация сервера 1С.
Потратил 48
часов с перерывами на сон для создания виртуализированного сервера приложений
1С (hostubauntu14.04
guestWin2003 Server +SQL2008), теперь пора подбить итоги.
Начнем с того, какие преимущества несет виртуализация 1С
сервера, или проще говоря, зачем все это нужно. Пройдемся по списку:
·
в рамках виртуальной машины можно работать с устаревшими
программными решениями и операционными системами;
Как раз мой
случай. Можно использовать
имеющиеся в наличие лицензии на Win2003 сервер,
который просто не встает на многие современные контроллеры жестких дисков.
·
возможность создать защищенные пользовательские окружения для работы с сетью, в этом случае
вирусные атаки могут нанести вред операционной системе, а не виртуальной
машине;
·
несколько виртуальных машин, развернутых на физических ресурсах
одного компьютера, изолированы друг от друга, таким образом, сбой одной из
виртуальных машин не повлияет на доступность и работоспособность сервисов и
приложений других;
Тоже полезная вещь для 1С. Разнести сервер
приложений 1С и сервер SQLпо разным виртуальным машинам и выделив каждой по 4ГБ оперативки
(предел для 32 разрядной Win32) позволит
хоть немного бороться с бичом 32 разрядных систем –фрагментацией оперативной памяти при выполнение больших
запросов.
Крайне не рекомендую использовать 32
разрядные системы с большими конфигурациями
типа УПП. В какой-то момент вы просто не сможете обновить конфигурации
без перезагрузки сервера 1С. В какой-то момент не поможет и перезагрузка. В
нашем случае мы пока экономим деньги, а потом можно будет легко создать другую
ВМ с 64 разрядной системой и перенести все на нее почти не прерывая работы.
·
поскольку каждая виртуальная машина представляет собой программный
контейнер, то она может быть перенесена или скопирована, как и любой иной файл;
Полезная вещь, когда надо быстро перенести
систему на другой сервер.
·
возможность сохранения состояния виртуальной машины позволяет быстро
вернуться к точке до внесения изменений в систему;
·
в рамках одной гостевой операционной системы может быть развернуто
несколько виртуальных машин, объединенных в сеть и взаимодействующих между
собой;
·
виртуальные машины могут создавать представления устройств,
которых физически нет (эмуляция устройств).
Из недостатков – вполне предсказуемое некоторое снижение
скорости работы. Но намного менее существенное,
чем при использовании бесплатных SQLсерверов.
Железо для сервера:
Процессор intel-corei3-4130 (4 ядра)
Материнская плата GA-Z87M-HD3 (с поддержкой RAID)
2 жестких диска по 1GB (sata).
8 ГБ
ОЗУ.
Итак, этапы создания:
1.
Скачиваем последний дистрибутив ubauntu для 64 разрядных
систем cсайта http://www.ubuntu.com/download/desktop
Лучше всего подойдет дистрибутив для
десктопа, так как серверные функции в HOSTсистеме задействованы слабо.
Качаем утилиту для создания загрузочной флешки
с вышескачанным образом
http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
и следуем инструкциям. на сайте.
2.
Если у вас RAID: устанавливаем в БИОСе режим работы SATA– RAID. Перегружаем.
CTRL+Lпри старте и входим в настройки RAIDконтроллера.
Устанавливаем параметры RAID. Я выбрал зеркалировать
весь диск и режим работы зеркало. Перегружаем.
3.
Загружаемся с флешки. В стартовом меню выбираем
попробовать ubauntuu
без установки
и загружаем сокращенную версию ОС в
оперативную память. Можно попробовать и выбрать сразу установку ОС , но на зеркале
система давала ошибки разбиения на партиции, штатная утилита не справлялась.
4.
В загруженном графическом интерфейсе заходим в
установленные программы и запускаем GParted.
Подробнее о разбиении диска: http://help.ubuntu.ru/wiki/разделы_и_файловые_системы_linux
Я отступил от рекомендуемой схемы и не стал
делать отдельный раздел для HOSTOSи для данных. Это вызвано тем, что мне не удалось создать
файл виртульной машины в подмонтируемой
области. К сожалению мне будет сложнее переставить ОС и не затронуть
данные.
Я выделил на SWAP 10 GB (чуть больше ОЗУ), остальное создал
один большой раздел EXT4.
5.
Прямо из интерфейса нажимаем кнопку Установить ubauntu и соглашаемся со всеми вариантами ответов, только
выбираем русский язык. Перегружаемся.
6.
Сразу после загрузки меняем графический
интерфейс на старый добрый гном. Иначе после установки VirtualBoxпропадут
все менюшки из интерфейса и вы останетесь с красивым но пустым экраном.
Подробные инструкции http://liberatum.ru/exclusive/gnome-3.12-v-ubuntu-14.04
7.
Устанавливаем VirtulBox следуя
инструкциям: http://help.ubuntu.ru/wiki/virtualbox
По работе и настройке VirtulBox огромное
количество информации в интернете, рекомендую просмотреть любой ролик на ютубе.
После установки создаем виртуальную
машину Win32Server. Я выделил 20 гб под
образ, хватило с избытком.
Для хранения данных потом всегда можно
будет создать отдельный файл любого размера и подмонтировать его как отдельный
виртуальный диск.
8.
Создаем папку для обмена по сети. Устанавливаем sambaсогласно
инструкциям: http://linux-notes.org/ustanovka-i-nastrojka-samba-na-ubuntu-14-04/
Открываем в файловом менеджере эту папку и
расшариваем ее для всех пользователей с правом записи. В свойствах виртуальной
машины делаем доступной эту папку для обмена.
Загружаем
в нее дистрибутивы и образы (ISO) для последующей установки.
9.
Устанавливаем
Windows2003 сервер, подмонтировав
соответствующий ISOв свойствах виртульного CDrom. Установка совершенно стандартная.
10.
После того,
как гостевая операционная система будет установлена, необходимо установить
дополнения гостевой операционной системы в целях оптимизации гостевой системы и
улучшения ее взаимодействия с хостовой операционной системой. VirtualBox-4.3.12-93733-Win.exe
Эти драйвера позвляют использовать нормальное
разрешение экрана из GUESTсистемы, что
очень важно для дальнейшей установки и работы. Драйвер можно найти в
дистрибутиве, но проще скачать из интернета.
11.
Меняя подмонтированные ISOили из
файлов дистрибутивов устанавливаем Сервер 1С, ServerSQL,настраиваем терминальный сервер. Действия ничем не отличаются
от настройки невиртуальной системы.
12.
Теперь для того что-б наши серверы были видны
снаружи виртуальной машины, нам необходимо прокинуть порты, используемые нашими
серверами. Входим в настройки сетевой карты виртульной машины и формируем нечто похожее:
Порт 3389 – порт Терминального сервера
1540,1541,1560-1561 -порты 1С
1433,1434,1954 SQLсервер (необязательно)
Удачи Вам!
PS:
Надеюсь вам понравится эта и другие мои разработки на //infostart.ru/profile/48714/.
Очень жду ваших комментариев
и пожеланий.
Молочников Олег Spb. 2014.
При всем уважении — ubuntu desktop (кстати, почему во всей статье написано ubauntu?)+virtualbox слабо подходят в качестве среды виртуализации — не надежно, да и не безопасно. Такую связку, на мой взгляд, стоит использовать лишь для сервисов, в которых надежность некритична.
для тех, кто знаком с ubauntuu 😎 следует начинать читать статью с двенадцатого пункта
(1) kolabaister, Вы затронули важную тему.По каким причинам вы считаете связку ненадежной? Какую связку порекомендуете? Какие источники информации?
Как организовали размещение и привязку к параметрам системы программные лицензии, или у вас физические ключи? По опыту на прошлой работе остановились на варианте размещения всех имеющихся программных лицензий на отдельной виртуальной машине с SQL сервером, чтобы обеспечить равномерное распределение лицензий между клиентами физических и виртуальных машин в сети и задействовать всю гибкость виртуализации по-возможности (в том числе для быстрого восстановления работы после выхода из строя физических машин). Виртуализация была построена на встроенный в ядро KVM. Так вот после обновления KVM почему-то менялось представление виртуального процессора и слетали активированные лицензии. В другой раз образ виртуальной машины был перемещен физически на другой сервер — слетели лицензии поскольку изменилось сетевое имя виртуальной машины. Естественно был восстановлен образ из бэкапа на прежнее место и все снова заработало. После таких инцидентов даже подумывали о замене не аппаратные ключи. Но что все таки лучше, размещать программные лицензии на физической или виртуальной машине, для меня пока остается актуальной дилеммой.
(2) В целом хорошая инструкция для ленивых — все в одном месте, все ссылочки собраны самому искать ненужно. Единственное, что выглядит конечно все негармонично, связка w2k+sql2008+1c 8.3, сервер собирается на десктопе, налицо жадность руководства и попытка слепить … конфетку. Немного не согласен про несовместимость w2k с контроллерами, тут уж надо при покупке сервера думать сразу о софте. Кто ищет — тот находит, для примера ставим на вашу систему что то вроде Adaptec RAID 6405E ASR-6405E и уже какой никакой похожий на сервер продукт получается.
Еще заинтересовала фраза
это предположение или реальные испытания?
А почему Ubuntu а не бесплатный ESXi который как бы спец ОС для хоста виртуализации?
А я прям прослезился… А зачем вы это все делали? Это сервер если сервер как вы на него ходить то собираетесь по VNС(Или зачем еще вы дополнения поставили для гостевой ОС. Видимо чтобы рулить вашим сервером через VB)? С таким же успехом вы могли использовать в качестве хост системы WinXP все это смахивает на вертуализацию ради виртуализации абсолютно не обдуманную.
Знаете что я думаю если хотите Виртуализацию то лучше купить win2008R2 или старше чем сделать что то по этому гайду. И воспользоваться HyperV(Кстате MS не требует лицензии если я не ошибаюсь если роль только HyperV в системе установлена. Вот такие дела.) Ставить Ubuntu и вообще линукс не подготовленному человеку очень очень не рекомендуеться если не знаете что и где крутить или хотя бы логику системы гуглить запаритесь каждый чих. Есть вариант использования vmWare ESXi он тоже прекрасен пользуюсь vSphere в жизни просто счастлив. Использовать Vbox в продакшене да я теперь спать не буду от кошмаров.
(7) nSpirit2, про hyper-v не совсем верно там не роль можно установить, а отдельная консольная среда Microsoft Hyper-V Server 2008, установить можно бесплатно и на ней развернуть все что угодно. и с поддержкой оборудования не знать проблем и с производительностью/надежностью думаю не конкурент vbox.
(8) AlexInqMetal, не то что бы я был не прав. Вы просто не совсем внимательно читаете. Я Говорил о том что при покупке даже сервера Windows Server 2008 Standard можно использовать модель лицензирования 1+1. В смысле одна лицензия и для Гипервизора и для клинских ОС то есть то что описал автор не стоит дополнительных денег с точки зрения MS хватит одной лицензии.
(9) nSpirit2, а какой тогда смысл приобретать win 2008, если можно ничего не покупая поставить гипервизор от MS и на него свои лицензионные w2k
Ну и в этом случае я бы скорее воспользовался vmWare ESXi. А вообще w2k пора менять уже поддержка все вроде как.
(3) AlexInqMetal, Был у меня опыт на проекте когда перевод с MySQL под линуксом на MSSQL2008 по Win ускорил проведение базы в 7 раз, а сложные подборы стали работать мгновенно.
(5) murat_, Пользовательские ключи раздаются по сетки с другого компьютера, а серверный прокинут по USB.
(6) zhenyat, По плану, на гостевую ОС нужно будет доставить очень специфичный софт.Но почему все так уверены в преимуществах ESXi?
(7) nSpirit2, Это реальный негативный опыт?
(12)
читаю как postgre, или я чего то не знаю. Это очевидный факт что postgre медленнее чем ms sql при сравнении на реальном железе. Просто по вашему заявлению следует понимать что ubuntu+vbox+mssql, ubuntu+vbox+сервер1с работает значительно быстрее чем если убрать прослойку vbox и сделать ubuntu+сервер1с+postgre. Такое сравнение было бы интересно и совсем не очевидно останется ли за MS значительный выигрыш в производительности.
(15) Да есть много негативного опыта использования VBox. Я бы честно не стал использовать его на чем то более менее серьезном да и UFW идущий в комплекте с Ubuntu не самая надежная чтука. В большинстве случаев 1С это довольно критичная система для предприятия чтобы пытаться так виртуализировать. В моем скромном понятии одной из задач виртуализации должно быть повышение безотказности системы в вашем варианте это довольно сомнительно по скольку надежность Vbox оставляет желать лучшего. Во всех таких проектах при том что поступают подобные предложения с Линуксом я всегда говорю что есть ли у вас готовность нести за такую систему отвественность. У меня есть те для примера кто целиком на линуксе работают с OpenVZ но это скорее исключение чем правило.
(17) nSpirit2, А можно небного подробнее о характере отказов, частоте.
(17) nSpirit2, Поддерживаю VSphere — самый оптимальный вариант. Устанавливается на любое оборудование. Если используются аппаратные ключи защиты это единственное решение, которое поддерживает проброс в виртуальную машину подключенного устройства к host системе. Причем делает это очень стабильно и без отказов. Пробовали использовать XenServer — проблема с USB, есть решение использовать Digi USB-IP тоже вариант.
А так на сегодня:
Если будете строить отказоустойчивое решение то понадобится как минимум два сервера + надежное хранилище.
Мы на сегодня используем связку HP DL380 — 2 шт + HP 3PAR StoreServ 7200 + Digi USB IP так как используются аппаратные ключи, они нам больше нравятся.
В этом случае при отказе одного физического сервера, вся система поднимается на втором. А так ключи подключены через USB по IP то они подключаются автоматически, без физического переноса. Конечно решение не из дешевых получилось, но при работе более 50 пользователей одновременно с разных территорий.
(18) Большая часть проблем с VBox связана с ним самим часто валился в ошибку ядра. Один раз хотел работать только от рута. Была пара проблем с тем что виртуалки не могли поделить память. С тех пор как Sun больше нет мне кажется, что Оракл немного подзабыл на него. Ну а вы сами попробуйте ради интереса перенести свою vm на другой компутер с установленным VB.
Этот этап с виртуализацией на убунту и виртуалбокс я тоже проходил.
Пока остановился на Esxi 5.5.
ребятам о зверятах 🙂
(11) nSpirit2,
То же смотрю в сторону vmWare ESXi
Ну … не w2k а w2003- большая разница, однако
а во вторых, кто бы оплатил обновление терминальных и на доступ лицензий под 2008/12 server?
выходит порядка 5тыс на место*50=250 тыс, нужно ещё постараться доказать важность расходов в сегодняшнем кризисе.
Могу посоветовать другое решение:
1. посмотреть в сторону ProxMox(Сам уже использую в нескольких конторах) — из преимуществ:
1.1. Сама система разворачивается за 10 минут.
1.2. Имеет веб интерфейс для управления виртуальными машинами(с доступом к экрану вирт. машины — если установлен java)
1.3. Встроен механизм резервирования и кластеризации.
2. Отказаться от использования Fake Raid на материнской плате. т.к. в случае выхода из строя последнего. Вам придется искать такую-же материнскою плату, что-бы вытащить с рэйда данные.(смотрите в сторону mdadm). Если в рэйде нет батарейки, то смысл от этого рэда, до первого выключения света.
3. Я ставлю на отдельном физ. диске основную систему. Рядом разворачиваю рэйд и туда ставлю виртуальные машины. и в случае выхода из строя первого диска. развернуть систему можно будет на любом другом диске, примонтировав рэйд с витруальными машинами.
Если будет интересно, могу попробовать написать статью. Но не в ближайшее время.
Смущает выбор железа (GA-Z87M-HD3) под сервер без поддержки ECC памяти!?
(22) vasiliy_b, Ого а что в качестве гипервизора используете? KVM?
(24) nSpirit2, там не полный коментарий
Да я понял что не полный но мне сам факт интересен сам ProxMox просто надстройка для управления KVM либо OpenVZ(По моему раньше точно выбор был) теперь собственно сам вопрос как вам для виндов он? Вы ведь KVM используете?
(26) nSpirit2, Сейчас там используется только KVM. Винда там нормально работает(знаю организацию, где такая схема запущена, так же одно время дома разворачивал сервер виндовый). Но я на текущий момент стараюсь использовать только Linux решения.
(22) vasiliy_b,
Про встроенный в мамки RAID относительно согласен- проблемно
но в данном случае не важно, т.к. используется RAID1- то биш зеркало…иначе да.
(29) СергейК, Не буду, спорить(так-как я не специалист в подобных рэйдах), но думаю что такие рэйды, могут писать на диск служебную информацию. Которая окажется несовместима с другими рэйдаи. Лучше изначально отказываться от таких решений. и использовать mdadm. Тем более гуру linux на него не жаловались.
(30) Dragonim,
Легко оспариваемо. В тексте лицензии на Win2003 нет прямого запрета на установку на виртуальную машину. Что не запрещено, то разрешено. Частное мнение специалистов MS — это только частное мнение, когда есть текст лицензинного соглашения, который мы не нарушаем.
(30) Dragonim,
откуда информация, лично спрашивали?
(34) Примерно раз в год хожу на конференцию на которой бывают специалисты по лицензированию майкрософт (это не я их так называю, это их должность в компании, в майкрософт настолько сложная система лицензирования что они имеют отдельных людей которые поясняют что да как). На каждой конференции спрашивают по лицензированию виртуальных серверов, ответ всегда одни: «Если вы купили OEM лицензию привязанную к железу, то должны использовать эту лицензию на данном железе без права переноса на другое. Можете постановить гипервизор на данное железо и поставить туда гостевую виртуальную машину согласно данной лицензии, но данная гостевая ОС не может быть экспортирована или мигрирована на другое железо. Проще говоря вы занимаетесь фигнёй, т.к. не нарушая лицензии и устанавливая виртуальную ОС вы не получаете ни каких плюшек от виртуализации. Если вы покупаете лицензию как коробку (FPP) то можете без нарушения устанавливать её как виртуальную машину, т.к. в данном случае лицензия не привязана к железу. В том и другом случае нельзя одновременно использовать 2 включённые виртуальные машины по одной лицензии.»
Автор топика не нарушает лицензионное соглашение если:
1. у него OEM win2003 и он устанавливает виртуальную виртуальную машину на тоже железо для которого была куплена OEM лицензия.
2. у него FPP и он может устанавливать виртуальную машину на любой понравившийся ему компьютер.
и в том и другом случае он может иметь одновременно включенную только одну виртуальную машину, т.е. идея разнести сервер 1С и SQL базу на разные виртуальные машины из одной лицензии нарушает лицензирование.
Ещё имеются программы корпоративного лицензирования, там всё совсем тёмно, но в таком случае вы будете на поддержке и можете позвонить своему менеджеру и пусть он сам вам объясняет политику майкрософт.
(35) Dragonim, спасибо КЭП))) «OEM привязана к железу, нельзя использовать две активные копии если лицензия на одну копию» Для того чтобы это узнать не нужно ходить на конференции и слушать серьезных дядек из майкрософт, достаточно прочитать лицензионную политику windows, если лень лицензионное соглашение листать, можно коротенько почитать правила лицензирования — на сайтах у многих вендоров размещают. Не пойму к чему было разводить рассуждения про нарушение лицензии если автор нисколько не упоминает что использует OEM лицензию или одну и ту же лицензию на обеих ВМ.
а в вашем посте (30) ответ спеца явно некорректен, простая отписка, поскольку он даже не уточнил тип лицензии, а учитывая стоимость серверных продуктов лицензии OLP и FPP встречаются намного чаще OEM
(0) Посмотрите как вы в сторону docker.io и получите что-нибудь вот такоеhttps://plus.google.com/105168201020492918809/posts/eRmB3FAJ6B3
с помощьюhttp://openshift.github.io/geard/deploy_with_geard.html можете получить нормальную развернутую инфраструктуру.
На всякий случай почитайте, что виртуализация для 1С и Microsoft стэка сейчас по честному работает только в Azurehttp://habrahabr.ru/company/microsoft/blog/201638/ .
Если хотите виртуализировать собственными силами, то есть парочка советов из жизни:
1. пакеты от 1С (сервер и СУБД) используйте в виде RPM пакета — соответственно вместо ubuntu контейнер должен базироваться на centos.
http://docs.docker.com/examples/postgresql_service/
2. в качестве сервера СУБД лучше использовать PostgreSQL — он возможен для докеризации
Вам нужно будет только поменять
Ну и т.д. Отдельный совет — сейчас основной момент «люди отказываются от виртуализаций операционных систем», «люди переходят к виртуализации служб-сервисов» — а здесь и появилось понятие контейнеров.
(37) lustin, в комментариях по вашей первой ссылке вы планировали небольшую публикацию с видео и Dockerfile’ом… очень интересно ознакомится с ними, если они существуют. спасибо за ссылки! также хотелось бы услышать аргументацию столь категоричного предложения использовать rpm-пакеты, и чем deb-пакеты не угодили? можно ли вместо CentOS использовать ALTLinux, там ведь также используются rpm-пакеты, и вроде в репозиториях, если не в дистрибутивах, имеются специально для 1С пакеты 1c-preinstall и 1c-preinstall-full?
(37) lustin, И почему ваш выбор RPM-Base дистрибутива пал на цент ос? Все есть и в Deb пакетах? Лучше поставить посгре но с посгре 1с не работает а работает с посгре пропатченым 1с вы бы хоть посмотрели что они пропатчили перед тем как писать что посгре лучше. Люди уже давненько пользуются OpenVZ и используют так называемые контейнеры. И что такое виртуализация сервисов о_0 пример пожалуйста.
Весь фетиш в том, что виртуализация в рамках Ubuntu делается? Но виртуальные машины на базе MS Windows и SQL все-равно работают? Т.е. экономия на лицензии серверной ОС, той же Win2008 R2?
Помимо денежной экономии (да и весьма не солидной как понимаю), альтернативные решения должны предоставлять и другие неоспоримые плюсы, иначе смысл в сложности реализации схемы? Или есть другие преимущества, вроде бесплатного проброса физических ключей Hasp?
Псевдоэкономия в виде кучи потраченного времени. Возьмите лицензию Windows 8.1, HyperV — и в путь. Дешево и сердито.
Хорошая была бы публикация, которая бы описывала установку сервера 1С абсолютно и полностью на бесплатном ПО (ОС, СУБД, за исключением лицензии 1С) с настройкой он А до Я с обходом возможных подводных камней и для людей, которые в глаза не видели *nix системы.
(40) insurgut,
А на вскидку прикинте «несолидную» экономию на 50 раб.мест.Это я про то что кажется частенько забывают про CAL обычные и терминальные, которые то же надо будет докупить…
(41) СергейК, С политикой лицензирования MS начиная с ws 2008 в случае использования ее на под SQL и сервер 1С небудет никакой экономии вообще потому что и для виртуальной машины и калы и лицензия нужна а как я уже писал выше для использования ws 2008 и в качестве гостевой системы и в качестве гипервизора дополнительные траты не потребуются
(12) очень «интересный» опыт — 1С с MySQL… Как это?
Чем обусловлен выбор хостовой ОС, учитывая, что guest машины работают под управлением Windows?
Собственно вопрос вызван тем, что у MS есть бесплатная версия — Windows Hyper-V Server.
(35) ОЕМ на сервер? обычно на десктопах встречается оем
У меня на одном сервере мирно живут 14 виртуальных машин, включая сервер 1С, сервер СУБД и сервер терминалов. Правда, железо помощнее, чем у автора статьи. В моем случае виртуализация как раз призвана была разумно нагрузить железо, дабы оно не простаивало.
Виртуализовано все на esxi. Собственно, рекомендовал бы именно его использовать. За полтора года эксплуатации никаких нештатных ситуаций.
Если что, VirtualBox бесплатен только для частного (чаще всего тестового) использования. Для коммерческого юзанья требуется заплатить деньги. Да и по производительности проигрывает другим. Если уж в таком варианте, ставьте бесплатную Microsoft Hyper-V Server 2012 R2 (виртуальные машины под ней можно админить с помощью бесплатного ПО, которое можно ставить на хостовую машинуhttp://www.5nine.com/5nine-manager-for-hyper-v-free.aspx) и под ней запускайте ms-гостей. СУБД без особой надобности лучше вообще не виртуализировать, дабы не проиграть в производительности по дисковой подсистемы, хотя конечно зависит от нагруженности СУБД.
(47) Upiterus, дисковую подсистему для сервера БД можно не виртуализовывать.
(38) nSpirit2, Фраза «вы бы хоть посмотрели, что они пропатчили» а также отсылка к OpenVZ выглядит как предложение похоливарить в стиле LORa видимо. Но давайте не будем. Мы не только просмотрели, но и используем — причем лет этак уже 8 (блин — какой я старый).
В комментарии съелась часть фразы «вам остается только заменить пакет на postgreSQL + patches1C — что с помощью Dockerfile позволяет пересобрать PostgreSQL с необходимыми патчами 1С
Что касается OpenVZ — то сравнивать его с Docker не совсем верно. С OpenVZ нужно сравнивать LXC — тогда станет многое понятно.http://ru-openvz.livejournal.com/1970.html Вы то это видимо знаете, а остальные вполне возможно нет.
(39) будет публикация — всему свое время. В процессе ее подготовки нам удалось все таки развернуться в полноценном окружении — в момент того как мы обсуждали получившиеся скрипты для автоматического масштабирования нашелся интересный проектhttp://openshift.github.io/geard/ .
https://github.com/openshift/geard/blob/master/docs/orchestrating_geard.md
НА данный момент у меня идут эксперименты с
Ну а про RPM скажу — я исхожу из полученного эмперического опыта
1. есть предположение, по косвенным признакам, что deb пакеты от 1С используют alien (для конвертации из RPM) а исходная сборка идет именно RPM пакетов — одним из таких признаков была ошибка в /etc/init.d/ скриптах под Debian с используемым интерпретатором для init.d скриптов
2. а также дело также в том что базисными ядрами для сборки последнее время во многих платформах облачных используется ядра RHEL, а не ванильное ядро.
Но это пока действительно эмперический опыт — при использовании RPM пакетов количество артефактов субъективно ниже. При этом вас прошу учитывать, что в священной войне RPM vs DEB я на стороне «дебианщиков», личной любовью к RPM не обладаю.
(49) lustin, Посмотрели и вам понравилось? По моему этот изврат не достроен жить негде кроме тестовой машины. Я посмотрев патчи и разобравшись что к чему решел что покупка Windows для 1с самое то. И красную шляпу с ней не было решено не дружить.
Я так и не понял в чем смысл использование докера ? Запустить на одной машине параллельно несколько серверов 1С изолировано средствами LXC зачем мне тоже не понятно( Как при всем этом быть с ключами паковать программные ключи в пакеты что ли интересно блин. Не думаю что модель OpenShift сильно применима для 1С так как все PaaS сервисы имеет ряд неприятных ограничений. Или простите вы у себя хотите ОпенШифт развернуть ? собственно зачем?
(50) nSpirit2, Дико извиняюсь. Я действительно не хотел разводить священную войну.
1. Патч мне очень понравился, но пока писал комментарий он получился достаточно длинный. Переформатировал его в виде записи блогаhttp://goo.gl/xk49un — там написано почему. Изучив патч я смог запустить связку с 1С в production, да так что проблем так и не наблюдалось.
2. что касается docker — основная фишка не в виртуализации, а в конфигурационном менеджменте и развертыванию на облачным платформах всей необходимой обвязки. Будет что показать в How-to обязательно покажу.
(51) lustin, Простите я видимо не очень понял как оставить комментарий на вашем блоге) Так что выскажусь тут я вижу вы патч посмотрели па значит обратили внимание на то как реализован патч написанный 1С включает для Посгре подразумевает что при использовании автоматической блокировки используется блокировка таблиц целиком. Да при всех документах с управляемой блокировкой все будет прекрасно а теперь посчитайте что дешевле MS SQL или переписать УПП на управляемые блокировки и обновлять его еще. Так что я думаю даже бесплатность для такого плохой довод. За бесплатно вы получатете файловую базу с точки зрения блокировок тока в СУБД.
В патче реализовано 2 вида табличных блокировок APPLICATION SHARED и APPLICATION EXCLUSIVE а знаете зачем они. Вы наверняка знаете почему посгре версионник? Да потому что он не накладывает блокировки на прочитанные данные. Ну почему же 1с придумали свои блокировки а не используют блокировки Посгре. А все просто как версионник Посгре не предпологает долгие блокировки таблиц поэтому его блокировки конфликтуют с autovacuum который если его долго не делать приведет к значительному ухудшению производительности. Если вы считаете что такое приписаное с боку решение нормально то мне кажется оно вырожденным и неадекватным. База не предполагает такой подход к блокировкам которые реализует 1С.
Я всегда был за линукс но вот линукс ради линукса меня сильно удручает. И вот 1С какрас в текушем состоянии это линукс ради линукс с сомнительными доводами за пользу в этом линукса. Ну кроме 12 пользователей конечно. 😀
Линукс это не дешевое решение просто платить вы будете не производителю по а тому кто будет за ним следить.
(52) nSpirit2, Я обращаю ваше внимание, что вы видимо искали возможность оставить комментарии в блоге (слава богу, что не нашли), вместо того чтобы читать. И еще раз повторюсь что такая коммуникация не интересна. Тем более в этой публикации.
(53) lustin, Хорошо с нетерпением жду публикации ваших наработок с Докер. Я всетаки рекомендовал бы вам ознакомится с тем как 1С реализовали блокировки в Посгре повнимательней. К счастью у меня есть проекты на Посгре отличные от 1С и даже разработчики есть знакомые в их стане. И я за них искренне рад что теперь у них есть финансирование для дальнейшей разработки СУБД. (Не от хорошей жизни они писали патч для патча 1С)
Что-то не понял: разговор начался с несовместимости Win2003 с некими «современными» железяками, а в итоге все хозяйство устанавливается на калькулятор. Где логика? Под какую нагрузку рассчитана эта связка?
(54) nSpirit2, спор ни о чем, я уже обратил внимание что у вас основной опыт только на чистом PostgreSQL, и тоже рекомендую вам ознакомится с патчем в реальной работе с реальными 1С программистами. Что касается вашего опыта с postgresql — то я вам настоятельно рекомендую ознакомиться с количеством форков postgresql на github. Вы наверное с высоты своего опыта тоже скажете, что 385 форков — это тоже не от хорошей жизни.
https://github.com/postgres/postgres/network
Я вам сейчас еще больше скажу — глобально у нашей команды сейчас стоит использовать postgresql на OpenStack для любых продуктов — на 1С или на Ruby on Rails, а там сейчас без патчей никуда, причем патчи на ядро PostgreSQL — и 1С тут вообще не причем.
Поэтому у меня всё больше сомнений в вашей вменяемости вместе с вашими знакомыми. OpenSource он такой — без своих патчей никуда в реальной жизни. Смиритесь с этим. Что касается патчей 1С — то ORM всегда накладывает особенности при разработке приложений использующих СУБД.
https://ru.wikipedia.org/wiki/ORM
Мне жутко интересно как вы там в своих проектах на чистом PostgreSQL реализовали слой транзакций. Видимо вручную с помощью запросов ? Тогда мне в свою очередь жутко интересно как этот проект развиваете, каждый раз долго и мучительно продумавая управление блокировками «с нуля» ? Вам повезло если вам дают на это время. В больших проектах автоматизации бизнеса, слой транзакций должен быть универсален и достаточно стабилен, чтобы иметь возможность собственно наращивать функциональность.
(56) lustin, Это правда отличный вопрос 🙂 Прошу меня извинить но это уже действительно интересно) Я вот эту часть если четно не смотрел новые конфигурации 1С полностью реализованы на управляемых блокировках? Как я уже говорил то проблема реальной 1С в том что при использовании автоматической блокировки как например в большей части УПП посгре силами патча 1С использует табличные блокировки что строго говоря не оптимально. Я вот какрас про те решения которые используются я думаю что перевалиться с УПП на ERP 2.0 еще никакая большая компания не перевалилась.
Я бы с удавольствием почитал про сервер 1С под ОпенСтек Вы планируете написать хоть какой то обзор по этому поводу.
По поводу ГитХаба там есть и мой форк посгре. Насколько вы знаете это один из способов написать патч(Исправление ошибки тут имеется) разработчики твой патч посмотрят и применят или не применят. ОпенСорс хорош тем что можно поправить проблему самому. Не думаю что все форки пытаются сильно переделать оригинал скорее исправить или что то добавить.
Ксожелению мой опыт работы с посгре настолько специфичен что я думаю это вообще не тема для обсуждения. К сожалению пришлось написать свою ОРМ систему. Не знаю насколько я «Одекватный» но скоро великий Посгре научиться отдавать JSON. Что собственно не может не радовать так как большая часть нашей ORM библиотеки с этим связана и была. Да вы правы мы написали полностью свой ORM для работы с базой с управляемыми транзакциями записи. И не используем блокировки на чтение такая уж специфика мы не 1С 😀
*Плюнул на Ruby* (Не сочтите за оскорбление 😀 )
да
(1) kolabaister,
Судя по всему ребята не любят Мелкософт, а он как раз таки полноценно сливается с 1с и работает как единое целое, зря про Hyper-V и не вспомнил штука хоть и платная входящая в состав винды но очень стоящая а еще VmWare
(59) teranp, если бы удосужились почитать комментарии, то убедились бы что про esxi и hyper-v уже упоминали и не раз, а так же почерпнули бы для себя полезную информации о том что hyper-v в общем то бесплатен.
(1) kolabaister, а почему бы не рассматривать статью в разрезе шаблона и руководства к действию? Можно же разработать свою схему.
(40) insurgut, Поверьте, помимо моей статьиhttp://www.bubnov.su/stati/ustanovka-servera-1s-8-3-i-postgresql-9-2-na-centos-linux их в сети великое множество.
Если мои потуги годичной давности (8.3+Postgres) или трёхгодичной (8.2+DB2) будут интересны на инфостарте — могу и разместить (предварительно причесав)…
(62) bubnov-pi, верю что великое множество, и когда начинаешь смотреть и применять каждую, всплывают те или иные не описанные в статье нюансы. Если честно, не понятно, почему 1С еще коробочную версию не собрала… Ну или другая инициативная группа 🙂
P.S. На досуге попробую по вашей статье поднять сервер 1С на Linux 🙂
(62) bubnov-pi, не имеет смысла, большинство ставят mssql и не парятся
(64) PiccaHut001, Согласен — для тонкой настройки DB2 нужен или мега-мозг (который стоит немалых денег) или очень много времени или всё равно ничего не получится и всё будет тормозить. С postgres всё тоже не идеально, если конфа ещё не переделана под управляемые блокировки (все старые решения). Так что мои подшефные, три года назад запустившиеся на ubuntu уже год как пересели на MSSQL.
Мой текущий проект пока работает в чистом Linux, правда с платформы 8.3 откатились на 8.2, и клиенты запускаются под wine, но основной функционал работает приемлемо.
пожалуйста, не пишите ubauntu (T-T)
(65) bubnov-pi, поставил DB2 под win, дистрибутив с сайта 1С. Вроде полет нормальный. Для чего нужна тонкая настройка? Для управляемых блокировок?
Нет — блокировки как раз уже настроены, если использовать дистрибутив с сайта 1С.
Тонкая настройка преимущественно заключается в конфигурировании модели использования оперативной памяти — с настройками по умолчанию DB2 (вообще говоря, и postgres, да даже и MSSQL) неэффективно использует память, из-за чего начинает плодить файлы временных таблиц, или пытается «съесть» памяти больше, чем есть (выделено) и начинает свопиться, что сильно снижает производительность. Для каждого SQL-сервера есть собственные приёмы тюнинга — я их не изобретал, а использовал чужие рекомендации, естественно, адаптируя под конкретные свои условия.
(68) bubnov-pi, беда, столкнулся с первым подводным камнем. Как только запускается обмен — сервис DB2 останавливается.
(69) insurgut, «Как только запускается обмен — сервис DB2 останавливается — 1С как всегда, облажался
(69) insurgut, с какой диагностигой встаёт DB2? Если обмен запускается как регламентное задание или вручную — результат всегда одинаковый?
В моём случае DB2 и 1С работали под Ubuntu, и на разных серверах. Проблем с падением DB2 не наблюдалось — были некоторые глюки в работе конфигурации (кастомные доработки, использующие какие-то экзотические режимы то ли группировок, то ли сортировок, которые на MS работают, а на DB2 сбоят)… ну и на всякий случай я бы ещё на форматы даты/времени обратил внимание — не помню на каком (postgre/DB2) сервере у меня были проблемы, но опять же — на стороне сервера 1С, а не баз данных.
(71) bubnov-pi, любят люди извращения, DB2, ubuntu, экзотические кодировки…
(72) PiccaHut001, кодировки-то как раз самые что ни на есть обыкновенные — юникод. 😉 Ведь не CP1251 или ISO866 использовать, в конце-то концов!
Что же касается формата даты, то тут не только 1С, тут вообще очень многие разработчики забывают, что 10 января 2014 не всегда пишется в виде 2014/01/10, а может быть и 2014-01-10 и 10.01.2014 и ещё не счесть сколькими нотациями записано, равно как и время, особенно после полудня. К слову, то, что 1С вываливается при несовпадающей с ожидаемой настройке формата даты SQL — ещё не криминал — при первом подключении агента 1С к SQL-серверу, он честно пытается изменить настройки базы данных, так что молодцы — по крайней мере, предусмотрели такое поведение. Но этот нюанс касается не только виртуализированных серверов, а любых.
Что же до выбора серверной ОС и SQL-сервера — здесь работает принцип экономической целесообразности — если ситуация позволяет не заботиться о стоимости лицензий на все серверные ОС, то можно и не заботиться о технических аспектах внедрения 1С, а отдать на аутсорсинг, а если бюджет ограничен, то приходится искать баланс — какую часть бюджета направить на услуги сторонних организаций, какую на аппаратное обеспечение, а какую на лицензии, соответственно, (временно) сэкономленные средства с лицензий можно направить на улучшение аппаратной части, либо на услуги внедренцев, а порой — и в фонд заработной платы…
(0) Система оказалась не так уж и ненадежна на практике. Прошло уже почти полгода без сбоев. Естественно регулярно делаются бэкапы и в случае чего все можно быстро восстановить.
Эксперимент продолжается! ( с согласия объекта эксперимента 🙂
(6) zhenyat, Вот вот… зачем городить велосипед если есть бесплатный ESXi)))
(0) Эксперимент продолжается. Проверил работу у клиента. 11.08.14 — 11.01.2016 сбоев нет.
(1) Смею возразить — на 3х серверах уже в течении 3х лет, с аптаймом 97% работает аналогичные связки. Проблем нет, практически от слова совсем, и это учитывая что 2 сервера на «десктопном» железе, а третий — именно на серверном оборудовании.
2 жестких диска по 1GB (sata). — мощно)
(46) Аналогичное окружение. За два года эксплуатации все штатно.
(0) Надо же, оно до сих пор еще работает. 11.08.14- 22.08.2018. (4 года, юбилей как никак).
А мусье знает толк в извращениях.
(2) Рекомендую HyperV — не требует отдельной лицензии — только на гостевые системы. virtualbox для виртуализации — это извращение. Мусье вообщем знает толк в извращения. Поднимается HyperV хост, на нем три виртуалки. В одной сервер 1С, в другой PosgreSQL — мой опыт говорит что ничем не хуже MSSQL разве что студии нет. Настраивать его кончено нужно уметь. MSSQL кстати тоже — но MSSQL на дефолтных куда лучше работает чем PostgeSQL отсюда наверное и миф о том что MS SQL лучше. Ну а на третей поднимайте сервер 2003. В Итоге модно надежно молодежно. И на базу нет никаких ограничений.
(12) Да ну. Спорю на ящик коньяка(VOSP), дайте мне доступ к PostgreSQL и я сокращу разрыв в производительности на PostgreSQL на эти 7 раз. Я Выше уже написал PostgreSQL надо уметь настраивать, как впрочем и MSSQL. Но MSSQL на дефолтных настройках да по лучше работает, чем постгрес на дефолтных. А так дело не в базе а в кривых руках.
(83) спорим, есть типовые решения (которые уже для отдельных продуктов оптимизировали, но для моего случая — нет) где ПГ слил. Например соединения со срезами, например, два полных соединения и т.д.
Тыкнул 1С носом, а они меня послали… на хотлайн автора типового решения (продает 1С, но автор — сторонний).
Пришлось все самому перепиливать, благо от псевдоподдержки отказались.
Ящик VSOPа приберегите! ) MSSQL всеяден, а ПГ нужна диета из правильных соединений )
А при красивом коде они работают конечно одинаково хорошо. Это факт. Никаких 7 раз не будет.
ПС:
Все думают, что вот, покручу конфиг и все взлетит… Ох, нет… На 99.99% все зависит только от 1С. Как впрочем всегда и везде. Есть рекомендации 1с, тренинги и т.п. где четко рассказыватся на какие настройки стоит обратить, внимание, а какие можно покрутить, в частности в сборке для 1с.
Особенно умиляют DBA, решающие все вопросы ТОЛЬКО конфигами, флагами трассировки. Отключения NestLoop — это вообще перл!!! )) Хоть ты бань, и не подпускай к серверу )
(84)
ну да ну да.
(84)
Аздесь пишут, что это вполне годная рекомендация для ряда определенных случаев в конкретных конфигурациях(правда, этой рекомендации уже много лет).
(86) на самом деле это большая тупость.
Выручая от полного зависания отчет по ос мы полностью просаживаем производительность по элементарным запросам, например, запись регистров в базу с условной 0.1 сек увеличивается до 10.
Это такое быстрое решение: сделать всем плохо, чтобы хоть как-то оживить отдельный запрос. В этом есть смысл, только когда нет программиста.
Весь сервис 1с фреш работает на пг, без таких выстрелов по ногам.