ローカルファイルサーバーでは、7x HDDドライブにraid-6を使用しています。
dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync
ローカル速度テストでは、349 MB /秒の書き込み速度が得られます。
SSDからSambaへのリモート書き込み(2Gb /秒以上の読み取り速度)では、259MB /秒の書き込みができます。しかし、iSCSIドライブへのリモート書き込み(Win10 iSCSIイニシエーター上)では、151 Mb/sの書き込みしか得られません。
raid6設定-128Kチャンクサイズ、stripe_cache_size =8191。書き込みインテントビットマップはSSDにあります(Samsung 860 PRO、4096Kビットマップチャンク)。
オプションでマウントされた配列:rw,noatime,nobarrier,commit=999,stripe=128,data=writeback
open-iscsi setup:ターゲットは4Tbファイルに基づいています。
書き込み時にiSCSIがSambaより遅い理由は何か? iSCSI書き込み速度を向上させる方法についてのヒントはありますか?
Open-iscsiが各操作の後にディスクへの書き込みをフラッシュしたいという欲求と関係があると思います。これにより、過度のパリティ書き換えによりraid6の書き込み増幅が増加します。しかし、私はそれを修正する方法がわかりません。停電の場合は、現在書き込まれているデータの安全性よりも速度を重視してください。
補足として、古いietd iSCSIターゲットには、ライトバックモードを有効にする機能がありました(IOMode=wb
)と持続書き込み速度ははるかに高速でした。残念ながら現在のところメンテナンスされていないようです。
まず第一に、二重パリティ計算のためにRAID-6が問題です。次に、MS iSCSIイニシエーターでiSCSIターゲットを2回接続し、RRまたは最小キュー深度を有効にすることができます(残念ながら、Win10はマルチパスをサポートしていないため、代わりにWindows Serverでテストできます)。
実際、ブロックレベルのアクセスは、ファイルレベルのアクセスよりも高速でなければなりません。 Windowsサイトからどのようなベンチマークツールを使用していますか?私はdiskspdまたはFIOを使用することをお勧めします。さらに、Starwindなどをより高速なiSCSIターゲットとして使用できます。
https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V
dd
は非常に単純なベンチマークであり、歪みが非常に発生しやすいことに注意してください。たとえば、dd
はゼロを書き込んでいます-何かがゼロでいっぱいの特別なケースがある場合(たとえば、圧縮を実行できるため)、素晴らしいパフォーマンスが得られますが、ゼロ以外の「実際のデータ」の書き込みに切り替え、突然そのパフォーマンスが消える...
(すべてのベンチマークと同様に)質問に答えるためには、実際に断片を分離して、問題を引き起こしているビットを特定する必要があります。たとえば、Windowsファイルシステムに直接(iSCSI経由ではなく)書き込むことも非常に高速ですか?同じハードウェア構成で、Windowsの代わりにLinuxを実行すると、速度は同じですか、それとも遅くなりますか? fio のようなベンチマークツールに切り替えるとどうなりますか?
残念ながら、このような質問にうまく答えることができない可能性が多すぎます...
iSCSIはブロックレベルで使用する必要があります。セットアップの説明では、ファイルシステムを使用してファイルを配置し、このファイルをiSCSIブロックレイヤーとして実行しているように聞こえます。
これは理想的とはほど遠く、速度を比較するための設定ではありません。 raid6の上でlvmを使用してスペースをセグメント化し、iSCSIのブロックレイヤーに留まるか、直接iSCSIデバイスとしてraid6を使用してください。
現在の設定では、データはネットワークを介して転送され、ファイルシステム内のファイルにヒットします。このファイルは、(おそらく)このタイプのワークロード用に最適化されておらず、他のプロセスとも共有されています。 iSCSIでこのような設定を行うことは可能ですが、最適化されていないフォールバックソリューションと見なす必要があります。