We have recently uploaded our very first Cherokee Web Server introductory screencast. It's a 5 minutes video to introduce the Cherokee configuration interface:
We will record more videos in the upcoming weeks. Hopefully they will help us to show the World the cool features that Cherokee offers. Enjoy it!
Esta frase de Oscar Wilde da inicio al libro Redes Privadas Virtuales de mi buen amigo Javier Andrés Alonso que hoy por fin recibí en casa vía editorial Ra-Ma. En el primer vistazo al libro lo que más me ha llamado la atención ha sido su finalidad puramente práctica junto con el grosor, casi 900 páginas, … todo un tratado de seguridad, redes y encriptación única en su género y en castellano.
Ha sido muy emotivo este primer encuentro con su libro y que me ha traido recuerdos del antiguo equipo de mucha calidad del GateDefender (Javi, Dani, Patri y yo), compañeros del equipo de desarrollo y de managers. Son muchas horas codo con codo, analizando tráfico de red, buscando la forma de que “explotaran” las nuevas releases o buscando el entrecotte para la dieta multiproteica de Iván , aunque destacaría esas clases magistrales que tanto me ayudaron para hacerme con el producto y adentrarme en el mundo de la seguridad informática. Se hace irónico encontrar mi nombre en los agradecimientos del libro, … , aprendí mucho de su poesía en directo y sigo aprendiendo de su prosa escrita MAESTRO!!!

A raiz de una consulta de mi amigo Máximo, aprovecho este post para exponer las alternativas en cuanto a soluciones de almacenamiento NAS (CIFS y NFS) y SAN (iSCSI) de tipo Open Source con respecto a otro otras de tipo propietario como pueden ser Dell EquaLogic y HP Lefthand.

Al implementar ZFS como motor de almacenamiento interno (sistemas de ficheros al igual que gestor de discos), resulta realmente interesante al margen de todas las opciones de snapshots, clones (tercera copia), replicación asincrona, "thin provisioning" y deduplicación a nivel de bloque como funcionalidades de serie, la capacidad de poder realizar la distribución de las distintas caches de lectura y escritura en diferentes discos (SATA, SAS, SSD e incluso memorias Flash) como se puede apreciar facilmente en siguiente ilustración:
En adelante trasmitiré en este mismo blog varios post con respecto a soluciones de almacenamniento SAN igualmente de tipo Open Source, pero esta vez 100% basadas en FCP (Fibre Channel Protocol) tanto a nivel de Target como Initiator. Emulex recientemente sacó al mercado sus nuevas tajetas Oneconnect Universal CNAs ( Adaptadores universales que convergen protocolos de red ). De esta forma una PCI Express da soporte a distintos estándares/protocolos de red como TCP/IP,iSCSI, FCoE de forma integrada en
un solo chip.
Se añade a esta nueva creación el lanzamiento de un producto software llamado OneCommand Manager, que facilita la gestión, supervisión de estado y rendimiento de las CNAs y HBAs propias de la marca, centralizándolo en un solo monitor.
En previsión a las migraciones de los centros de procesamientos de datos a la tecnología Ethernet de 10 Gb/s, Emulex quiere captar clientes proponiendo una solución que además de aunar protocolos y facilitar su gestión, ahorrará en gastos de capital (CapEx) en servidores, adaptadores y cableado, además de gastos operacionales (OpEx) en energía, refrigeración y gestión IT.
Actualmente sólo están disponibles para los sistemas operativos Windows Server 2003/2008, Red Hat Enterprise Linux 5, SUSE Enterprise Linux 10,11, VMware ESX 3.5.
En breve está previsto que soporte otros sistemas operativos, entre ellos OpenSolaris, cuyos
drivers ya han sido subidos para su valoración, esperando que se incluyan en los próximas actualizaciones de mantenimiento de Solaris 10. El soporte total sobre Solaris se espera que llegue a medidados del 2010.

