Como determinar qual disco falhou em uma instalação do FreeNAS / ZFS

12

Estou construindo um servidor baseado no FreeNAS em um gabinete Supermicro X6DHE-XB 3U com 4G de RAM, 16 compartimentos hot swap SATA. Ele vem com placas RAID 2Ware de 3 x 8 portas, mas estou pensando em usar apenas os recursos ZFS em vez do RAID de hardware. Meu conjunto de unidades inicial será de 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642.

Se eu estivesse usando RAID baseado em hardware, isso me daria uma luz vermelha no compartimento da unidade onde a unidade falhou. Como funciona com o ZFS quando uma unidade falha? Eu não acho que haja garantia de que sda ​​= bay1, sdb = bay2, etc, então como você determina qual unidade precisa ser substituída? O ZFS pode relatar de volta ao controlador SATA para acender a luz "unidade com falha"? Apenas informa o número de série da unidade? E se a unidade falhar tanto que não consiga informar o número de série? Suponho que seja uma boa idéia anotar o número de série de cada unidade e em qual compartimento ele foi inserido antes de você entrar no ar. Existem outras tarefas de "pré-produção" para facilitar a substituição de unidades no futuro?

John P
fonte

Respostas:

4

zpool status -v deve informar qual disco está online ou não.

Marcin
fonte
3
+1 O FreeNAS é baseado no FreeBSD e as unidades estarão na ordem que o cartão fornece. Se houver um único controlador SAS de 8 portas, as unidades serão / dev / da0 a / dev / da7, com a mesma numeração que a placa (bons cabos também são rotulados por unidade). Se você tiver vários controladores, ou qualquer coisa complicada, poderá executar camcontrol devlistpara obter uma lista de todas as unidades SAS / SCSI e em qual placa, destino e destino eles estão.
Chris S
1
Chris S está incorreto. As unidades nem sempre aparecem na ordem em que o cartão fornece. Por exemplo, nosso "da7" aparece em segundo lugar na lista de 8 unidades ... Além disso, o status do zpool apenas fornece os rótulos e não os discos reais.
precisa
8

A versão atual do FreeNAS (versão 9.3 no momento) criará um gptid para cada unidade adicionada a um zpool. Imediatamente após a criação, o "status do zpool" será mais ou menos assim (dependendo da configuração do seu pool) ...

#
pool de status do zpool : myzfstest
state:
verificação ONLINE : nenhuma
configuração 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

errors: sem erros de dados conhecidos

Infelizmente, a GUI da web não mostra esses números. Portanto, se você receber um erro dizendo que "gptid / 6557b52d-7b7f-11e4-9585-de9b81338d40" está ruim ... como você sabe qual unidade puxar? Descobrir essa parte requer algum trabalho braçal no momento da instalação.

  1. Quando você constrói seu sistema. Anote o número de série de cada unidade e também anote o local onde a unidade foi inserida. Em um estojo JBOD de dupla face, por exemplo, convém anotar frente / trás, linha e coluna.
  2. Ao inicializar o FreeNAS, na GUI da web, vá para "armazenamento> volumes / exibir discos". Nessa guia, você deve ter uma lista de todas as suas unidades e seus números de série. Anote o nome da unidade fornecido para cada número de série que você tinha na lista anterior. Se você não vir os números de série, será necessário ir para o shell e digitar smartctl -a /dev/ada0 | grep ^Serial(substituindo "/ dev / ada0" por cada um dos nomes de unidades da lista)
  3. Agora, no shell, precisamos combinar os nomes das unidades com todos os números gptid. Então, digite glabel statuse você deve obter algo parecido com isto ...

    # 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. Agora escreva todos os números gptid para associá-los aos nomes das unidades e, portanto, aos números de série e seus locais. Nota : quando você vê algo como "da3p1" que particiona uma das unidades identificadas como da3. A lista na GUI da web mostrará apenas o rótulo "da3" para o disco.

Agora, quando surgir um erro dizendo que um disco com número gptid xyz está com erro, você poderá fazer referência à sua planilha e saber qual unidade precisará extrair / substituir.

Eu sei que isso é tarde demais para o pôster original; mas talvez outros achem isso útil.

Craig
fonte
1
Para a pergunta original, "status da etiqueta" é a parte crítica. Isso permitirá que você descubra o mapeamento entre os IDs malucos e o físico.
precisa
Uau. Ótima resposta, mas é um pouco decepcionante que o ZFS não tenha uma maneira meio decente de controlar os discos.
mikato 29/09
5

O que você precisa é do utilitário sas2ircu da LSI (agora Avago). O LSI mantém versões para FreeBSD, Linux e Windwos. Com o FreeNAS, você precisará da versão do FreeBSD.

Para experimentá-lo, você o colocaria no diretório / tmp e o executaria primeiro.

A primeira etapa é descobrir o ID do seu SAS HBA (exemplo):

/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.

A segunda etapa seria gerar uma lista de todos os seus dispositivos que você poderá examinar posteriormente:

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

A etapa 3 está examinando sua lista de discos. Será semelhante 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

A Etapa 4 é identificar sua unidade com falha - você saberá quais pelas informações ausentes ou danificadas relatadas na unidade. Obtenha o número do gabinete e o slot # e use-os para piscar o LED da bandeja na etapa 5: Para localizar o gabinete nº 4, slot nº 0

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

Para desligar o LED após a substituição:

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

Eu espero que isso ajude!

Dimitar Boyn
fonte
alguns sistemas FreeNAS pode precisar sas3ircu
Brian Minton
2

Veja os volumes.

Selecione o volume que está degradado.

Na parte inferior da tela, existem três seleções ... clique em Status do volume

Agora você verá um close do volume e seus discos rígidos individuais listados como ada3p2, ada5p2, ada6p2, ada4p2 etc.

Selecione a unidade degradada.

Na parte inferior da tela, você verá duas opções; Editar disco e substituir

Selecione Editar disco

Agora você deve ver o número de série do disco degradado.

Desligue o servidor FreeNAS e procure esse disco.

wri7913
fonte
Esta deve ser a resposta correta. Quando fiz isso, encontrei uma lista completa de todos os folhetins anexados; portanto, o não anexado deve ser o defeituoso! Obrigado, muito obrigado @ wri7913
Delta_zulu
1

Isso pressupõe que você tenha um gabinete com luzes HD individuais (também conhecido como gabinete do servidor)

Encontre a lista para a unidade que está ruim. Exemplo / dev / da9, /dev/sda...etc

Desconecte esse disco offline usando os comandos do terminal da GUI ou do FreeNAS.

Execute o DD para ler o disco em / dev / null enquanto você olha para a frente do servidor em busca da luz que agora está piscando loucamente.

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

Anote a localização do disco, cancele o comando DD (ctrl-c) e siga seu método de substituição. Para o freeNAS, carregue o novo disco e clique no botão Substituir GUI e termine esse processo. Quando terminar, remova a unidade defeituosa e faça o que quiser com ela. Teste mais, Apague com segurança, destrua fisicamente, envie para reparo em garantia ... etc.

Easyanswer
fonte
0

maneira mais fácil que eu encontrei.

clique em armazenamento, clique em visualizar unidades.

puxe um cabo SATA. imprima a etiqueta com a unidade ausente do disco de exibição, também conhecido como etiqueta ada1, na lateral da unidade.

reconecte a unidade. retire o segundo cabo sata da etiqueta de impressão ada2 etc

então, quando uma unidade falha, você conhece seu ada2

Michael Harker
fonte