前言:SCST是一个老版本的linux target实现了,现在基本已经被LIO取代
HOWTO For iSCSI-SCST
 
这是一个非常快速的HOWTO,旨在提供有关如何设置和配置iSCSI-SCST的快速参考。有关更深入的信息,请参阅SCST和iSCSI-SCST README文件。
 
 
使用scstadmin安装和使用iSCSI-SCST
==============================================
 
1.下载,构建和安装iSCSI-SCST。
 
首先下载iSCSI-SCST源代码。您可以从以下URL下载已发布的版本:
 
http://scst.sourceforge.net/downloads.html
 
或者您可以通过在shell中运行以下命令来下载最新的开发版本:
 
  svn co https://scst.svn.sourceforge.net/svnroot/scst/trunk scst
 
虽然SCST和iSCSI-SCST与未修补的Linux内核一样可以与其他开源iSCSI目标具有相同或更快的速度,但如果您想获得更好的性能,则需要修补和重建内核。根据内核版本选择补丁(下例中为2.6.38.x):
 
  cd /usr/src/kernels/linux-2.6.38.8
  patch -p1 <$ HOME / scst / iscsi-scst / kernel / patches / put_page_callback-2.6.38.patch
  make clean
 
如果你的内核找不到put_page_callback,那么就不需要修补了,所以你可以跳过这个和下一个(内核重建和重启)步骤。
 
接下来,构建并安装内核:
 
  make && make modules
  make modules_install && make install
 
对于某些Linux发行版(例如Ubuntu),上述步骤不会重建初始RAM磁盘。确保在重新引导之前重新生成RAM磁盘。请查看随发行版提供的update-initrd,update-initramfs或mkinitrd命令的文档。
 
现在重新启动系统,以便加载新构建的内核。
 
一旦系统再次启动并运行,下一步就是构建并安装SCST,iSCSI-SCST和scstadmin。对于大多数发行版(包括RHEL 6),您可以通过从SCST目录运行以下命令来执行此操作:
 
  make 2release
  make scst scst_install iscsi iscsi_install scstadm scstadm_install
 
使用RHEL 5或CentOS 5时,请改用以下命令:
 
  make 2release
  make enable_proc
  make scst scst_install iscsi iscsi_install scstadm scstadm_install
 
iSCSI-SCST包括以下组件:
   *内核模块:iscsi-scst.ko scst.ko scst_vdisk.ko
   * iscsi-scstd - 守护进程
   *手册
   *删除位于 iscsi-scst/etc/obsolete下的配置文件,如果你想使用它们需要复制到/etc。在iSCSI-SCST 2.0中,建议使用scstadmin和SCST sysfs接口:
      * initiators.allow - 用于为目标分配特定的启动器
      * initiators.deny - 用于为目标分配特定的启动器
      * iscsi-scstd.conf - 目标及其属性列表
 
2.设置/etc/scst.conf
 
scst.conf配置文件由系统引导时由shell脚本/etc/init.d/scst通过scstadmin加载。target,device 和LUN配置在此文件中定义。
 
通常,SCST及其组件(包括iSCSI-SCST)是内核模块,因此它们使用内核接口来配置sysfs。但是,直接使用sysfs接口很麻烦。 Scstadmin实用程序允许使用常规纯文本界面。您可以使用“scstadmin -config”将配置文件加载到SCST sysfs中,并使用“scstadmin -write_config”将当前运行的配置保存到scst.conf中。
如果要直接使用SCST sysfs接口,请参见下面的第二部分。
 
这是示例配置文件。将其复制到/etc/scst.conf中
 
HANDLER vdisk_fileio {
    DEVICE disk01 {
        filename / dev / ram0
        nv_cache 1
    }
DEVICE disk02 {
        filename / dev / ram1
        nv_cache 1
    }
}
 
TARGET_DRIVER iscsi {
    enabled 1
 
    TARGET iqn.2006-10.net.vlnb:tgt {
        LUN 0 disk01
        LUN 1 disk02
 
        enabled 1
    }
}
 
请注意,对于每个启动器,LUN 0必须存在,因此您无法在没有LUN 0的情况下创建目标和启动程序组。这是SCSI协议所必需的,并且还记录在SCST的README文件中。
 
然后启动scst和iscsi-scst服务运行以下命令:
 
  /etc/init.d/scst start
 
您现在应该拥有可用的iSCSI-SCST。如果以后需要更改scst.conf并重新加载它,可以直接运行scstadmin:
 
  scstadmin -config /etc/scst.conf
 
