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

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

我正在 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 控制器报告以打开“故障驱动器”指示灯吗?它只报告驱动器序列号吗?如果驱动器发生严重故障以至于无法报告其序列号怎么办?我认为在上线之前记下每个驱动器的序列号以及它进入哪个托架是个好主意。还有其他“预生产”任务可以让将来更容易更换驱动器吗?

答案1

zpool status -v应该告诉您哪个磁盘处于在线状态。

答案2

当前版本的 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

错误:没有已知数据错误

不幸的是,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   
    
  4. 现在写入所有 gptid 号码以将它们与驱动器名称关联起来,从而将序列号及其位置关联起来。 笔记:当您看到类似“da3p1”的内容时,这是被标识为 da3 的驱动器的分区一。Web GUI 中的列表将仅显示磁盘的标签“da3”。

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

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

答案3

你需要的是sas2ircuLSI(现为 Avago)的实用程序。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.

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

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

步骤 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

步骤 4 是识别故障驱动器 - 您将通过驱动器上报告的缺失或损坏信息知道哪个驱动器。获取机箱编号和插槽编号,并使用它们在步骤 5 中使托盘 LED 闪烁:找到机箱编号 4、插槽编号 0

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

更换后关闭 LED:

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

我希望这有帮助!

答案4

假设你有一个带有单独高清灯的机箱(又称服务器机箱)

找到损坏的驱动器列表。例如 /dev/da9、/dev/sda...等

使用 GUI 或 FreeNAS 终端命令使该磁盘脱机。

执行 DD 将该磁盘读至 /dev/null,同时查看服务器前面疯狂闪烁的灯。

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

记下磁盘的位置,取消 DD 命令(ctrl-c),然后开始更换方法。对于 freeNAS,加载新磁盘,然后单击 GUI 替换按钮并完成该过程。完成后,移除坏驱动器并对其进行任何操作。对其进行更多测试、安全擦除、物理销毁、将其送去保修维修......等等。

相关内容