FreeNAS
Descripción
FreeNAS is a free, open source, Network-Attached Storage operating system based on FreeBSD.
It supports sharing across Windows, Apple, and UNIX-like systems.
FreeNAS 8 includes ZFS, which supports high storage capacities and integrates file systems and volume management into a single piece of software.
Prerequistos
Un equipo con discos y una memoria USB para el sistema de minimo 1G (mejor 4G) para tener el sistema y memoria ram de > 4G si va a usar ZFS
Instalación
La cuestion es como transparente, es hacerlo bootear del CD y escoger en el menu instalar, se selecciona la memoria USB y el se encarga de hacer todo hasta que le pide reiniciar.
Saque el CD y bootee por la memoria y esta listo para iniciar configuracion.
Configuración
1. Antes que todo
En la consola configure la red (soponemos no quiere DHCP)
- 1. Configure Network Interface
- 3. Default Route
- 6. Servidores DNS
Ingrese a http://lamaquina/ con el usuario admin/freenas e inicie la configuracion
- Cambie contrasena del administrador Account → My Account → Change Password
- System → Settings
- Protocolo aHTTPS
- Timezone a America/Bogota
- El primer NTP server a 192.168.8.202 (interno)
- Advanced: Enable powerd (pa ahorrar energia) ; Show console messages..
- Mail : Configure server de salida
- Network → Global configuration si quiere hacer algun cambio en la red
2. Almacenamiento
2.1 Volumenes y Datasets
Importante, iniciar a montar el espacio de almacenamiento:
- Volumenes (son los discos virtuales)
- Datasets (son las particiones virtuales)
Siempre se usa ZFS porque tiene mucho cuento y opciones
2.2 Creacion de un Volumen
- Storage → Volumes → Create Volumen
- Dele un nombre razonable (ejm: Vol-01 o REPO o lo que sea)
- Escoja los discos que participan en el arreglo
- ZFS es la recomendacion
- Mirror (Espejo) o Stripe (adiciona todo el espacio)
- Presione Add Volume (los discos seran borrados)
- F5 Refresque la pagina en el navegador (a veces no muestra el volumen creado)
2.3 Creacion de una Dataset
Como ya se creo el Volumen puede crear las particiones virtuales para organizar el espacio.
- Storage → Volumes → /mnt/Vol-01 → Create Dataset
- Nombre algo razonable (ejm: Dst-01 o SITO o lo que sea)
- Interesante colocar quota, es equivalente al tamano, pero puede dejarse “libre”
- Cree los que considere necesarios
3. Servicios
Para nosotros el siguiente paso es configurar los servicios que va a tener arriba antes de configurar los compartidos
- Services → Control Services
- SSH Activelo y configure: Puerto 2222 y permita que root se loguee (** OJO la contrasena de root es “freenas” tambien .. cambiela !!! pero le toca por el GUI)
- SNMP Activelo y configure Location y contact
- NFD para compartidos UNIX
- CIFS para compartidos WIndows y configure el Workgroup
Y hasta ahi vamos
4. Compartidos
Una vez tiene los volumenes y las DataSheets puede inicar a hacer compartidos por NFS, samba y demas
Por ejemplo NFS
- Sharing → Unix Shares → Add Unix Share
- Escoja el volumen a compartir (este es el que va a usar para montar en el cliente ejm: /mnt/Vol-01/Dst-01 )
- Ponga las direcciones permitidas (ejm: 192.168.8.0/24)
- MapUserRoot a root
A Windows share
- Sharing → Windows Shares → Add Windows Share
- Asigne un nombre (este es el que va a usar para montar en el cliente ejm: Documentos )
- Escoja el path del volumen a compartir (ejm: /mnt/Vol-01/Dst-01 )
- Ponga las direcciones permitidasen HostAllow (ejm: 192.168.8.0/24)
Trucos
1. Como instale MySQL - MariaDB
Instale
- Cree un disco llamado /mnt/Vol-01/3rdParty
- En la interfaz grafica creo el usuario y el grupo MySQL - MariaDB (27:27)
- home: /nonexistent (luego se lo puede cambiar al data)
- shell: bash
- Asigne contrasena (si deshabilita los logins no puede correr la base de datos bajo el usuario MySQL - MariaDB)
- Transmita el MySQL - MariaDB: scp -P 2222 MySQL - MariaDB-5.5.13-freebsd8.0-x86_64.tar.gz root@freenas:/mnt/Vol-01/3rdParty
- Descomprimalo tar xvzf MySQL - MariaDB-5.5.13-freebsd8.0-x86_64.tar.gz
- Renombrelo por comodidad: mv MySQL - MariaDB-5.5.13-freebsd8.0-x86_64 MySQL - MariaDB
Configure
- Sigue, hasta donde se pueda el proceso indicado en INSTALL-BINARY dentro de MySQL - MariaDB
- chown -R MySQL - MariaDB:MySQL - MariaDB /mnt/Vol-01/3rdParty/MySQL - MariaDB
- cd /mnt/Vol-01/3rdParty/MySQL - MariaDB ; /mnt/Vol-01/3rdParty/MySQL - MariaDB/scripts/mysql_install_db –user=MySQL - MariaDB
- chown -R root:wheel /mnt/Vol-01/3rdParty/MySQL - MariaDB/
- chown -R MySQL - MariaDB:MySQL - MariaDB /mnt/Vol-01/3rdParty/MySQL - MariaDB/data
- edite el script de inicio MySQL - MariaDB/bin/mysqld_safe y reemplace en todo el documento el /usr/local por la raiz de su instalacion /mnt/Vol-01/3rdParty (vi: %s/usr\\/local/mnt\\/Vol-01\\/3rdParty/g )
- Esta listo para darle la primera probada
Probar
- /mnt/Vol-01/3rdParty/MySQL - MariaDB/bin/mysqld_safe –user=MySQL - MariaDB &
[1] 7351
freenas# 110701 11:48:15 mysqld_safe Logging to '/mnt/Vol-01/3rdParty/MySQL - MariaDB/data/freenas.ikatta.com.err'.
110701 11:48:15 mysqld_safe Starting mysqld daemon with databases from /mnt/Vol-01/3rdParty/MySQL - MariaDB/data
- Si hace un “ps aux” ve a MySQL - MariaDB corriendo
MySQL - MariaDB 7409 0.0 2.2 200452 46412 1 I 11:48AM 0:00.28 [mysqld]
- Si hace un nmap va a ver tambien el puerto 3306 abierto
- o parese en el bin y ejecute ./MySQL - MariaDB -u root y debe tener acceso
Asegure y termine
- Es bueno correr el script “bin/mysql_secure_installation” pero debe hacerlo desde la raiz (ejm: /mnt/Vol-01/3rdParty/MySQL - MariaDB/)
- El script de inicio esta en support_files/mysq.server. Copielo a bin y cambie el raiz de /usr/local por la raiz de su instalacion /mnt/Vol-01/3rdParty (** este no sirve como servicio de arranque rc.d para freebsd)
Y como haga para que arranque y baje automatico !!!
- Debe cambiar la base de FreeNAS y para eso debe remontar RW la particion raiz “mount -rw /dev/ufs/FreeNASs1a /“
- En /conf/base/etc/rc.d copie un script de arranque de freebsd apropiado con los cambios para su directorio de intalacion. (Anexo)
- En el final de /conf/base/etc/rc.conf agregue
#by skina
mysqld_enable=YES
- reinicie a ver
2. Como instale PostgreSQL
Preambulo
- Monte un freebsd para compilar PostgreSQL de fuentes
- Fue necesario montar m4, bison y flex ultima version bajadas de GNU
- Configure, compile e instale postgresql
- HIce el tar del directorio de instalacion para llevarlo a freenas.
Instale
- Cree un disco llamado /mnt/Vol-01/3rdParty
- En la interfaz grafica creo el usuario y el grupo postgres (28:28)
- home: /nonexistent (Luego se lo puede cambiar al data )
- shell: bash
- Asigne contrasena (si deshabilita los logins no puede correr la base de datos bajo el usuario MySQL - MariaDB)
- Transmita el MySQL - MariaDB: scp -P 2222 pgsql-9.0.4-freebsd8.0-x86_64.tar.gz root@freenas:/mnt/Vol-01/3rdParty
- Descomprimalo tar xvzf pgsql-9.0.4-freebsd8.0-x86_64.tar.gz
- Renombrelo por comodidad: mv pgsql-9.0.4-freebsd8.0-x86_64 pgsql
Configure y pruebe
- Sigue, hasta donde se pueda el proceso indicado en INSTALL dentro de los fuentes de pgsql
- mkdir /mnt/Vol-01/3rdParty/pgsql/data
- chown postgres:postgres /mnt/Vol-01/3rdParty/pgsql/data
- su - postgres
- /mnt/Vol-01/3rdParty/pgsql/bin/initdb -D /mnt/Vol-01/3rdParty/pgsql/data
- Esta listo para probar
- /mnt/Vol-01/3rdParty/pgsql/bin/postgres -D /mnt/Vol-01/3rdParty/pgsql/data >logfile 2>&1 &
- /mnt/Vol-01/3rdParty/pgsql/bin/createdb test
- /mnt/Vol-01/3rdParty/pgsql/bin/psql test
- Esta listo corriendo **
**
Ajuste y termine
- Es momento de configurar su postgres a sus necesidades
- Escuchar por red: /mnt/Vol-01/3rdParty/pgsql/data/postgresql.conf
- listen_addresses = '*'
- password_encryption = on
- /mnt/Vol-01/3rdParty/pgsql/data/pg_hba.conf
- host all all 192.168.8.0/24 md5
Y como haga para que arranque y baje automatico !!!
- Debe cambiar la base de FreeNAS y para eso debe remontar RW la particion raiz ”mount -rw /dev/ufs/FreeNASs1a /“
- En /conf/base/etc/rc.d copie un script de arranque de freebsd apropiado con los cambios para su directorio de intalacion. (Anexo)
- En el final de /conf/base/etc/rc.conf agregue
#by skina
postgresql_enable=YES
- reinicie a ver
3. Exportar homes de usuarios
Cambio el home a
ln -s /mnt/Vol-01/home /home
4. Instalar aplicaciones de terceros
Aunque parece que ninguno de estos funciona realmente
- http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=13&t=10003 –
- http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=15&t=10608&p=49330#p49330 –
5. Agregar swap
6. Tener los homes de un control de dominio
- Pegue como SDC el controlador
samba-tool domain join codema.coop DC -U”CODEMA-W10/Administrator” –realm=codema.coop
- Cambie los permisos : https://forums.freenas.org/index.php?threads/how-to-properly-setup-freenas-9-2-1-5-to-use-active-directory-folder-file-user-permissions.20610/
Problemas
1. NO lo logro instalar en mi memoria de 1G
- Si tiene mas de 2G en RAM … va a necesitar una memoria mas grande .. si no no funciona
2. Perl no funciona: /libexec/ld-elf.so.1: Shared object "libperl.so" not found, required by "perl"
Pues la jugada no muy elegante fue copiar el libperl.so de un freebsd pa que funcionara ..
3. El ftp anonimo no funciona
Deberia existir un usuario(14):grupo(14). EL grupo existe pero no el usuario .. toca crearlo y ahi si funciona
4. La autenticacion con ldap no funciona
Esta muy seguramente mal configurado su LDAP
- Hostname : monserrat
- Basedn : dc=skina,dc=com,dc=co
- User suffix : ou=People
- Group suffix : ou=Group
OJO !! todo cambio en LDAP luce como que toca reiniciar.
Referencias
- http://www.freenas.org/
- http://forums.freenas.org/showthread.php?142-HowTo-Setup-A-Chroot-Ontop-Of-FreeNAS
- Reconstruirlo http://forums.freenas.org/forumdisplay.php?15-Installation
Anexos
1. mysqd
2. postgresql
FIN
Advertencia
Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.
15-Marzo-2006 J.E.Gomez v1.0 Primera version