前言:SCST是一个老版本的linux target实现了,现在基本已经被LIO取代
这是一个非常快速的HOWTO,旨在提供有关如何设置和配置iSCSI-SCST的快速参考。有关更深入的信息,请参阅SCST和iSCSI-SCST README文件。
使用scstadmin安装和使用iSCSI-SCST
==============================================
1.下载,构建和安装iSCSI-SCST。
首先下载iSCSI-SCST源代码。您可以从以下URL下载已发布的版本:
或者您可以通过在shell中运行以下命令来下载最新的开发版本:
虽然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
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“8192”> /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 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
从组中删除LUN
---------------------------
运行以下命令:
有关LUN屏蔽的更多信息,请参阅SCST README,“访问和设备可见性管理(LUN屏蔽)”部分。
启用目标
----------------
创建并配置目标后,应启用它:
然后启用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与特定目标关联,请执行以下操作:
*为目标创建一个组:
*将LUN添加到组:
从组中删除LUN
---------------------------
运行以下命令:
删除组
----------------
运行以下命令:
有关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
略
- iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redundancy
iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redunda ...
- iscsi序列一、搭建iscsi存储系统
一.NAS和SAN服务器概述 SAS: 容量小, 300G, 600G, 900G, 价格贵. SATA:容量大,500G, 750G, 1T, 2T, 3T, 4T 不支持热插拔,价格低. 假S ...
- ceph iscsi (SCST)
ceph结合iscsi iscsi Target 安装 1.安装SCST tar -jxf scst-3.0.1.tar.bz2 cd scst-3.0.1 make && make ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- iscsi与multipath
2016-10-01/21:07:24 http://www.cnblogs.com/wuchanming/p/4019660.htmlhttp://czmmiao.iteye.com/blog/20 ...
- centos 6.5 x64创建并挂载使用iscsi共享磁盘
前景摘要:NFS或iSCSI,哪个更好?文件 vs 块NFS使用文件级别的实施,服务器或存储阵列托管整个文件系统,客户到文件系统上读写文件,可以在阵列端对主存储数据进行重复数据删除.iSCSI和FC则 ...
- 网络存储(二)之ISCSI原理
组成 一个简单ISCSI系统大致由以下部分构成 ISCSI Initiator 或者 ISCSI HBA ISCSI Target 以太网交换机 一台或者多台服务器 结构图如下: iscsi服务器用来 ...
- [转帖]DAS、NAS、SAN、iSCSI 存储方案概述
目前服务器所使用的专业存储方案有DAS.NAS.SAN.iSCSI几种.存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储: (1)封闭系统主要指大型机. (2)开 ...
随机推荐
- python-16
#知识点一.函数的作用域 int() #内置变量 B v = 6 #全局变量G def outer(): x = 5 #嵌套变量 E def inner(): b = 10 #局部变量 L print ...
- usermod - linux修改用户帐户信息
usermod - 修改用户帐户信息 modify a user account usermod [options] user_name usermod 命令修改系统帐户文件来反映通过命令行指定的变化 ...
- html5 javascript 事件练习3键盘控制练习
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 和 (DFS)
和 Time Limit: 1000MS Memory Limit: 65536KB Total Submissions: 177 Accepted: 93 Share Description: ...
- jquery单击事件的写法
方式一: //点击要素,修改URL $(document).on('click',"#modUrlYs" ,function (){ //$("#modUrlYs&quo ...
- 第五讲 DOM基础
DOM基础: 什么是DOM:其实就是dovument,div获取.修改样式等等,但是不只是js的组成部分,而且还是一套规范,规定了这些浏览器怎么处理这些操作: 浏览器支持情况:IE(IE7-8,10% ...
- 用Java画简单验证码
以下是具体代码: package com.jinzhi.tes2; import java.awt.Color;import java.awt.Font;import java.awt.Graphic ...
- Tomcat的overview界面说明
Tomcat的overview界面说明 一.Tomcat的overview界面 双击或者open,进入Tomcat的overview界面, 一般情况workspace的子路径为.metadata.pl ...
- linux下如何编译安装gcc-8.3.0
1. 获取源码 wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz -P ~ tar xvf gcc-8.3.0.t ...
- centos6.5下安装Redis
已有redis-3.2.1.tar.gz文件 拖到centos系统的桌面 现在在桌面目录下 tar -zxv -f redis-3.2.1.tar.gz以解压压缩包 cd redis-3.2.1以切换 ...