或重新启动SCST:
 
  /etc/init.d/scst restart
 
如果需要在重新引导时自动配置SCST,请执行以下步骤。
 
3.在/etc/init.d中创建软链接
 
这将使SCST在系统引导时自动启动。使用chkconfig或update-rc.d,具体取决于您使用的Linux发行版。对于Debian系统(如Ubuntu)的示例:
 
  update-rc.d scst默认值
 
在openSUSE上,您可以通过以下命令让SCST自动启动:
 
  insserv scst
 
4.重新启动SCST和iSCSI-SCST
 
如果您现在不想重新启动,可以通过以下命令使上述设置生效:
 
  /etc/init.d/scst restart
 
 
 
不使用scstadmin via / sys接口安装和使用iSCSI-SCST
================================================== ========================
 
Scstadmin 应该足够您做基础的操作。仅当您需要为scstadmin执行过于高级的操作时才使用这些步骤。例如,保持配置是数据库而不是普通文件。
 
在iSCSI-SCST系统中,三个组件进行交互以将设备和文件系统导出到远程主机上的iSCSI启动器:Target,LUN和设备。 Target表示主机,并充当LUN的容器。 LUN(逻辑单元号)表示设备的地址,并为启动器提供访问控制,以及充当设备的容器。设备表示您希望提供给启动器的实际块设备或文件系统。您必须先创建目标,然后创建LUN,然后将LUN分配给目标,然后定义设备并将其分配给LUN。最后,您必须启用目标和SCST系统。完成步骤(如下)后,您应该能够从授权的远程启动器中查找和访问导出的设备。
 
首先在第一部分重复步骤1,但在步骤1中从make命令中省略“scstadm scstadm_install”。
 
接下来加载所需的内核模块,如下所示:
 
modprobe scst_disk
modprobe scst_vdisk
modprobe iscsi-scst
 
模块scst_disk允许以直通模式导出本地SCSI(SAS等)设备,scst_vdisk允许基于文件和块设备创建虚拟LUN,模块iscsi-scst是主要的iSCSI-SCST模块。
 
然后运行iSCSI-SCST用户空间服务:iSCSI的scstd
 
 
创建目标
----------------
 
echo“add_target iqn.2007-05.com.example:storage.iscsi-scst-1”> / sys / kernel / scst_tgt / targets / iscsi / mgmt
 
这将添加目标iqn.2007-05.com.example:storage.iscsi-scst-1。
 
 
改变目标的参数
----------------------------
 
echo“8192”> /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/MaxRecvDataSegmentLength
 
这会将目标iqn.2007-05.com.example:storage.iscsi-scst-1的MaxRecvDataSegmentLength参数更改为8192。
 
您可以通过以下方式阅读:
 
#cat /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/MaxRecvDataSegmentLength
8192
[key]
 
标记“[key]”显示高级管理工具,如scstadmin,该属性没有默认值。你可以忽略它。
 
 
添加虚拟磁盘设备
-----------------
 
dd if = / dev / zero of = / disk1 bs = 1M count = 1024
 
这将为我们未来的虚拟设备disk1创建后端文件/ disk1。
 
echo“add_device disk1 filename = / disk1; nv_cache = 1”> / sys / kernel / scst_tgt / handlers / vdisk_fileio / mgmt
 
这将添加新的FILEIO设备disk1,其中启用了后端文件/ disk1和NV_CACHE选项。
 
对于块设备,通常使用BLOCKIO处理程序更有效:
 
echo“add_device dev1 filename = / dev / dev1”> / sys / kernel / scst_tgt / handlers / vdisk_blockio / mgmt
 
 
列出当前注册的SCST设备
-----------------------------------------
 
您可以看到可用设备列表:
# ls -1 /sys/kernel/scst_tgt/devices
0:0:0:0
1:0:0:0
3:0:0:0
3:0:0:1
3:0:0:2
3:0:0:3
3:0:0:4
3:0:0:5
3:0:0:6
3:0:0:7
2:0:0:0
4:0:0:0
4:0:0:5
4:0:0:6
4:0:0:7
4:0:0:8
4:0:0:9
4:0:1:0
4:0:1:1
4:0:1:2
4:0:1:3
4:0:1:4
5:0:0:0
5:0:0:5
5:0:0:6
5:0:0:7
5:0:0:8
5:0:0:9
5:0:1:0
5:0:1:1
5:0:1:2
5:0:1:3
5:0:1:4
disk1
 
