¿Cómo configurar SSD raid y TRIM support?

9

Estoy buscando configurar un nuevo servidor. Solo puedo usar Intel 520 Series 240gb MLC ssds o discos estándar Seagate 7200rpm.
Estas son las opciones no negociables.

Naturalmente, ya que esto va a ejecutar MySQL y su tarea principal es un servidor MySQL. Como el mayor cuello de botella de rendimiento es la E / S de disco, preferiría usar los SSD.

Necesito tener cerca de 1 TB de espacio en disco. Ahora, RAID5 no ofrece el mejor rendimiento y se rumorea que no es el mejor para los SSD, así que estoy viendo una configuración Raid 10 (1 + 0) que me daría 720 gb (240 gb * 3)

Necesito saber cómo puedo configurar esto con Ubuntu 12.04.01 LTS usando raid de software y asegurarme de que el soporte TRIM (descartar creo que se llama en Linux) está habilitado para la configuración de raid.

¿Alguien no hace esto con éxito? Cualquier información práctica y cosas a tener en cuenta y, básicamente, qué herramientas usar, etc., serían de gran ayuda.

Idealmente, también necesito poder arrancar la matriz RAID SSD.

¿Alguien puede señalarme en la dirección correcta?

Gracias.

Corcel
fuente
1
Recientemente hubo un gran problema al usar TRIM en SSD en RAID. Bug hizo TRIM para poner a cero los archivos activos al azar. Se dice que solo los SSD de Samsung se ven afectados, pero AFAIK se debe a que solo se probaron los SSD de Samsung. Para esto, le sugiero que piense en usar BTRFS RAID10 en lugar de mdadmo LVM.
Barafu Albino

Respuestas:

4

La respuesta es "depende" y realmente debe comprender lo que hace TRIM antes de afirmar una posición tan inflexible.

http://www.spinics.net/lists/raid/msg39641.html

MD RAID necesita soporte específico para reenviar las solicitudes de DESCARGA y eso ni siquiera se ha propuesto hasta 3.6, por lo tanto, el soporte no estará en el núcleo preciso. Acabo de mirar, no está allí.

https://lkml.org/lkml/2012/3/11/261

Los SSD son agradables y todo, pero son más rentables cuando se combinan con un almacenamiento magnético de altas RPM. Por ejemplo, use una matriz SSD RAID 1 para alojar el diario del sistema de archivos mientras el sistema de archivos está respaldado por un RAID 10 que consta de discos de 15K.

http://insights.oetiker.ch/linux/external-journal-on-ssd/

Cuanto mayor sea el RPMS, menor será su peor tiempo de búsqueda, las cargas de E / S aleatorias se benefician más de las tiendas de respaldo de altas RPM. SQL puede ser intensivo en escritura, por lo que cualquier cálculo de paridad es una mala idea, por ejemplo, RAID 4 y 5.

La organización del RAID y el sistema de archivos es tan importante como el almacén de respaldo.

Siempre puede RECORTAR sus discos manualmente, semanalmente está bien comenzar, debe observar cuál es el impacto en el rendimiento antes de ejecutarlo con más frecuencia. Ah, se quemarán, por lo que sería una buena idea estimar cuántos ciclos de escritura / eliminación tienen sus SSD y dar servicio al RAID 1 de una rama a la vez.

https://wiki.archlinux.org/index.php/Solid_State_Drives#Apply_TRIM_via_cron

ppetraki
fuente
4

Sé que últimamente soy un Johnny-come-this para esta pregunta, pero me gustaría ver si puedo arrojar algo de luz sobre esto para cualquiera que esté buscando.

Primero, la respuesta de @ ppetraki es excelente.

La respuesta corta a "¿Puedo RAID SSD y arrancar desde ellos" es "Sí!". Aquí hay instrucciones para 14.04. Las instrucciones para la configuración RAID en 12.04.x ​​son idénticas, pero este tutorial con 9.10 tiene imágenes. Los siguientes son algunos detalles y detalles importantes que tuve que descubrir de la manera difícil, a través de la experiencia personal:

Estoy ejecutando Ubuntu 12.04.5 con el kernel 3.8 en una configuración MD RAID0 y el sistema de archivos Btrfs compatible con SSD. Ejecuto fstrim como cron semanal.

Mis opciones adicionales de montaje de Btrfs de fstab:

defaults,ssd,ssd_spread,space_cache,compress=no,noatime

El núcleo 3.8 es necesario si desea utilizarlo compress=nocomo una opción de montaje Btrfs y también puede ser necesario para usar fstrimel comando de recorte manual utilizado para el recorte programado.

También debe alinear manualmente las particiones (en cualquier configuración de múltiples particiones, raid o no) en los SSD ANTES de iniciar el instalador porque, dependiendo del tamaño de página de su SSD, solo la primera partición estará alineada correctamente (me tomó un tiempo para atraparlo) y esto puede afectar gravemente la vida útil del disco. Puede hacerlo desde un símbolo del sistema dentro del instalador o desde un disco / usb en vivo antes de intentar la instalación. Advertencia: haz los cálculos tú mismo. Fdisk mentirá sobre la alineación.

Lectura adicional: creo que Btrfs puede incluso crear sus propias matrices de incursiones .

En cuanto a TRIM:

Podría decirse que es innecesario gracias al sobreaprovisionamiento

14.04 es la primera versión que habilita el soporte TRIM listo para usar, pero es trivial habilitarlo en distribuciones anteriores, siempre que esté usando el kernel 2.6.33+.

Dependiendo de su sistema de archivos elegido, puede habilitar el ajuste / descarte por la edición de su fstab y establecer la opción de montaje apropiado. La diferencia entre hacer esto y ejecutarlo a través de cron es que el primero recortará / descartará sobre la marcha y el segundo lo hará en un bulto en un horario. Yo uso el segundo.

¿Importa? Supuestamente, el descarte en línea (usando la opción de montaje) no se implementa maravillosamente y es lento, por lo que "no se recomienda". Puedo decirle que mis luces "hdd" (jeje) se vuelven locas durante 10-20 minutos cuando se ejecuta el trabajo cron semanal, pero la capacidad de respuesta del sistema operativo no se ve afectada por completo.

Arranque desde la matriz

Aunque no veo esto en un análisis rápido de las instrucciones de ubuntu 14.04, tuve que crear una partición primaria adicional que NO es parte de mis matrices de incursiones. El disco 0 tiene una partición primaria de 500mb de ext3fs. Durante la instalación, le dije al instalador que se iba a montar en "/ boot" y configuré el indicador de arranque. El cargador de arranque se instala aquí para que el sistema operativo pueda iniciar y luego montar el RAID. El espacio restante del Disco 0 se divide entre 2 particiones que luego se utilizan para las matrices de MD que se convierten en "/" y "/ swap". El disco 1 tiene lo mismo, pero no tiene una partición de arranque. Además, solo creé el intercambio en caso de que lo necesite alguna vez y btrfs no admita archivos de intercambio. Esta partición nunca está montada; después de la instalación, lo comenté en mi fstab.

Perdona todas las ediciones, solo trata de sacarlo todo.

Darth Cookie
fuente
Gracias por esta información perspicaz. Probaré esto en mi próxima implementación del sistema
Steed