qnap/performanceにてqnap tvs-472xtの速度.iopsを調べている.
これをnfsサーバにしてクライアントを10台、20台と繋げると当然ながら 速度.iops は落ちてくるだろう
「nfsは10台以上繋げない」
とかの話を聞く
ここで「nfsサーバを複数用意すれば?」と思われるが、クライアントの台数が問題であって参照部分を分散させる意味はあるだろうが根本ではない
+---- クライアントA
nfsサーバ(/data01,/data02) -----+---- クライアントB
+---- クライアントC
*担当領域を分散する
nfsサーバ1(/data01) ---+ +---- クライアントA
+--------+---- クライアントB
nfsサーバ2(/data02) ---+ +---- クライアントC
*nfsサーバのクライアント数に変化はない
その回避策としてストレージをFCターゲットに仕立て、複数のFCイニシエータを設置してそれをnfsサーバにしてクライアントを裁くとかがあるそうな.
その場合FCイニシエータは同じFCターゲットを参照するので Shared-disk file system の「GlobalFileSystem (GFS)」、「Oracle Cluster File System(OCFS)」でFCターゲットを扱う必要があるそうな.
+----- nfsサーバ1 ------ クライアントA,B,C
FCターゲット ---+
+----- nfsサーバ2 ------ クライアントD,E,F
*nfsサーバ1とnfsサーバ2は Shared-disk file system な GFS2 らでFCターゲットを共有する
ならすべてShared-disk file systemで構成すれば?とかになるが、GFS2のマニュアルだと最大16台とある..
+----- クライアントA
+----- クライアントB
FCターゲット ---+----- クライアントC
+----- クライアントD
+----- クライアントE
:
*16台まで
とわ言え、FCイニシエータを増やしたとてアクセス先は1つ。FCだからとてそんなに速度が上がるわけでもなかろう.
なら複数のFCターゲットを用意してデータ取得先を分散すれば?とかになる
そうなるとFCに限定せずに Distributed file systems な GPFS,Lustre,CephFS,BeeGFS,GlusterFSとかが使える
MGS ---+
MDS ---+
HDD or RAID --[fc/sas]-- OSS1 --+
HDD or RAID --[fc/sas]-- OSS2 --+
HDD or RAID --[fc/sas]-- OSS3 --+
HDD or RAID --[fc/sas]-- OSS4 --+
|
+---------- クライアントA,B,C,D,E,F,G,H,.....
*MGS: Management Server, MDS: MetaData Server, OSS: Object Storage Servers. HDD or RAID部分はObject Storage Targetsと言われる
でも複数にデータ先が分散することで1つのノードに支障がでたら全体が崩れる
その対処にHigh Availabilityが必要になる
MGS-HA-1 --+
MGS-HA-2 --+
MDS-HA-1 --+
MDS-HA-2 --+
+-- OSS1-HA-1 --+
HDD or RAID --[fc/sas]--| |
+-- OSS1-HA-2 --+
|
+-- OSS2-HA-1 --+
HDD or RAID --[fc/sas]--| |
+-- OSS2-HA-2 --+
|
+-- OSS3-HA-1 --+
HDD or RAID --[fc/sas]--| |
+-- OSS3-HA-2 --+
|
+-- OSS4-HA-1 --+
HDD or RAID --[fc/sas]--| |
+-- OSS4-HA-2 --+
|
+----- クライアントA,B,C,D,E,F,G,H,.....
結構おおかがりな構成である.
「nfsは10台以上繋げない」
でも
クライアント10台全部がデータベースのように常にioがあるの?
計算ノードにscratchを用意して回避できない?
nfsサーバのSATA-RAIDを NL-SAS-RAID な全二重で改善できない?
そんな工夫で実は20台は大丈夫とか....甘いかな.
けど研究室レベルならnfsで足りそうな気が...速度ioが欲しいならRAIDカードを変えるとかqnapのQtierとかで賄えそうな気がする.
sas sata †
「sasは高性能」ってよく言われる.
ここにintel様の比較表がある
https://www.intel.co.jp/content/www/jp/ja/support/articles/000005782/server-products.html
ストレージ容量の拡大 †
研究の進捗に連れてデータはどんどん増えてくる.
初回に導入したストレージでは足りなくなり、追加するか、別なものに乗せ換えるかストレージサイズの容量増加方法は様々ある.
1つのストレージボリュームをどんどん拡張していくならこんな感じ
これは1つのボリュームを3つの領域で構成させ、そのうち一つは空かせる.
ストレージ消費が増えたら、空きのslotを使って領域を作らせ、そこに既存の領域のデータを流し込み、そこのslotを空にする.
lvmで言うところのpvmove. っが遅いという話を聞く

入手できるHDD容量の増加速度が、ストレージにまたるデータ増加速度より早いならいいかも.
HDDはそのまま継続して使いたいならエンクロージャを継ぎ足しして空きslotを用意する.

領域「A」「B」「C」「D」をLVMで1つのストレージボリュームとして扱うこともできるが、個別のストレージボリュームとして扱うのもいいかも.
この辺は「古いA領域はテープにアーカイブして取り外して新しいHDDと置き換える」とか運用ポリシーに関わる.

*HDDエンクロージャは無限に増設できるわけでもなくケーブル長とかに制限がある. そうなると複数のストレージサーバで1つのボリュームを形成できるCephFS、Lustre、BeeGFS、GlusterFSらの出番かな.
いずれにしてもバックアップを考えるとテープならslot拡張できるテープライブラリが必要かもしれない.