定义LUN掩码
--------------------
 
LUN掩码定义了哪个启动器可以看到哪些LUN。
 
要将特定LUN与目标iqn.2007-05.com.example:storage.iscsi-scst-1关联,请执行以下操作:
 
echo“add 4:0:0:8 0”> /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/luns/mgmt
 
这将为pass-through设备4:0:0:8分配LUN 0到目标iqn.2007-05.com.example:storage.iscsi-scst-1。
 
请注意,每个组必须具有LUN 0。这是SCSI要求(在SCST的自述文件中有记录)。
 
echo“add disk1 1 read_only = 1”> /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/luns/mgmt
 
这会将虚拟设备disk1的只读LUN 1分配给目标iqn.2007-05.com.example:storage.iscsi-scst-1。
 
 
从组中删除LUN
---------------------------
 
运行以下命令:
 
echo“del X”> /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/luns/mgmt
 
这将从目标iqn.2007-05.com.example:storage.iscsi-scst-1中删除LUN X.
 
有关LUN屏蔽的更多信息,请参阅SCST README,“访问和设备可见性管理(LUN屏蔽)”部分。
 
 
启用目标
----------------
 
创建并配置目标后,应启用它:
 
echo 1> /sys/kernel/scst_tgt/targets/iscsi/iqn.2007-05.com.example\:storage.iscsi-scst-1/enabled
 
然后启用iSCSI-SCST驱动程序:
 
echo 1> / sys / kernel / scst_tgt / targets / iscsi / enabled
 
 
将目标分配给特定的启动器
----------------------------------------
 
为了将目标分配给特定的启动器,您应该使用上面定义的LUN掩码。如果将启动器分配给目标的空安全组,则启动器将不会在SendTargets发现中看到此目标,并且将无法连接到该目标。
 
此外,您可以使用allowed_portal sysfs属性仅通过选定的门户网站使目标可见。阅读iSCSI-SCST的README文件,了解有关此工具的更多详细信息。
 
 
不使用scstadmin via / proc接口安装和使用iSCSI-SCST
================================================== =========================
 
首先重复上一节中的步骤1和2,但在步骤1中从make命令中省略“scstadm scstadm_install”。
 
接下来设置/etc/iscsi-scstd.conf
 
你可以这样做,例如运行以下shell命令:
 
  echo“Target $(sed -n's / InitiatorName = // p'/etc/iscsi/initiatorname.iscsi):storage”> /etc/iscsi-scstd.conf
  cat /etc/iscsi-scstd.conf
 
接下来加载scst_disk内核模块,如下所示:
 
  modprobe scst_disk
 
shell脚本/etc/init.d/iscsi-scst现在可用于启动/停止/重新启动或检查iSCSI-SCST的状态。
 
 
选择SCST使用的设备
------------------------------------
 
您可以看到可用设备列表:
# cat /proc/scsi_tgt/scsi_tgt
Device (host:ch:id:lun or name) Device handler
0:0:0:0 dev_disk
1:0:0:0 dev_disk
3:0:0:0 dev_disk
3:0:0:1 dev_disk
3:0:0:2 dev_disk
3:0:0:3 dev_disk
3:0:0:4 dev_disk
3:0:0:5 dev_disk
3:0:0:6 dev_disk
3:0:0:7 dev_disk
2:0:0:0 none
4:0:0:0 none
4:0:0:5 dev_disk
4:0:0:6 dev_disk
4:0:0:7 dev_disk
4:0:0:8 dev_disk
4:0:0:9 dev_disk
4:0:1:0 dev_disk
4:0:1:1 dev_disk
4:0:1:2 dev_disk
4:0:1:3 dev_disk
4:0:1:4 dev_disk
5:0:0:0 none
5:0:0:5 dev_disk
5:0:0:6 dev_disk
5:0:0:7 dev_disk
5:0:0:8 dev_disk
5:0:0:9 dev_disk
5:0:1:0 dev_disk
5:0:1:1 dev_disk
5:0:1:2 dev_disk
5:0:1:3 dev_disk
5:0:1:4 dev_disk
 
LUN屏蔽
-----------
 
SCST定义安全组。对于每个组,您可以添加LUN。
 
如果要将所有LUN都可用于所有目标,只需将它们添加到“默认”组:
 
