4 July

Собираем сервер для графических и CAD/CAM приложений для удаленной работы по RDP на базе бу CISCO UCS-C220 M3 v2

System administrationWorking with 3D-graphicsNetwork technologiesServer AdministrationRemote work
Recovery mode
image
Почти у каждой компании сейчас обязательно есть отдел или группа работающая в CAD/CAM
или тяжелых дизайнерских программах. Эту группу пользователей объединяет серьёзные требования к железу: много памяти — 64ГБ и больше, профессиональная видеокарта, быстрый ssd, и чтобы было надежное. Зачастую компании покупают некоторым пользователям таких отделов несколько мощных ПК (или графических станций) и остальным менее мощные в зависимости от потребностей, а также финансовых возможностей компании. Зачастую это стандартный подход для решения таких задач, и он нормально работает. Но во время пандемии и удаленной работы, да и в общем — такой подход неоптимален, очень избыточен и крайне неудобен в администрировании, управлении и прочих аспектах. Почему это так, и какое решение идеально удовлетворит потребности в графических станциях многих компаний? Прошу пожаловать под кат, где описано как собрать рабочее и недорогое решение, чтобы убить накормить сразу нескольких зайцев, и какие мелкие нюансы нужно учесть, чтобы успешно внедрить это решение.

В декабре прошлого года одна компания открывала новый офис для небольшого КБ и была поставлена задача организовать им всю компьютерную инфраструктуру учитывая, что ноутбуки для пользователей и пару серверов у компании уже есть. Ноутам уже было пару лет и это были в основном игровые конфигурации с 8-16ГБ ОЗУ, и в основном не справлялись с нагрузкой от CAD/CAM приложений. Пользователи должны быть мобильными, так как часто необходимо работать не из офиса. В офисе к каждому ноуту дополнительно покупается еще по монитору (так работают с графикой). При таких входных данных — единственно оптимальное, но рискованное для меня решение — внедрить мощный терминальный сервер с мощной профессиональной видеокартой и nvme ssd диском.

Преимущества графического терминального сервера и работы по RDP


  • На отдельных мощных ПК или графических станциях большую часть времени аппаратные ресурсы не используются даже на треть и простаивают без дела и только короткий период времени используются в 35-100% своей мощности. В основном КПД составляет 5-20 процентов.
  • Но часто аппаратная часть далеко не самая затратная составляющая, ведь базовые графические или САД/CAM лицензии на ПО часто стоят от 5000$, а если еще с расширенными опциями то и от 10 000$. Обыкновенно в сеансе RDP эти программы запускаются без проблем, но иногда необходимо дозаказывать RDP опцию, либо поискать по форумам что прописать в конфигах или реестре и как запустить в сеансе RDP такое ПО. Но проверить, что нужное нам ПО работает по RDP нужно в самом начале и сделать это просто: пробуем зайти по RDP — если программа запустилась и работают все базовые программные функции, то и проблем с лицензиями скорее всего не будет. А если выдает ошибку, то перед реализацией проекта с графическим терминальным сервером, ищем удовлетворительное для нас решение проблемы.
  • Также большим плюсом есть поддержка одинаковой конфигурации и специфических настроек, компонентов и шаблонов, что часто труднореализуемо для всех ПК пользователей. Управление, администрирование и обновление ПО тоже «без сучка и задоринки»

В общем плюсов много — посмотрим как на деле покажет наше почти идеальное решение.

Собираем сервер на базе бу CISCO UCS-C220 M3 v2


Изначально планировалось купить поновее и мощный сервер с 256ГБ DDR3 ecc памятью и 10GB ethernet, но сказали что нужно немного сэкономить и вписаться в бюджет на терминальный сервер 1600$. Ну ладно — клиент всегда жадный прав и подбираем под эту сумму:

бу CISCO UCS-C220 M3 v2 (2 X SIX CORE 2.10GHZ E5-2620 v2) \128ГБ DDR3 ecc — 625$
3.5" 3TB sas 7200 з США ід — 2x65$=130$
SSD M.2 2280 970 PRO, PCI-E 3.0 (x4) 512GB Samsung — 200$
Видеокарта QUADRO P2200 5120MB — 470$
Адаптер Ewell PCI-E 3.0 to M.2 SSD (EW239) -10$
Итого за сервер = 1435$

Планировалось брать ssd 1TB и 10GB ethernet adapter — 40$, но выяснилось, что UPS к их 2 серверам не было, и пришлось немного ужаться и купить UPS PowerWalker VI 2200 RLE -350$.

