私は、Hyperv サーバー (ダイナミック VHDX) 仮想ディスクの xfs パーティション上に glusterfs を備えた 4 つの分散複製サーバーをセットアップしました。NIC は 6x1Gbit (Hyperv でチーム化) です。私はこれを samba 経由で Windows クライアントと共有しています。私が遭遇する問題は、多数の小さなファイル (読み取りと書き込み) でパフォーマンスが非常に悪く、10k のファイルが多数ある場合、転送速度が約 300kb になる (ネイティブ クライアントでもそれほど高速ではありません) ことです。この問題の解決策はありますか? それとも私の構成が悪いのでしょうか? 大きなファイルの転送は良好です (すべての帯域幅を利用)
答え1
私はかつて、Web アプリケーションの展開と、ユーザーがアップロードした大量のファイルを複数のサーバー間で共有するために GlusterFS を使用しようとしました。おそらく 4 か月ほどかけて、適切な速度を実現しようとしましたが、結局できませんでした。本当に試してみれば、約 25 ~ 40% の速度向上が期待できますが、それでも十分な速度にはなりません。
正確な技術的詳細は忘れてしまいましたが、GlusterFS プロトコルは読み取り専用システムであっても非常に冗長です。Danila が言ったように、小さなファイルを共有したい場合は、Gluster 経由で NFS プロトコルを使用する方がよいでしょう。その大きな欠点は、それが NFS であることです。
検討すべきもう 1 つのオプションは Ceph です。急速に開発が進んでおり、最新の Ubuntu カーネルで十分に使用できます。
正直に言うと、可能であれば共有 FS を廃止することをお勧めします。後で感謝することになるでしょう。
答え2
GlusterFS ネイティブ FUSE クライアントは、大量の小さなファイルを扱うには適していません。NFS を GlusterFS と一緒に使用することもできます。また、このセットアップでは、xfs パーティションがネイティブ EXT4 よりも優れているとは思いません。詳細については、次の記事を参照してください。