Cómo determinar qué disco falló en una configuración de FreeNAS / ZFS


12

Estoy construyendo un servidor basado en FreeNAS en un gabinete Supermicro X6DHE-XB 3U con 4G de RAM, 16 bahías de intercambio en caliente SATA. Viene con 2x8 puertos de tarjetas RAID 3Ware, pero planeo usar las capacidades de ZFS en lugar del RAID de hardware. Mi conjunto de unidades inicial será de 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642.

Si estaba usando RAID basado en hardware, me daría una luz roja en el compartimento de la unidad donde falló la unidad. ¿Cómo funciona con ZFS cuando falla una unidad? No creo que haya ninguna garantía de que sda ​​= bay1, sdb = bay2, etc., entonces, ¿cómo determina qué unidad debe reemplazarse? ¿Puede ZFS informar al controlador SATA para encender la luz de "unidad fallida"? ¿Solo informa el número de serie de la unidad? ¿Qué sucede si la unidad falla tanto que no puede informar su número de serie? Supongo que es una buena idea anotar el número de serie de cada unidad y en qué compartimento entró antes de ponerlo en funcionamiento. ¿Hay otras tareas de "preproducción" para facilitar el reemplazo de unidades en el futuro?

Respuestas:


4

zpool status -v debería decirte qué disco está en línea o no.


3
+1 FreeNAS está basado en FreeBSD, y las unidades estarán en el orden que proporciona la tarjeta. Si hay un único controlador SAS de 8 puertos, las unidades serán / dev / da0 a / dev / da7, con la misma numeración que la tarjeta (los cables válidos también están etiquetados por unidad). Si tiene múltiples controladores, o cualquier cosa complicada, puede ejecutar camcontrol devlistpara obtener una lista de todas las unidades SAS / SCSI y en qué tarjeta, destino, lun están.
Chris S

1
Chris S es incorrecto. Las unidades no siempre aparecen en el orden que proporciona la tarjeta. Por ejemplo, nuestro "da7" aparece segundo en la lista de 8 unidades ... Además, el estado de zpool simplemente da las etiquetas y no los discos reales.
Brian Knoblauch

8

La versión actual de FreeNAS (ver 9.3 en este momento) creará un gptid para cada unidad agregada a un zpool. Inmediatamente después de la creación, el "estado de zpool" se verá así (dependiendo de la configuración de su grupo) ...

#
grupo de estado zpool :
estado myzfstest :
exploración EN LÍNEA : ninguna
configuración solicitada

    NAME                                            STATE     READ WRITE CKSUM
    myzfstest                                       ONLINE       0     0     0
      raidz-0                                       ONLINE       0     0     0
        gptid/4fc2b789-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/51d38480-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/54c672cc-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/56a07638-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
      raidz2-1                                      ONLINE       0     0     0
        gptid/630e1317-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/6557b52d-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/667a1318-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/68cadf75-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
    logs
      mirror-2                                      ONLINE       0     0     0
        gptid/8839f22e-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
        gptid/8a6d0b14-7b7f-11e4-9585-de9b81338d40  ONLINE       0     0     0
    cache
      gptid/8c2f3824-7b7f-11e4-9585-de9b81338d40    ONLINE       0     0     0
      gptid/8da9ba80-7b7f-11e4-9585-de9b81338d40    ONLINE       0     0     0
    spares
      gptid/72f039f2-7b8a-11e4-9585-de9b81338d40    AVAIL
      gptid/750df91d-7b8a-11e4-9585-de9b81338d40    AVAIL

errores: no se conocen errores de datos

