Cómo configurar el software RAID para un servidor de archivos simple en Ubuntu
¿Necesita un servidor de archivos de bajo costo que sea fácil de configurar, "sólido como un rock" confiable con alertas de correo electrónico? le mostrará cómo usar Ubuntu, el software RAID y SaMBa para lograr exactamente eso.
Visión general
A pesar del reciente zumbido para mover todo a la nube "todo lo poderoso", a veces es posible que no desee su información en el servidor de otra persona o que tal vez no sea posible descargar los volúmenes de datos que necesita de Internet cada vez (por ejemplo, el despliegue de imágenes). ). Entonces, antes de limpiar un lugar en su presupuesto para una solución de almacenamiento, considere una configuración que esté libre de licencia con Linux.
Dicho esto, ir barato / gratis no significa "lanzar precaución al viento", y con ese fin, señalaremos los puntos que debemos tener en cuenta, las configuraciones que deben establecerse además de usar el software RAID, para lograr el relación precio / fiabilidad máxima.
Imagen de Filomena Scalise.
Acerca del software RAID
Como su nombre lo indica, se trata de una configuración RAID (matriz redundante de discos de bajo costo) que se realiza completamente en el software en lugar de usar una tarjeta de hardware dedicada. La principal ventaja de tal cosa es el costo, ya que esta tarjeta dedicada es una prima adicional a la configuración básica del sistema. Las principales desventajas son básicamente el rendimiento y cierta confiabilidad, ya que una tarjeta de este tipo generalmente viene con su propia CPU RAM + para realizar los cálculos necesarios para la matemática de redundancia, el almacenamiento en caché de datos para un mayor rendimiento y la batería de respaldo opcional que mantiene las operaciones no escritas en el caché hasta El poder ha sido restaurado en caso de un apagón.
Con una configuración de software RAID, está sacrificando parte del rendimiento de la CPU del sistema para reducir el costo total del sistema, sin embargo, con las CPU actuales, la sobrecarga es relativamente insignificante (especialmente si va a dedicar este servidor principalmente a ser un “servidor de archivos”). En lo que respecta al rendimiento del disco, hay una penalización ... sin embargo, nunca he encontrado un cuello de botella en el subsistema de disco del servidor para observar qué tan profundo es. La guía de Tom's Hardware "Tom's goes RAID5" es un artículo antiguo, pero bueno y exhaustivo sobre el tema, que personalmente utilizo como referencia. Sin embargo, tome los puntos de referencia con un poco de sal, ya que se refiere a la implementación de Windows del software RAID (como en Todo lo demás, estoy seguro de que Linux es mucho mejor: P).
Prerrequisitos
- Paciencia joven, esta es una lectura larga..
- Se supone que usted sabe qué es RAID y para qué se utiliza.
- Esta guía se escribió usando el servidor Ubuntu 9.10 x64, por lo que se supone que también tiene un sistema basado en Debian con el que trabajar.
- Me verás usando VIM como el programa editor, esto es solo porque estoy acostumbrado ... puedes usar cualquier otro editor que desees.
- El sistema Ubuntu que utilicé para escribir esta guía se instaló en un disco en clave. Al hacerlo, me permitió usar sda1 como parte de la matriz RAID, así que ajústelo a su configuración.
- Dependiendo del tipo de RAID que desee crear, necesitará al menos dos discos en su sistema y en esta guía estamos usando 6 unidades.
Seleccionando los discos que conforman la matriz.
El primer paso para evitar una trampa es conocer su existencia (Thufir Hawat de Dune).
Elegir los discos es un paso vital que no debe tomarse a la ligera, y sería prudente sacar provecho de su experiencia de trullo y prestar atención a esta advertencia:
Hacer NO use unidades de "grado de consumidor" para crear su matriz, use unidades de "grado de servidor"!!!!!!
Ahora sé lo que piensas, ¿no dijimos que vamos a ir a lo barato? y sí lo hicimos, pero, este es exactamente uno de los lugares donde hacerlo es imprudente y debe evitarse. A pesar de su precio atractivo, los discos duros de grado de consumo no están diseñados para ser utilizados en un tipo de uso "24/7". Confía en mí, el tuyo realmente ha intentado esto para ti. Al menos cuatro unidades de nivel de consumidor en los 3 servidores que he configurado de esta manera (debido a restricciones presupuestarias) fallaron después de aproximadamente 1.5 a 1.8 años desde el día de lanzamiento inicial del servidor. Si bien no hubo pérdida de datos, porque el RAID hizo su trabajo bien y sobrevivió ... momentos como este acortan la vida útil del administrador del sistema, sin mencionar el tiempo de inactividad de la empresa para el mantenimiento del servidor (algo que puede costar más que las unidades de mayor calidad).
Algunos pueden decir que no hay diferencia en la tasa de falla entre los dos tipos. Eso puede ser cierto, sin embargo, a pesar de estas afirmaciones, las unidades de nivel de servidor todavía tienen un nivel más alto de restricciones SMART y control de calidad detrás de ellas (como puede observarse por el hecho de que no se lanzan al mercado tan pronto como lo hacen las unidades de consumo), así que todavía recomiendo encarecidamente que desembolsen el $$$ extra para la actualización.
Elegir el nivel RAID.
Si bien no voy a entrar en todas las opciones disponibles (esto está muy bien documentado en la entrada de Wikipedia de RAID), creo que es importante decir que siempre debe optar por al menos RAID 6 o incluso más ( estaremos usando Linux RAID10). Esto se debe a que cuando falla un disco, existe una mayor probabilidad de que ocurra una falla en el disco vecino y, a continuación, usted tiene una falla de "dos discos" en sus manos. Además, si va a utilizar unidades de gran tamaño, ya que los discos más grandes tienen una mayor densidad de datos en la superficie del disco, la probabilidad de fallo es mayor. Los discos IMHO de 2T y más allá siempre se incluirán en esta categoría, así que tenga cuidado.
Pongamos manos a la obra
Discos de particionamiento
Mientras que en Linux / GNU, podríamos usar todo el dispositivo de bloque para las necesidades de almacenamiento, usaremos particiones porque facilita el uso de las herramientas de rescate de disco en caso de que el sistema se haya vuelto loco. Estamos usando el programa "fdisk" aquí, pero si va a usar discos más grandes que 2T, necesitará usar un programa de partición que admita la partición GPT como parted.
sudo fdisk / dev / sdb
Nota: He observado que es posible hacer la matriz sin cambiar el tipo de partición, pero como esta es la forma descrita en toda la red, voy a seguir mi ejemplo (de nuevo, cuando se usa el dispositivo de bloque completo, esto no es necesario).
Una vez en fdisk las pulsaciones son:
n; para una nueva partición
entrar
pag ; para una partición primaria
entrar
1; número de partición
entrar aceptar el valor predeterminado
entrar aceptar el valor predeterminado
t para cambiar el tipo
fd configura el tipo para que sea "Linux raid auto detect" (83h)
w; escribir cambios en el disco y salir
Enjuague y repita para todos los discos que formarán parte de la matriz..
Creando un array RAID10 de Linux
La ventaja de usar “Linux raid10 "es que sabe cómo aprovechar un número de discos no parejo para mejorar el rendimiento y la resistencia aún más que el RAID10 de vainilla, además del hecho de que al usarlo se puede crear la matriz" 10 "de una sola vez paso.
Cree la matriz a partir de los discos que hemos preparado en el último paso emitiendo:
sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -verboso
Nota: Todo esto es solo una línea a pesar del hecho de que la representación se divide en dos..
Vamos a desglosar los parámetros:
- “-Chunk = 256”: el tamaño de los bytes a los que se dividen las bandas de raid, y este tamaño se recomienda para discos nuevos / grandes (las unidades 2T utilizadas para hacer esta guía fueron sin duda en esa categoría).
- “-Level = 10” - Usa el Linux raid10 (si se requiere una incursión tradicional, por cualquier razón, tendrías que crear dos matrices y unirte a ellas).
- “-P f2”: utiliza el plan de rotación “lejano”; vea la nota a continuación para obtener más información y “2” le dice a la matriz que mantendrá dos copias de los datos.
Nota: Utilizamos el plan "lejano" porque esto hace que el diseño físico de los datos en los discos NO sea el mismo. Esto ayuda a superar la situación en la que el hardware de una de las unidades falla debido a un fallo de fabricación (y no piense que "esto no me sucederá a mí" como el suyo realmente lo hizo). Debido al hecho de que los dos discos son de la misma marca y modelo, se han utilizado de la misma manera y tradicionalmente se han mantenido los datos en la misma ubicación física ... Existe el riesgo de que la unidad que contiene la copia de los datos haya fallado también o está cerca de, y no proporcionará la resistencia necesaria hasta que llegue un disco de reemplazo. El plan "lejano" hace que la distribución de datos a una ubicación física completamente diferente en las unidades de copia además de usar discos que no estén cerca entre sí dentro de la caja de la computadora. Puede encontrar más información aquí y en los enlaces a continuación..
Una vez que se haya creado la matriz, comenzará su proceso de sincronización. Si bien es posible que desee esperar por el bien de las tradiciones (ya que esto puede llevar un tiempo), puede comenzar a utilizar la matriz inmediatamente..
El progreso se puede observar utilizando:
reloj -d gato / proc / mdstat
Crear el archivo de configuración mdadm.conf
Si bien se ha demostrado que Ubuntu simplemente sabe escanear y activar la matriz automáticamente en el inicio, por el bien y la cortesía para el próximo administrador de sistemas, crearemos el archivo. Su sistema no crea automáticamente el archivo y, al tratar de recordar todos los componentes / particiones de su conjunto RAID, está a la altura de la cordura del administrador del sistema. Esta información puede y debe mantenerse en el archivo mdadm.conf. El formato puede ser complicado, pero afortunadamente la salida del comando mdadm -detail -scan -verbose te lo proporciona.
Nota: Se ha dicho que: “La mayoría de las distribuciones esperan el archivo mdadm.conf en / etc /, no / etc / mdadm. Creo que este es un "ubuntu-ism" para tenerlo como /etc/mdadm/mdadm.conf ". Debido al hecho de que nosotros son Usando Ubuntu aquí, solo iremos con él.
sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf
¡IMPORTANTE! necesita eliminar un “0” del archivo recién creado porque la sintaxis resultante del comando anterior no es completamente correcta (GNU / Linux no es un sistema operativo todavía).
Si desea ver el problema que causa esta configuración incorrecta, puede emitir el mensaje “escanear" comando en este punto, antes de hacer el ajuste:
mdadm --examine --scan
Para superar esto, edita el archivo. /etc/mdadm/mdadm.conf y cambio:
metadatos = 00.90
Leer:
metadatos = 0.90
Corriendo el mdadm -examine -scan comando ahora debería volver sin un error.
Configuración del sistema de archivos en la matriz
Utilicé ext4 para este ejemplo porque para mí simplemente se basó en la familiaridad del sistema de archivos ext3 que venía antes, al tiempo que ofrecía un mejor rendimiento y características..
Sugiero tomarse el tiempo para investigar qué sistema de archivos se adapta mejor a sus necesidades y un buen comienzo para eso es nuestro artículo "¿Qué sistema de archivos Linux debería elegir?".
sudo mkfs.ext4 / dev / md0
Nota: En este caso, no particioné la matriz resultante porque, simplemente no la necesitaba en ese momento, ya que la parte solicitante específicamente solicitó al menos 3.5T de espacio continuo. Dicho esto, si hubiera querido crear particiones, habría tenido que usar una utilidad capaz de crear particiones GPT como "parted".
Montaje
Crear el punto de montaje:
sudo mkdir / media / raid10
Nota: Esta puede ser cualquier ubicación, lo anterior es solo un ejemplo.
Debido a que estamos tratando con un "dispositivo ensamblado" lo haremos no use la UUID del sistema de archivos que se encuentra en el dispositivo para el montaje (tal como se recomienda para otros tipos de dispositivos en nuestra guía "¿qué es el linux fstab y cómo funciona?") ya que el sistema puede ver parte del sistema de archivos en un disco individual intentar incorrectamente montarlo directamente. para superar esto, queremos esperar explícitamente a que el dispositivo se "ensamble" antes de intentar montarlo, y usaremos el nombre de la matriz ensamblada ("md") dentro de fstab para lograr esto.
Edite el archivo fstab:
sudo vim / etc / fstab
Y añádele esta línea:
/ dev / md0 / media / raid10 / ext4 por defecto 1 2
Nota: Si cambia la ubicación de montaje o el sistema de archivos del ejemplo, tendrá que ajustar la anterior según corresponda..
Utilice mount con el parámetro automático (-a) para simular un inicio del sistema, para que sepa que la configuración está funcionando correctamente y que el dispositivo RAID se montará automáticamente cuando el sistema se reinicie:
monte sudo -a
Ahora debería poder ver la matriz montada con el comando "mount" sin parámetros.
Alertas de correo electrónico para la matriz RAID
A diferencia de las matrices RAID de hardware, con una matriz de software no hay un controlador que comience a emitir un pitido para avisarle cuando algo salió mal. Por lo tanto, las alertas por correo electrónico serán nuestra única forma de saber si algo le sucedió a uno o más discos en la matriz y, por lo tanto, a paso más importante.
Siga la guía "Cómo configurar alertas de correo electrónico en Linux usando Gmail o SMTP" y cuando termine, vuelva aquí para realizar los pasos específicos de RAID.
Confirmar que mdadm puede enviar por correo electrónico
El siguiente comando le indicará a mdadm que dispare solo un correo electrónico y que cierre.
sudo mdadm --monitor --scan --test --oneshot
Si tiene éxito, debería recibir un correo electrónico, detallando la condición de la matriz.
Establecer la configuración de mdadm para enviar un correo electrónico en el inicio
Si bien no es una necesidad absoluta, es bueno recibir actualizaciones de la máquina de vez en cuando para informarnos que la capacidad del correo electrónico aún funciona y que la condición de la matriz sigue funcionando. es probable que no se sienta abrumado por los correos electrónicos, ya que esta configuración solo afecta a los inicios (que en los servidores no deberían ser muchos).
Edite el archivo de configuración mdadm:
sudo vim / etc / default / mdadm
Añade el -prueba parámetro a la DAEMON_OPTIONS sección para que se vea como:
DAEMON_OPTIONS = "- syslog --test"
Puede reiniciar la máquina solo para asegurarse de que esté "en el circuito", pero no es una obligación.
Configuración de Samba
La instalación de SaMBa en un servidor Linux le permite actuar como un servidor de archivos de Windows. Entonces, para obtener los datos que estamos alojando en el servidor Linux disponible para clientes Windows, instalaremos y configuraremos SaMBa.
Es gracioso observar que el nombre del paquete de SaMBa es un juego de palabras en el protocolo de Microsoft utilizado para compartir archivos llamado SMB (bloque de mensajes de servicio).
En esta guía, el servidor se utiliza con fines de prueba, por lo que habilitaremos el acceso a su recurso compartido. sin al requerir una contraseña, es posible que desee profundizar un poco más en cómo configurar los permisos una vez que se complete la configuración.
También se recomienda que cree un usuario sin privilegios para que sea el propietario de los archivos. En este ejemplo, utilizamos el usuario "geek" que hemos creado para esta tarea. Las explicaciones sobre cómo crear un usuario y administrar la propiedad y los permisos se pueden encontrar en nuestras guías "Crear un nuevo usuario en Ubuntu Server 9.10" y "La Guía del principiante para administrar usuarios y grupos en Linux".
Instala Samba:
aptitude instalar samba
Editar el archivo de configuración de samba:
sudo vim /etc/samba/smb.conf
Agregue un recurso compartido denominado "general" que otorgará acceso al punto de montaje "/ media / raid10 / general" agregando el siguiente archivo al archivo.
[general]
ruta = / media / raid10 / general
fuerza usuario = geek
grupo de fuerza = geek
solo lectura = No
crear máscara = 0777
Máscara de directorio = 0777
solo invitado = si
invitado ok = si
Los ajustes anteriores hacen que el recurso compartido sea direccionable. sin una contraseña para cualquier persona y hace que el propietario predeterminado de los archivos sea el usuario "geek".
Para su referencia, este archivo smb.conf fue tomado de un servidor de trabajo.
Reinicie el servicio de samba para que la configuración tenga efecto:
sudo /etc/init.d/samba restart
Una vez hecho esto puedes usar el grupo de prueba comando para ver la configuración aplicada al servidor samba.
eso es todo, el servidor ahora debería ser accesible desde cualquier caja de Windows usando:
\ server-namegeneral
Solución de problemas
Cuando necesite solucionar un problema o un disco haya fallado en una matriz, sugiero que se refiera a la hoja de trucos de mdadm (eso es lo que hago ...).
En general, debe recordar que cuando falla un disco, debe "eliminarlo" de la matriz, apagar la máquina, reemplazar la unidad defectuosa por una de reemplazo y luego "agregar" la nueva unidad a la matriz después de haber creado el disco apropiado. diseño (particiones) en él si es necesario.
Una vez hecho esto, es posible que desee asegurarse de que la matriz se está reconstruyendo y ver el progreso con:
reloj -d gato / proc / mdstat
¡Buena suerte! :)
Referencias:
hoja de trucos mdadm
Los niveles de RAID se descomponen
Linux RAID10 explicado
Página de comando de mdadm
Página de manual del archivo de configuración mdadm
Limitaciones de partición explicadas
Usar el software RAID no costará mucho ... Sólo su VOZ ;-)