Pada server file lokal saya, saya memiliki raid-6 pada 7x HDD drive.
dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync
Tes kecepatan lokal memberi saya 349 MB / s kecepatan tulis.
Menulis jarak jauh ke Samba dari SSD (> kecepatan baca 2Gb / dtk) memberi saya 259 MB / dt. Tapi remote menulis ke drive iSCSI (pada Win10 iSCSI inisiator) memberi saya hanya 151 Mb / s menulis.
raid6 config - 128K ukuran chunk, stripe_cache_size = 8191. Bitmap niat tulis ada di SSD (Samsung 860 PRO, 4096K bitmap chunk).
Array dipasang dengan opsi: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback
setup open-iscsi: target didasarkan pada file 4TB.
Adakah petunjuk mengapa iSCSI lebih lambat dari Samba saat menulis? Adakah petunjuk tentang cara meningkatkan kecepatan menulis iSCSI?
Saya menganggap itu ada hubungannya dengan keinginan open-iscsi untuk menyiram menulis ke disk setelah setiap operasi, yang meningkatkan amplifikasi tulis pada raid6 karena penulisan ulang paritas yang berlebihan. Tapi saya tidak yakin bagaimana cara memperbaikinya. Mempercepatnya lebih penting daripada keamanan data yang ditulis saat ini jika terjadi pemadaman listrik.
Sebagai catatan tambahan, target ietd iSCSI memiliki kemampuan untuk mengaktifkan mode tulis kembali (menggunakan IOMode=wb
) dan kecepatan menulis yang berkelanjutan jauh lebih cepat. Sayangnya tampaknya saat ini tidak terawat.
sumber
Jawaban:
Pertama-tama, RAID-6 adalah masalah karena perhitungan paritas ganda. Kedua, Anda dapat menghubungkan target iSCSI dua kali dalam MS iSCSI Initiator, mengaktifkan RR atau Least Queue Depth (sayangnya, Win10 tidak mendukung multipathing, jadi Anda dapat mengujinya dengan Windows Server).
Bahkan, akses level blok harus lebih cepat daripada akses level file. Apa jenis alat pembandingan yang Anda gunakan dari situs Windows? Saya akan merekomendasikan menggunakan diskspd atau FIO. Selain itu, Anda dapat menggunakan sesuatu seperti Starwind sebagai target iSCSI yang jauh lebih cepat.
https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V
sumber
iSCSI harus digunakan pada level blok, deskripsi pengaturan Anda terdengar seperti Anda menggunakan sistem file, menempatkan file di atasnya dan kemudian menjalankan file ini sebagai lapisan blok iSCSI.
Ini jauh dari ideal, dan definisi bukan pengaturan untuk membandingkan kecepatan. Coba gunakan lvm di atas raid6 untuk membagi ruang dan tetap di lapisan blok untuk iSCSI, atau gunakan raid6 langsung sebagai perangkat iSCSI.
Dalam pengaturan Anda saat ini, data ditransfer melalui jaringan, mengenai file dalam sistem file, yang (kemungkinan besar) tidak dioptimalkan untuk jenis beban kerja ini, dan juga dibagikan dengan proses lain. Dimungkinkan untuk melakukan pengaturan seperti itu dengan iSCSI, tetapi harus dianggap sebagai solusi fallback yang tidak dioptimalkan.
sumber
Harap diperhatikan
dd
adalah tolok ukur yang sangat sederhana dan SANGAT rentan terhadap distorsi. Misalnya, Andadd
menulis angka nol - jika sesuatu memiliki kasus khusus untuk data yang penuh angka nol (misalnya karena dapat melakukan kompresi) Anda akan melihat kinerja yang fantastis tetapi beralih ke penulisan "data nyata" yang bukan nol dan tiba-tiba kinerja itu dapat menghilang. ..Untuk menjawab pertanyaan Anda (seperti dalam semua pembandingan), Anda harus benar-benar mengisolasi bagian-bagian tersebut untuk mengidentifikasi bagian yang memperkenalkan masalah tersebut. Sebagai contoh, apakah menulis ke sistem file Windows secara langsung (dan tidak lebih dari iSCSI) juga sangat cepat? Jika Anda mengambil konfigurasi perangkat keras yang sama dan menjalankan Linux, bukan Windows, apakah itu sama cepat atau lambat? Apa yang terjadi jika Anda beralih menggunakan alat benchmark seperti fio ?
Sayangnya ada terlalu banyak kemungkinan untuk dapat menjawab pertanyaan seperti ini dengan baik ...
sumber