我正在 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”有问题……您怎么知道要拔哪个驱动器?在安装时,弄清楚这一点需要做一些准备工作。
- 当您构建系统时。记下每个驱动器的序列号,并记下该驱动器的插入位置。例如,在双面 JBOD 盒上,您可能需要记下正面/背面、行和列。
- 启动 FreeNAS 时,在 Web GUI 中,转到“存储 > 卷 / 查看磁盘”。在该选项卡上,您应该有一个包含所有驱动器及其序列号的列表。记下上一个列表中每个序列号的驱动器名称。如果您没有看到序列号,则必须转到 shell 并键入
smartctl -a /dev/ada0 | grep ^Serial
(将“/dev/ada0”替换为列表中的每个驱动器名称) 现在,在 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
现在写入所有 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 替换按钮并完成该过程。完成后,移除坏驱动器并对其进行任何操作。对其进行更多测试、安全擦除、物理销毁、将其送去保修维修......等等。