Desafortunadamente, la GUI web no muestra estos números. Entonces, si recibe un error que dice que "gptid / 6557b52d-7b7f-11e4-9585-de9b81338d40" es malo ... ¿cómo sabe qué unidad extraer? Calcular esa parte requiere algo de trabajo preliminar al momento de la instalación.

  1. Cuando construyes tu sistema. Anote el número de serie de cada unidad y también la ubicación donde se insertó esa unidad. En un caso JBOD de doble cara, por ejemplo, es posible que desee anotar anverso / reverso, fila y columna.
  2. Cuando inicie FreeNAS, en la GUI web, vaya a "almacenamiento> volúmenes / ver discos". En esa pestaña debe tener una lista de todas sus unidades y sus números de serie. Anote el nombre de la unidad para cada número de serie que tenía en la lista anterior. Si no ve los números de serie, tendrá que ir al shell y escribir smartctl -a /dev/ada0 | grep ^Serial(reemplazando "/ dev / ada0" con cada uno de los nombres de unidad de la lista)
  3. Ahora, en el shell, necesitamos unir los nombres de las unidades con todos los números gptid. Entonces, escriba glabel statusy debería obtener algo como esto ...

    # glabel status
    
    CORRECT>glabel status (y|n|e|a)? yes    
                                          Name  Status  Components  
                                 ufs/FreeNASs3     N/A  ada0s3  
                                 ufs/FreeNASs4     N/A  ada0s4  
                                ufs/FreeNASs1a     N/A  ada0s1a
    gptid/616cddb6-7b7f-11e4-9585-de9b81338d40     N/A  ada0p2  
    gptid/630e1317-7b7f-11e4-9585-de9b81338d40     N/A  da1p1   
    gptid/6557b52d-7b7f-11e4-9585-de9b81338d40     N/A  da2p1   
    gptid/667a1318-7b7f-11e4-9585-de9b81338d40     N/A  da3p1   
    gptid/68cadf75-7b7f-11e4-9585-de9b81338d40     N/A  da4p1   
    
  4. Ahora escriba todos los números gptid para asociarlos con los nombres de las unidades y, por lo tanto, los números de serie y sus ubicaciones. Nota : cuando ve algo como "da3p1", esa es la partición de una de las unidades identificadas como da3. La lista en la GUI web solo mostrará la etiqueta "da3" para el disco.

Ahora, cuando aparece un error que dice que un disco con el número de gptid xyz tiene un error, podrá hacer referencia a su hoja y saber qué unidad necesita extraer / reemplazar.

Sé que esto es más tarde que tarde para el póster original; pero, quizás otros encuentren esto útil.


1
Para la pregunta original, el "estado de la etiqueta" es la parte crítica. Eso le permitirá descubrir el mapeo entre las ID extravagantes y lo físico.
Brian Knoblauch

Guau. Gran respuesta, pero es un poco decepcionante ZFS no tiene una forma medio decente de realizar un seguimiento de los discos.
mikato

5

Lo que necesita es la utilidad sas2ircu de LSI (ahora Avago). LSI mantiene versiones para FreeBSD, Linux y Windwos. Con FreeNAS necesitará la versión de FreeBSD.

Para probarlo, debe colocarlo en el directorio / tmp y hacer que sea ejecutable primero.

El primer paso es descubrir la ID de su HBA SAS (ejemplo):

/tmp# ./sas2ircu list
LSI Corporation SAS2 IR Configuration Utility.
Version 19.00.00.00 (2014.03.17)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved.


         Adapter      Vendor  Device                       SubSys  SubSys
 Index    Type          ID      ID    Pci Address          Ven ID  Dev ID
 -----  ------------  ------  ------  -----------------    ------  ------
   0     SAS2008     1000h    72h   00h:04h:00h:00h      1000h   3020h
SAS2IRCU: Utility Completed Successfully.

El segundo paso sería generar una lista de todos sus dispositivos que puede examinar más adelante:

/tmp# ./sas2ircu 0 display > disklist.txt

El paso 3 es examinar tu lista de discos. Se verá similar a:

/tmp# vi disklist.txt
LSI Corporation SAS2 IR Configuration Utility.
Version 19.00.00.00 (2014.03.17)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved.

Read configuration has been initiated for controller 0
------------------------------------------------------------------------
Controller information
------------------------------------------------------------------------
  Controller type                         : SAS2008
  BIOS version                            : 7.37.00.00
  Firmware version                        : 19.00.00.00
  Channel description                     : 1 Serial Attached SCSI
  Initiator ID                            : 0
  Maximum physical devices                : 255
  Concurrent commands supported           : 3432
  Slot                                    : 4
  Segment                                 : 0
  Bus                                     : 4
  Device                                  : 0
  Function                                : 0
  RAID Support                            : No
