Traducciones de esta página:

Instalando Opensolaris 2009.06 en Sparc

Introducción

En este artículo veremos los pasos seguidos para instalar Opensolaris 2009.06 en un servidor Sparc. El servidor utilizado fue el servidor de Gnome Hispano, un servidor Sun Fire T2000 que hasta este momento estaba ejecutando Solaris 10. Decidimos pasar a Opensolaris ya que Solaris 10 no cubría nuestras necesidades: en Gnome Hispano no tenemos contrato de soporte con Sun, con lo que los parches del sistema no eran accesibles. Por otro lado, la integración de software libre en Solaris 10 es, hoy por hoy, menos potente que cualquier distribución GNU/Linux, lo que nos creaba muchas limitaciones.

Preparativos

Nota: esta sección incluye los preparativos que fueron necesarios en el servidor de Gnome Hispano. Deben modificarse en función de la instalación actual de la que partamos. Si se va a instalar Opensolaris en un servidor "en blanco" pueden omitirse.

El servidor de Gnome Hispano se encontraba ejecutando Solaris 10. Las particiones estándar UFS se encontraban espejadas mediante SDS (el proceso de espejado fue detallado aquí en su dia). Las particiones de datos se crearon con ZFS, también con RAID-1.

La idea sería aprovechar el espejo en el disco 1, para guardar los datos de la instalación actual. Una vez que tengamos Opensolaris instalado en el disco 0, recuperaríamos los datos desde el disco 1 y ya podríamos disponer de él para hacer un espejo completo con ZFS en Opensolaris.

Lo primero, hacemos un backup del contenido de ZFS, con tar, que almacenaríamos en una de las particiones UFS. Después, destruimos el pool ZFS con los comandos ZFS correspondientes.

A continuación, debemos arrancar con un CD de Solaris 10 y eliminar la configuración de Solaris Volume Manager. Esto permite acceder a las particiones de los discos 0 y 1 como particiones UFS normales, pero dejan de estar espejadas. Así, para recuperar los datos en Opensolaris montaremos las particiones UFS del disco 1.

Para eliminar la configuración de Solaris Volume Manager, usaremos un CD de Solaris 10 para arrancar la máquina y ejecutaremos metaclear:

ok boot cdrom -s
...
...
Please give root password: xxxx
...
# metaclear -a
d6: Mirror is cleared
d16: Concat/Stripe is cleared
d26: Concat/Stripe is cleared
d3: Mirror is cleared
d13: Concat/Stripe is cleared
d23: Concat/Stripe is cleared
d1: Mirror is cleared
d11: Concat/Stripe is cleared
d21: Concat/Stripe is cleared
d0: Mirror is cleared
d10: Concat/Stripe is cleared
d20: Concat/Stripe is cleared

A continuación dejamos los slices del disco 0 listos para recibir ZFS sin errores. La tabla de particiones será muy simple: una sola partición 0 que ocupe todo el disco, es decir, igual a la partición 2 (backup), es decir, la tabla que debemos obtener es la siguiente:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  1 unassigned    wm       0                0         (0/0/0)             0
  2     backup    wu       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

Con esto el servidor queda preparado para recibir Opensolaris en el disco 0.

Preparación del servidor de instalaciones

Como veremos a continuación, Opensolaris 2009.06 en Sparc solo puede instalarse mediante el procedimiento "Automated Install", que viene a ser una instalación desatendida por red. Esto exige la configuración de un servidor de instalaciones. Este servidor puede ser un Opensolaris 2009.06 x86 sobre el que se preparará un instalador para Sparc, utilizando la imagen ISO de Sparc y este procedimiento.

Si se siguen exactamente las instrucciones, funcionará. Si no se sigue exactamente alguno de los pasos, el comando installadm fallará. En particular, cualquier variación en el fichero /etc/hosts lo hará fallar sistemáticamente. Con estas pistas y las instrucciones, que son bastante claras, no deberíamos tener problemas para configurar el servidor de Instalaciones de Opensolaris 2009.06.

Arranque de Opensolaris 2009.06 por red

Para instalar Opensolaris 2009.06 en Sparc tenemos dos grandes problemas:

  • El primero, la obligación de usar el procedimiento "Automated Install" (instalación por red). La razón es que no hay CD-Live ni arrancable para Sparc (ni de hecho se planea hacerlo por el momento).
  • El segundo, la necesidad, por la infraestructura donde se encuentra el servidor, de arrancar por red con parámetros estáticos, es decir, no podemos usar DHCP ni BOOTP.

