¿Sueña Tux en código fuente?

No solo sobre pingüinos se puede escribir

Archivo para la categoría "opensolaris"

Comandos para OpenIndiana – Manejo de servicios

dejar un comentario »

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

Escrito por jmmejiav

20 octubre 2011 a 12:19 PM

Escrito en openindiana, opensolaris

Comandos para OpenIndiana – Manejo de paquetes

con 4 comentarios

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 ;)

Escrito por jmmejiav

25 enero 2011 a 2:06 PM

Servidor zfs – Opensolaris

con 2 comentarios

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     0

errors: 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 ;)

Escrito por jmmejiav

14 mayo 2010 a 12:52 PM

NFS en Opensolaris b134

con 3 comentarios

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 ;)

Escrito por jmmejiav

13 mayo 2010 a 3:03 AM

Instalando sugarcrm en Opensolaris b131

con 3 comentarios

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 ;)

Escrito por jmmejiav

22 febrero 2010 a 6:06 PM

Seguir

Get every new post delivered to your Inbox.

Únete a otros 116 seguidores