2016年7月23日土曜日

iSCSIが上手く使えない理由が少しわかった

ココの記事で、NAS側のLUNをシンプロビジョニングにしたら、Ubuntu Linux(aquarius)でフォーマット等が出来ない、しょうがないからフルプロビジョニングで使う、なんてことを書いた。

また、それを踏まえてコチラの記事では、「iSCSIはフルプロビジョニング、LVM側でシンプロビジョニング」っていう形で領域を作った。

それから、少し調べてみたら、ほんの少しだけ原因が絞り込めた。
私が使っているNASキットは、iSCSI LUNを作成する時に
  • フルプロビジョニング
  • シンプロビジョニング
のどちらかを選ぶことが可能。
また、シンプロビジョニングを選んだ場合は、
  • スナップショット不可能
  • スナップショット可能
の2種類が選べる。

つまり、
  1. フルプロビジョニング
  2. シンプロビジョニング&スナップショット不可
  3. シンプロビジョニング&スナップショット可(デフォルト)
の3種類から選んでLUNを作るわけだ。

で、シンプロビジョニングを選んだらLinux側でフォーマット等が出来なかったわけだが、ふと「じゃぁスナップショット不可にしてみたらだどうだ?」というわけで、上述の2番を選んでみた。

そしたらなんと、普通にフォーマットできるし、ddで大きなファイルを書き込んでもエラーにならない。

なんだよ、そういうことか。

どうやら、スナップショット可にすると、NAS内部の管理情報が増えて、書き込み速度が低下するようだ。
そのため、書き込み量が増えた時に、エラーが発生している模様。
ちなみに、同じように「シンプロビジョニング&スナップショット可」の領域をWindows7に見せた場合、何も問題なくI/O出来る。Windows7側は、I/Oタイムアウトが長めに設定してあるのか、I/O遅延を待ってくれているようだ。
LinuxでもiSCSIパラメータやカーネルパラメータをいじったらナントカなるのかもしれないが、そこまでガッツリチューニングするツモリは無い。
また、NAS側でスナップショットが作れなくても、LVMスナップショットが作れるので、特に致命的じゃない。
というわけで、メインは「シンプロビジョニング&スナップショット不可」で作っていこうと思う。

というわけで、NAS側で「シンプロビジョニング&スナップショット不可」のLUNを作成して、前回作った領域の内容を移すことにするよ。
また、LVMシンプロビジョニングを使って作ったけど、通常のLVM領域にすることにするよ。

ちょっとした手術だけど、少しはNASディスク使用効率が上がるから、今のうちに手術しておくよ。

次回乞うご期待。

0 件のコメント:

コメントを投稿