Grupo de almacenamiento de servidor de archivos de Linux

8

¿Es posible hacer que el servidor Linux comparta varios discos duros como un grupo de almacenamiento a través de Samba? De modo que cuando uso el recurso compartido no tengo que preocuparme por guardar en una unidad determinada que tiene espacio libre, sino que guardo en el grupo que se encarga de todo eso.

Supongo que podría hacer esto mediante algún tipo de incursión (software), pero muchos de mis archivos realmente no necesitan ser atacados. Mi objetivo es tener una configuración en la que tenga ~ 500 GB de incursiones y algunos TB de espacio sin incursiones.

Actualmente tengo un servidor ligero W2008 y me gustaría mudarme a Linux y esta sería una buena característica.

Illotus
fuente

Respuestas:

19

En Linux, puede usar LVM para reunir varios discos duros (PV) en un Grupo de Volumen (VG) y particionarlo con los Volúmenes Lógicos (LV) que desea compartir a través de samba.

Vea este enlace para más información.

Esquema LVM

Phaphink
fuente
1
Gran elección de imagen para ilustrar el concepto.
andol
7

Respaldaría la sugerencia de Raphink de LVM (y lo voté, de hecho), esto es exactamente para lo que LVM está diseñado y funciona bien en mi experiencia.

Una cosa a tener en cuenta es que el uso de LVM en un conjunto de unidades es solo un poco más seguro que RAID0: si una unidad falla, puede perder más de una unidad de sistemas de archivos debido a volúmenes lógicos que se extienden entre los límites de la unidad. Entonces, aunque "muchos de mis archivos realmente no necesitan ser saqueados", asegúrese de tener un buen plan de respaldo para aquellos archivos que no son tan fáciles de reemplazar.

Si es probable que el servidor de almacenamiento vea mucha actividad, puede considerar usar RAID0 y LVM. Esto le dará un aumento significativo del rendimiento para muchos patrones de E / S y no reducirá el espacio de almacenamiento total disponible (como RAID0 no ofrece redundancia, por lo que no utiliza espacio para datos reflejados o bloques de paridad). Una vez que haya unido algunas unidades en una matriz RAID0, puede convertir la matriz en un PV LVM como cualquier otra unidad / partición y usar volúmenes lógicos para dividir el espacio según sea necesario.

Por supuesto, con RAID0 definitivamente perderá todo si una unidad muere, pero si tiene un plan de respaldo que sea suficiente para JBOD (que es lo que está haciendo con solo LVM, es equivalente a lo que algunas referencias de RAID llaman "modo lineal" ") tiene uno que es suficiente para los datos en RAID0 (¡y cualquiera que diga que no es lo suficientemente paranoico acerca de los datos que tienen en múltiples unidades usando LVM!).

Puede mezclar y combinar niveles RAID en las mismas unidades. En una de las máquinas bajo mi control que se ejecuta como host de VM para desarrollo y pruebas, las unidades en su matriz tienen algunas partes como RAID0 (para las propias VM) y algunas como RAID1 (para copias de seguridad de las VM). Cada una de las unidades está dividida en particiones de ~ 100 Gb y cada conjunto o particiones puede ser una matriz RAID. Los dos primeros en cada unidad son actualmente RAID0 (enlazados como un volumen lógico por LVM), los últimos tres RAID1 (nuevamente enlazados como un LV), y los que quedan en el medio son libres de estar cuando se necesita más espacio. Si hace esto, por supuesto, debe tener cuidado con la contención de E / S (no es un problema en mi caso, ya que las dos matrices RAID rara vez ven actividad notable al mismo tiempo porque el conjunto RAID1 solo es accesible cuando se hace una nueva copia de seguridad o se restaura una antigua) y los movimientos excesivos de la cabeza cuando ambas matrices están en uso activo (como están en los extremos opuestos de las unidades), pero de todos modos debe tener en cuenta aquellos que solo usan LVM sin RAID. Esta disposición significaba que no tenía que adivinar con precisión, en el momento de la instalación, qué equilibrio de cuánto espacio de alta velocidad (R0) y espacio de alta seguridad (R1) necesitaría la máquinaX meses más adelante sin comprometerse y solo optando por una sola matriz RAID10.

David Spillett
fuente
"Si una unidad falla, puede perder más de una unidad de sistemas de archivos debido a los volúmenes lógicos que abarcan los límites de la unidad". Gracias por esta pepita, parece que tendré que revisar un poco mi plan.
Illotus
Tenga en cuenta que este es el mismo problema que tendrá con un sistema RAID0: si una unidad falla, pierde datos. Como se sugiere en la respuesta de David, puede combinar RAID y LVM. La combinación de un sistema RAID0 con LVM es redundante e inútil, pero la combinación de RAID1, 10, 4, 5 o 6 con LVM garantiza que sus datos no se perderán si pierde uno o más discos duros. También le costará más en hardware, ya que necesita más espacio en disco que el espacio de datos utilizable real. El tipo de RAID depende principalmente del tipo de uso que le hagas. Si no tiene un RAID de hardware, puede usar LVM sobre mdadm.
phaphink
3
La combinación de RAID0 con LVM no es inútil: dependiendo de su carga de E / S (por ejemplo, muchas operaciones de archivos simultáneas a través de la red Gbit), podría ver un gran aumento de rendimiento de las bandas realizadas por RAID0. Incluso a través de un enlace de 100Mbit puede ver una diferencia para varios accesos concurrentes y / o no secuenciales. Sin embargo, para una carga de E / S menos ardua, la diferencia puede ser insignificante.
David Spillett
Combinar RAID-0 con LVM no es inútil. LVM por defecto asigna espacio secuencialmente desde el principio. Esto puede afectar el rendimiento si una parte del conjunto LVM recibe toda la atención de E / S, enfocando esa actividad en un disco. RAID-0 divide explícitamente los datos en todos los discos de la matriz RAID-0. Esto puede acelerar la actividad de lectura y escritura. La diferencia es que si uno de los discos en un conjunto LVM falla, probablemente perderá al menos algunos datos. Si falla un disco en un conjunto RAID-0, PERDERÁ TODOS los datos. La idea de RAID-5 postulada por Raphink le da al menos la ilusión de una cierta protección contra fallo de disco
David Mackintosh
Gracias por estas aclaraciones David y David, eso es muy interesante de considerar. ¿Considera que LVM sobre RAID0 vale la pena incluso si utiliza un sistema RAID de software como mdadm, o solo con un sistema RAID de hardware?
phaphink
2

También recomendaría echar un vistazo a ZFS, que también contiene agrupación de unidades y duplicación RAID incorporada.

Hay algunos problemas con las licencias que dificultan la implementación, pero lo he estado ejecutando en mi sistema doméstico con unidades de 3 x 1TB sin problemas.

Dave Drager
fuente
2
Soy un gran fanático de ZFS pero no recomendaría ejecutarlo bajo Linux como un sistema de archivos FUSE en un entorno de producción. Para Linux es mejor esperar a que BTRFS madure. BTRFS tiene un mejor diseño que ZFS, pero creo que todavía es al menos un año, tal vez un par, desde que está listo para la producción.
3dinfluence