Почему сервер, а не мощный ПК? Обоснование выбранной конфигурации.


Многие недальновидные админы (много раз уже сталкивался) — почему-то покупают мощный (зачастую игровой ПК), ставят там 2-4 диска, создают RAID 1, гордо называют это сервером и ставят его в углу офиса. Естественно, что вся комлектуха — «сборная солянка» сомнительного качества. Поэтому распишу подробно почему подобрана под такой бюджет именно такая конфигурация.

  1. Надежность!!! — все серверные комплектующие спроектированы и протестированы для работы более 5-10 лет. А игровые мамки от силы работают 3-5 лет и даже процент поломки во время гарантийного срока у некоторых превышает 5%. А наш сервер от супернадежного бренда CISCO, так что особых проблем не предвидится и их вероятность на порядок ниже стационарного ПК
  2. Важные компоненты типа блока питания дублируются и в идеале можно подать питание с двух разных линий и при выходе из строя одного блока сервер продолжает работать
  3. Память ECC — сейчас мало кто помнит, что изначально память ECC была введена для коррекции одного бита от ошибки, возникающей в основном от воздействия космических лучей, а на объёме памяти 128ГБ — ошибка может возникать несколько раз в году. На стационарном ПК мы можем наблюдать вылет программы, зависание и прочее, что некритично, но на сервере цена ошибки иногда очень высока (например неправильная запись в БД), в нашем случае при серьезном глюке надо перегрузится и иногда это стоит дневной работы нескольких человек
  4. Масштабируемость — часто потребность компании в ресурсах вырастает в несколько раз за пару лет и в сервер легко добавить памяти дисков, поменять процессоры (в нашем случае шестиядерные E5-2620 на десятиядерные Xeon E5 2690 v2) — на обычном ПК почти никакой масштабируемости
  5. Серверный формат U1 — серверы должны стоять в серверных! и в компактных стойках, а не кочегарить(до 1КВт тепла) и шуметь в углу офиса! Как раз в новом офисе компании отдельно предоставлялось немного (3-6 юнитов) место в серверной и один юнит на наш сервер как раз был нам впритык.
  6. Удаленные: управление и консоль — без этого нормальное обслуживание сервера для удаленной! работы крайне затруднительно!
  7. 128Гб ОЗУ — в ТЗ было сказано 8-10 пользователей, но в реальности будет 5-6 одновременных сессий — поэтому учитывая типичный в той компании максимальный расход объёма памяти 2 пользователя по 30-40ГБ=70ГБ и 4 юзера по 3-15ГБ=36ГБ, + до 10ГБ на операционку в сумме 116ГБ и 10% у нас в запасе(это все в редких случаях максимального использования. Но если будет не хватать то в любой момент можно добавить до 256ГБ
  8. Видеокарта QUADRO P2200 5120MB — в среднем на пользователя в той компании в
    удаленном сеансе расход видеопамяти был от 0,3ГБ до 1,5ГБ, так что 5ГБ — будет достаточно. Исходные данные были взяти с аналогичного, но менее мощного решения, на базе i5/64ГБ/Quadro P620 2ГБ, которого хватало на 3-4 пользователя
  9. SSD M.2 2280 970 PRO, PCI-E 3.0 (x4) 512GB Samsung — для одновременной работы
    8-10 пользователей, необходимо именно скорости NVMe и надежность ssd Samsung. По функционалу этот диск будет использоваться для ОС и приложений
  10. 2х3TB sas — объединяем в RAID 1 используем для объёмных или редкоиспользуемых локальных данных пользователей, а также для бекапа системы и критическо важных локальных данных с диска nvme

Конфигурация одобрена и куплена, и вот скоро настанет момент истины!

Сборка, настройка, установка и решение проблем.


С самого начала у меня не было уверенности, что это 100% рабочее решение, так как на любом этапе, начиная со сборки заканчивая установкой, запуском и корректной работой приложений можно было застрять без возможности продолжить, поэтому про сервер я договорился, что его в течении пару дней можно будет вернуть, а другие компоненты можно использовать в альтернативном решении.

1 надуманная проблема — видеокарта профессиональная, полноформатная! +пару мм, а что если не влезит? 75вт — а что если pci разьем не потянет? И как нормальный теплоотвод этих 75вт сделать? Но влезла, запустилась, теплоотвод нормальный(особенно если кулеры сервера включить на обороты выше среднего. Правда когда ставил, для уверенности что бы ничего не замыкало что-то в сервере на 1мм отогнул (уже не помню что), а для лучшего теплоотвода с крышки сервера потом после окончательной настройки отодрал пленку инструкции, которая была на всю крышку и которая могла ухудшать теплоотвод через крышку.

2-е иcпытание — NVMe диск через переходник мог не увидится либо система туда не поставится, а если поставится, то не загрузится. Как ни странно Windows поставилась на NVMe диск, но загрузится с него не смогла, что логично так как биос(даже обновленный) ни в какую распознавать для загрузки NVMe не хотел. Не хотел костылить, но пришлось — тут пришел на помощь наш любимый хабр и пост про загрузку с nvme диска на legacy системах скачал утилитку Boot Disk Utility (BDUtility.exe), создал флешку с CloverBootManager по инструкции из поста, установил флешку в биосе первой на загрузку и вот мы уже грузим загрузчик с флешки, Clover успешно увидел наш NVMe диск и через пару секунд автоматично с него загрузился! Можно было поиграться с установкой clover на наш raid 3TB диск, но было уже субота вечер, а работы оставалось еще на день, ведь до понедельника нужно было или отдавать сервер или оставлять. Загрузочную флешку оставил внутри сервера, там как раз был лишний usb.

3-я почти угроза провала. Поставил Windows 2019 standart +RD сервисы, установил главное приложение, ради которого всё затевалось, и всё чудесно работает и буквально летает.

Замечательно! Еду домой и подключаюсь по RDP, приложение запускается, но ощущается серьёзный лаг, смотрю а в проге сообщение «включен soft режим». Чего?! Ищу более свежие и суперпрофессиональные дрова на видеокарту, ставлю -результата ноль, более древние дрова под p1000 тоже ничего. А в это время внутренний голос всё издевается «а я тебе говорил — не экспериментируй со свежачком — возьми p1000». А время — уже давно ночь во дворе, с тяжелым сердцем ложусь спать. Воскресенье, еду в офис — ставлю в сервер quadro P620 и тоже по RDP не работает — MS в чем дело? Ищу по форумам «2019 server и RDP» — ответ нашел почти сразу.

Оказывается, что так как у большинства сейчас мониторы с большим разрешением, а в большинстве серверов встроенный графический адаптер эти разрешения не поддерживает — то аппаратное ускорение по умолчанию отключено через групповые политики. Цитирую инструкцию по включению:

  • Open the Edit Group Policy tool from Control Panel or use the Windows Search dialog (Windows Key + R, then type in gpedit.msc)
  • Browse to: Local Computer Policy\Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Remote Session Environment
  • Then enable “Use the hardware default graphics adapter for all Remote Desktop Services sessions”

Перезагружаемся — все прекрасно по RDP работает. Меняем видеокарту на P2200 опять работает! Теперь когда мы уверены, что решение полностью рабочее приводим все настройки сервера к идеалу, вводим в домен, настраиваем доступ пользователей и прочее, ставим сервер в серверную. Тестируем всей командой пару дней — всё идеально работает, на все задачи ресурсов сервера хватает с избытком, минимальный лаг возникающий в результате работы по RDP всем пользователям незаметен. Замечательно — задача выполнена на 100%.

Пару моментов, от которых зависит успешность внедрения графического сервера


Так как на любом этапе внедрения графического сервера в организацию могут возникнуть подводные камни, которые могут создать ситуацию аналогичную как на картинке со сбежавшими рыбками

image

то на этапе планирования необходимо сделать несколько простых шагов:

  1. Целевая аудитория и задачи — пользователи которые интенсивно работают с графикой и им нужно аппаратное ускорение видеокарты. Успех нашего решения основан на том, что потребности в мощности пользователей графических и CAD/CAM программ был удовлетворен с избытком более 10 лет назад, а на данный момент мы имеем запас мощности превышающий потребности в 10 и более раз. Например, мощности GPU Quadro P2200 хватает с избытком на 10 пользователей, и даже при недостатке памяти видеопамяти видеокарта добирает с ОЗУ, и для обычного 3d разработчика такое небольшое падение в скорости памяти проходит незаметно. Но если в задачах пользователей есть интенсивные вычислительные задачи (рендеринг, расчеты и прочее), которые часто задействуют 100% ресурсов — то наше решение не подходит, так как другие пользователи в эти периоды не смогут нормально работать. Поэтому тщательно анализируем задачи пользователей и текущую загрузку ресурсов (хотя бы приблизительно). Также обращаем внимание на объем перезаписи на диск в день и если он составляет большой объём, то подбираем под этот объём уже серверные ssd или optane диски.
  2. Исходя из количества пользователей подбираем подходящий по ресурсам сервер, видеокарту и диски:

    • процессоры по формуле 1 ядро на пользователя + 2,3 на ОС, все равно каждый в один момент времени не использует одного или максимум двух(при редкой загрузке модели) ядер;
    • видеокарта -смотрим средний объём потребления видеопамяти и GPU на пользователя в сеансе RDP и подбираем профессиональную! видеокарту;
    • аналогично поступаем с ОЗУ и дисковой подсистемой(сейчас можно даже RAID nvme недорого подобрать).
  3. Тщательно смотрим по документации к серверу (благо все брендовые сервера имеет полную документацию) соответствие по разъёмам, скоростям, питанию и поддерживаемым технологиям, а также физическим размерам, и нормам теплоотвода устанавливаемых дополнительных компонентов.
  4. Проверяем нормальную работу нашего ПО в нескольких сессиях по RDP, а также на отсутствие лицензионных ограничений и тщательно проверяем наличие необходимых лицензий. Решаем этот вопрос до первых шагов по реализации внедрения. Как было сказано в комментарии уважаемым malefix
    "— Лицензии могут быть привязаны к кол-ву пользователей — тогда вы нарушаете лицензию.
    — Софт может некорректно работать при нескольких запущенных инстансах — стоит ему хоть в одном месте писать мусор или настройки не в пользовательский профиль/%temp%, а в что-то общеедоступное — вам потом будет очень весело отлавливать проблему"
  5. Продумываем где будет установлен графический сервер, не забываем про UPS и наличие там высокоскоростных ethernet портов и интернет (если нужно), а также соответствие климатических требованиям сервера.
  6. Срок внедрения увеличиваем минимум до 2,5-3 недель, ведь многие даже мелкие необходимые компоненты могут ехать до двух недель, а ведь сборка и настройка проходит несколько дней — только обычная загрузка сервера до ОС может быть более 5 минут.
  7. Обговариваем с руководством и поставщиками, что если вдруг на каком-либо этапе проект не пойдет или пойдет не так, то можно сделать возврат или замену.
  8. Также было любезно подсказано в комментарии malefix
    после всех экспериментов с настройками — всё снести и поставить с нуля. Вот так:
    — во время экспериментов надо документировать все критичные настройки
    — во время установки с нуля вы повторно выполняете минимально необходимые настройки (которые задокументировали на предыдущем этапе)
  9. Операционную систему (желательно Windows server 2019 — там качественный RDP) устанавливаем вначале в Trial режиме, но ни в коем случае не evaluate (нужно потом переустанавливать с нуля). И только после успешного запуска решаем вопросы с лицензиями и активируем ОС.
  10. Также до внедрения подбираем инициативную группу для проверки работы и объясняем будущим пользователям преимущества работы с графическим сервером. Если это делать после, то увеличиваем риск рекламаций, саботажа и неаргументированных негативных отзывов.

По ощущениям работа по RDP не отличается от работы в локальном сеансе. Часто даже забываешь, что работаешь где-то по RDP — ведь даже видео и иногда видеосвязь в сеансе RDP работают без ощутимых задержек, ведь сейчас у большинства подключен высокоскоростной интернет. По скорости и функционалу RDP компания Microsoft сейчас продолжает приятно удивлять и аппаратное ускорение 3D и мультимониторы — все что необходимо для удаленной работы пользователям графических, 3D и CAD/CAM программ!

Так что во многих случаях установка графического сервера согласно проведенного внедрения является предпочтительней и мобильней 10 графических станций или ПК.

P.S. Как просто и безопасно подключиться через интернет по RDP, а также оптимальные настройки для RDP клиентов — вы можете подсмотреть в статье "Удаленная работа в офисе. RDP, Port Knocking, Mikrotik: просто и безопасно"
Tags:rdpсерверное администрированиеудаленная работаудалёнкаграфикаграфический дизайнcad/camсетевые технологиисетевое оборудованиесетевые технологии*
Hubs: System administration Working with 3D-graphics Network technologies Server Administration Remote work
0
8.8k 31
Comments 52
Popular right now