如果我运行,smartctl -i /dev/sdb
我会得到正确的磁盘信息,包括序列号和驱动器型号。但这适用于标记为 JBOD 的磁盘。
为了n已组建 RAID 的驱动器(在我的情况下使用 LSI RAID 卡),将组装的卷呈现给 Linux,仅dev/sda
作为示例,然后我创建一个具有sda1
预期大小的分区...相当简单。
无需关闭服务器电源并卸下每个驱动器即可查看标签上的型号和序列信息,有没有办法查看 RAID 卡后面已组合成一个磁盘的每个单独磁盘虚拟光驱,并获取其中任何一个 RAID 磁盘的基本信息?
答案1
既然你提到了 LSI RAID 卡,我就假设它是 MegaRAID 设备;在这种情况下,您可以通过运行来获取有关每个底层驱动器的信息
smartctl -i -d megaraid,0 /dev/sda
适当替换/dev/sda
(它应该对应于系统中可见的 RAID 驱动器的设备节点),并且0
(递增它以查看每个驱动器)。
联机smartctl
帮助页列出了受支持的不同类型的控制器以及用于寻址它们的语法。
答案2
我想添加适用于我的特定控制器的内容。
SCSI 存储控制器:LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS (rev 01) 机器是 Dell Precision 690 工作站,控制器位于主板上。这是在 Ubuntu 18.04 64 位上
首先,我想提一下如果我的方法不适合您的话可能会起作用的一些事情。
- LSI 有一个名为 lsiutil 的实用程序;
- 你可以尝试 storcli - 有一些关于如何使用它的指南;
- 您可以尝试 Dell 的 perccli,但它以 rpm 软件包形式提供,您必须使用 Alien 命令(通过 apt install Alien 安装)并允许脚本;
- 你可以尝试 megaraid,有一些指南,但我的特定控制器不是 megaraid 控制器。我认为它是 perc5i(不确定);
- 您可以尝试 Dell 的 racadm 或 OpenManage 工具,但我自己从未使用过它们。
我的 root bash 历史记录:我不确定需要多少(# 是我的评论)
apt install mpt-status
man mpt-status #it has notes about a kernel module needed mptctl see also mptsas
mpt-status #you should see the array and individual drives, if not continue
modprobe mpt3sas #loads this module into the kernel
modprobe sg #loads sg driver
cat /proc/scsi/sg/device_strs #where X is equal to the row number of the table starting with 0
smartctl -a /dev/sgX #smartctl commands work now and /dev/sg0 for example takes the place of /dev/sda for the purposes of smartctl
lsmod 在尝试了各种解决方案后向我展示了我加载了这些额外的模块:megaraid、mptctl、mpt3sas、mptsas、mptbase
编辑:此网页建议 mptsas 是必要的模块:https://wiki.debian.org/LinuxRaidForAdmins#mpt2sas
一旦你开始工作,请确保将模块设置为在启动时加载。
答案3
如果您的控制器支持 storcli,请检查 的输出storcli /call/vall show all
,例如要获取有关 /dev/sdb 的一些信息,请键入以下内容:
storcli /call/vall show all|sed -n '/^\/c/h;/^-/,/^$/H;/Drive Name = \/dev\/sdb/{g;p}'
然后在命令中使用 DID(设备 ID)smartctl -i -d megaraid,<DID> /
在我的测试中,smartctl 忽略命令行上放置的任何路径(例如 /dev/sda、/dev/sdb 或简单地 /),它只关注 DID 编号。