![在 Ubuntu 16.04 内核 4.8.0.53-generic 上安装可用的 iSCSI(但 SCST)](https://linux22.com/image/1148275/%E5%9C%A8%20Ubuntu%2016.04%20%E5%86%85%E6%A0%B8%204.8.0.53-generic%20%E4%B8%8A%E5%AE%89%E8%A3%85%E5%8F%AF%E7%94%A8%E7%9A%84%20iSCSI%EF%BC%88%E4%BD%86%20SCST%EF%BC%89.png)
标题说明了一切。“SCST 构建团队”发布了 BS、NON-WORKING repo 垃圾,请不要将其作为答案,除非你能用视频截图支持它,因为我现在已经看到足够多的其他人发布的帖子,这也是 BS。
我几乎可以让它工作了。从源代码构建 3.2.0,但即使使用正确的 make 命令,模块也从未正确加载,如果我手动加载,我会在手动加载模块后启动服务,但我已经进行了 9 个小时,所以现在我需要有人一步一步确认工作正常,以便简单地让企业 SCST iSCSI 服务运行 - 我迫切需要你的帮助,每个人都需要,因为我读过的很多方法都没有真正按照写的那样工作。
我的意思是,我的老旧内核 IX2 NAS 不知怎么地通过生命线应用程序实现了 SCST,它与赛扬处理器和 256MB 的 RAM 一起工作,所以我猜想一个 10 年后更新的 Ubuntu 运行在 8 核 i7 处理器上,32GB RAM 应该能够实现它?但是,由于它甚至不在常规存储库中,也许它不会在这种 Linux 版本上运行,或者?
编辑:
这是我的 DMESG,没有错误,所以我不知道为什么什么都看不到目标上呈现的任何东西:
[ 907.082942] scst: Target template iscsi unregistered successfully
[ 907.082946] iscsi-scst: Unregistered iSCSI transport: iSCSI-TCP
[ 985.353804] iscsi-scst: iSCSI SCST Target - version 3.2.x
[ 985.353807] iscsi-scst: Registered iSCSI transport: iSCSI-TCP
[ 985.355329] scst: Target template iscsi registered successfully
[ 985.355458] iscsi-scst: Read thread for pool ffff903e373cb400 started
[ 985.355493] iscsi-scst: Read thread for pool ffff903e373cb400 started
[ 985.355538] iscsi-scst: Write thread for pool ffff903e373cb400 started
[ 985.357499] iscsi-scst: Write thread for pool ffff903e373cb400 started
我的 /etc/scst.conf 通过 NAS 在 SCST 上运行,即使我更改为新创建的空白格式卷文件,也不会出现任何错误:
HANDLER vdisk_fileio{
DEVICE VMware {
filename /mnt/pools/A/A0/iSCSI/VMware
#filename /mnt/usb/iSCSI/iSCSI/VMware
t10_dev_id LENOVO-b3fbe43e
usn b3fbe43e
nv_cache 1
}
}
TARGET_DRIVER iscsi {
iSNSServer 192.168.1.6
enabled 1
TARGET iqn.2012-07.com.lenovoemc:storage.ix2b.VMware {
MaxRecvDataSegmentLength 8192
MaxXmitDataSegmentLength 8192
enabled 1
LUN 0 VMware
}
}
cat /proc/modules | grep scst
iscsi_scst 90112 3 - Live 0xffffffffc077d000 (OE)
scst_changer 16384 0 - Live 0xffffffffc0761000 (OE)
scst_cdrom 16384 0 - Live 0xffffffffc075c000 (OE)
scst_tape 16384 0 - Live 0xffffffffc0757000 (OE)
scst_raid 16384 0 - Live 0xffffffffc0752000 (OE)
scst_processor 16384 0 - Live 0xffffffffc074d000 (OE)
scst_modisk 16384 0 - Live 0xffffffffc06b3000 (OE)
scst_user 40960 0 - Live 0xffffffffc0742000 (OE)
scst_vdisk 94208 0 - Live 0xffffffffc072a000 (OE)
scst_disk 16384 0 - Live 0xffffffffc066b000 (OE)
scst 446464 10 iscsi_scst,scst_changer,scst_cdrom,scst_tape,scst_raid,scst_processor,scst_modisk,scst_user,scst_vdisk,scst_disk, Live 0xffffffffc06bc000 (OE)
dlm 163840 1 scst, Live 0xffffffffc068a000
libcrc32c 16384 3 iscsi_scst,scst_vdisk,raid456, Live 0xffffffffc0114000
答案1
哇哦,我要亲自回答这个问题了。这太让我震惊了。
因此我从 3.2.0 pre1 源重新进行了相同的构建(尽管有其他文档,但 3.1 拒绝在我的内核上编译,所以这是第一个障碍)。
现在来看看一切启动的根本原因,既没有抛出一个错误,也没有显示任何 iSCSI 卷——一旦我确定了原因,我会回到这里进一步更新,但整个静默故障都归咎于配置文件中的一个参数,而这个参数实际上是来自 NAS 的 iscsi 标准参数。
ubuntu 中的 scstadmin 重新生成的新的工作配置文件:
# Automatically generated by SCST Configurator v3.2.0-pre1.
HANDLER vdisk_fileio {
DEVICE VMware {
filename /mnt/pools/A/A0/iSCSI/VMware
read_only 1
}
}
TARGET_DRIVER copy_manager {
TARGET copy_manager_tgt {
LUN 0 VMware {
read_only 1
}
}
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.2012-07.com.lenovoemc:storage.ix2b.VMware {
enabled 1
rel_tgt_id 1
LUN 0 VMware {
read_only 1
}
}
}
请注意,除了赋予它只读权限外,理论上应该没有任何区别,因为它是使用以下精确命令重新生成的:
scstadmin -open_dev VMware -handler vdisk_fileio -attributes filename=/mnt/pools/A/A0/iSCSI/VMware,read_only t10_dev_id=LENOVO-b3fbe43e usn=b3fbe43e nv_cache=1
scstadmin -add_target iqn.2012-07.com.lenovoemc:storage.ix2b.VMware -driver iscsi
scstadmin -add_lun 0 -driver iscsi -target iqn.2012-07.com.lenovoemc:storage.ix2b.VMware -device VMware
scstadmin -enable_target iqn.2012-07.com.lenovoemc:storage.ix2b.VMware -driver iscsi
scstadmin -set_drv_attr iscsi -attributes enabled=1
scstadmin -write_config /etc/scst.conf
因此,如果有人知道为什么会发生这种情况,乍一看似乎是由于以下几点造成的:
t10_dev_id LENOVO-b3fbe43e
usn b3fbe43e
nv_cache 1
但是我知道 nv_cache 没问题,这使得前两个尽管是“属性”,但甚至没有传递到生成的配置文件中。
无论如何,iSCSI 卷刚刚安装完毕,因此当我了解更多信息时,我会在这里更新,也许这对其他人有所帮助。
答案2
该脚本自动构建一个包,并自动在 Ubuntu 16.04(以及 14.04、15.04 和 17.04)上构建 SCST SAN 和多路径配置。