Archivo para la categoría "opensolaris"
Comandos para OpenIndiana – Manejo de servicios
Como ya hemos hablado en ocasiones pasadas el proyecto Opensolaris de la empresa Sun Microsystems dejo de ser oficialmente soportado por la empresa Oracle (nuevo dueño de Sun). Sin embargo el nucleo del proyecto fue tomando por Illumos.
Para resumir copio / pego un pedazo de texto de wikipedia sobre esto:
“Después de la adquisición de Sun Microsystems, en agosto de 2010, Oracle decidió interrumpir la publicación y distribución de OpenSolaris, así como su modelo de desarrollo, basado en la disponibilidad de versiones de desarrollo compiladas cada dos semanas y versiones estables cada seis meses. Sin embargo, los términos de su licencia libre no han sido modificados, por lo que el código fuente afectado por ella será publicado cuando Oracle publique nuevas versiones de Solaris.
A raíz del cierre del repositorio de OpenSolaris por parte de Oracle, un grupo de ex-desarrolladores de OpenSolaris decidió hacer una bifurcación del código y ahora el desarrollo del núcleo del sistema operativo (o lo que hubiera sido OpenSolaris) continúa con un nuevo proyecto de la comunidad llamada illumos. Illumos es básicamente el código fuente de OpenSolaris, pero reemplazando los componentes privativos que quedaban por código libre, y basado en el desarrollo continuo en forma de comunidad.”
Uno de los “hijos” de Illumos es Open Indiana. (http://openindiana.org/) Distribución en la cual están basados los comandos y ejemplos a continuación.
SMF – utilidad de gestión de servicios administra los servicios en la máquina. La unidad fundamental de administración en la estructura SMF es la instancia de servicio. Cada instancia de servicio se denomina con un identificador de recursos de administración de fallos (FMRI) el cual incluye el nombre del servicio y el de la instancia. Por ejemplo, el FRMI del servicio sendmail es svc:/network/smtp:sendmail; en este ejemplo network/smtp identifica el servicio y sendmail identifica la instancia del servicio.
El comando svcs se utiliza para identificar los servicios que están instalados en el sistema. El comando svcadm se usa para administrar o cambiar el estado de un servicio.
* Para enumerar los servicios instalados en un sistema y el estado de cada uno:
# svcs -a
* Para mostrar un servicio con problemas de cualquier tipo:
# svcs -x
* Mostrar el estado de un servicio específico:
# svcs -l FMRI (FMRI = Fault Managed Resource Identifier – imagina que es el nombre abreviado del servicio)
# svcs -l ssh
fmri svc:/network/ssh:default
name SSH server
enabled true
state online
next_state none
state_time 20 de octubre de 2011 10:49:03 COT
logfile /var/svc/log/network-ssh:default.log
restarter svc:/system/svc/restarter:default
contract_id 76
dependency require_all/none svc:/system/filesystem/local (online)
dependency optional_all/none svc:/system/filesystem/autofs (online)
dependency require_all/none svc:/network/loopback (online)
dependency require_all/none svc:/network/physical (multiple)
dependency require_all/none svc:/system/cryptosvc (online)
dependency require_all/none svc:/system/utmp (online)
dependency optional_all/error svc:/network/ipfilter:default (disabled)
dependency require_all/restart file://localhost/etc/ssh/sshd_config (online)
* Para iniciar un servicio:
# svcadm enable FMRI
* Comprobar que se esta ejecutando:
# svcs -a | grep FMRI
* Detener un servicio:
# svcadm disable FMRI
Al instalar el sistema algunos servicios se encuentran en ejecución que no son necesarios (ejemplo sendmail)… vamos a ver como des-habilitarlos
1. verificar estado del servicio:
# svcs -a |grep sendmail
online 11:22:39 svc:/network/sendmail-client:default
online 11:22:39 svc:/network/smtp:sendmail
2. bajar el servicio
# svcadm disable sendmail-client sendmail
3. verificar cambios
# svcs -a |grep sendmail
disabled 13:46:28 svc:/network/smtp:sendmail
disabled 13:47:07 svc:/network/sendmail-client:default
Comandos para OpenIndiana – Manejo de paquetes
Bueno, como ya hemos hablado en ocasiones pasadas el proyecto Opensolaris de la empresa Sun Microsystems dejo de ser oficialmente soportado por la empresa Oracle (nuevo dueño de Sun).
Para resumir copio / pego un pedazo de texto de wikipedia sobre esto:
“Después de la adquisición de Sun Microsystems, en agosto de 2010, Oracle decidió interrumpir la publicación y distribución de OpenSolaris, así como su modelo de desarrollo, basado en la disponibilidad de versiones de desarrollo compiladas cada dos semanas y versiones estables cada seis meses. Sin embargo, los términos de su licencia libre no han sido modificados, por lo que el código fuente afectado por ella será publicado cuando Oracle publique nuevas versiones de Solaris.
A raíz del cierre del repositorio de OpenSolaris por parte de Oracle, un grupo de ex-desarrolladores de OpenSolaris decidió hacer una bifurcación del código y ahora el desarrollo del núcleo del sistema operativo (o lo que hubiera sido OpenSolaris) continúa con un nuevo proyecto de la comunidad llamada illumos. Illumos es básicamente el código fuente de OpenSolaris, pero reemplazando los componentes privativos que quedaban por código libre, y basado en el desarrollo continuo en forma de comunidad.”
Uno de los “hijos” de Illumos es Open Indiana. (http://openindiana.org/) Distribución en la cual están basados los comandos y ejemplos a continuación.
Manejo de paquetes
Vengo del mundo de Debian… asi que el manejo de paquetes se me hizo bastante similar
* Refrescar lista de paquetes desde cero (full) ; si no lo quieres / necesitas completo sin el – -full (son 2 – juntos)
# pkg refresh – -full
* Listar paquetes instalados
# pkg list -a (también funciona el |grep paquete)
# pkg list -a |grep sendmail
service/network/smtp/sendmail 8.14.4-0.148 installed —–
* Buscar un paquete especifico en repositorios para luego instalar (buscando gcc)
# pkg search -r gcc
* Obtener info del paquete (para ver si ese es el que quiero)
# pkg info -r gcc
* Instalar un paquete especifico
# pkg install paquete
* Desinstalar paquete
# pkg uninstall paquete
Al igual que apt en Debian, es posible agregar nuevos “repositorios” de software
* Saber que “repositorio” esta actualmente
# pkg authority
* Adicionar “repositorio” – en cada página que ofrece paquetes esta la instrucción… pero por lo general es:
# pkg set-authority -O {url-repositorio} {alias-repositorio}
* Eliminar una “authority” (repositorio)
# pkg unset-authority {alias-repositorio}
Bueno, por ahora creo que es suficiente info… como recordamos esta distribución viene de su “padre” Opensolaris por lo que la mayoría de documentación disponible en la red funciona en OpenIndiana también.
Si te sirve la info un comentario de agradecimiento me sube el ánimo
Servidor zfs – Opensolaris
Primero debo mencionar que zfs es uno de los sistemas de archivos mas estable, intuitivo y sencillo tanto de manejar como de administrar (en mi opinión) afirmo esto ya que con simples comandos puedo agregar dispositivos, características adicionales o verificar estado o capacidades de mis dispositivos.
Comencemos explicando que es zfs.
ZFS es un sistema de archivos desarrollado por Sun Microsystems para su sistema operativo Solaris y comenzo a darse a conocer en el septiembre del año 2004. El código fuente del producto final se integró en la rama principal de desarrollo de Solaris el 31 de octubre del 2005 y fue lanzado el 16 de noviembre de 2005 como parte del build 27 de OpenSolaris.
Debo mencionar que todos los sistemas de archivos ofrecen métodos para crear, borrar, mover, copiar y renombrar archivos y directorios. A eso se agregan otras características muy importantes como la gestión de permisos, enlaces (hard links y symbolic links), mecanismos para evitar la fragmentación, mecanismos para asegurar la integridad de los datos (como el journaling, utilizado por ext3, ext4, NTFS, ReiserFS, entre otros), y métodos de gestión de RAIDs entre otras cosas.
Una de las características novedosas de ZFS es que, a diferencia de los sistemas de archivos tradicionales, que se ubican en un único dispositivo y, por lo tanto, requieren de un administrador de volúmenes cuando se quiere trabajar con más de un dispositivo, éste sistema se apoya en virtual storage pools (espacios de almacenamiento virtual) llamados “zpools”. Éstos están formados por virtual devices (dispositivos virtuales), “vdevs”, que a su vez se componen de block devices (dispositivos de bloques): archivos, particiones o discos enteros. De esta forma, se pueden configurar RAIDs de distinto tipo. Además de los tradicionales RAID-0 (dividido o data stripping) y RAID-1 (espejo o data mirroring), ZFS ofrece una variante del RAID-5 (dividido con paridad distribuida) llamada RAID-Z que evita un problema conocido llamado “agujero de escritura” (corrupción de las divisiones por perdida de energía entre la actualización de la información y las partes).
En pocas palabras: tengo un grupo de discos (dispositivos) y los agrupo en un solo espacio de almacenamiento o pool (zpool) y dentro de zpool puedo generar algo así como subdivisiones con características de directorios (imagina particiones tradicionales de disco duro – partición extendida con mas particiones dentro y dentro de ellas directorios).
Este sistema de archivos me permite crecer / disminuir el tamaño al adicionar / eliminar dispositivos al zpool asi como compartir espacio disponible con otros zpool.
Existen muchas ventajas y opciones adicionales que tiene zfs. Si deseas profundizar en todo esto te invito a leer la guía de administración de zfs.
Meta a alcanzar
Tengo una board Pentium 4 con 1.5 gb en ram y 3 discos duros de 500 gb cada uno los cuales deseaba “unir” en un solo zpool el cual me permitiera mejorar mi servidor de archivos. En dicho zpool genero “directorios” para organizar mejor la info (ej: anime, documentos, torrents) y a uno de dichos directorios habilitarle compresión por defecto.
A futuro en caso de crecimiento puedo por ejemplo agregar un disco duro nuevo de 1 TB y sacar un disco de 500 gb sin necesidad de hacer un laargo proceso de backup.

Pasos realizados
Primero: en un disco diferente IDE de 20 gb que no esta incluido en mi zpool instalo sistema operativo (opensolaris build 134 solo texto – no gui) Por que en un disco diferente? es una de las recomendaciones para un zpool de varios discos; ademas si quiero re-instalar el sistema operativo puedo fácilmente hacerlo.
Segundo: identifico con el comando format las identificaciones de los discos duros. Asi veo que mis discos se “llaman”
AVAILABLE DISK SELECTIONS:
0. c0d0 <Hitachi- GEA554RJ2K3PY-0001-465.76GB>
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
1. c2d0 <DEFAULT cyl 2479 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
2. c3d0 <Hitachi- GEA534RJ07T3L-0001-465.76GB>
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
3. c3d1 <Hitachi- GEA530RE2LT42-0001-465.76GB>
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@1,0
C2D0 – disco ide de 20 gb
C0D0, C3D0, C3D1 – discos de 500 gb (son ceros, no vocal o)
Tercero: creo el zpool con los discos. También se pueden crear zpool’es con “pedazos” (particiones) de discos. No es mi caso, los creo con el disco completo.
# zpool create grupo1 c0d0 c3d0 c3d1
Y luego verifico
# zpool status -v grupo1
pool: grupo1
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
grupo1 ONLINE 0 0 0
c3d1 ONLINE 0 0 0
c3d0 ONLINE 0 0 0
c0d0 ONLINE 0 0 0errors: No known data errors
Cuarto: en la máquina tengo un usuario (mmejiav) y deseo que dicho usuario pueda crear y modificar y borrar los sistemas de ficheros y dentro de ellos pueda manejar los archivos.
# zfs allow mmejiav create,destroy,mount grupo1
Quinto: ahora creo los sistemas de ficheros (dentro de ellos estarán los archivos) con el comando zfs (Anime, Torrents, Documentos)
$ zfs create grupo1/Anime
$ zfs create grupo1/Torrents
$ zfs create grupo1/Documentos
Y luego verifico
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
grupo1 334G 1.01T 30K /grupo1
grupo1/Aaa 21K 1.01T 21K /grupo1/Anime
grupo1/Aaa 21K 1.01T 21K /grupo1/Documentos
grupo1/Aaa 21K 1.01T 21K /grupo1/Torrents
Sexto: Quiero que el sistema de ficheros llamado Documentos tenga por defecto compresión gzip con un nivel elevado. Cada archivo que ingrese dentro será automáticamente comprimido pero será legible.
Esto se debe ejecutar como super usuario
# zfs set compression=gzip-9 grupo1/Documentos
Y luego puedo verificar que funciono:
$ zfs get compression grupo1/Documentos
NAME PROPERTY VALUE SOURCE
grupo1/Documentos compression gzip-9 local
Y listo…
En resumen:
Esta creado un pool que contiene los 3 discos duros (zpool llamado grupo1) y 3 sistemas de ficheros que contendrán archivos, uno de ellos con una propiedad de compresión por defecto.

Si te sirve la info un comentario de agradecimiento me sube el animo ![]()
NFS en Opensolaris b134
Antes que nada debo mencionar que me auto-impuse recordar / aprender sobre estos temas luego de que en una prueba técnica para entrar a una empresa me preguntaron sobre NFS y me di cuenta de lo poco que se / recuerdo sobre ellos. Cabe mencionar que la prueba técnica fue para un sistema GNU/Linux el cual difiere totalmente de los conceptos a continuación explicados… pero para NFS sobre GNU/Linux pues creo que google es una gran ayuda (google – palabras nfs “red hat” = Aproximadamente 449.000 resultados (0,22 segundos) )
Lo que mas me avergonzó es que se supone que yo “estudiando” sobre Opensolaris no supiera / recordara de estos temas ya que Solaris desarrolló NFS.
En este documento me concentrare en NFS bajo Opensolaris lado del servidor (comandos en GNU/Linux varian muuucho)
Algo de historia de NFS
El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales.
Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo de transporte. El protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.
El protocolo NFS cuenta con diferentes versiones (de la 2 a la 4) y algunas más bajo desarrollo. Clientes y servidores típicamente negocian la mejor versión de NFS automáticamente. Opensolaris por ejemplo soporta de las versiones 2 hasta la 4 de NFS.
Como mencione antes la idea detrás de NFS es hacer que los archivos almacenados en un sistema servidor sean visibles en un sistema cliente directamente a través del sistema de archivos del cliente. Esto significa que debe poderse acceder a un directorio “compartido” a través del comando cd como si se tratara de una carpeta local y poder editar o borrar archivos como si estuvieran en el cliente.
Pre-requisitos
Cabe mencionar que NFS viene por defecto instalado en Opensolaris build 134… para conocer el estado del servicio (recién instalado esta desactivado) se ejecuta:
# svcs nfs/server
STATE STIME FMRI
disabled 2:03:35 svc:/network/nfs/server:default
Para activarlo:
# svcadm enable nfs/server
Activar un zfs pool
Aquí viene lo importante y bueno… primero debo mencionar como esta configurada mi maquina.
Tengo varios discos (3) aparte del disco en el cual se encuentra el sistema operativo. Utilizando estos discos cree un “pool” o grupo de discos bajo un solo “directorio” el cual esta subdividido en otras carpetas con el fin de tener un solo espacio que sumara la capacidad de los 3 discos en un solo “directorio” o pool de recursos… esto se podría considerar en el mundo Linux como un RAID o un LVM… Mi próxima entrada al blog será como configuré y administré dicho pool.
Bueno, ya explicado esto… deseo compartir entre mis máquinas el directorio Torrents que esta dentro de mi pool de recursos antes mencionado el cual se llama grupo1
Compartir:
# zfs set sharenfs=on grupo1/Torrents
Verificar si esta compartido (el servidor se llama feroz)
# dfshares
RESOURCE SERVER ACCESS TRANSPORT
feroz:/grupo1/Torrent feroz - -
Para des-compartir
# zfs set sharenfs=off grupo1/Torrents
Adicional a estos comandos se puede configurar las propiedades del grupo que será compartido con sharemgr…
Actualización:
Para realizar el montaje en Mac os X ingreso por el admin de archivos (finder) luego Ir > Conectarse al servidor y allí ingreso: nfs://192.168.x.x/grupo1/Torrent y listo… ya tengo acceso como local a dicho sitio.
En gnu/Linux como root: mount 192.168.1.x.x:/grupo1/Torrents /home/mmejiav/Torrents
Y Listo
Si te sirve la info un comentario de agradecimiento me sube el animo ![]()
Instalando sugarcrm en Opensolaris b131
Saludos amable visitante y gracias por pasar por estos sencillos escritos nuevamente.
En esta ocasión espero poder dar algo de luces sobre los pasos necesarios para hacer funcionar Sugar Crm en la máquina con Opensolaris build 131 que hemos trabajado en ocasiones anteriores.
A modo de repaso: se instaló una máquina con Opensolaris build 131 solo en versión texto (no GUI) y a continuación configuré Cherokee y php. Entrada anterior. Estos son requisitos para esta nueva receta.
Pasos realizados
-
Activar y configurar mysql
Verifico que mysql esta instalado en el sistema… pero no esta en ejecución:
# svcs mysql
STATE STIME FMRI
disabled 16:07:09 svc:/application/database/mysql:version_50
Activo y luego verifico:
# svcadm enable mysql
# svcs mysql
STATE STIME FMRI
online 16:14:58 svc:/application/database/mysql:version_50
Se debe tener en cuenta que no existe un password para el usuario (en este caso root)
# ./mysqladmin -u root password 123qwe
Listo, usuario root de mysql tiene passwd 123qwe
Ahora se deben dar permisos (privilegios) para que me pueda conectar a la base de datos. Si no se ejecuta este paso aparece un mensaje del estilo:
Host ‘MachineName’ is not allowed to connect to this MySql Server
Ingreso entonces a mysql como el usuario que configuré en el paso anterior y tecleo:
GRANT ALL PRIVILEGES ON *.* TO root@’hostname’ IDENTIFIED BY ‘root-password’
obviamente cambio hostname por la dirección ip
-
Sugar crm
* Descargo Sugar crm de la página web y descomprimo (unzip) el paquete descargado.
* Renombro (no me gusta el nombre largo) y queda solo Sugar
* Copio (si quieres también puedes mover) al directorio donde se guardan las paginas en cherokee (en mi caso /var/cherokee)
* Obviamente debe estar corriendo el web server de cherokee en la máquina.
* Con un navegador ingreso a http://ipmaquina/Sugar/install.php
Sugar verifica dependencias, y ya se puede realizar la instalación sin inconvenientes (obviamente si todo esta bien)
En este punto debo aclarar que no soy un experto en estas instalaciones. Me llevo un buen par de horas y bastante google organizar todo en su sitio. Pero creo que valió la pena la búsqueda.
Así que espero amable lector si me disculpas si me realizas una pregunta sobre algo de la instalación (un error extraño o una variable difícil) y no te se responder.
Nuevamente: Si te sirve la info un comentario de agradecimiento me sube el animo ![]()

