¿Por qué las escrituras open-iscsi son dos veces más lentas que Samba a través de Ethernet 10G?

9

En mi servidor de archivos local tengo raid-6 en unidades de disco duro 7x.

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

La prueba de velocidad local me da 349 MB / s de velocidad de escritura.

Las escrituras remotas a Samba desde SSD (> 2 Gb / s de velocidad de lectura) me dan 259 MB / s de escrituras. Pero las escrituras remotas en la unidad iSCSI (en el iniciador iSCSI de Win10) me dan solo 151 Mb / s de escrituras.

configuración de raid6: tamaño de fragmento de 128K, stripe_cache_size = 8191. El mapa de bits de intención de escritura está en SSD (Samsung 860 PRO, fragmento de mapa de bits 4096K).

Array montado con opciones: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

configuración de open-iscsi: el objetivo se basa en un archivo de 4Tb.

¿Alguna pista de por qué iSCSI es más lento que Samba en escrituras? ¿Alguna pista sobre cómo mejorar la velocidad de escritura de iSCSI?

Supongo que tiene algo que ver con el deseo de open-iscsi de vaciar las escrituras en el disco después de cada operación, lo que aumenta la amplificación de escritura en raid6 debido a reescrituras de paridad excesivas. Pero no estoy seguro de cómo solucionarlo. Acelere más que la seguridad de los datos actualmente escritos en caso de corte de energía.

Como nota al margen, el objetivo iSCSI de ietd más antiguo tenía la capacidad de habilitar el modo de reescritura (usando IOMode=wb) y la velocidad de escritura sostenida era mucho más rápida. Desafortunadamente, parece estar actualmente sin mantenimiento.

BarsMonster
fuente
2
¿Cómo es la red? 10GigE? ¿Cuál es la versión del sistema operativo del servidor, la versión del kernel? ¿Cuál es el objetivo y la versión de iscsi? ietd, scst o lio? Open-iscsi solo proporciona un iniciador, no un objetivo ... ¿Qué estás usando para medir la velocidad de escritura? ¿Cuál es el sistema de archivos utilizado en el destino?
wazoox
En Windows 10, ¿QoS eliminado de la NIC?
yagmoth555
2
Publicar la configuración de su objetivo iSCSI y cualquier ajuste de red ajustado también sería prudente en este caso. También puede considerar probar con un iniciador open-iscsi en un cliente de Linux con un núcleo moderno para dar una comparación clara entre los iniciadores que usan el mismo objetivo, ya que el iniciador de Windows puede reducir demasiado la prueba existente. Más datos == más mejor.
Spooler
1
Pero en lo que respecta a la pregunta real : iSCSI y Samba son muy diferentes, y está utilizando una capa de almacenamiento en caché VFS cuando usa Samba que no existe en un dispositivo de bloque desnudo. Entiendo que está sorprendido por las diferencias en el rendimiento, pero ¿le importa más esta comparación u obtener iSCSI para saturar su red? Si iSCSI es su principal preocupación y el rendimiento de Samba es un detalle menor para el contexto, puede editar la pregunta para que quede más clara (y probablemente obtenga mejores respuestas).
Spooler
Usó Windows 10 para la prueba, pero no veo ningún detalle de la máquina utilizada en ningún lado. (y por qué utilizar un sistema operativo cliente de Windows para tal prueba?)
yagmoth555

Respuestas:

6

En primer lugar, el RAID-6 es el problema debido al cálculo de doble paridad. En segundo lugar, puede conectar el objetivo iSCSI dos veces en MS iSCSI Initiator, habilitar RR o Profundidad de cola mínima (desafortunadamente, Win10 no admite rutas múltiples, por lo que puede probarlo con Windows Server).

De hecho, el acceso a nivel de bloque debe ser más rápido que el acceso a nivel de archivo. ¿Qué tipo de herramienta de evaluación comparativa está utilizando desde el sitio de Windows? Recomendaría usar diskspd o FIO. Además, puede usar algo como Starwind como un objetivo iSCSI mucho más rápido.

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

Stuka
fuente
2
Raid 6 está en hardware, no en software. Ya no es un problema de rendimiento desde hace unos 20 años.
Nils
RAID-6 es el problema? Los cálculos de paridad ocurren independientemente del protocolo.
Daniel
2
RAID6 es más lento no debido a los cálculos de paridad, sino a que el llamado "agujero de escritura" es el resultado de una naturaleza RAID de paridad de lectura-modificación-escritura.
BaronSamedi1958
3
"Raid 6 está en hardware, no en software. Ya no es un problema de rendimiento desde hace aproximadamente 20 años. - Nils 21 de marzo a las 10:05" -> Esto simplemente no es cierto :( Lea esto -> theithollow.com/
2012/03/21
1

iSCSI debe usarse a nivel de bloque, la descripción de su configuración parece que está utilizando un sistema de archivos, colocando un archivo en él y luego ejecutando este archivo como capa de bloque iSCSI.

Esto está lejos de ser ideal, y definitivamente no es una configuración para comparar velocidades. Intente usar lvm en la parte superior de la raid6 para segmentar el espacio y permanecer en la capa de bloque para iSCSI, o use raid6 directamente como dispositivo iSCSI.

En su configuración actual, los datos se transfieren a través de la red, golpeando un archivo en el sistema de archivos, que (muy probablemente) no está optimizado para este tipo de carga de trabajo, y también se comparte con otros procesos. Es posible hacer dicha configuración con iSCSI, pero debe considerarse como una solución alternativa no optimizada.

hargut
fuente
1

Tenga en cuenta que ddes un punto de referencia muy simple y es MUY propenso a las distorsiones. Por ejemplo, ddestá escribiendo ceros: si algo tiene un caso especial para los datos llenos de ceros (por ejemplo, porque puede hacer compresión), verá un rendimiento fantástico pero cambiará a escribir "datos reales" distintos de cero y de repente ese rendimiento puede desaparecer. ..

Para responder a su pregunta (como en todas las evaluaciones comparativas), realmente tiene que aislar las piezas para identificar la parte que introduce el problema. Por ejemplo, ¿escribir en el sistema de archivos de Windows directamente (y no a través de iSCSI) también es extremadamente rápido? Si toma la misma configuración de hardware y ejecuta Linux en lugar de Windows, ¿es igual de rápido o se ralentiza? ¿Qué sucede si cambias a una herramienta de referencia como fio ?

Lamentablemente, hay demasiadas posibilidades para poder responder bien a una pregunta como esta ...

Luego
fuente