如何确定 FreeNAS / ZFS 设置中哪个磁盘出现故障

Joh*_*n P 12 zfs freenas

我正在 Supermicro X6DHE-XB 3U 机箱中构建基于 FreeNAS 的服务器,该机箱具有 4G RAM、16 个 SATA 热插拔托架。它带有 2x8 端口的 3Ware RAID 卡,但我计划只使用 ZFS 功能而不是硬件 RAID。我的初始驱动器组将是 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642 驱动器。

如果我使用基于硬件的 RAID,它会在驱动器发生故障的驱动器托架上给我一个红灯。当驱动器出现故障时,它如何与 ZFS 一起工作?我觉得sda=bay1、sdb=bay2等没有任何保证,那么你如何确定需要更换哪个驱动器?ZFS 可以向 SATA 控制器报告以打开“故障驱动器”指示灯吗?它是否只报告驱动器序列号?如果驱动器故障如此严重以至于无法报告其序列号怎么办?我想最好在上线之前写下每个驱动器的序列号以及它进入哪个托架。是否还有其他“预生产”任务可以使将来更容易更换驱动器?

Cra*_*aig 8

当前版本的 FreeNAS(目前为 9.3 版)将为添加到 zpool 的每个驱动器创建一个 gptid。创建后立即,“zpool 状态”将如下所示(取决于您的池配置)...

# zpool 状态
池:myzfstest
状态:在线
扫描:无
请求配置:

    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
Run Code Online (Sandbox Code Playgroud)

错误:无已知数据错误

不幸的是,Web GUI 不会向您显示这些数字。因此,如果您收到一条错误消息,指出“gptid/6557b52d-7b7f-11e4-9585-de9b81338d40”不好……您怎么知道要拉哪个驱动器?在安装时找出该部分需要一些繁琐的工作。

  1. 当您构建系统时。记下每个驱动器的序列号,并记下该驱动器的插入位置。例如,在双面 JBOD 情况下,您可能需要注意前/后、行和列。
  2. 当您启动 FreeNAS 时,在 Web GUI 中,转到“存储>卷/查看磁盘”。在该选项卡上,您应该拥有所有驱动器及其序列号的列表。请注意为您在上一个列表中的每个序列号提供的驱动器名称。如果您没有看到序列号,您将不得不进入 shell 并键入smartctl -a /dev/ada0 | grep ^Serial(用列表中的每个驱动器名称替换“/dev/ada0”)
  3. 现在,在 shell 中,我们需要将驱动器名称与所有 gptid 编号进行匹配。所以,输入glabel status,你应该得到这样的东西......

    # 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   
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在写入所有 gptid 编号,将它们与驱动器名称相关联,从而将序列号及其位置关联起来。 注意:当您看到类似“da3p1”的内容时,它是标识为 da3 的驱动器的分区之一。Web GUI 中的列表将仅显示磁盘的标签“da3”。

现在,当出现错误,说 gptid 编号为xyz的磁盘有错误时,您将能够参考您的工作表并知道您需要拉/更换哪个驱动器。

我知道这对于原始海报来说已经太晚了;但是,也许其他人会发现这很有用。


Dim*_*oyn 6

您需要的是来自 LSI(现为 Avago)的sas2ircu实用程序。LSI 维护 FreeBSD、Linux 和 Windwos 的版本。使用 FreeNAS,您将需要 FreeBSD 版本。

要尝试它,您可以将它放在 /tmp 目录中并首先使其可执行。

第一步是发现您的 SAS HBA 的 ID(示例):

/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.
Run Code Online (Sandbox Code Playgroud)

第二步将生成您可以稍后检查的所有设备的列表:

/tmp# ./sas2ircu 0 display > disklist.txt
Run Code Online (Sandbox Code Playgroud)

第 3 步是检查您的磁盘列表。它看起来类似于:

/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
Run Code Online (Sandbox Code Playgroud)

第 4 步是识别出现故障的驱动器 - 您将通过驱动器上报告的丢失或损坏的信息知道哪个。获取 Enclosure # 和 The Slot # 并在步骤 5 中使用它们使托盘 LED 闪烁:找到 Enclosure # 4, Slot # 0

 /tmp# ./sas2ircu 0 locate 4:1 ON
Run Code Online (Sandbox Code Playgroud)

更换后关闭 LED:

/tmp# ./sas2ircu 0 locate 4:1 OFF
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!


Mar*_*cin 4

zpool status -v应该告诉你哪个磁盘在线或不在线。

  • +1 FreeNAS 基于 FreeBSD,驱动器将按照卡提供的顺序排列。如果有一个 8 端口 SAS 控制器,则驱动器将为 /dev/da0 到 /dev/da7,编号与卡相同(好的电缆也会在每个驱动器上贴上标签)。如果您有多个控制器或任何复杂的东西,您可以运行“camcontrol devlist”来获取所有 SAS/SCSI 驱动器以及它们所在的卡、目标、lun 的列表。 (3认同)
  • 克里斯 S 是不正确的。驱动器并不总是按照卡提供的顺序出现。例如,我们的“da7”出现在 8 个驱动器列表中的第二位...此外,zpool 状态仅提供标签,而不提供实际磁盘。 (2认同)