Al escoger una solución de almacenamiento masivo los factores más importantes a considerar son velocidad, fiabilidad y coste. Es raro tener los tres por igual; normalmente un dispositivo de almacenamiento masivo veloz y fiable es caro, y para recortar los costes suele sacrificarse la velocidad o la fiabilidad.
Al diseñar el sistema descrito más adelante se eligió el coste como el factor más importante, seguido de la velocidad, y luego la fiabilidad. La velocidad de transferencia de datos para este sistema está, en última instancia, limitada por la red. Y mientras que la confiabilidad es muy importante, el controlador CCD descrito más adelante sirve datos que están respaldados en CD-R y pueden ser reemplazados sin dificultad.
Al escoger una solución de almacenamiento masivo el primer paso es definir sus necesidades. Si prefiere velocidad o fiabilidad por encima del coste, el resultado será distinto del que vamos a describir en esta sección.
Además del disco IDE, el núcleo del disco CCD está compuesto por tres discos IDE discos IDE Western Digital de 30GB y 5400 RPM, que ofrecen aproximadamente 90GB de almacenamiento. Lo ideal sería que cada disco IDE tuviera su propio cable y controlador, pero para minimizar costes no se utilizaron controladores IDE adicionales. En lugar de eso se configuraron los discos con “jumpers” para que cada controlador IDE tuviera un maestro y un esclavo.
Despues de reiniciar la BIOS se configuró para que detectara automáticamente los discos conectados. FreeBSD los detectó al reiniciar:
ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33
Nota: Si FreeBSD no detecta todos los discos asegúrese de que ha colocado correctamente los “jumpers”. La mayoría de los discos IDE tienen un “jumper” “Cable Select”. Este no es el “jumper” que define la relación maestro/esclavo. Consulte la documentación del disco para identificar el “jumper” correcto.
El siguiente paso es estudiar cómo conectarlos para que formen parte del sistema de ficheros. Investigue Debe investigar vinum(8) (Capítulo 20) y ccd(4). Nosotros elegimos ccd(4) para nuestra configuración.
El controlador ccd(4) le permite tomar varios discos idénticos y concatenarlos en un solo sistema lógico de ficheros. Para poder usar ccd(4) necesita un kernel compilado con soporte de ccd(4). Añada esta línea al fichero de configuración de su kernel, recompile y reinstale su kernel:
pseudo-device ccd 4
En sistemas 5.X, use la siguiente línea:
device ccd
Nota: En FreeBSD 5.X no es necesario especificar un número de dispositivos ccd(4), ya que el controlador de dispositivo ccd(4) es capaz de clonarse a sí mismo (se crearán nuevas instancias de dispositivo automáticamente según vayan haciendo falta).
El soporte de ccd(4) también puede cargarse como módulo en FreeBSD 3.0 y posteriores.
Para configurar ccd(4) tendrá que usar disklabel(8) para etiquetar los discos:
disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto
Esto crea una etiqueta de disco para ad1c, ad2c y ad3c que abarcan el disco completo.
Nota: A partir de FreeBSD 5.1-RELEASE bsdlabel(8) reemplazó al antiguo programa disklabel(8). En bsdlabel(8) se eliminaron muchas opciones y parámetros obsoletos; en los ejemplos de arriba la opción
-r
deben obviarse. Para más información consulte bsdlabel(8).
El siguiente paso es cambiar el tipo de etiqueta de disco. Edite los discos con disklabel(8):
disklabel -e ad1 disklabel -e ad2 disklabel -e ad3
Esto abre la etiqueta de disco de cada disco con el editor declarado en la variable de entorno EDITOR, por defecto vi(1).
Esta es una etiqueta de disco sin modificar:
8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
ccd(4) necesita que
añada una nueva partición e. Puede copiarla desde la partición
c, pero el tipo de sistema de ficheros (la opción fstype
) debe ser 4.2BSD. La etiqueta
del disco debería tener este aspecto:
8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)
Puede que todavía no exista el nodo de dispositivo para ccd0c. Si es así, ejecute lo siguiente:
cd /dev sh MAKEDEV ccd0
Nota: En FreeBSD 5.0 devfs(5) administrará automáticamente los nodos de dispositivos en /dev, así que no tendrá que usar MAKEDEV.
Una vez etiquetados todos los discos construya el ccd(4). Utilice ccdconfig(8) con opciones similares a las siguientes:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
El uso y el significado de cada una de las opciones se muestra más abajo:
Despues de ejecutar ccdconfig(8) el ccd(4) estará configurado y podrá instalar un sistema de ficheros. Consulte las opciones de newfs(8) y ejecute:
newfs /dev/ccd0c
Seguramente querrá que ccd(4) esté dispuesto tras cada reinicio. Para ello, debe configurarlo. Guarde su configuración en /etc/ccd.conf mediante lo siguiente:
ccdconfig -g > /etc/ccd.conf
Durante el reinicio, el “script” /etc/rc ejecuta ccdconfig -C si encuentra el fichero /etc/ccd.conf. De este modo ccd(4) queda configurado automáticamente para que pueda montarse.
Nota: Si ha arrancando en modo mono usuario necesita ejecutar el siguiente comando antes de que pueda montar el ccd(4) para configurar el array:
ccdconfig -C
Para montar automaticamente el ccd(4) coloque una entrada para ccd(4) en /etc/fstab para que se monte durante el arranque:
/dev/ccd0c /media ufs rw 2 2
El administrador de volúmenes Vinum es un controlador de dispositivos de bloque que implementa unidades de disco virtuales. Aísla los discos hardware de la interfaz de dispositivos de bloque y mapea datos de modo que revierta en un incremento de flexibilidad, rendimiento y fiabilidad comparados con el sistema de slices de almacenamiento de disco tradicional. vinum(8) implementa los modelos RAID-0, RAID-1 y RAID-5, individualmente o combinados.
Consulte el Capítulo 20 para mayor información sobre vinum(8).
FreeBSD admite una gran variedad de controladores RAID por hardware. Estos dispositivos controlan un subsistema RAID sin necesidad de software específico para FreeBSD que administre el array.
Puede controlar la mayoría de las operaciones de disco con una tarjeta que incorpore BIOS. El siguiente texto es una breve descripción de configuración utilizando una controladora Promise RAID IDE. Cuando se instala esta tarjeta e inicia el sistema despliega un “prompt” pidiendo información. Siga las instrucciones para entrar a la pantalla de configuración de la tarjeta. Ahí tendrá posibilidad de combinar todos los discos que haya conectado. Hecho esto el disco (o discos) aparecerán como una sola unidad en FreeBSD. Pueden configurarse otros niveles de RAID.
FreeBSD le permite reemplazar en caliente un disco dañado. Esto requiere que lo intercepte antes de reiniciar.
Probablemente vea algo como lo siguiente en /var/log/messages o en la salida de dmesg(8):
ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost
Consulte atacontrol(8) para más información:
# atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED
Primero debe desconectar el disco del array para que pueda retirarlo con seguridad:
# atacontrol detach 3
Reemplace el disco.
Conecte el disco de repuesto:
# atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present
Reconstruya el array:
# atacontrol rebuild ar0
El comando de reconstrucción no responderá hasta que termine la tarea. Puede abrir otra terminal (mediante Alt+Fn) y revisar el progreso ejecutando lo siguiente:
# dmesg | tail -10 [texto eliminado] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed
Espere hasta que termine la operación.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<[email protected]>.
Envíe sus preguntas sobre la documentación a <[email protected]>.