# echo "add 5:0:0:8 0" >/proc/scsi_tgt/groups/Default/devices
# cat /proc/scsi_tgt/groups/Default/devices
Device (host:ch:id:lun or name)     Virtual lun Options
5:0:0:8                                              0
 
现在,LUN“5:0:0:8”被添加到“默认”组作为LUN#0。
 
请注意,您必须具有LUN 0.这是SCSI要求(在SCST的README中记录)。
 
 
定义LUN掩码
--------------------
 
要将特定LUN与特定目标关联,请执行以下操作:
 
   *为目标创建一个组:
 
echo“add_group Default_iqn.2007-05.com.example:storage.iscsi-scst-1”> / proc / scsi_tgt / scsi_tgt
 
   *将LUN添加到组:
 
echo“add 4:0:0:8 0”> /proc/scsi_tgt/groups/Default_iqn.2007-05.com.example\:storage.iscsi-scst-1/devices
 
这会将LUN“4:0:0:8”分配给目标iqn.2007-05.com.example:storage.iscsi-scst-1。同样,每个组必须具有LUN 0。
 
 
从组中删除LUN
---------------------------
 
运行以下命令:
 
echo“del 4:0:0:8 0”> /proc/scsi_tgt/groups/Default_iqn.2007-05.com.example\:storage.iscsi-scst-1/devices
 
这将从目标iqn.2007-05.com.example:storage.iscsi-scst-1中删除LUN“4:0:0:8”。
 
 
删除组
----------------
 
运行以下命令:
 
echo“del_group Default_iqn.2007-05.com.example:storage.iscsi-scst-1”> / proc / scsi_tgt / scsi_tgt
 
有关LUN屏蔽的更多信息,请参阅SCST README,“访问和设备可见性管理(LUN屏蔽)”部分。
 
 
使用iscsi-scstd.conf创建目标
---------------------------------------
 
创建目标的最简单方法是在/etc/iscsi-scstd.conf中定义它们。可以在etc/ iscsi-scstd.conf中找到一个示例。在启动iSCSI-SCST之前,您需要在/ etc /下使用此文件。
 
 
将目标分配给特定的启动器
----------------------------------------
 
为了将目标分配给特定的启动器,您需要使用/etc/initiators.allow和/etc/initiators.deny。您可以在etc / initiators.allow和etc / initiators.deny中找到示例文件。
 
请注意,默认情况下所有目标都允许使用所有目标,因此如果要使用/etc/initiators.allow,则需要使用/etc/initiators.deny,如下所示:
 
ALL ALL
 
这将拒绝所有启动器对/etc/initiators.allow中定义的启动器的期望。
 
iscsi-scst-adm的有用示例:
 
显示特定目标:
 
# iscsi-scst-adm --op show --tid=1
QueuedCommands=0
 
显示特定目标的已配置参数:
 
# iscsi-scst-adm --op show --tid=1 --sid=0
InitialR2T=No
ImmediateData=Yes
MaxConnections=1
MaxRecvDataSegmentLength=2097152
MaxXmitDataSegmentLength=131072
MaxBurstLength=2097152
FirstBurstLength=262144
DefaultTime2Wait=2
DefaultTime2Retain=0
MaxOutstandingR2T=1
DataPDUInOrder=Yes
DataSequenceInOrder=Yes
ErrorRecoveryLevel=0
HeaderDigest=None
DataDigest=None
OFMarker=No
IFMarker=No
OFMarkInt=Reject
IFMarkInt=Reject
 
参考地址:http://scst.sourceforge.net/iscsi-scst-howto.txt
 
 
 
 
Gentoo HOWTO For iSCSI-SCST
 
 
 
参考地址:http://scst.sourceforge.net/SCST_Gentoo_HOWTO.txt
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/luxiaodai/p/9851370.html

