Чому відкрита iscsi записує вдвічі повільніше, ніж Samba через 10G Ethernet?


9

На моєму локальному файловому сервері у мене raid-6 на 7x жорстких дисках.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

Місцевий тест на швидкість дає мені швидкість запису 349 Мб / с.

Віддалене записування на Samba з SSD (> швидкість читання 2 Гбіт / с) дає мені 259 Мб / с запису. Але віддалене записування на привід iSCSI (на ініціаторі Win10 iSCSI) дає мені всього 151 Мбіт / с.

raid6 config - розмір шматка 128K, stripe_cache_size = 8191. Написати растровий намір на SSD (Samsung 860 PRO, 4096K фрагмент растрової карти).

Масив, змонтований з параметрами: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

налаштування open-iscsi: мета заснована на файлі 4Tb.

Будь-які підказки, чому iSCSI повільніше, ніж пише Samba? Будь-які підказки, як покращити швидкість запису iSCSI?

Я припускаю, що це має щось спільне з бажанням open-iscsi переправляти записи на диск після кожної операції, що збільшує посилення запису на raid6 за рахунок надмірного перезапису парності. Але я не впевнений, як це виправити. Швидкість це важливіше, ніж безпека записаних на даний момент даних у разі відключення електроенергії.

Як бічна примітка, старші цілі ietd iSCSI мали можливість включати режим зворотного запису (використовуючи IOMode=wb), а підтримувана швидкість запису була значно швидшою. На жаль, це, здається, наразі не підтримується.


2
Що таке мережа? 10GigE? Що таке версія серверної ОС, версія ядра? Що таке ціль і версія iscsi? ietd, scst або lio? Open-iscsi забезпечує лише ініціатор, а не ціль ... Що ви використовуєте для вимірювання швидкості запису? Яка файлова система використовується в цілі?
wazoox

У Windows 10 QoS видалено з NIC?
yagmoth555

2
Опублікування конфігурації вашої цілі iSCSI та будь-яких скоригованих мережевих налаштувань також було б доцільним у цьому випадку. Ви також можете розглянути тестування з ініціатором open-iscsi на клієнті Linux з сучасним ядром для чіткого порівняння між ініціаторами, що використовують ту саму ціль, оскільки ініціатор Windows може бути занадто звужений. Більше даних == краще.
Спулер

1
Але що стосується фактичного питання: iSCSI та Samba дуже різні, і ви використовуєте шар кешування VFS при використанні Samba, який не існує в голому блоковому пристрої. Я розумію, що ви здивовані різницею в продуктивності, але вас більше цікавить це порівняння чи змушує iSCSI наситити вашу мережу? Якщо iSCSI є вашим головним питанням, а продуктивність Samba є незначною деталлю для контексту, ви можете відредагувати питання, щоб зробити це більш зрозумілим (і, можливо, отримати кращі відповіді).
Спулер

Ви використовували Windows 10 для тесту, але я не бачу жодної деталі машини, яка використовується ніде. (а навіщо використовувати ОС для клієнтів Windows для такого тесту?)
yagmoth555

Відповіді:


6

Перш за все, проблема RAID-6 полягає в обчисленні подвійного паритету. По-друге, ви можете двічі підключити ціль iSCSI в MS iSCSI Initiator, включити RR або найменшу глибину черги (на жаль, Win10 не підтримує багатосторонність, тому ви можете протестувати це за допомогою Windows Server).

Насправді доступ до рівня блоку повинен бути швидшим, ніж доступ до файлового рівня. Який інструмент бенчмаркінгу ви використовуєте на сайті Windows? Я рекомендую використовувати diskspd або FIO. Крім того, ви можете використовувати щось на зразок Starwind як набагато швидшу ціль iSCSI.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V


2
Raid 6 - це апаратне забезпечення, а не програмне забезпечення. Це вже не проблема виступу приблизно з 20 років.
Нілс

RAID-6 - це проблема? Обчислення парності відбувається незалежно від протоколу.
Даніель

2
RAID6 повільніше не через обчислення парності, а через так звану дірку запису, що є результатом характеру RAID парності читання-зміни-запису.
BaronSamedi1958

3
"Raid 6 - це апаратне забезпечення, а не програмне забезпечення. Це вже не проблема з продуктивністю приблизно 20 років. - Nils 21 березня о 10:05" -> Це просто неправда :( Прочитайте це -> theithollow.com/
2012/03/21

1

iSCSI слід використовувати на рівні блоку, опис налаштування звучить так, як ви використовуєте файлову систему, розміщуєте на ній файл, а потім запускаєте цей файл як блок-шар iSCSI.

Це далеко не ідеально, і точно не є установкою для порівняння швидкостей. Спробуйте використовувати lvm вгорі raid6 для сегментування простору та перебування на рівні блоку для iSCSI або використовуйте raid6 безпосередньо як пристрій iSCSI.

У вашому поточному налаштуванні дані передаються через мережу, потрапляючи на файл у файловій системі, який (швидше за все) не оптимізований для цього типу робочого навантаження, а також спільно використовується з іншими процесами. Можна встановити таку настройку за допомогою iSCSI, але це слід розглядати як неоптимізоване резервне рішення.


1

Зверніть увагу dd, це дуже простий орієнтир і ДУЖЕ схильний до перекосів. Наприклад, ваш ddзаписує нулі - якщо щось має спеціальний випадок для даних, повних нулів (наприклад, тому, що воно може робити стиснення), ви побачите фантастичну продуктивність, але перейдете до написання ненульових "реальних даних" і раптом ця продуктивність може зникнути. ..

Для того, щоб відповісти на ваше запитання (як і у всіх бенчмаркінгу), вам справді потрібно виділити фрагменти, щоб визначити біт, який вводить проблему. Наприклад, чи дуже швидко записується у файлову систему Windows (а не через iSCSI)? Якщо ви взяли ту саму конфігурацію апаратури та запустили Linux замість Windows, це так само швидко чи сповільнюється? Що станеться, якщо ви перейдете на такий інструмент для порівняння, як fio ?

На жаль, існує занадто багато можливостей, щоб можна було добре відповісти на таке питання ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.