Proxmox ZFSを試す【CephよりZFS】

しばらく更新をさぼっていたが、本日も3GHSPである。
DSC_1337.jpg
Proxmox VE 3ノードでクラスタを組み、Cephを導入して共有ストレージが利用できる環境にしたのだが、Cephのパフォーマンスが思った以上にでない。
メモリを増設してみたものの、3ノード中の2ノードは16Gに上げたが1ノードは8Gのまま。これがいけないのか、メモリキャッシュがあまり効かないのか、はたまたネットワークがネックになっているのか「よくわからない」のだが、パフォーマンスが出ないのである。
1Gバイト程度の動画ファイルをsambaサーバーに上げると、最初は90Mバイト/sくらいは出るがそのうち徐々に下がっていきストールしたような状態になる。
通信は復帰して、10M/s 20M/s 30M/sと段々と上がっていき、50M/sくらいでファイル転送が終了する感じになる。
90M/s出ているのは、sambaサーバーのVMにファイル転送している間で、VMのメモリキャッシュが足りなくなると、その後Cephに書き込みに行くタイミングで速度が低下しているようにも思える。あくまで想像でしかないが...
ストレージはSSDなので、もっとパフォーマンスが出てもおかしくない。直結でベンチマークすれば、500M/sくらいは出てもよいはず。
ギガビットEthernetだから、120M/sくらいが上限ではあるものの、3本をLAGしているのでもうちょっと出て欲しい。ホストで分散しているのだからLAGの効果はあるはずと思うのだが...

ZFS

ProxmoxではZFSでRAIDを組むことができる。CephよりもZFSの方がパフォーマンス出るんじゃない?ということで、ZFSを試してみることに...
といっても、マシンとHDDが足りない。Cephを崩すのなら、データは退避させておかないと...
マシンはWindows10のPC(EPSON)を一時的にProxmox入れて使うか。Windows11マシンを組んでからあまり使っていない。EPSONには、SATAポートが5ポートある。2.5インチ500GのHDDがふたつ。3.5インチの500G HDDを1本用意できたので、こいつらでRAIDZを組んでみる。
Proxmoxは120GのSSDに入れる。EPSONマシンはミニタワーなので3.5インチベイが2個と5インチベイが1個。DVD-ROMを外し、ケースを開けて無理やり装着した。Windows10はM.2のSSDに入っているので「間違って上書き」してしまわないように取り外しておいた。
DSC_1315.jpg
Proxmoxをインストール後、クラスタに参加させる。
さて、ZFSの構築はいたって簡単。
名前を決めて使用するストレージを選択するだけ。ストレージに何か入っていると見れないので、ディスク消去すれば見えるようになる。
容量がみな500Gだったので、エラーが発生することもなく、ZFSプールが作成できた。
容量が異なると作成時に「-fオプションを付けろ」といったエラーになる。
RAIDZにする場合は、最低3本のストレージが必要。
ちなみに、RAID10は4本必要。
ZFSでは、データを圧縮することができるが、テキストデータじゃないと効果がないし、非力なCPUなので今回はoffにした。
ashiftのパラメータはよくわからないので、デフォルトの12のまま。
2022-12-17.jpg
Ethernetはオンボードのギガビットに加えて、IntelのギガビットとRealTekのギガビットカードをPCIeに挿して3枚構成にした、もちろんLAGする。
ZFSプールを作成したら、各ノードで共有できるものと思ったが、そうではなく別途NFSなどを入れないといけないらしい。
DSC_1316.jpg
NFSサーバはProxmoxにnfs-kernel-serverをapt-getで入れればOK。ZFSでストレージを作成すると、ルートにその名前でディレクトリができてマウントされる。/etc/exportsでそのディレクトリを設定すれば準備完了。
データセンターのストレージでNFSを追加したら各ノードで見えるようになる。

パフォーマンスは?

まずは、ISOファイルをアップロードしてみようか。
それなりに速度は出るみたい。通信は200Mbpsくらいは出てる。
SSDに一度コピーしてるかも?
2022-12-17 (2).jpg
zpool iostat 1をやってみるか。
クライアントからノード1のWebサーバーに一度上げてから、ZFSのNFSサーバにscpでファイルコピーしている模様。
2022-12-17 (5).jpg
200MB/sとか出てるし。ビットじゃなくてバイトだよね。200Mバイト/秒出るのならパフォーマンスとしてはOKなんじゃない。
HDDでこれなら、SSDならもっと出るかも。
ということで、CephやめてZFSにするかな。
新しくZFSで組んだRAIDZのストレージにデータを退避して、Cephを崩して、空いた500GのSSDを集めてZFSでRAIDZだな。
お家サーバーだから使っているのは一人だけ。運用が一時止まるけど問題なし。念の為、新サーバーでpostgresとredisを起動しておけば、一応開発もできる。proxmoxのクラスタってやっぱり便利だよね。
本日のところは以上。
続きは以下
Proxmox ZFSでRAIDZ【M.2 SATA変換】

投稿者プロフィール

asai
asai