fc设备识别使用

1. 存储映射

2. 本地扫描

rescan-scsi-bus.sh

 

如果失败执行以下命令

可尝试

echo 1> /sys/class/fc_host/host8/issue_lip
echo 1> /sys/class/fc_host/host2/issue_lip
rescan-scsi-bus.sh

 删除记录

复制代码
[root@santiagod ~]# lsscsi
[0:0:8:0]    enclosu LSI      SAS2X28          0e12  -        
[0:2:0:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sda 
[0:2:1:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sdb 
[1:0:0:0]    disk    IFT      GS 3000 Series   162G  /dev/sdd 
[1:0:0:1]    enclosu IFT      GS 3000 Series   162G  -        
[8:0:0:0]    disk    IFT      GS 3000 Series   162G  /dev/sdc 
[8:0:0:1]    enclosu IFT      GS 3000 Series   162G  -        
[root@santiagod ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                  8:0    0 223.1G  0 disk  
├─sda1               8:1    0     1G  0 part  /boot
├─sda2               8:2    0   600M  0 part  /boot/efi
└─sda3               8:3    0 221.5G  0 part  
  ├─santiagod-root 253:0    0 209.7G  0 lvm   /
  └─santiagod-swap 253:1    0  11.8G  0 lvm   [SWAP]
sdb                  8:16   0   7.3T  0 disk  
sdc                  8:32   0   200G  0 disk  
└─mpathd           253:2    0   200G  0 mpath 
sdd                  8:48   0   200G  0 disk  
└─mpathd           253:2    0   200G  0 mpath 
[root@santiagod ~]# echo "- - -" > /sys/class/scsi_host/host1/scan 
[root@santiagod ~]# echo "- - -" > /sys/class/scsi_host/host8/scan 
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/8\:0\:0\:0/device/delete 
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/8\:0\:0\:1/device/delete 
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/1\:0\:0\:1/device/delete 
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/delete 
[root@santiagod ~]# echo 1 > /sys/class/fc_host/host8/issue_lip 
[root@santiagod ~]# echo 1 > /sys/class/fc_host/host1/issue_lip 
[root@santiagod ~]# echo 1 > /sys/block/sdd/device/delete 
[root@santiagod ~]# echo 1 > /sys/block/sdc/device/delete 
[root@santiagod ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 223.1G  0 disk 
├─sda1               8:1    0     1G  0 part /boot
├─sda2               8:2    0   600M  0 part /boot/efi
└─sda3               8:3    0 221.5G  0 part 
  ├─santiagod-root 253:0    0 209.7G  0 lvm  /
  └─santiagod-swap 253:1    0  11.8G  0 lvm  [SWAP]
sdb                  8:16   0   7.3T  0 disk 
[root@santiagod ~]# lsscsi
[0:0:8:0]    enclosu LSI      SAS2X28          0e12  -        
[0:2:0:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sda 
[0:2:1:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sdb 
[1:0:0:1]    enclosu IFT      GS 3000 Series   162G  -        
[8:0:0:1]    enclosu IFT      GS 3000 Series   162G  -        
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/1\:0\:0\:1/device/delete 
[root@santiagod ~]# echo 1 > /sys/class/scsi_device/8\:0\:0\:1/device/delete 
[root@santiagod ~]# lsscsi
[0:0:8:0]    enclosu LSI      SAS2X28          0e12  -        
[0:2:0:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sda 
[0:2:1:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sdb 
[root@santiagod ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 223.1G  0 disk 
├─sda1               8:1    0     1G  0 part /boot
├─sda2               8:2    0   600M  0 part /boot/efi
└─sda3               8:3    0 221.5G  0 part 
  ├─santiagod-root 253:0    0 209.7G  0 lvm  /
  └─santiagod-swap 253:1    0  11.8G  0 lvm  [SWAP]
sdb                  8:16   0   7.3T  0 disk 
[root@santiagod ~]# rescan-scsi-bus.sh 
Scanning SCSI subsystem for new devices
Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
 Scanning for device 0 0 8 0 ... 
OLD: Host: scsi0 Channel: 00 Id: 08 Lun: 00
      Vendor: LSI      Model: SAS2X28          Rev: 0e12
      Type:   Enclosure                        ANSI SCSI revision: 05
 Scanning for device 0 2 0 0 ... 
OLD: Host: scsi0 Channel: 02 Id: 00 Lun: 00
      Vendor: LSI      Model: MR9280-4i4e      Rev: 2.13
      Type:   Direct-Access                    ANSI SCSI revision: 05
 Scanning for device 0 2 1 0 ... 
OLD: Host: scsi0 Channel: 02 Id: 01 Lun: 00
      Vendor: LSI      Model: MR9280-4i4e      Rev: 2.13
      Type:   Direct-Access                    ANSI SCSI revision: 05
Scanning host 1 for  all SCSI target IDs, all LUNs
Scanning host 2 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 3 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 4 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 5 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 6 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 7 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning host 8 for  all SCSI target IDs, all LUNs
0 new or changed device(s) found.          
0 remapped or resized device(s) found.
0 device(s) removed.                 
[root@santiagod ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 223.1G  0 disk 
├─sda1               8:1    0     1G  0 part /boot
├─sda2               8:2    0   600M  0 part /boot/efi
└─sda3               8:3    0 221.5G  0 part 
  ├─santiagod-root 253:0    0 209.7G  0 lvm  /
  └─santiagod-swap 253:1    0  11.8G  0 lvm  [SWAP]
sdb                  8:16   0   7.3T  0 disk 
[root@santiagod ~]# lsscsi
[0:0:8:0]    enclosu LSI      SAS2X28          0e12  -        
[0:2:0:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sda 
[0:2:1:0]    disk    LSI      MR9280-4i4e      2.13  /dev/sdb 
[root@santiagod ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 223.1G  0 disk 
├─sda1               8:1    0     1G  0 part /boot
├─sda2               8:2    0   600M  0 part /boot/efi
└─sda3               8:3    0 221.5G  0 part 
  ├─santiagod-root 253:0    0 209.7G  0 lvm  /
  └─santiagod-swap 253:1    0  11.8G  0 lvm  [SWAP]
sdb                  8:16   0   7.3T  0 disk 
[root@santiagod ~]# 
复制代码

 

3. multipath下载启用

yum install device-mapper-multipath
/sbin/mpathconf --enable
systemctl start multipathd

验证

multipath -ll

 

 

 

存储路径

复制代码
SCSI磁盘路径在Linux上有3中表现方式:一、/dev/sd目录;二、通过major:minor号;三、/dev/disk/by-path,该目录是 /dev/sd设备的软连接。Fibre Channel磁盘路径示范如下:

 
上面这三种SCSI磁盘路径都不是永久不变,当服务器新增或者删除新的PCI设备时候,路径就会发生变化,有时候即使是服务器重启也可能导致路径变成发生变化。

为了保证应用程序使用的磁盘路径能够永久不变,有以下几种方法:

WWID
根据SCSI标准,每个SCSI磁盘都有一个WWID。类似于网卡的MAC地址,要求是独一无二。通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。实例:
ll -d scsi-3600508b400105e210000900000490000
scsi-3600508b400105e210000900000490000 -> ../../sda

 

提示:Linux自带的device-mapper-multipath工具就是通过WWID来探测SCSI磁盘路径,可以将同一设备多条路径合并,并在/dev/mapper/下面创建新的设备路径。通过multipath –l可以看到WWID与  磁盘路径、Host:Channel:Target:Lun与/dev/sd以及major:minor对应关系。

 
UUID
UUID是有文件系统在创建时候生成的,用来标记文件系统,类似WWID一样也是独一无二的。因此使用UUID来标示SCSI磁盘,也能保证路径是永久不变的。Linux上/dev/disk/by-uuid可以看到每个已经创建文件系统的磁盘设备以及与/dev/sd之间的映射关键。

注意:Linux自带的md和LVM工具也会在SCSI磁盘上面写入UUID信息。

UDEV
UDEV是Linux提供的一种让用户对设备进行自定义命名的机制。可以通过UDEV将WWID/UUID信息跟磁盘路径映射起来,这样也可以保证设备路径永久不变。
复制代码

存储删除

复制代码
磁盘删除操作步骤如下:

关闭使用磁盘的进程,备份磁盘数据。可以通过fuser命令查看正在访问某个磁盘的进程。
umount卸载基于待删除磁盘的文件系统
md和LVM中删除磁盘。LVM可以使用vgreduce从卷组移除改磁盘,然后使用pvremove从磁盘删除LVM元数据。
如果磁盘使用多路径软件,通过mulitpath –l查看磁盘所有路径,然后通过multipath –f删除磁盘。(如果使用powerpath多路径软件,请参考powerpath操作手册)
blockdev –flushfs 将脏数据写入磁盘。这一步骤对于裸设备事情情况尤为重要,因为裸设备无法通过umount或者vgreduce将脏数据写入磁盘。
删除应用程序或者脚本中的磁盘路径引用。
使用命令echo 1 > /sys/block/device-name/device/delete删除磁盘,device-name以sd开头,比如sda、sdb;或者使用命令echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete删除磁盘,h代表HBA卡号,c代表HBA卡channel,t代表SCSI target ID,i代表LUN ID。h:c:t:l这些信息可以通过lsscsi,scsi_id,multipath –l,ls –l  /dev/disk/by-*方式查看。
直接删除磁盘文件。
 

磁盘路径删除


当系统使用多路径软件时候,可以在线删除一条路径而不影响业务使用。操作步骤如下:

在应用程序或脚本中删除磁盘路径应用。
使用命令echo offline > /sys/block/sda/device/state将磁盘路径offline。多路径软件将会使用剩余路径处理IO。
使用命令echo 1 > /sys/block/device-name/delete命令从SCSI子系统删除磁盘路径,device-name通常以sd开头,比如sda、sdb。
复制代码

添加存储

复制代码
添加新磁盘或者磁盘路径

添加新磁盘或者磁盘路径,系统可能会自动分配老磁盘使用的名称给新磁盘,比如/dev/sd,major:minoe和/dev/disk/by-path。因此在添加之前,请确认应用程序和脚本已经删除老磁盘的引用。

添加新磁盘或者磁盘路径步骤如下:

完成交换机和存储配置,记录号存储端口的WWPN。
使用下面命令在系统上重新扫描磁盘设备。
echo "c t l" > /sys/class/scsi_host/hosth/scan

h代表HBA号,c代表HBA卡channel,t代表SCSI target ID,l代表LUN ID。

也可以使用 命令echo “scsi add-single-device 0 0 0 0” > /proc/scsi/scsi完成扫描。

某些HBA卡在存储分配完成后,需要通过issue_lip才能发现新增加设备,具体参考“存储链路扫描”。(如果需要issue_lip,建议停止IO操作)
新分配LUN在操作系统没有显示,可以通过sg_luns命令(来自sg3_utils包)重新获取阵列LUN列表。
c:t:l信息可以使用命令grep “存储SP端口WWPN” /sys/class/fc_transport/*/[node_name|port_name]获取;也可以通过lsscsi、scsi_id、multipath –l或者ls –l /dev/disk/by-*方法获取。
使用多路径软件multipath(或者其他多路径软件)确认磁盘路径添加正常。
存储链路扫描

 

Linux操作系统提供多种存储链路重置操作。存储链路重置通常用于多路径设备添加或者删除,这是一种破坏性操作,将导致IO操作超时。请谨慎使用这类型操作,另外操作时请注意以下事项:

操作前请确认链路没有新的IO,脏数据已经写回存储。
在系统内存资源使用紧张情况下,不建议进行链路删除操作。系统内存使用情况可以通过vmstat 1 100命令评估。
以下命令可用于存储链路重新扫描:

echo "1" > /sys/class/fc_host/host/issue_lip
issue_lip重置HBA链路,重新扫描整个链路并配置SCSI target。该操作是一种异步操作类型,具体完成时间需要参考/vag/log/message日志。Linux操作系统自带的lpfc和qla2xxx 驱动支持issue_lip命令。

echo "- - -" > /sys/class/scsi_host/hostH/scan
rmmod 驱动/ modprobe 驱动 删除/重新加载HBA卡驱动。
复制代码

 

参考链接:https://www.cnblogs.com/pipci/p/11418839.html

posted @   咿呀哒喏  阅读(416)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示