linux – Centos 7服务器看不到磁盘阵列磁盘

前端之家收集整理的这篇文章主要介绍了linux – Centos 7服务器看不到磁盘阵列磁盘前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
上下文

我有一台新安装了CentOS 7的服务器,连接到带有光纤通道连接的磁盘阵列.

我想在我服务器的文件系统上安装磁盘阵列的磁盘,然后在其上设置一个NFS服务器,使该存储可供集群中的所有节点使用(服务器和磁盘阵列都是一个小集群的一部分我’管理).

服务器:Bull R423

磁盘阵列:DDN S2A6620(DirectData网络)

我只使用磁盘阵列的两个控制器之一.

这是命令lspci输出的摘录:

# lspci
85:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
85:00.1 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)

所以我认为我的服务器很好地检测到了FC HBA(光纤通道主机总线适配器),它似乎来自Emulex品牌.

磁盘阵列与Red Hat 5& 6服务器兼容,所以我不确定它是否真的可以与CentOS 7服务器一起使用,但我决定尝试一下.

我已经按照磁盘阵列的用户指南,我已经能够从服务器远程连接到它,并且我已经完成了所有必要的配置(创建一个包含2个磁盘的Raid 1存储池,从中创建一个虚拟磁盘该池用于将磁盘提供给服务器,使用LUN编号将虚拟磁盘提供给主机,…).但是,用户指南没有说明服务器端的任何内容.

磁盘阵列配置

有关我如何在磁盘阵列端执行配置的一些细节.

磁盘阵列OS是SFA OS v1.3.0.8.我发现的最接近的手册是this one(v1.4.0).基本上这是我遵循的步骤(对应于文档的第3.6.5节,以及后面):

>清理磁盘阵列

$application删除演示文稿*
$application delete host *
$delete virtual_disk *
$delete pool *

>创建存储池

$create pool raid_level = raid1 number = 2

number表示池的磁盘数.创建的池有id 7.

>基于该池创建虚拟磁盘

$create virtual_disk capacity = max pool = 7

虚拟磁盘基于我刚创建的池并使用其所有存储容量.

>创建与我的服务器对应的主机对象:

$application创建主机名= io1 ostype = linux

>将已发现的启动器导入与主机的关系中:

发现$app show *
|发起者标识符| |
指数|输入| ID |节点|港口| Ctrl 0 | Ctrl 1 |
00003 FC 0x000001 0x20000000c99de40f 0x10000000c99de40f 1
总FC发起人:1

只有一个已发现的启动器,ID为3.它对应于我服务器的一个光纤通道主机:

$cat / sys / class / fc_host / host10 / port_name
0x10000000c99de40f

它与磁盘阵列的控制器1相关联,这实际上是我正在使用的唯一控制器.

$application import discovered_initiator 3 host 3

>向主机提供虚拟磁盘

$application create presentation virtual_disk 7 host 3

(我创建的虚拟磁盘的ID是7)

虚拟磁盘和存储池似乎都处于Ready状态.

问题

既然我已经将磁盘提供给我的服务器,我想将该存储空间作为文件系统安装在我的服务器上.

我试过检查/ dev /目录.目前只安装了sda磁盘(我的服务器硬盘).我查询了/ dev /中的每个文件,发现了一些可能与光纤通道或Scsi有关的文件

> / dev / bsg /是一个专用于linux SCSI通用驱动程序的目录,包含/ dev / bsg / fc_host9和/ dev / bsg / fc_host10;
> / dev / lpfcmgmt专用于Emulex驱动程序;
> / dev / tgt,由SCSI目标使用.

我安装了sg3_utils,并在fc_host10上运行扫描:

$sg_scan /dev/bsg/fc_host10
/dev/bsg/fc_host10: scsi0 channel=0 id=0 lun=0 [em]

运行扫描命令后,我仍然找不到aditional / dev / sd *.

此外,/ sys / class / fc_host / host10 /是/sys/devices/pci0000:80/0000:80:07.0/0000:85:00.1/host10/fc_host/host10的链接,所以我想这给了我一些公共汽车的“ID”.

但这是目录/ dev / disk / by-path中的文件列表:

$ll /dev/disk/by-path
total 0
lrwxrwxrwx. 1 root root  9 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx. 1 root root 10 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0-part2 -> ../../sda2

ID不匹配,无论如何它们都是/ dev / sda *的符号链接,它们对应于我的服务器本地磁盘.

正如比利所说,我跑了

echo’ – – – ‘> / SYS /班/ scsi_host / host10 /扫描

但它没有输出任何东西,并且仍然没有出现任何新的/ dev / sd *.

问题

我假设成功后磁盘应该显示为/ dev / sd * /.真的吗?如果没有,那些磁盘应该出现在哪里?

最后,如何让这些磁盘出现在我的服务器角度?

编辑

按照billyw的建议,我运行echo 1> / SYS /班/ fc_host /主机X / issue_lip.这是logs.

显然FLOGI错误与此无关,因为我处于循环拓扑中,而不是结构拓扑.仍然没有出现在/ dev中的磁盘.

现在,在this thread之后,我重新启动了lpfc驱动程序:

$modprobe -r lpfc
$modprobe lpfc

这导致these logs在/ var / log / messages中.

这次,/ dev / sdb和/ dev / sdc出现了.但我无法装载它们:

$mount /dev/sdb /mnt/db
mount: /dev/sdb is write-protected,mounting read-only
mount: unknown filesystem type '(null)'

所以我试着调查重启lpfc时生成的日志.首先,我注意到循环拓扑消息中不支持Link Up Event npiv.我重新启动lpfc,这次禁用npiv(我觉得npiv在我的情况下没用):

$modprobe -r lpfc
$modprobe lpfc lpfc_enable_npiv=0

Logs是完全相同的,但npiv消息消失了.

我还在调查日志,我的TODO列表上的下一个错误是警告!收到指示此目标上的LUN分配已更改的指示. Linux SCSI层不会自动重新映射LUN分配.

解决方法

要使磁盘显示在/ dev / sd *下,解决方案是重新启动光纤通道HBA驱动程序,如 this answer中所述.在我的情况下,它是lpfc:

停止lpfc驱动程序:

$modprobe -r lpfc

启动lpfc驱动程序:

$modprobe lpfc

然后,我的设备出现在/ dev / sdb下.之后,正如GregL所说,我需要对设备进行分区,然后使用给定的文件系统对其进行格式化.

that thread之后:

>我使用parted mklabel命令在磁盘上创建了一个GPT分区表.

$parted / dev / sdb mklabel gpt

>然后我创建了一个主分区占用该设备上的所有空间(从0%到100%),并使用parted mkpart的命令进行最佳对齐:

$parted –align optimal / dev / sdb mkpart primary 0%100%

这给了我一个分区/ dev / sb1.

>之后,我用文件系统xfs格式化了分区(我已经将该文件系统用于我的其他分区):

$mkfs.xfs / dev / sdb1

>最后,我安装了分区:

mount / dev / sdb1 / mnt / disk_array /

现在一切正常:)

原文链接:https://www.f2er.com/linux/395917.html

猜你在找的Linux相关文章