Traducciones de esta página:

Espejado del disco del Sistema con Solaris SDS

Solaris incluye, desde la versión 8, un software llamado SDS (Solstice Disk Suite). Desde Solaris 10, las funcionalidades de SDS están integradas en la instalación básica por lo que no es necesario instalar los paquetes.

Solaris Disk Suite es un gestor de discos, predecesor de ZFS. Con Solaris Disk Suite se pueden hacer volúmenes RAID por software, con comandos similares a las utilides md de Linux.

Instalación de paquetes

En Solaris 10 y Opensolaris no es necesario instalar los paquetes. En Solaris 8, sin embargo, sí. Estos paquetes se encuentran en el CD de instalación pero en un directorio aparte:

El procedimiento en caso de necesitar instalarlo es, insertar el CD de Solaris 8 e instalar los paquetes situados en un determinado directorio. Por ejemplo, si estamos con un servidor Sparc:

# cd /cdrom/sol_8_hw1202_sparc_2/Solaris_8/EA/products/DiskSuite_4.2.1/sparc/Packages
# pkgadd -d .

En el caso de Solaris 8, solo es necesario instalar los paquetes con los números 4,6,7,8,9 y 10, en la lista que nos mostrará el comando pkgadd anterior.

Los paquetes instalan algunos drivers, por lo que es necesario reiniciar el servidor:

# shutdown -i6 -g0 -y

Preparativos con los discos

Vamos a partir de un sistema con dos discos SCSI de 72 Gb, c0t0d0 y c0t1d0. Se está usando el disco 0 con las siguientes particiones:

c0t0d0s0 4.8G UFS /
c0t0d0s1 7.8G swap swap
c0t0d0s3 4.8G UFS /var
c0t0d0s6 4.8G UFS /usr/local

El primer paso es preparar la tabla de particiones: es necesario reservar una pequeña partición (16 cilindros, en nuestro caso) para salvaguardar la base de datos de SDS. Lo haremos en el slice 7. Luego debemos replicar la tabla de particiones en el disco 1, para lo cual hay instrucciones aquí.

Tabla de particiones:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    1611 -  2617        4.89GB    (1007/0/0)   10247232
  1       swap    wu       0 -  1610        7.82GB    (1611/0/0)   16393536
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3        var    wm    2618 -  3624        4.89GB    (1007/0/0)   10247232
  4 unassigned    wm    4632 - 14069       45.80GB    (9438/0/0)   12345678
  5 unassigned    wm       0                0         (0/0/0)             0
  6        usr    wm    3625 -  4631        4.89GB    (1007/0/0)   10247232
  7 unassigned    wm   14070 - 14085       79.50MB    (16/0/0)       162816

El resto del proceso debe realizarse desde consola, con el fin de no perder acceso a la máquina si algo lo hacemos mal.

Creación del fichero md.tab y la base de datos

El fichero /etc/md.tab será el siguiente:

d0 -m d10 1
d10 1 1 c0t0d0s0
d20 1 1 c0t1d0s0
d1 -m d11 1
d11 1 1 c0t0d0s1
d21 1 1 c0t1d0s1
d3 -m d13 1
d13 1 1 c0t0d0s3
d23 1 1 c0t1d0s3
d6 -m d16 1
d16 1 1 c0t0d0s6
d26 1 1 c0t1d0s6

La base de datos está de momento en c0t1d0s7, así que la inicializamos con tres réplicas mediante el comando:

# /usr/sbin/metadb -a -c3 -f /dev/dsk/c0t0d0s7

Esto altera el fichero /etc/lvm/mddb.cf, fichero que no tendremos que editar a mano nunca, sino mediante el comando metadb.

Inicialización de SDS en la partición raíz

Ahora debemos inicializar SDS en la partición raíz. Esto supone cambios en los ficheros /etc/vfstab y /etc/system, por lo que guardamos copias de seguridad:

# cp /etc/system /etc/system.orig
# cp /etc/vfstab /etc/vfstab.orig

Para inicializar debemos introducir varios comandos y a continuación reiniciar:

# metainit -f d10
d10: Concat/Stripe is setup
# metainit d0
d0: Mirror is setup
# metainit d20
d20: Concat/Stripe is setup
# metaroot d0
# init 6

Observemos el proceso de boot por si algo falla (esto es solo posible desde consola):

# init 6
# svc.startd: The system is coming down.  Please wait.
svc.startd: 65 system services are now being stopped.
Jul 14 22:56:43 gnomehispano syslogd: going down on signal 15
svc.startd: The system is down.
syncing file systems... done
rebooting...

SC Alert: Host System has Reset

SC Alert: Host system has shut down.

...


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: disk  File and args:
Loading ufs-file-system package 1.4 04 Aug 1995 13:02:54.
FCode UFS Reader 1.12 00/07/17 15:48:16.
Loading: /platform/SUNW,Sun-Fire-T200/ufsboot
Loading: /platform/sun4v/ufsboot
SunOS Release 5.10 Version Generic_127111-03 64-bit
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
os-io WARNING: Last shutdown is later than time on time-of-day chip; check date.
Hostname: gnomehispano
/dev/rdsk/c0t0d0s6 is clean

gnomehispano console login:

Comprobemos que la partición raíz se encuentra bajo el control de SDS:

