По сути, мне нужно разместить веб-приложение, работающее на PHP, а также базу данных MySQL с высокой доступностью.
Будет два сервера в разных центрах обработки данных.
И я думаю, стоит ли нам использовать Proxmox с двумя виртуальными машинами: одну для веб-приложения, другую для базы данных.
Или мне просто установить Debian, собрать все воедино и закончить на этом.
HA для веб-сервера обрабатывается экземпляром HaProxy, который находится на другом сервере. HA базы данных будет обрабатываться ProxySQL в HA (по сути, сервер MysQL и ProxySQL будут на одном сервере), но моим приложениям нужно знать, к какому ProxySQL они должны подключаться.
Если я использую Proxmox, то сделать это с помощью Keepalived довольно просто, поскольку все будет использовать внутренние IP-адреса, и это нормально.
Но если я использую Debian, то это будут публичные IP-адреса, а хостинг, который я использую (OVH), позволяет это делать, так называемые плавающие IP-адреса, но переключение занимает около 5 минут, поэтому сайт не работает в течение 5 минут.
Используя proxmox, я также имею другие преимущества: я могу раскручивать серверы для обновлений, а затем просто переключаться и т. д., ничего не сломав. Использование Debian напрямую подразумевает переформатирование сервера и т. д.
Конечно, использование Proxmox немного снизит производительность, но я думаю, что это незначительно.
У каждого решения есть свои плюсы и минусы, и я не совсем уверен, в каком направлении двигаться.
Так виртуализация или голое железо?
Серверы:
CPU: Xeon-E 2288G - 8c/16t
Memory: 32GB
Disks: 2× 960GB SSD NVMe - RAID 1
Есть мысли? Спасибо!
решение1
Ваше оправдание использования Proxmox здесь, похоже, заключается в том, что вы можете использовать keepalived (хотя я не уверен, для чего именно). Это кажется огромным излишеством.
Есть и другие причины, на которые вы намекнули, которые могут иметь смысл в этом контексте.
Вы также упомянули плавающие IP-адреса OVH.
Это проблема XY.
Ваша главная задача — обеспечить доступность (по крайней мере одной из) услуг через виртуальный IP.
Виртуальные IP-адреса не работают в центрах обработки данных без сложной конфигурации маршрутизации. Сложность — это плохо.
Виртуальные IP как механизм HA отстой. Вы полагаетесь на то, что ваша система делаетчто-нибудькогда он в сломанном состоянии. Есть осложнения вокруг разделенного мозга. Его трудно тестировать/контролировать. Всегда есть прерывание обслуживания.
Вам не нужен виртуальный IP - если ProxySQL (или haproxy или аналогичный) доступен / настроен на каждом узле, который должен подключаться к базе данных, и знает обо всех узлах базы данных, у вас есть HA для вашей службы базы данных. Для службы HTTP ключевая часть HA - это циклические DNS-адреса на нескольких хостах. NB В сетях все еще много дезинформации о rrDNS и HTTP. Он решает те случаи, которые не может выполнить балансировщик нагрузки, и обрабатывает большинство случаев использования, которые выполняет балансировщик нагрузки.
Самая большая стоимость использования виртуализации в таком контексте — это дисковый ввод-вывод СУБД. Если производительность MySQL оказывает существенное влияние на общую производительность сервиса, и ваш бюджет это позволяет, то вы можете устранить эту проблему, передав выделенный дисковый контроллер и хранилище виртуальной машине СУБД.