HOWTO For iSCSI-SCST Gentoo HOWTO For iSCSI-SCST相关推荐

  1. 【存储】 iSCSI Target(tgt) |什么是iSCSI target|SCSI协议

    目录 简略 一.iSCSI 介绍 1. iSCSI 定义 2.什么是iSCSI target 3.几种常见的 iSCSI Target 3. 优缺点比较 软iscsi target 二.SCSI 协议 ...

  2. 计算机的iscsi配置,PC端的iSCSI参数设置方法

    PC端的iSCSI参数设置方法 上面介绍完NAS端的设置,接下来再来给大家介绍一下PC端的iSCSI设置,主要是实现在PC端上连接使用NAS上的iSCSI存储空间,这里我们以Windows 7 SP1 ...

  3. linux安装iscsi设备,Linux安装管理ISCSI卷(initiator端)

    Linux安装管理iSCSI卷(initiator端) Internet SCSI(iSCSI)是一种网络协议,使用TCP/IP网络来传输SCSI协议.它是代替FC(Fibre Channel-bas ...

  4. linux配置iscsi无账号密码,linux iscsi Initiator配置CHAP认证

    前面关于配置iscsi-target我们已经做过了,由于target上对lun做了chap认证,所以我们在客户端上也要配置认证. 综合老外和国内使用的方法,我总结了几种方法. ____________ ...

  5. linux iscsi软件,Redhat Linux 配置 iSCSI 连接存储

    一.安装iSCSI软件包(系统盘自带) 1.查看是否安装iscsi包 # rpm -qa | grep iscsi -bash:  grep iscsi: command not found -bas ...

  6. iscsi 挂载教程_linux下ISCSI存储挂载方法

    安装 不同的操作系统对应各自的iSCSI initiator,以CentOS 6.5为例. 安装方法有两种: 1) 直接使用"yum install iscsi*"进行安装: 2) ...

  7. Linux- 部署iSCSI -并使用win10挂载iSCSI盘

    啥是iscsi? 互联网小型计算机系统接口(iSCSI,Internet Small Computer System Interface).这是一种将 SCSI 接口与以太网技术相结合的新型存储技术, ...

  8. linux iscsi 服务端,Linux的iscsi磁盘服务

    一.iSCSI简介 iSCSI(Internet SCSI)支持从客户端(发起端)通过IP向远程服务器上的SCSI存储设备(目标)发送SCSI命令.iSCSI限定名称用于确定发起端和目标,并采用 iq ...

  9. linux iscsi服务开启的,linux iscsi服务实现

    1.使用mount将光盘位置/dev/cdrom内的文件挂载到/mnt/cdrom位置上: mount /dev/cdrom /mnt/cdrom 2.使用find 命令查找安装包: find -na ...

  10. openwrt无盘服务器,搭建基于 OpenWrt/gPXE/iSCSI 的 Windows 无盘工作站

    本文要介绍的是如何在 OpenWrt 平台上面搭建无盘工作站服务器以及 Windows 的 iSCSI 部署. 当然,由于 OpenWrt 也可以算得上一种 Linux 发行版了,所以本文所介绍的一些 ...

最新文章

  1. 完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题
  2. django07 字符串替换
  3. python----1
  4. 最推荐的深度学习课程
  5. eclipse 导入zip
  6. Discuz!NT负载均衡方案
  7. 微信小程序-路由方式
  8. C和指针之结构体大小和成员变量位置距离结构开始存储的位置偏移字节
  9. C/C 语言中extern的用法
  10. html 缓存 js文件缓存吗,如何为css / js文件设置缓存
  11. TensorFlow3-会话
  12. easyexcel 日期类型 convert_[Oracle 专题] SQL 日期、数字、字符串,运算、转换
  13. mac上的Android虚拟机,android虚拟机能在retina MacBook pro上跑吗?
  14. PHP注入漏洞(附代码,具体步骤)
  15. java tcp 阻塞等待应答_面试常问!TCP 的三次握手与四次挥手理解
  16. [Aaronyang] 写给自己的WPF4.5 笔记10[层次数据需求处理,TreeView绿色文章1/4]
  17. 计算机的录像功能在哪里找,电脑录像的功能在哪,快速开启的方法分享
  18. 蓝屏代码查询及代码分析
  19. Windows 工作/生活 小窍门收集
  20. 2022-10-11 myql-exists子查询外表关联记录

热门文章

  1. 计算机科学与工程国际研讨会,2018年北京计算机科学与技术国际研讨会
  2. shader 反射 水面_大规模水面渲染
  3. Latex:WinEdt打开.tex文件时的编码问题
  4. python:画混淆矩阵
  5. python2.7 安装第三方库
  6. 转载--卷积神经网络卷积层池化层输出计算公式
  7. 粒子群算法的惩罚函数的c语言实现,粒子群算法结合惩罚函数用于桥式起重机主梁优化.pdf...
  8. python所有组合,在python中组合n个列表的所有元素
  9. python中stacked_栈式自动编码器(Stacked AutoEncoder)
  10. MFC把 ListCtrl的数据导出到excel表格