# df -h
...
Filesystem             Size   Used  Available Capacity  Mounted on
/dev/md/dsk/d0         4.8G   1.8G       3.0G    38%    /

Todo en orden. En el fichero /etc/vfstab veremos que la orden metaroot habrá cambiado el punto de montaje del disco raíz (ahora es /dev/md/dsk/d0 y no /dev/dsk/c0t0d0s0).

Inicialización de SDS en el resto de particiones

Ahora debemos meter en SDS las demás particiones, es decir:

c0t0d0s1 7.8G swap swap
c0t0d0s3 4.8G UFS /var
c0t0d0s6 4.8G UFS /usr/local

Como ya tenemos las entradas correspondientes en el /etc/lvm/md.tab, solo tenemos que introducir los comandos para inicializar los volúmenes:

# metainit -f d11
d11: Concat/Stripe is setup
# metainit d21
d21: Concat/Stripe is setup
# metainit d1
d1: Mirror is setup
# metainit -f d13
d13: Concat/Stripe is setup
# metainit d23
d23: Concat/Stripe is setup
# metainit d3
d3: Mirror is setup
# metainit -f d16
d16: Concat/Stripe is setup
# metainit d26
d26: Concat/Stripe is setup
# metainit d6
d6: Mirror is setup

Ahora, procedemos a copiar la BD de SDS en el disco 1 (c0t1d0s7), con el comando:

# metadb -a -c3 -f /dev/dsk/c0t1d0s7

Llega el momento de cambiar el fichero /etc/vfstab para que monte las particiones via SDS y no directamente. Nuestro /etc/vfstab se verá afectado en las siguientes líneas:

/dev/md/dsk/d1  -       -       swap    -       no      -
/dev/md/dsk/d0  /dev/md/rdsk/d0 /       ufs     1       no      -
/dev/md/dsk/d3  /dev/md/rdsk/d3 /var    ufs     1       no      -
/dev/md/dsk/d6  /dev/md/rdsk/d6 /usr/local      ufs     2       yes     -

Debemos reiniciar el equipo y comprobar que todas las particiones aparecen montadas via SDS. En nuestro caso:

# init 6
...
# df -h |grep md
/dev/md/dsk/d0         4.8G   1.8G       3.0G    38%    /
/dev/md/dsk/d3         4.8G   409M       4.4G     9%    /var
/dev/md/dsk/d6         4.8G   455M       4.3G    10%    /usr/local
# swap -l
swapfile             dev  swaplo blocks   free
/dev/md/dsk/d1      85,1      16 16393520 16393520

Espejado de todas las particiones

Para finalizar, lanzamos el espejado. Los comandos son, para nuestro caso, los siguientes:

# metattach d0 d20
d0: submirror d20 is attached
# metattach d1 d21
d1: submirror d21 is attached
# metattach d3 d23
d3: submirror d23 is attached
# metattach d6 d26
d6: submirror d26 is attached

Para comprobar que están espejándose, usaremos el comando metastat:

# metastat
d6: Mirror
  Submirror 0: d16
    State: Okay
  Submirror 1: d26
    State: Resyncing
  Resync in progress: 0 % done
  Pass: 1
  Read option: roundrobin (default)
  Write option: parallel (default)
  Size: 10247232 blocks (4.9 GB)

d16: Submirror of d6
  State: Okay
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t0d0s6          0     No            Okay   Yes


d26: Submirror of d6
  State: Resyncing
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t1d0s6          0     No            Okay   Yes


d3: Mirror
  Submirror 0: d13
    State: Okay
  Submirror 1: d23
    State: Resyncing
  Resync in progress: 1 % done
  Pass: 1
  Read option: roundrobin (default)
  Write option: parallel (default)
  Size: 10247232 blocks (4.9 GB)

d13: Submirror of d3
  State: Okay
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t0d0s3          0     No            Okay   Yes


d23: Submirror of d3
  State: Resyncing
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t1d0s3          0     No            Okay   Yes


d1: Mirror
  Submirror 0: d11
    State: Okay
  Submirror 1: d21
    State: Resyncing
  Resync in progress: 2 % done
  Pass: 1
  Read option: roundrobin (default)
  Write option: parallel (default)
  Size: 16393536 blocks (7.8 GB)

d11: Submirror of d1
  State: Okay
  Size: 16393536 blocks (7.8 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t0d0s1          0     No            Okay   Yes


d21: Submirror of d1
  State: Resyncing
  Size: 16393536 blocks (7.8 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t1d0s1          0     No            Okay   Yes


d0: Mirror
  Submirror 0: d10
    State: Okay
  Submirror 1: d20
    State: Resyncing
  Resync in progress: 12 % done
  Pass: 1
  Read option: roundrobin (default)
  Write option: parallel (default)
  Size: 10247232 blocks (4.9 GB)

d10: Submirror of d0
  State: Okay
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t0d0s0          0     No            Okay   Yes


d20: Submirror of d0
  State: Resyncing
  Size: 10247232 blocks (4.9 GB)
  Stripe 0:
      Device     Start Block  Dbase        State Reloc Hot Spare
      c0t1d0s0          0     No            Okay   Yes


Device Relocation Information:
Device   Reloc  Device ID
c0t1d0   Yes    id1,sd@n500000e0120569a0
c0t0d0   Yes    id1,sd@n500000e012063ec0
 
solarissds.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