我有一堆(旧的)NetApp DS14MK2 磁盘阵列采用光纤通道连接。
我不会将它们用于任何重要的事情,但除了将它们扔掉之外,我是否可以将它们每个都用作 Linux(XFS)或 Solaris/OmniOS(ZFS)的单独 JBOD?
答案1
我的解决方案稍微复杂一些。我能够在 Ubuntu 16.10 机器上使用 HP Qlogic QLE2462 HBA 在我的 NetApp DS14MK4(14 x 450GB)上建立 JBOD,使用以下命令(某些设置会根据硬盘类型和大小而有所不同,因此请进行相应调整):
在系统启动时启用 Qlogic HBA BIOS(默认情况下禁用)
使用 lsscsi 或 sginfo 列出 Ubuntu 中的驱动器(可以使用 apt-get 安装)并列出所有标有“netapp”的“/dev/sd?”驱动器:
lsscsi --list OR sginfo -l
- 您必须使用 sg_format(最初设置为 520)将块数调整为 512 以便操作系统识别(-r 是“调整大小”命令,我们需要在此处使用“-6”作为感知模式(默认值为“10”)):
sudo sg_format -6 -r --count=-1 --verbose /dev/sd?
- 现在您需要实际格式化每个驱动器(我打开了 14 个终端窗口并在旧的 Pentium D 盒子上一次性完成所有操作,没有任何问题):
sudo sg_format -6 -F -s 512 --verbose /dev/sd?
- 使用 BlockDev 重新读取分区:
sudo blockdev --rereadpt /dev/sd?
- 您现在应该看到它们使用:
sudo cat /proc/partitions
使用 GParted(这次我使用了 GUI)创建必要的分区,以便稍后将它们分组为 LVD。首先创建一个分区表:设备 > 创建分区表 > 选择“GPT”。然后您将使用 GParted 将它们格式化为“lvd2 pv”类型。
现在使用 VGcreate 创建逻辑卷组(这里使用分区名称,而不是设备名称,即 sdb1 而不是 sdb):
sudo vgcreate VG_NAMEOFYOURCHOICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1 /dev/sdm1 /dev/sdn1 /dev/sdo1
- 现在您需要使用 LVcreate 来创建一个使用 raid5 的逻辑卷,其中包含您刚刚创建的卷组的所有 14 个驱动器(我选择了 64 的条带长度,这是 Raid5 的默认建议长度):
sudo lvcreate -L 5.72T -i14 -I64 -n VG_NAMEYOUCHOSEIN#7 LV_NAMEOFYOURCHOICE
- 确保您可以看到刚刚创建的逻辑卷:
sudo lvdisplay /dev/VG_NAMEYOUCHOSEIN#7/LV_NAMEOFYOURCHOICE
- 我们现在需要创建一个文件夹来挂载这个逻辑卷并设置所有权和权限:
sudo mkdir FOLDERNAME
sudo chown yourusername:yourusername /FOLDERNAME
sudo chmod -R 777 /FOLDERNAME
- 让我们在逻辑卷上创建一个文件系统(我使用 ext4,您可以使用 jfs 或其他):
sudo mkfs -t ext4 /dev/VG_NAMEYOUCHOSEIN#7/LV_NAMEOFYOURCHOICE#9
- 我们将这个文件系统挂载到我们的新文件夹中:
sudo mount -t ext4 /dev/VG_NAMEYOUCHOSEIN#7/LV_NAMEOFYOURCHOICE#9 /FOLDERNAME#10
- 如果您愿意,可以将其放入 etc/FSTAB 中,不过 #12 中的 -t 在重启时为我完成了此操作。如果重启后驱动器不可用,您可以重新运行 mount 命令。
欢迎您成为 NetApp 定制光纤通道 JBOD 的骄傲拥有者!
答案2
如果 Netapp 有某种自定义驱动器固件,则可能会阻止这种情况。这在存储控制器领域很常见。您可能能够使用驱动器 OEM 的库存固件覆盖此固件,但这可能仍然不起作用,这取决于磁盘和 HBA 之间的 FC 组件是否也以某种方式锁定。
答案3
这家伙已经做了。
使用以下方式获取设备名称
sginfo -l
每个驱动器需要从 520 字节格式化为 512 字节。
sg_format --format --size=512 --verbose=/dev/sgX