つまり、基本的には、フロントとバックですべて PHP の Web アプリケーションをホストし、さらに HA を備えた MySQL データベースもホストする必要があります。
異なるデータセンターに 2 台のサーバーが存在します。
そして、Proxmox を 2 つの VM で使用して、1 つは Web アプリケーション用、もう 1 つはデータベース用として使うべきかどうか考えています。
それとも、Debian をインストールしてすべてをまとめて完了するべきでしょうか。
Web サーバーの HA は、別のサーバーにある HaProxy インスタンスによって処理されています。データベース HA は HA 内の ProxySQL によって処理されます (つまり、基本的に MysQL サーバーと ProxySQL は同じサーバーにあります) が、アプリケーションはどの ProxySQL に接続する必要があるかを認識する必要があります。
Proxmox を使用する場合、すべてが内部 IP を使用するので、Keepalived でこれを行うのはかなり簡単です。
しかし、Debian を使用する場合はパブリック IP になり、私が使用しているホスティング (OVH) にはこれを可能にする Floating IP と呼ばれる機能がありますが、切り替えには約 5 分かかるため、サイトがダウンするのは 5 分です。
proxmox を使用すると、アップグレードを実行するためにサーバーを起動し、何も壊すことなく切り替えるなど、他の利点もあります。Debian を直接使用すると、サーバーの再フォーマットなどが必要になります。
もちろん、Proxmox を使用するとパフォーマンスがわずかに低下しますが、これは無視できる程度だと思います。
どちらの解決策にも長所と短所があり、どちらの方向に進むべきかよくわかりません。
では、仮想化かベアメタルか?
サーバーは次のとおりです。
CPU: Xeon-E 2288G - 8c/16t
Memory: 32GB
Disks: 2× 960GB SSD NVMe - RAID 1
何かご意見はございますか? ありがとうございます!
答え1
ここで Proxmox を使用する理由は、keepalived を使用できるようにするためであるようです (ただし、正確に何のためかはわかりません)。これはかなりやりすぎのように思えます。
あなたが示唆したように、この文脈では意味をなす他の理由もあります。
OVH フローティング IP についても言及しています。
これはXY問題です。
主な懸念事項は、(少なくとも 1 つの)サービスが仮想 IP 経由で利用可能であることを確認することであると思われます。
仮想 IP は、巧妙なルーティング構成がなければ、データ センター間では機能しません。複雑さは良くありません。
仮想IPはHAメカニズムとしては役に立たない。システムが何か壊れた状態の場合。スプリット ブレインには複雑な問題があります。テストや監視が困難です。サービスが常に中断されます。
仮想 IP は必要ありません。データベースに接続する必要がある各ノードで ProxySQL (または haproxy または類似のもの) が使用可能または構成されており、データベース サービスの HA がすべてのデータベース ノードについて認識されている場合。HTTP サービスの場合、HA の重要な部分は、複数のホストにわたるラウンドロビン DNS アドレスです。注: インターネットには、rrDNS と HTTP に関する誤った情報がまだたくさんあります。rrDNS は、ロード バランサーが対応できないケースに対応し、ロード バランサーが対応するほとんどのユース ケースに対応します。
このような状況で仮想化を使用する場合の最大のコストは、DBMS ディスク I/O です。mysql のパフォーマンスがサービス全体のパフォーマンスに大きな影響を与え、予算が許せば、専用のディスク コントローラーとストレージを DBMS VM に渡すことでこの問題を排除できます。