SCST 是 iscsi 的一种实现方式,它既可以使用 iscsi 协议共享本地磁盘,同时也支持 FC 协议。
FC 协议需要硬件 FC HBA 卡的支持。 SCST 和 FC 的环境搭建如下看这里 。
环境配置
接下来 SCST 和 FC 的使用。
首先需要有 scst 的环境:
保证 linux 内核中加载了 qla。使用 scstadm 查看所支持的驱动:
如果使用 FC 去共享磁盘,scst 需要创建和 FC 设备对应的 target。FC 设备和 target 属于一对一关系,而且创建 target 的名称要和 FC 设备的 ID 相同。
查看 FC 设备的 ID 可以用以下的方式:
1.查看内核中 qla2x00t (/sys/kernel/scst_tgt/targets/qla2x00t
) 目录下的内容
2.直接查看 FC 设备的 port_id (/sys/class/fc_host/hostx/port_name
),
配置 FC
SCST 服务端配置
创建 target, FC 设备和 target 一对一。
scstadmin -add_target 50:01:10:a0:00:16:bf:30 -driver qla2x00t
创建 device 对应本地的块文件
scstadmin -open_dev fc1 -handler vdisk_fileio -attributes filename=/dev/sdc
创建 group,scst 中的 group 用于限定共享的对象。
scstadmin -add_group group1 -target 50:01:10:a0:00:16:bf:30 -driver qla2x00t
创建 lun,因为 scst target 和 FC 设置是一对一关系,所以当需要在同一个 FC 下共享多个磁盘给不同的客户端时就需要在同一个 target 下创建多个 lun。
scstadmin -add_lun 0 -target 50:01:10:a0:00:16:bf:30 -driver qla2x00t -group group1 -device fc1
指定共享的客户端,这里需要知道客户端 FC 设备对应的 ID。
查看 /sys/class/fc_host/hostx/port_name
scstadmin -add_init 50:01:10:a0:00:16:bf:34 --target 50:01:10:a0:00:16:bf:30 -driver qla2x00t -group group1 -device fc1
启动 target
scstadmin -enable_target 50:01:10:a0:00:16:bf:30 --driver qla2x00t
最后将改动写入配置文件
scstadmin -write_config /etc/scst.conf
(如果对应的客户端已经属于某个已存在的 group,则复用这个 group,并选择不存在的 lun id)
客户端配置
扫描 scst 主机
echo "- - -" > /sys/class/scst_host/host3/scan
其中 "- - -"
这三个值代表通道,SCSI目标ID和LUN。破折号充当通配符,表示“重新扫描所有内容”。host3
和 /sys/class/fc_host/host3
相对应。执行命令后客户端增加了一块磁盘。