En nuestro caso, la interfaz de red "0" fue conectada por cable cruzado al servidor de instalaciones (un Opensolaris x86 corriendo en una máquina virtual VMWare), usando una red privada. La interfaz de red "1" fue conectada al switch principal que da acceso a Internet. De este modo podremos arrancar el nodo desde la red "0" y posteriormente, manipular a mano la configuración de red para que tenga acceso a Internet (en particular, al repositorio de paquetes pkg.opensolaris.org).

Para arrancar por red sin usar DHCP es necesario establecer en Openboot los parámetros de red, como se detalla a continuación (teniendo en cuenta que el servidor de instalaciones tiene como IP estática 192.168.12.139, para más información sobre cómo hacer un servidor de instalaciones, mirar aquí):

{0} ok setenv network-boot-arguments host-ip=192.168.12.141,router-ip=192.168.12.1,subnetmask=255.255.255.0,hostname=opensolaris,file=http://192.168.12.139:5555/cgi-bin/wanboot-cgi

A continuación podemos proceder a arrancar. Sabemos que el proceso va a fallar, pues en Opensolaris tienen un bug abierto al respecto. Este blog nos dio las pistas necesarias.

Veamos el log del arranque:

{0} ok boot net

[...]
Sun Fire T200, No Keyboard
Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.27.4, 32640 MB memory available, Serial #70066726.
Ethernet address 0:14:4f:2d:22:26, Host ID: 842d2226.

Boot device: /pci@780/pci@0/pci@1/network@0  File and args: 
100 Mbps full duplex  Link up
[...]
ramdisk-bootfs
<time unavailable> wanboot progress: wanbootfs: Read 366 of 366 kB (100%)
<time unavailable> wanboot info: wanbootfs: Download complete
ramdisk-root
Sat Aug  8 02:19:12 wanboot progress: Read 175868 of 175868 kB (100%)
Sat Aug  8 02:23:20 wanboot info: miniroot: Download complete
ufs-file-system 
Loading: /platform/SUNW,Sun-Fire-T200/kernel/sparcv9/unix
Loading: /platform/sun4v/kernel/sparcv9/unix

SunOS Release 5.11 Version snv_111b 64-bit
Copyright 1983-2009 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
os-io ---
Hostname: opensolaris

Remounting root read/write
Probing for device nodes ...
Preparing automated install image for use
The AI image will be retrieved from /export/aiserver/osol-0906-ai-sparc/ directory
Downloading solaris.zlib archive
--18:44:19--  http://192.168.12.139:5555/export/aiserver/osol-0906-ai-sparc//solaris.zlib
           => `/tmp/solaris.zlib'
Connecting to 192.168.12.139:5555... failed: Network is unreachable.
FAILED
Requesting System Maintenance Mode
(See /lib/svc/share/README for more information.)
Console login service(s) cannot run

Enter user name for system maintenance (control-d to bypass):

Ajuste de parámetros para iniciar la instalación

Como vemos, el sistema arrancó bien hasta intentar bajarse la imagen "live" de Opensolaris (solaris.zlib). Aquí lo que se deduce es que los parámetros de red se han perdido y vamos a tener que establecerlos a mano, tal como se indica en el blog anterior. Nosotros aprovecharemos esta parada (y el acceso a los comandos de consola) para establecer también la red pública en la interfaz 1, para que también tenga acceso a pkg.opensolaris.org durante la instalación. A continuación el proceso seguido:

Enter user name for system maintenance (control-d to bypass): root
Enter root password for system maintenance (control-d to bypass): 
single-user privilege assigned to root on /dev/console.
Entering System Maintenance Mode

Aug  7 18:44:24 su: 'su root' succeeded for root on /dev/console

-bash: /usr/sbin/quota: No such file or directory
Sun Microsystems Inc.	SunOS 5.11	snv_111b	November 2008
-bash: /bin/mail: No such file or directory
-bash: /usr/bin/hostname: No such file or directory
root@:~# ifconfig e1000g0 192.168.12.141 netmask 255.255.255.0 up
root@:~# cat > /etc/resolv.conf
nameserver 140.211.166.130
root@:~# cat > /etc/defaultrouter
140.211.167.129
root@:~# ifconfig e1000g1 plumb
root@:~# ifconfig e1000g1 140.211.167.154 netmask 255.255.255.128 up
root@:~# route add default 140.211.167.129
add net default: gateway 140.211.167.129
root@:~# rm /etc/nsswitch.conf
root@:~# cat /etc/nsswitch.dns > /etc/nsswitch.conf
root@:~# ping pkg.opensolaris.org
pkg.opensolaris.org is alive
root@:~# umount /etc/netboot
root@:~# rm -rf /etc/netboot
root@:~# umount /tmp
root@:~# svcadm disable dscp
root@:~# svcadm disable sckmd
root@:~# svcadm clear root:live-media
root@:~# Remounting root read/write
Probing for device nodes ...
Preparing automated install image for use
The AI image will be retrieved from /export/aiserver/osol-0906-ai-sparc/ directory
Downloading solaris.zlib archive
--18:47:42--  http://192.168.12.139:5555/export/aiserver/osol-0906-ai-sparc//solaris.zlib
           => `/tmp/solaris.zlib'