jfexart@opensolaris:~$ setxkbmap -model pc105 latamApple decidió cancelar el proyecto de ZFS en Mac OS X: http://zfs.macosforge.org/, debido a que no llegó a un acuerdo con Sun sobre el soporte e indemificación sobre el código (es decir, fue un problema legal, no técnico). Sin embargo, gente de la comunidad logro clonar el código que estaba antes disponible por Apple y seguirán haciendo el port de manera independiente: http://dustin.github.com/2009/10/23/mac-zfs.html. Hay al menos dos fuentes del código y de los binarios ahorita: http://github.com/alblue/mac-zfs y http://github.com/dustin/mac-zfs.
Hace dos días se anunció un port de ZFS para Linux, en la forma de un modulo independiente del kernel, así evitaría problemas de conflicto de las licencias (GPL vs CDDL). Aquí está el anuncio: http://kqinfotech.wordpress.com/2009/10/23/hello-world/ y aquí una pequeña discusión al respecto: http://www.opensolaris.org/jive/thread.jspa?threadID=115841&tstart=0.
El port de ZFS en FreeBSD (integrado en el 2007) ya esta estable y siguen agregando funcionalidades en cada versión nueva. Para la próxima versión de FreeBSD (8.0, ya pronto a salir) ya lo catalogan como production ready (http://svn.freebsd.org/viewvc/base?view=revision&revision=197221) y piensan integrarlo con su solución virtualización a nivel de OS (Jails), similar a las Zonas de Solaris (http://ivoras.sharanet.org/freebsd/freebsd8.html).
En NetBSD también hay un port en progreso: http://blog.netbsd.org/tnf/entry/google_summer_of_code_zfs, http://netbsd-soc.sourceforge.net/projects/zfs-port/.
Es importante también mencionar que existe un programa llamado FUSE (Filesystem in Userspace, http://en.wikipedia.org/wiki/Filesystem_in_Userspace, http://fuse.sourceforge.net/) que permite montar sistemas de archivos de diferentes formatos en una capa sobre el sistema operativo, en la forma de un modulo cargable del kernel. Es una especie de "virtualización", por lo que no es la forma 100% optima de utilizar sistemas de archivos, pero permite la interoperatibilidad entre diferentes sistemas operativos. Entre los sistemas operativos que soporta están Linux, Windows, OpenSolaris y Mac OS X y entre los sistemas de archivos estan NTFS (Windows), EXT2/3 (Linux), imágenes de VMware, Lustre y ZFS (http://groups.google.com/group/zfs-fuse/about).
Por otro lado, DTrace es otra parte de Solaris/OpenSolaris que esta apareciendo en otros sistemas operativos. Los mas importantes son Mac OS X (http://en.wikipedia.org/wiki/Instruments_%28application%29, http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Introduction/Introduction.html), FreeBSD (http://www.freebsd.org/doc/en/books/handbook/dtrace.html) y Linux (no oficial, pero casi completa http://www.crisp.demon.co.uk/blog/archives/2008-09.html#2008-09-25T20_58_45.txt, ftp://crisp.dynalias.com/pub/release/website/dtrace/).
IBM y HP hasta ahora solo se han limitado a intentar copiar ZFS y DTrace en AIX, HP-UX y Linux (http://en.wikipedia.org/wiki/ProbeVue, http://en.wikipedia.org/wiki/SystemTap, http://en.wikipedia.org/wiki/AdvFS, http://news.cnet.com/8301-13556_3-9975201-61.html, http://en.wikipedia.org/wiki/Btrfs), pero tienen varias dificultades:
$ pfexec pkg set-publisher -O http://pkg.opensolaris.org/dev opensolaris.orgSe trata del error hardware más frecuente en cualquier tipo de servidor/ordenador o dispositivo dedicado de almacenamiento:
Fallos de disco duro con errores de escritura
Lo aconsejable en estos casos sería hacer un backup del disco que presenta problemas y sustituirlo. Con la frecuencia que estos errores se presentan, provocadas por factores de entorno (humedad, temperatura, vibraciones, fallos electricos o mecánicos, … ) o por fin de vida útil, la prevención es la herramienta más eficaz de forma que:
Se disponga de un sistema que controle dichas variables de entorno (Utilizar herramientas de monitorización basadas en SMART) y El sistema tenga tolerancia a fallos de disco ( por ejemplo RAID1,5) de forma que cuando presenta un fallo, el disco es aislado y solicita a su administrador que lo sustituya, previniendo las pérdidas de datos y su acceso , ya sea por recostrucción automática en disco auxiliar (spare) y/o recreación de la información (algoritmos de paridad).
No siempre se administran sistemas con un diseño previsor a estos tipos de errores, pueden ser por deficiencias provocadas por los presupuestos de la empresa ( el disco duro históricamente era un soporte de almacenamiento bastante caro) o por algo muy “typical spanish”:
El aprendizaje a base de palos porque no hay previsión.
Por ejemplo, errores hardware en el almacenamiento que provoca caida de algunos de los servicios básicos de una empresa, incluso con pérdidas datos valiosos e irrecuperables. Esto generará entonces un replanteamiento de la seguridad en el almacenamiento. Una auditoría y una inversión acorde con el valor y cantidad de datos eliminaría este riesgo, no olvidemos que se suele cumplir la máxima de:
Se tiene lo que se paga
Aún así, sean técnicos o responsables de sistemas de una empresa, convertidos en unos Mc Gyver, tratan de cubrir muchas deficiencias de las instalaciones informáticas, al recaer en ellos la responsabilidad de mantener unas instalaciones inseguras y con bajo presupuesto … Me refiero a esos Googleadores natos, con el destornillador siempre a mano,
que tienen disponibilidad absoluta cuando el jefe lo llama a las 12 de la noche porque no puede conectarse a la VPN de la empresa d
esde su casa.
La migración de entornos a Linux es una opción muy típica para estas instalaciones, debido a la compatibilidad con el hardware, facilidad de control y supervisión y por lo tanto seguridad, con paquetes completos para estas labores de administración sin ningún coste (para los más arerriesgados), o disponer de un soporte de todo el software de una distribución Enterprise a bajo precio.
En la actualidad, debido al aumento de capacidad y la bajada de precios del disco duro, hasta un usuario particular puede permitirse pagarse el hardware para un sistema raid tolerante a fallos de disco en el PC de su casa, …, tema pendiente para otro post.
Volviendo al tema que tocamos ahora, que hacer cuando hay que reparar unos sectores defectuosos, por ejemplo de un disco sin garantía o contrato de soporte o simplemente testear cuales son esos sectores para valorar el riesgo. Se pueden usar herramientas específicas para esta causa, que tienen los fabricantes de discos y que están basado en la tecnología SMART. Poniendo un ejemplo, en la creación de un raid 5 para uso doméstico, me encontré que la herramienta de software para raid mdadm se negaba a integrar en el nuevo volumen uno de los discos de tera y medio comprados específicamente para esta función. La finalización del paso de creación del raid (mdadm –create) terminaba con un sistema degradado. Después de varias búsquedas por internet, por sintomatología determino que es error de escritura para un sector de la LBA específico, por lo que me dispongo abrir un caso a Soporte de Seagate. Soporte me solicitó usar una herramienta propia para diagnóstico y reparación de sectores defectuosos, pero el consejero Google me llevó por otros derroteros, e intenté repararlo con herramientas propias de la distribución. Por equivalencia, como estas herramientas de diagnóstico se basan en SMART instalé smartmontools, paquete de aplicaciones que incluye Debian y demás distros en linux para diagnóstico de discos con SMART implementado. Lo que a continuación expondré son unos pasos prácticos para en primer momento diagnóstico, y si es posible reparación.

Para diagnosticar y reparar, en el campo que sea lo primero es formarse y el conocimiento no aparece de forma espontánea, viene después de mucho trabajo y experiencia, aunque una cultura de base acelera el proceso de aprendizaje de forma exponencial. Dejo varios links para este propósito:
Básico
- Procedente de la Wikipedia: Una magnífica introducción al disco duro, componentes físicos, divisiones físicas y lógicas, formas de direccionamientos, tecnologías usadas, … , Un trabajo inmejorable de síntesis en un artículo y en castellano!
- Procedente de Wikipedia: Definición de tecnología SMART, parámetros que controla para diagnóstico de error y en castellano.
- Procedente de Monografías: Aunque es información básica, en ocasiones obsoleta y orientado a entornos de Microsoft. Se definen conceptos básicos como tiempos de acceso o buffer de disco interesantes.
- Procedente de Wikipedia: Definición, historia, especificaciones,… sobre discos SATA (Serial-ATA).
- Google: El oráculo de Delfos, hasta ahora … responde preguntas y sobre todo crea nuevas para seguirte respondiendo.
Herramientas referidas en este post
smartmontools – Paquete que contiene dos utilidades smartctl y smartd, para controlar y monitorizar sistemas de almacenamiento que usan SMART.
sg3-tools – Paquete para enviar comandos scsi a dispositivos scsi.
Seatools for DOS: Herramienta de Seagate para diagnóstico y reparación de discos.
Procedimiento de diagnóstico de sectores defectuosos
En este ejemplo se tratará de un entorno GNU/Linux, distribución Debian, al usar sus repositorios se usará la utilidad de paquetes nativas (apt-get) de la distribución, de forma análoga se usará yum en las variantes de Red Hat, Yast en Novell/Suse, …

En un sistema Debian, podremos tirar de repositorio para instalar el paquete smartmontools:
Comprobar que está en repositorio:
nas-ferras:~# apt-cache search smartmontools
smart-notifier – graphical hard disk health status notifier
smartmontools – control and monitor storage systems using S.M.A.R.T.
Instalar paquete smartmontools:
nas-ferras:~# apt-get install smartmontools
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalarán los siguientes paquetes NUEVOS:
smartmontools
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 0B/332kB de archivos.
Se utilizarán 848kB de espacio de disco adicional después de esta operación.
Seleccionando el paquete smartmontools previamente no seleccionado.
(Leyendo la base de datos …
91982 ficheros y directorios instalados actualmente.)
Desempaquetando smartmontools (de …/smartmontools_5.38-2+lenny1_amd64.deb) …
Procesando disparadores para man-db …
Configurando smartmontools (5.38-2+lenny1) …
Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools (warning).
Comprobar la versión instalada:
nas-ferras:~# dpkg -l smartmontools
Desired=Unknown/Install/Remove/Purge/Hold
| Estado=No/Instalado/Config-files/Desempaquetado/Fallo-config/Medio-inst/espera-disparo/pendiente-disparo
|/ Err?=(ninguno)/Retenido/Requiere-reinst/X=ambos problemas (Estado,Err: mayúsc.=malo)
||/ Nombre Versión Descripción
+++-=================================-=================================-==================================================================================
ii smartmontools 5.38-2+lenny1 control and monitor storage systems using S.M.A.R.T.
DIAGNÓSTICO
Ejecución de test sobre disco sospechoso:
Se puede usar la versión short o long:
nas-ferras:~# smartctl -t long /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: “Execute SMART Extended self-test routine immediately in off-line mode”.
Drive command “Execute SMART Extended self-test routine immediately in off-line mode” successful.
Testing has begun.
Please wait 255 minutes for test to complete.
Test will complete after Wed Oct 14 01:13:52 2009Use smartctl -X to abort test.
Una revisión del log mostrará los resultados de los diferentes tests ejecutados sobre el disco de la siguiente forma:
nas-ferras:~# smartctl -l selftest /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 99 2597324513
# 2 Extended offline Completed: read failure 90% 62 2597324513
# 3 Short offline Completed: read failure 90% 61 2597324513
# 4 Short offline Completed: read failure 90% 61 2597324513
# 5 Short offline Completed: read failure 90% 61 2597324513
# 6 Short offline Completed: read failure 90% 60 2597324513
# 7 Extended offline Completed: read failure 90% 60 2597324513
# 8 Extended offline Completed: read failure 90% 58 2597324513
# 9 Extended offline Completed: read failure 90% 58 2597324513
#10 Extended offline Completed: read failure 90% 58 2597324513
Que apunta en todos sus test ejecutados a fallos de lectura en el sector 2597324513.
Ya tenemos diagnóstico, un sector está defectuoso, siendo el causante de que mdadm no lo quiera integrar como elemento en el raid5, etiquetándolo como disco en fallo.
REPARACIÓN
La reparación será una reasignación del sector en fallo, para un disco SCSI/Fibra sería posible realizarlo con las herramientas del paquete sg3-utils siguiendo los siguientes pasos: Instalación #apt-get install sg3-utils, confirmación del sector defectuoso #sg_verify –lba=2597324513 /dev/sda y reasignar el sector en el firmware del disco con # sg_reassign –grown /dev/sda #sg_reassign –address=2597324513 /dev/sda. Más detallado se encuentra éste procedimiento basado en un caso práctico en éste link.
Para nuestro caso, se trata de un disco SATA, en principio no podemos disfrutar de las sg3-utils para los tipo SCSI, pero una pregunta a Google responde que este paquete en versiones actuales ya tiene soporte para este tipo de discos y trataremos de probar suerte.
nas-ferras:~# sg_verify –lba=2597324513 /dev/sda
verify (10): Descriptor format, current; Sense key: Medium Error
Additional sense: Unrecovered read error – auto reallocate failed
Descriptor type: Information
0×0000ffff9ad006e1
medium or hardware error, reported lba=0xffff9ad006e1
nas-ferras:~# sg_reassign –address=2597324513 /dev/sda
REASSIGN BLOCKS not supported
nas-ferras:~# sg_verify –lba=2597324513 /dev/sda
verify (10): Descriptor format, current; Sense key: Medium Error
Additional sense: Unrecovered read error – auto reallocate failed
Descriptor type: Information
0×0000ffff9ad006e1
medium or hardware error, reported lba=0xffff9ad006e1
En un principio no responde nada parecido a dispositivo no soportado por la herramienta y la información que proporciona es coherente, pareciendo que interactúa con dispositivos SATA. Pero partiendo de que se trata de una herramienta que a bajo nivel trabaja con dd, tampoco parece raro que detecte errores de lectura para cualquier dispositivo ya que no tendría porque usar los driver sg ( SCSI generic) para dispositivos SCSI y fibra en esta comprobación.
Nos quitará las dudas cuando forzaremos la reasignación del sector(reallocate):
nas-ferras:~# sg_reassign –grown /dev/sda
READ DEFECT DATA (10) not supported
nas-ferras:~# sg_reassign –address=2597324513 /dev/sda
REASSIGN BLOCKS not supported
En un principio parece que esta tools no está preparada para la reasignación de sectores en dispositivos SATA, o el firmware del disco no es compatible con las sg3-tools. De todas formas no encuentro referencias a que interactúe con dispositivos SATA en ninguna parte del man de sg3-tools o sg_reassign.
Persistiendo en la forma de realizar una reasignación del sector defectuoso desde linux, se formatea el disco en ext3 y se sigue la guía Bad block HOWTO for smartmontools para el caso de una partición extended:
Se formatea en ext3
nas-ferras:~#mkfs.ext3 /dev/sda2
Se recogen los atributos de la partición /dev/sda:
nas-ferras:~# smartctl -A /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0×000f 103 097 006 Pre-fail Always - 88063229
3 Spin_Up_Time 0×0003 100 100 000 Pre-fail Always - 0
4 Start_Stop_Count 0×0032 100 100 020 Old_age Always - 45
5 Reallocated_Sector_Ct 0×0033 100 100 036 Pre-fail Always - 2
7 Seek_Error_Rate 0×000f 100 253 030 Pre-fail Always - 675601
9 Power_On_Hours 0×0032 100 100 000 Old_age Always - 103
10 Spin_Retry_Count 0×0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0×0032 100 100 020 Old_age Always - 45
184 Unknown_Attribute 0×0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0×0032 060 060 000 Old_age Always - 40
188 Unknown_Attribute 0×0032 100 093 000 Old_age Always - 59
189 High_Fly_Writes 0×003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0×0022 061 055 045 Old_age Always - 39 (Lifetime Min/Max 25/40)
194 Temperature_Celsius 0×0022 039 045 000 Old_age Always - 39 (0 21 0 0)
195 Hardware_ECC_Recovered 0×001a 039 030 000 Old_age Always - 88063229
197 Current_Pending_Sector 0×0012 100 100 000 Old_age Always - 1
198 Offline_Uncorrectable 0×0010 100 100 000 Old_age Offline - 1
199 UDMA_CRC_Error_Count 0×003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0×0000 100 253 000 Old_age Offline - 59180354371687
241 Unknown_Attribute 0×0000 100 253 000 Old_age Offline - 3587000442
242 Unknown_Attribute 0×0000 100 253 000 Old_age Offline - 3852047273
Se busca comienzo de la partición sda2:
nas-ferras:~# fdisk -lu /dev/sda
Disco /dev/sda: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, 2930277168 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Disk identifier: 0×0009ec06Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 63 29302559 14651248+ 83 Linux
/dev/sda2 29302560 2930272064 1450484752+ 83 Linux
Como sda2 empieza en el sector 293302560 y el sector en error es 2597324513, para obtener la posición del sector en error relativo a la partición sda2 hay que hacer la resta 2597324513 – 293302560 = 2304021953.
Para saber el tamaño de bloque usado por el sistema de ficheros en sda2 :
nas-ferras:~# tune2fs -l /dev/sda2 | grep Block
Block count: 362621188
Block size: 4096
Blocks per group: 32768
Para finalizar las cuentas nos queda por saber que bloque del sistema de ficheros contiene esta LBA. Que sigue la siguiente ecuación
b = (int)((L-S)*512/B) Donde: b = Número de bloque en el sistema de ficheros B = Tamaño de bloque en bytes del sistema de fichero L = LBA del sector defectuoso S = Sector de comienzo de la partición que muestra la herramienta fdisk -lu y (int) que denota la parte entera. En nuestro ejemplo quedaría así: b=((int)(2597324513 - 293302560)*512/4096)= (int) 288002744,125=288002744 Comprobamos que el bloque no está en uso:
nas-ferras:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs: open /dev/sda2debugfs: testb 288002744
Block 288002744 not in use
Y por último realizar un dd para forzar un reallocate del sector defectuoso como se describe en la guía:
nas-ferras:~# dd if=/dev/zero of=/dev/sda2 bs=4096 count=1 seek=288002744
1+0 records in
1+0 records out
4096 bytes (4,1 kB) copied, 0,000607736 s, 6,7 MB/s
Ejecuto test dos veces:
nas-ferras:~# smartctl -t short /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: “Execute SMART Short self-test routine immediately in off-line mode”.
Drive command “Execute SMART Short self-test routine immediately in off-line mode” successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Wed Oct 14 01:14:43 2009
Sorpresa !! No se ha producido una nueva reasignación de sectores, se puede comprobar mirando del atributo Reallocated_Sector_Ct en la salida del comando smartctl -A /dev/sda:
nas-ferras:~# smartctl -A /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0×000f 103 097 006 Pre-fail Always - 89275771
3 Spin_Up_Time 0×0003 100 100 000 Pre-fail Always - 0
4 Start_Stop_Count 0×0032 100 100 020 Old_age Always - 46
5 Reallocated_Sector_Ct 0×0033 100 100 036 Pre-fail Always - 2
7 Seek_Error_Rate 0×000f 100 253 030 Pre-fail Always - 679040
9 Power_On_Hours 0×0032 100 100 000 Old_age Always - 104
10 Spin_Retry_Count 0×0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0×0032 100 100 020 Old_age Always - 46
184 Unknown_Attribute 0×0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0×0032 060 060 000 Old_age Always - 40
188 Unknown_Attribute 0×0032 098 093 000 Old_age Always - 61
189 High_Fly_Writes 0×003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0×0022 066 055 045 Old_age Always - 34 (Lifetime Min/Max 26/34)
194 Temperature_Celsius 0×0022 034 045 000 Old_age Always - 34 (0 21 0 0)
195 Hardware_ECC_Recovered 0×001a 038 030 000 Old_age Always - 89275771
197 Current_Pending_Sector 0×0012 100 100 000 Old_age Always - 1
198 Offline_Uncorrectable 0×0010 100 100 000 Old_age Offline - 1
199 UDMA_CRC_Error_Count 0×003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0×0000 100 253 000 Old_age Offline - 143872814481511
241 Unknown_Attribute 0×0000 100 253 000 Old_age Offline - 3587013738
242 Unknown_Attribute 0×0000 100 253 000 Old_age Offline - 3874184123
Y lógicamente los resultados de los test ejecutados después del dd, siguen dando fallo en mismo sector:
nas-ferras:~# smartctl -l selftest /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 90% 103 2597324513
# 2 Short offline Completed: read failure 90% 103 2597324513
# 3 Extended offline Completed: read failure 90% 99 2597324513
# 4 Extended offline Completed: read failure 90% 62 2597324513
# 5 Short offline Completed: read failure 90% 61 2597324513
# 6 Short offline Completed: read failure 90% 61 2597324513
# 7 Short offline Completed: read failure 90% 61 2597324513
# 8 Short offline Completed: read failure 90% 60 2597324513
# 9 Extended offline Completed: read failure 90% 60 2597324513
#10 Extended offline Completed: read failure 90% 58 2597324513
#11 Extended offline Completed: read failure 90% 58 2597324513
#12 Extended offline Completed: read failure 90% 58 2597324513
Tampoco este HOWTO nos lleva a la reparación del sector defectuoso.
Herramienta SEATOOLS for DOS
Queda usar la herramienta propia de Seagate llamada SEATOOLS, que se trata de un LiveCD basado en FreeDOS que posee una interfaz gráfica que reconoce los discos SATA y proporciona herramientas de diagnóstico, reparación y configuración. Esta herramienta se puede descargar desde el siguiente link.
Los resultados de ejecución de esta herramienta han sido eficaces, detecta en su Basic Test Short el sector defectuoso, y en su Basic Test Long en su finalización solicita la reparación del mismo. Con la reparación ha pasado los test del mdadm e integrado en el raid5 sin problemas. Sólo queda tenerlo un tiempo en observación para comprobar que es sólamente un error puntual en el sector o el disco es inestable con tendencia a errores.

Conclusiones:

$ pfexec pkg set-publisher -O http://pkg.opensolaris.org/dev opensolaris.org
$ pfexec pkg image-update




jfexart@opensolaris:~$ pfexec ln -s /dev/term/0 /dev/e61i
-pap
+chap
'' 'ATZ'
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
'OK' 'AT+CGDCONT=1,"IP","gprsweb.digitel.ve"'
'OK' 'ATD*99#'
CONNECT ''
modem
e61i # nombre del enlace que creamos
460800 # velocidad entre modem y puerto
noauth # no autenticar la identidad del ISP
noipdefault # IP automaticamente por el ISP
defaultroute # ISP como gateway a Internet
usepeerdns # solicitar servidores DNS
noccp # ISP no soporta compresion libre
novj
user "digitel" # nombre de usuario
nodetach # pppd corriendo en terminal y no como demonio
show-password
crtscts # activar control de flujo por hardware
connect "/usr/bin/chat -V -t15 -f /etc/ppp/digitel-chat" # conecta al ISP
jfexart@opensolaris:~$ pfexec pppd call digitel
ATZ
OK
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
AT+CGDCONT=1,"IP","gprsweb.digitel.ve"
OK
ATD*99#
CONNECTSerial connection established.
Using interface sppp0
Connect: sppp0 --> /dev/e61i
possibly broken peer detected; restarting LCP
LCP: Rcvd Code-Reject for Identification id 215
local IP address 10.252.67.221
remote IP address 10.6.6.6
primary DNS address 10.99.0.11
secondary DNS address 204.59.152.208
Terminating on signal 2.
Connection terminated.
Connect time 0.5 minutes.
Sent 1445 bytes (23 packets), received 359 bytes (10 packets).
jfexart@opensolaris:~$ ifconfig wpi0
jfexart@opensolaris:~$ ifconfig -a
jfexart@opensolaris:~$ pfexec ifconfig -a
jfexart@opensolaris:~$ zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/opensolaris@install 137M - 2,21G -
rpool/ROOT/opensolaris-1@2009-03-30-11:20:52 83,2M - 2,37G -
rpool/ROOT/opensolaris-2@2009-03-30-11:23:28 35,6M - 2,53G -
rpool/ROOT/opensolaris-3@2009-03-30-11:25:17 1,09G - 7,03G -
jfexart@opensolaris:~$ pfexec zfs destroy -R rpool/ROOT/opensolaris@2009-03-30-11:20:52
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/opensolaris@install 137M - 2,21G -
rpool/ROOT/opensolaris-2@2009-03-30-11:23:28 35,6M - 2,37G -
rpool/ROOT/opensolaris-3@2009-03-30-11:25:17 1,09G - 7,03G -
Desde mi primer encuentro con NetBeans, cuando se encontraba por la versión 5.5 quede cautivado por este entorno de desarrollo, sin embargo luego descubrí Eclipse, que a pesar de no desplazar a NetBeans de su puesto de favorito, tengo que reconocer que es un entorno de desarrollo bastante bueno y muy usado, y la verdad es que prefiero tener tanto NetBeans como Eclipse instalado en mi computador.jfexart@opensolaris:~$ pfexec pkg install eclipsejfexart@opensolaris:~$ /usr/eclipse/eclipse
Está mañana recibí 2 CDs de OpenSolaris 2008.11 que había solicitado a través de este sitio, uno para mi hermano y el otro para mi, aunque ya lo había descargado de Internet desde el mes de Diciembre me gusta tener una copia original, así que después de tanto esperar ya lo tengo en mis manos. Dario León, el líder del Grupo de Usuarios OpenSolaris de Venezuela, me había hecho llegar 10 CDs de OpenSolaris 2008.11 pero estos los regalé a algunas amistades y rifé otros en una charla sobre OpenSolaris que di la semana pasada, por lo que no me quedé con ninguna copia para mi.
Hace unos días atrás explique como podíamos instalar en nuestra computadora un entorno de desarrollo web (Apache, MySQL y PHP) instalando el paquete amp desde nuestro repositorio, en esta oportunidad les quiero hablar de phpMyAdmin, una herramienta disponible bajo la licencia GPL que nos permite administrar MySQL en un entorno Web, gracias a que se encuentra escrita en php, como requisito solo necesitamos haber instalado amp en nuestra computadora, después de eso hacemos click aquí para descargar phpMyAdmin, preferiblemente descargamos el que finaliza en: all-languages.tar.gz./var/apache2/2.2/htdocshttp://localhost/phpmyadmin
jfexart@opensolaris:~$ pfexec pkg install ampjfexart@opensolaris:~$ pfexec /usr/sbin/svcadm enable network/http:apache22jfexart@opensolaris:~$ pfexec /usr/sbin/svcadm enable database/mysql:version_50jfexart@opensolaris:~$ pfexec /usr/mysql/bin/mysql -u root -p/var/apache2/2.2/htdocs
Hoy me he dispuesto a configurar mi impresora HP Photosmart D5069 en OpenSolaris, desde que lo tengo instalado nativamente en mi laptop no había podido hacerlo. La primera vez que conecte la impresora a la laptop enseguida me apareció una notificación que decía que la impresora había sido reconocida, que el driver estaba instalado y que estaba lista para funcionar, lo que me dejo impresionado porque la verdad no me lo esperaba, la alegría me duro poco ya que al intentar imprimir me doy cuenta que no obtengo ninguna respuesta, por una parte OpenSolaris no me muestra ningún error y por la otra la impresora no hace el intento de imprimir, se queda totalmente en silencio y sin parpadear el led.jfexart@opensolaris:~$ pfexec pkg install SUNWcups SUNWcups-manager
jfexart@opensolaris:~$ print-service -q
active print service: lp
jfexart@opensolaris:~$ print-service -s cups
disabling LP services
enabling CUPS services...


Dichos productos Open Source, soportan el protocolo de tipo Tcp denominado AJP, el cual permite el uso de la infraestructura de Apache como frontal Web de los mismos.
Adjunto imagenes que confirman la compatibilidad y soporte de estos productos con cualquier distribución tanto del mundo Linux como OpenSolaris.

prstat -m, veremos la columna SLP (donde se incluye el tiempo de espera para
operaciones de i/o) muy cercana al 100%. Un proceso dormido no consume cpu ...
saquen pues sus propias conclusiones.
El problema que se me planteó es demostrar con datos objetivos que
realmente es así, para ello he recurrido a dtrace y he hecho un
script
que calcula cuanto tiempo de cpu ha consumido cada llamada al sistema, es
decir se han empleado 13212600 nanosegundos ejecutando la llamada
waitsys, 29667600 ejecutando send,
etc. Con esos datos y un poco de ayuda de una hoja de calculo es fácil ver
que porcentaje de tiempo de sistema se está usando en cada una.
Como curiosidad el resultado fue que el 60% de tiempo de kernel no
estaba relacionado directamente con operaciones de i/o.