Asegúrese de que el servidor siempre pueda iniciarse y que haya un disco duro montado antes de compartirlo con Samba

Asegúrese de que el servidor siempre pueda iniciarse y que haya un disco duro montado antes de compartirlo con Samba

Tengo dos discos duros de 2 TB (no los discos de arranque/sistema) con una única partición en cada uno, que comparto con Samba. Los puntos de montaje están en /mnt/drive01y /mnt/drive02.

Éstas también son la ruta de dos recursos compartidos de samba, denominados backup1 y backup2. Tan pronto como estos recursos compartidos aumentan, comienzan a llenarse con (muchos) datos de otras máquinas en la red (algunas máquinas escriben en backup1, otras en backup2, pero ninguna escribe en ambos).

Todo funciona según lo previsto, no hay problema con Samba. Este servidor (en una ubicación remota) está configurado para reiniciarse automáticamente en caso de pérdida de energía, etc. Además, tengo dos unidades en RAID1 como unidades de sistema/arranque, para asegurarme de que el servidor pueda (¡casi!) al menos arrancar siempre.

El problema es en caso de que el sistema arranque bien, pero por alguna razón no pueda montar uno (o ambos) de los discos duros de 2 TB: samba comenzaría a compartir /mnt/drive01y /mnt/drive02, los discos de gran capacidad no están montados, por lo que todos los datos, de hecho, termina en la unidad del sistema, llenándola y haciendo que el sistema sea inutilizable o no se pueda acceder de forma remota a través de ssh.

Entonces no creo que sea una buena idea ingresar las particiones de las dos unidades de 2 TB en /etc/fstab, ya que noté algunos problemas en el arranque en caso de que una de las unidades de datos se desconecte, por ejemplo. Nuevamente, esto es importante ya que el servidor está en una ubicación remota y no puede depender de la intervención del operador para corregir mensajes en pantalla como "la unidad no está lista, siga esperando, presione S para omitir el montaje, M para manual..."

Tengo un pequeño script que intenta montar las unidades de datos un minuto después del arranque, y esto soluciona la parte fstab. Ahora vamos a Samba.

Lo que me gustaría es que Samba se inicie después de un tiempo (no hay problema), pero también habilitar o deshabilitar "dinámicamente" los dos recursos compartidos. Entonces, por ejemplo, si falla la segunda unidad de datos, mi script solo podrá montar el primer disco de datos y samba solo anunciará el recurso compartido backup1 (con los datos escritos en la unidad de disco de 2 TB); el otro recurso compartido (backup2, asignado a /mnt/drive02) no se anunciará ni deshabilitará, pero al menos tengo un recurso compartido en ejecución (y algunas de mis máquinas pueden transferir datos a él).

Por supuesto, la manera más fácil es hacer que samba se inicie sólo si ambas unidades de datos están montadas, pero esta es una solución de todo o nada.

¿Algunas ideas?

Respuesta1

Hay dos opciones. Si no tiene otros recursos compartidos con Samba, puede simplemente iniciar Samba cuando ambos estén montados y detenerlos cuando ambos estén desmontados, usando upstart o systemd. Con systemd deberías necesitarRequires=estrofay con advenedizostart on mounted /dev/something. La otra forma es eliminar samba de los scripts de inicio y comenzar usando su script. Esas opciones dependen de lo que ya hayas hecho.

información relacionada