------------------------------------------------------------------------
IR Volume information
------------------------------------------------------------------------
------------------------------------------------------------------------
Physical device information
------------------------------------------------------------------------
Initiator at ID #0

Device is a Enclosure services device
  Enclosure #                             : 2
  Slot #                                  : 24
  SAS Address                             : 5003048-0-00d3-a87d
  State                                   : Standby (SBY)
  Manufacturer                            : LSI CORP
  Model Number                            : SAS2X36
  Firmware Revision                       : 0717
  Serial No                               : x36557230
  GUID                                    : N/A
  Drive Type                              : Undetermined

Device is a Enclosure services device
  Enclosure #                             : 3
  Slot #                                  : 0
  SAS Address                             : 5003048-0-00ca-7bfd
  State                                   : Standby (SBY)
  Manufacturer                            : LSI CORP
  Model Number                            : SAS2X28
  Firmware Revision                       : 0717
  Serial No                               : x36557230
  GUID                                    : N/A
  Drive Type                              : Undetermined

Device is a Hard disk
  Enclosure #                             : 4
  Slot #                                  : 0
  SAS Address                             : 5003048-0-00d3-a8cc
  State                                   : Ready (RDY)
  Size (in MB)/(in sectors)               : 1907729/3907029167
  Manufacturer                            : ATA
  Model Number                            : WDC WD20EARS-00M
  Firmware Revision                       : AB51
  Serial No                               : WDWCAZA1037887
  GUID                                    : N/A
  Drive Type                              : Undetermined

Device is a Hard disk
  Enclosure #                             : 4
  Slot #                                  : 1

El paso 4 es identificar su unidad defectuosa: sabrá cuál por la información faltante o dañada informada en la unidad. Obtenga el # de gabinete y el # de ranura y úselos para parpadear el LED de la bandeja en el paso 5: para ubicar el gabinete # 4, ranura # 0

 /tmp# ./sas2ircu 0 locate 4:1 ON

Para apagar el LED después de reemplazarlo:

/tmp# ./sas2ircu 0 locate 4:1 OFF

¡Espero que esto ayude!


algunos sistemas freeNAS pueden necesitar sas3ircu
Brian Minton

2

Mira los volúmenes.

Seleccione el volumen que está degradado.

En la parte inferior de la pantalla hay tres selecciones ... haga clic en Estado del volumen

Ahora verá un primer plano del volumen y sus discos duros individuales enumerados como ada3p2, ada5p2, ada6p2, ada4p2, etc.

Seleccione la unidad degradada.

En la parte inferior de la pantalla verá dos opciones; Editar disco y reemplazar

Seleccione Editar disco

Ahora debería ver el número de serie del disco degradado.

Apague su servidor FreeNAS y busque ese disco.


Esta debería ser la respuesta correcta. Cuando hice esto, encontré una lista completa de todas las series conectadas, por lo tanto, ¡la que no está conectada debe ser la defectuosa! Muchas gracias @ wri7913
Delta_zulu

1

Esto supone que tiene un caso que tiene luces HD individuales (también conocido como caso del servidor)

Encuentra el listado de la unidad que está mal. Ejemplo / dev / da9, /dev/sda...etc

Desconecte ese disco utilizando la GUI o los comandos del terminal FreeNAS.

Ejecute DD para leer ese disco en / dev / null mientras mira la parte frontal del servidor para ver la luz que ahora parpadea locamente.

sudo dd if=/dev/da# of=/dev/null

Anote la ubicación del disco, cancele el comando DD (ctrl-c) y luego continúe con su método de reemplazo. Para freeNAS, cargue el nuevo disco, haga clic en el botón Reemplazar GUI y finalice ese proceso. Cuando termine, retire el disco defectuoso y haga lo que quiera con él. Pruébelo más, bórrelo con seguridad, destrúyalo físicamente, envíelo a reparación de garantía ... etc.


0

La forma más fácil que encontré.

haga clic en almacenamiento haga clic en ver unidades.

retire un cable sata. imprima la etiqueta con la unidad que falta desde la vista del disco, también conocida como etiqueta adhesiva ada1, al costado de la unidad.

Vuelva a conectar la unidad. tire del segundo cable sata de la etiqueta de impresión ada2, etc.

entonces cuando una unidad falla sabes que es ada2

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.