|
|
Строка 1: |
Строка 1: |
− | [[Кампусны Кластер]] -- это отказоустойчивый ([[high availability]]) кластер (здесь и далее по тексту -- ''Кластер'') на основе трёх "физических" ([[bare metal]]) узлов (здесь и далее по тексту -- ''Желез'') [[Брацки Фермы|Брацких Ферм]] (здесь и далее по тексту -- ''Ферм''), который обеспечивает высокую доступность услуг, предположительно, [[Брацка Правка|Брацкой Правки]] и [[Брацка Учебка|Брацкой Учебки]]. Оба приложения принадлежат [[Брацки Кампус|Брацку Кампусу]], однако их номенклатура и, соответственно, название ''Кластера'' могут измениться в результате его разработки. | + | [[Кампусны Кластер]] -- это отказоустойчивый ([[high availability]]) кластер (здесь и далее по тексту -- ''Кластер'') на основе ??? узлов (здесь и далее по тексту -- ''???'') [[Брацки Фермы|Брацких Ферм]] (здесь и далее по тексту -- ''Ферм''), который обеспечивает высокую доступность услуг, предположительно, [[Брацка Правка|Брацкой Правки]] и [[Брацка Учебка|Брацкой Учебки]]. Оба приложения принадлежат [[Брацки Кампус|Брацку Кампусу]], однако их номенклатура может измениться в результате его разработки. |
− | | |
− | | |
− | ==Инфраструктура==
| |
− | | |
− | ===Размещение===
| |
− | :[[Hetzner]] является поставщиком услуг размещения, у которого "Железо" арендуется.
| |
− | | |
− | ===Сеть инфраструктуры===
| |
− | :Три ''Железа'' необходимы для обеспечения высокой доступности, из который два являются "несущими", из которых одно является основным. Если основное ''Железо'' неспособно обслуживать клиентов, ''Кластер'' изолирует его и переключает клиентов на второе несущее, работающее ''Железо''. Третье ''Железо'' -- это требование [[ProxmoxVE]] для обеспечения кворума. [[#Характеристики Железа|Характеристики Железа]] представлены ниже.
| |
− | | |
− | :Для переключения на то ''Железо'', которое работает с клиентами, используется инструмент [[Hetzner vSwitch]].
| |
− | | |
− | ==Характеристики Железа==
| |
− | ''Железo'' для [[#Инфраструктура|Инфраструктуры]] выбрано на аукционе -- https://www.hetzner.com/sb?hdd_from=500&hdd_to=1000 -- поделившись экраном с выбранным подрядчиком исходя из следующих соображений:
| |
− | :*Рабочий объём жёсткого диска -- 512Gb.
| |
− | :*Как минимум один, основной сервер выбран с SSD и, желательно, NVMe, и частотой процессора в 64Gb.
| |
− | :*Как минимум два "несущих" сервера выбраны в одном датацентре. Хотя [[Hetzner]] не берёт оплату за траффик, это обстоятельство повышает скорость работы ''Кластера''.
| |
− | | |
− | ===Железо 1===
| |
− | :1 x Dedicated Root Server "Server Auction"
| |
− | :* Intel Xeon E3-1275v5
| |
− | :* 2x SSD M.2 NVMe 512 GB
| |
− | :* 4x RAM 16384 MB DDR4 ECC
| |
− | :* NIC 1 Gbit Intel I219-LM
| |
− | :* Location: FSN1-DC1
| |
− | :* Rescue system (English)
| |
− | :* 1 x Primary IPv4
| |
− | | |
− | ===Железо 2===
| |
− | :1 x Dedicated Root Server "Server Auction"
| |
− | :* Intel Core i7-7700
| |
− | :* 2x SSD SATA 512 GB
| |
− | :* 2x RAM 16384 MB DDR4
| |
− | :* NIC 1 Gbit Intel I219-LM
| |
− | :* Location: FSN1-DC1
| |
− | :* Rescue system (English)
| |
− | :* 1 x Primary IPv4
| |
− | | |
− | ===Железо 3===
| |
− | :Пока не куплено. Вопросы для выяснения: какое требование к нему? правда, что его объём может быть меньше?
| |
− | | |
− | ==Виртуальные среды==
| |
− | Виртуальная среда каждого ''Железа'' собрана на основе [[ProxmoxVE]] (здесь и далее -- "Среды''), в данный момент, v.7.2.
| |
− | | |
− | ===Сети Сред===
| |
− | :Сеть каждой ''Среды'' использует мост по выбираемой по умолчанию в [https://pve.proxmox.com/wiki/Network_Configuration#_default_configuration_using_a_bridge Network Configuration] модели.
| |
− | | |
− | ===Хранилища Сред===
| |
− | :Для хранения данных, каждая ''Среда'' использует платформу распределённого хранилища Ceph.
| |
− | | |
− | ===Защитные стены===
| |
− | :Для раздачи адресов виртуальным машинам, каждая ''Среда'' использует программу [[iptables]].
| |
− | | |
− | ==Пользовательские прилады==
| |
− | ===Сетка===
| |
− | ===Почта===
| |
− | | |
− | ==Поиск подрядчиков==
| |
− | Для ускорения проекта и привлечения сторонней экспертизы, Каролина в качестве рекрутера ищет подрядчиков на новый кластер или пару их.
| |
− | | |
− | ===Объявление===
| |
− | :Объявление на разовую работу опубликовано на [[upwork]]:<blockquote>Guys, we need the most affordable well-documented HA ProxmoxVE 7.2 cluster that is assembled on Hetzner. Ceph, IPtables, vSwitch. Please give your minimum project budget (your project fare + initial purchases + first year costs) and timeframe. No nodes have been purchased yet; we plan to do that while awarding the contract. To complete the project, the selected contractor will be given an admin access, but not full robot credentials.</blockquote>
| |
− | | |
− | ===Принцип отбора===
| |
− | :Нам треба кластер з нуля и мы отдадим подряд тому,
| |
− | :#кто сможет это сделать,
| |
− | :#в чьём графике завершение контракта не растянется на более, чем два месяца, и
| |
− | :#чей бюджет будет наименьший. Имеется в виду весь бюджет, включая и оплату подрядчиков, и расходы на покупку и ежегодного поддержания ''Кластера''.
| |
− | | |
− | ===Собеседования===
| |
− | :Найм людей -- отличный способ узнать об аспектах проекта и получаемого в его процессе изделия. Идеально проведённые собеседования добавляют документации на Правку.
| |
− | | |
− | ===Полученные заявки===
| |
− | :Мы можем публиковать полученные заявки, но не публикуем имена подрядчиков, так как они нам на публикацию разрешений не давали. С юридической точки зрения, мы не можем публиковать конфиденциальную информацию наших подрядчиков.
| |
− | | |
− | ===Уточнение деталей и присвоение контракта===
| |
− | Під час конференції обрати, які саме сервери на Hetzner купуємо. Один з експертів сказав, що потрібно три сервера. Два з яких забезпечують HA і мають більшу ємність (512 Гб у нашому випадку), а третій може мати меншу ємність, так як на ньому буде тільки ProxmoxVE.
| |
− | Скласти контракт, в якому прописати такі пункти:
| |
− | :#Створення HA кластеру з трьох серверів на Hetzner з ProxmoxVE за тиждень (домовитись про якийсь період)
| |
− | :#Після закінчення роботи приймаємо в онлайн режимі через один із засобів для конференцій.
| |
− | :#Крім створеного HA кластеру має бути також детальна документація по створенню HA кластеру.
| |
− | :#Створений HA кластер тестуємо, примусово вимкнувши одну з нод.
| |
− | :#При наявності документації у повному об’ємі та створеного працюючого HA кластера – приймаємо роботу.
| |
− | | |
− | ==Порядок разработки==
| |
− | | |
− | ===Кто и что===
| |
− | :Заказчик платит за ''Кластер'' и согласовывает эту вики-страницу перед присуждением подряда. Заказчик подразумевает, что координатор отработает проект, в том числе, документируя требования на этой вики-странице и ставя задачи подрядчику. По доброте душевной и в целях профессиональной подготовки, заказчик может делать работу координатора временно до той поры, пока заказчик верит в то, что координатор когда-то сможет работать самостоятельно :)
| |
− | | |
− | ===Как не надо===
| |
− | :*Знаходимо людину, яка нас задовільняє на даний проект (або декілька людей), так как он или она хорошо говорит, пишет, выглядит, вовремя выходит на связь, быстро отвечает и так далее.
| |
− | :*Зв'язуємось (бажано дзвінком) для уточнення деталей і надання необхідних даних (в цей же етап можна задавати питання про сервера, які, куди, як..).
| |
− | :*Согласовываем полученные детали, щоб розуміти всі ці тонкощі і надавати комусь якісь доступи - заслуховуємо його или её оцінку по бюджету цього проекту - розуміємо підходить нам чи ні.
| |
− | :*Даємо роботу або відмовляємо.
| |
− | | |
− | ===Как надо===
| |
− | #Задокументировать требования на этой вики-странице. Эти требования должны включать описание того, что мы должны получить (так называемые "[[#Объёмы работ|Объёмы работ]]") и как мы о том узнаем (так называемая "[[#Приёмка|Приёмка]]").
| |
− | #Перевести указанные в "[[#Объёмы работ|Объёмы работ]]" секции и секцию "[[#Приёмка|Приёмка]]" на английский и включить в контракт. Если они не включены, то мы получим то, что нам надо в одном случае из 100. В 99 остальных случаях, мы получим то, что нам не надо или за те деньги, на которые мы не рассчитываем.
| |
− | #Действовать далее по рубрике [[#Как не надо|Как не надо]]; после выполнения предыдущих пунктов, она имеет смысл.
| |
− | | |
− | ==Передача и приёмка==
| |
− | | |
− | ===Объёмы работ===
| |
− | :Мы предоставляем подрядчику [[#Инфраструктура|Инфраструктуру]] и изложенные на этой вики-странице требования. Подрядчик должен представить нам объект приёмки -- отлично задокументированные [[#Виртуальные среды|Виртуальные среды]] с установленными высокоустойчивыми [[#Пользовательские прилады|Пользовательскими приладами]].
| |
− | | |
− | ===Приёмочные тесты===
| |
− | Как мы убедимся в том, что то, что представлено -- это то, что нам надо (aka что будет критериями приемлемости и как мы будем проводить приёмочное тестирование)?
| |
− | | |
− | ==Вопросы для прояснения==
| |
− | ===Архитектура платформы===
| |
− | :Есть две окончательно неразрешённые проблемы касаемые [[#ПО платформы|ПО платформы]]:
| |
− | :*Один подрядчик предлагает вместо Ceph задействовать TrueNAS.
| |
− | :*До начала проекта, один специалист предлагал использовать роутер [[Microtik]], чтобы на proxy сделать два IP адреса, первый использовать для внутренних виртуалок, если они нормально работают, а второй загнать в bridge для внешних серверов и средствами Линукса типа firewall делить тот трафик, который приходит. Кроме того, на том же proxy он предлагал поставить [[DHCP]] сервер для раздачи адресов машинам. Другой специалист считал, что безопасных [[DHCP]] серверов на рынке нет. В результате, роутеры и [[DHCP]] сервер не устанавливались.
| |
− | | |
− | ===Начало работы===
| |
− | :Что надо от нас, кроме присуждения контракта, решений по [[#Архитектура платформы|Архитектуре платформы]] и данных ''Железа''?
| |
− | | |
− | ==Полезные рекоммендации==
| |
− | *https://www.informaticar.net/how-to-setup-proxmox-cluster-ha/
| |
− | *https://community.hetzner.com/tutorials/hyperconverged-proxmox-cloud
| |
− | *https://pve.proxmox.com/wiki/High_Availability
| |
− | *https://docs.hetzner.com/robot/dedicated-server/network/vswitch/
| |