Connecting to 192.168.12.139:5555... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83,334,656 (79M) [text/plain]
...
18:47:50 (10.04 MB/s) - `/tmp/solaris.zlib' saved [83334656/83334656]

Downloading solarismisc.zlib archive
--18:47:50--  http://192.168.12.139:5555/export/aiserver/osol-0906-ai-sparc//solarismisc.zlib
           => `/tmp/solarismisc.zlib'
Connecting to 192.168.12.139:5555... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3,857,408 (3.7M) [text/plain]
...
18:47:50 (11.24 MB/s) - `/tmp/solarismisc.zlib' saved [3857408/3857408]

--18:47:50--  http://192.168.12.139:5555/export/aiserver/osol-0906-ai-sparc//install.conf
           => `/tmp/install.conf'
Connecting to 192.168.12.139:5555... connected.
HTTP request sent, awaiting response... 200 OK
Length: 67 [text/plain]
18:47:50 (1.82 MB/s) - `/tmp/install.conf' saved [67/67]

Done mounting automated install image

Configuring devices.
Reading ZFS config: done
Aug  7 18:48:01 opensolaris sendmail[339]: My unqualified host name (localhost) unknown; sleeping for retry  


root@opensolaris:~# svcadm clear dns/multicast
root@opensolaris:~# logout
Service discovery phase initiated
Service name to look up: 0906sparc


opensolaris console login: Service discovery finished successfully
Process of obtaining configuration manifest initiated
Configuration manifest obtained
Automated Installation started
The progress of the Automated Installation can be followed by viewing  the logfile at /tmp/install_log

Ahora comenzó a instalarse. Podemos entrar en consola y observar el fichero /tmp/install_log para comprobar el progreso de instalación. La clave inicial de root es opensolaris.

Fin de la instalación

Una vez instalado el sistema (tarda una hora aproximadamente), nos aparecerá lo siguiente por consola:

Automated Installation finished successfully
The system can be rebooted now
Please refer to /tmp/install_log file  for details
After reboot it will be located at  /var/sadm/system/logs/install_log
<AI Aug  8 02:37:43> Auto install succeeded. You may wish to reboot the system at this time

Tareas post-instalación

La máquina recién instalada tiene como cuenta de usuario, jack (y contraseña opensolaris). Y jack tiene privilegios para hacerse root. Como no queremos que esto se quede así, debemos al menos modificar la contraseña de jack. Además, deberíamos ajustar el hostname deseado para nuestra máquina y tal vez volver a poner el cable de la interfaz 0 de red con el cable público. Hecho esto, reiniciaremos el sistema para ver cómo arranca nuestro flamante Opensolaris 2009.06 en nuestra Sun T2000.

Una vez arrancada la máquina, montamos normalmente (como UFS) la partición del disco 1 donde guardamos los backups y los recuperamos. Una vez que ya no sea necesario el disco 1, podemos proceder, primero a colocar una tabla de particiones similar a la del disco 0 (para evitar errores del comando zpool), y luego a espejar:

# zpool attach rpool c6t0d0s0 c6t1d0s0
Please be sure to invoke installboot(1M) to make 'c6t1d0s0' bootable.

Es necesario ejecutar el comando installboot para que el disco sea arrancable, de modo que si el disco 0 falla es posible arrancar el sistema utilizando el disco 1. El procedimiento es un simple comando:

# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c6t1d0s0

Ahora podemos ver que la máquina comienza a realizar el espejado ("resilvering"):

# zpool status
  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h0m, 1.13% done, 1h16m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c6t0d0s0  ONLINE       0     0     0
            c6t1d0s0  ONLINE       0     0     0  239M resilvered

errors: No known data errors

Los parámetros de arranque por red ya no son necesarios, por lo que podemos borrarlos de la Openprom. Esto puede hacerse desde Opensolaris con el comando:

# eeprom network-boot-arguments=""
 
installingsparc.txt · Última modificación: 2011/05/26 15:25 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki