.. _omv: |NAS| con *Open Media Vault* **************************** `Open Media Vault`_ es una distribución basada em *Debian*\ [#]_ orientada a la implementación de servidores |NAS|. Es quizás junto a FreeNAS_ y XigmaNAS_ (antes *NAS4Free*) el *software* más usada para la creación de un servidor |NAS|, pero presenta la ventaja de que soporta, además de *x86-64*, plataformas |ARM|, lo que la hace apta para convertir en |NAS| a una `Raspberry Pi`_. El hecho, además, de ser una *Debian* (las otras se basan en *FreeBSD*) la hace atractiva a nuestros ojos, ya que podremos cacharrear a bajo nivel o realizar una instalación a media. Por contra, no trae de serie |ZFS| como las otras dos, por lo que si queremos utilizar este sistema de ficheros para construir el |NAS|, necesitaremos instalar algún extra. Es cierto también que, si no se usa |ZFS|, los requerimientos de memoria son menores, por lo que podemos utilizarla sobre *hardware* más modesto. Instalación =========== Tenemos dos alternativas para instalar el sistema: * La imagen *ISO* de la distribución como tal, en plataformas *x86-64*. * Un *script* que instala el *software* de |OMV| sobre una *Debian* ya en funcionamiento y que permite su uso en otras plataformas como *x86* o |ARM| o en la propia *x86-64*, si nuestra intención es hacer una instalación a nuestro gusto. Imagen ------ La instalación es idéntica a la de *Debian*, salvo por el hecho de que algunas partes de la instalación se llevan a cabo automáticamente y no se crea usuario sin privilegios por no ser necesario. Es importante tener presente algunas consideraciones: - Debemos instalar el sistema en un disco y dejar los restantes para almacenamiento (muy probablemente constituyendo un |RAID|). - Si queremos usar |ZFS| necesitaremos al menos 8GiB de memoria |RAM|. - La instalación crea una partición de *swap* del mismo tamaño que la memoria |RAM|, por lo que necesitaremos un disco para el sistema que supere en 4GiB el tamaño de la |RAM|. Por ejemplo, si la memoria es de 16GiB, necesitaremos un disco de 20GiB. Teniendo presente esto y conociendo la instalación de *Debian* (y aun sin conocerla), el proceso de instalación es sumamente sencillo. Al término y tras arrancar el sistema, podremos: - Entrar directamente en el sistema con el usuario *root*. - Acceder mediante |SSH| con el usuario *root*. .. note:: El acceso mediante contraseña está habilitado, por lo que sería más conveniente configurar el acceso por clave pública y permitir el acceso sólo mediante ella. - Acceder a la interfaz web mediante el usuario *admin* con contraseña *openmediavault*. .. warning:: Asegúrese a través de la propia interfaz web de cambiar esta contraseña predefinida .. image:: files/interfaz.png *Script* -------- El *script* puede obtenerse de Github_ en `este repositorio oficial `_, en donde además se encuentran las instrucciones:: # apt install sudo # wget -O - "https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install" | sudo bash tras lo cual tendremos |OMV| perfectamente operativa y podremos acceder a ella a través de la interfaz web con el usuario web ya referido. .. _omv-extras: Extras ------ Si queremos los extras, debemos entonces hacernos con ellos e instalarlos. La instalación está disponible en `este repositorio de Github `_, pero puede llevarse a cabo automáticamente desde la consola con el usuario administrador:: # wget -O - "https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install" | bash Más adelante, volveremos a los extras para :ref:`habilitar y usar ZFS `. Configuración ============= Se lleva a cabo a través de una interfaz web desde la cual se pueden poner en marcha muchos servicios accesorios (incluso *Bittorrent*). Lo básico, sin embargo, es que sirva como servidor |NAS| para lo cual se requiere: - Preparar convenientemente los dispositivos de almacenamiento. - Establecer un control de accesos para los datos. - Hacer accesibles estos datos al resto de máquinas. Dispositivos ------------ Nuestro primer propósito, muy probablemente sea constituir un |RAID| con los dispositivos de almacenamiento a través de la entrada ``Almacenamiento>Gestión de RAID``. Como en nuestro sistema disponemos de tres, constituiremos un |RAID| 5: .. image:: files/raid.png Como estamos en *Debian* y no usamos |ZFS|, este |RAID| se ha construido con :ref:`mdadm ` y la consecuencia es que aparecerá un dispositivo :file:`/dev/md0`: .. image:: files/raid-2.png En este punto, a no ser que queramos generar particiones y crear los sistemas de ficheros recurriendo a la consola, podremos únicamente constituir un nuevo sistema de ficheros sobre todo el |RAID| a través de la sección ``Almacenamiento>Sistema de archivos``: .. image:: files/fs.png Lo que generará un nuevo sistema de ficheros apto para ser montado: .. image:: files/fs-2.png y que puede montarse a través de la misma página: .. image:: files/fs-3.png .. _omv-compartible: Aunque pueda parecer que con esto basta, ya que el sistema de archivos está montado sobre el árbol de directorios, aún es necesario identificar qué sistemas se harán accesibles al resto de equipos. Ello implica acudir a la sección ``Permisos de acceso>Carpetas compartidas``: .. image:: files/compartido.png Esto, sin embargo, no implica que los archivos sean accesibles, porque aún hay que compartirlos a través de algún sistema de archivos en red. Usuarios -------- Pueden crearse grupos y usuarios a través de ``Permisos de acceso>Usuario`` y ``Permisos de acceso>Grupo`` respectivamente. Estos usuarios y grupos son usuarios locales\ [#]_, por lo que no tiene excesivo secreto su creación: .. image:: files/usuario.png El grupo predeterminado para los usuarios es el grupo *users*, ya definido en *Debian* con |GID| 100. .. _omv-permisos: Permisos -------- Los permisos se aplican como :ref:`reglas ACL ` sobre el sistema de ficheros a través de la sección de ``Permisos de acceso>Carpetas compartidas``, pinchando sobre |ACL|: .. image:: files/acl.png Es obvio que la parte inferior de la ventana emergente son los permisos |UGO| y la parte superior sirve para definir las reglas |ACL| para usuarios y grupos concretos. .. _omv-compartido: Compartición ------------ Definidos cuáles son los sistemas de archivos compartibles y cuáles serán sus permisos de acceso, el último paso es compartirlos de forma efectiva bien a través de |CIFS| (para sistemas *Windows* y *Linux*), bien a través de |NFS| (si nuestros clientes son exclusivamente *Linux*). En ambos casos es necesario desde el servicio correspondiente, habilitarlo: .. image:: files/smb.png y compartirlo: .. image:: files/smb-2.png Hecho esto ya tendremos el |RAID|\ 5 accesible desde los clientes:: $ smbclient -U zicotropico -L //192.168.0.16 Enter WORKGROUP\zicotropico's password: Sharename Type Comment --------- ---- ------- CAJONDESASTRE Disk Cajón de sastre compartido con SAMBA IPC$ IPC IPC Service (nas server) y podremos acceder a él según nuestro nivel de permisos:: $ smbclient -U zicotropico //192.168.0.16/CAJONDESASTRE smb: \> put FicheroEnElCliente.txt putting file MensajeGrupo.txt as \MensajeGrupo.txt (213,5 kb/s) (average 213,5 kb/s) smb: \> ls . D 0 Sun Jan 12 09:05:14 2020 .. D 0 Sat Jan 11 19:25:25 2020 FicheroEnElCliente.txt N 4154 Sun Jan 12 09:05:14 2020 2027408 blocks of size 1024. 2004864 blocks available Miscelánea ========== Primeros auxilios ----------------- |OMV| dispone de un programa para llevar a cabo algunas tareas auxiliares (p.e. cambiar la contraseña del administrador web si la hemos olvidado):: # ovm-firstaid Consejos -------- * Cambie la contraseña de acceso a la interfaz web. * Suba una clave pública para el acceso |SSH| como *root* y modique la configuración del servidor para que sólo se pueda acceder con ella y no con contraseña. * Configure los avisos por correo electrónico (``Sistema>Avisos``) para recibir en una cuenta que revise periódicamente los mensaje del |NAS| (entre ellos la rotura de algún disco). .. _ovm-zfs: |ZFS| ----- |ZFS| tiene la ventaja de incorporar la capacidad de crear |RAID|\ s dentro del propio sistema de ficheros, lo que le permite mejorar los rendimientos de escrituras en |RAID| 5 y 6. Esto, sin embargo, se hace a costa de usar caché y, en consecuencia, requerir grandes cantidades de memoria |RAM|. Por ello, si nuestra intención es usarlo, debemos disponer **al menos de 8GiB**, que es el requisito mínimo en otros sistemas como FreeNAS_. Como |ZFS| no está disponible directamente en *Debian*, por `incompatibilidad con su licencia `_, no lo provee el instalador y debe instalarse más tarde por sí está disponible como paquete. Esta circunstancia afecta a |OMV|, que también incorpora el soporte para |ZFS| como un extra. Después de instalar :ref:`los extras ` tenemos disponibles dos de los paquetes necesarios: - El *kernel de Proxmox*, que debe instalarse antes y estar en funcionamiento antes de pasar al próximo paso. Se instala en la pestaña *kernel* de la sección ``Sistema>OMV-Extras``. .. image:: files/install-kernel.png - Después de haber **reiniciado**, debe instalarse el paquete *openmediavault-zfs* a través de la sección ``Sistema>Plugins``. Hecho lo anterior, aparecerá en ``Almacenamiento`` una sección dedicada a |ZFS| a través de la cual podemos crear el |RAID|: .. image:: files/zfs-raid.png En este caso, nuestro |RAID| es un |RAID| Z, esto es, el equivalente al |RAID| 5, pero con mejor rendimiento en las escrituras. El resultado es este: .. image:: files/zfs-raid-2.png La diferencia capital en este caso es que el resultado no es un dispositivo virtual que hay que formatear, como cuando se crea el |RAID| con :program:`mdadm`, sino que el resultado ya es un sistema de archivos plenamente funcional. Por ello, si consultamos la sección ``Almacenamiento>Sistema de archivos``, el |RAID| aparecerá ya sin hacer ninguna operación adicional: .. image:: files/zfs-fs.png A partir de aquí, el procedimiento para compartir el sistema de archivos es exactamente el mismo del ya expuesto: :ref:`hacer compartible el sistema de archivos `, :ref:`establecer su política de permisos ` y :ref:`compartirlo de modo efectivo `. .. rubric:: Notas al pie .. [#] La v3 basada en Jessie_, la v4 en Stretch_, y la v5 en Buster_. En realidad, más que basarse en *Debian*, son *Debian* con el añadido de la interfaz *web* propia para la administración del |NAS|. .. [#] es decir, que se almacenan en :file:`/etc/passwd` y :file:`/etc/group`, respectivamente. .. |OMV| replace:: :abbr:`OMV (Open Media Vault)` .. |NAS| replace:: :abbr:`NAS (Network Attached Storage)` .. |ZFS| replace:: :abbr:`ZFS (ZFS File System)` .. |RAM| replace:: :abbr:`RAM (Random Access Memory)` .. |ARM| replace:: :abbr:`ARM (Advanced Risk Machine)` .. |GID| replace:: :abbr:`GID (Group IDentifier)` .. |UGO| replace:: :abbr:`UGO (User-Group-Others)` .. |CIFS| replace:: :abbr:`CIFS (Common Internet File System)` .. |NFS| replace:: :abbr:`NFS (Net File System)` .. _Open Media Vault: https://www.openmediavault.org/ .. _Raspberry Pi: https://www.raspberrypi.org/ .. _FreeNAS: https://www.openmediavault.org://www.freenas.org/ .. _XigmaNAS: https://www.xigmanas.com/ .. _Github: https://github.com