在Debian Lenny(启动器和目标)上使用iSCSI
版本1.0
作者:Falko Timme
本指南介绍如何设置iSCSI目标和iSCSI启动器(客户端),两者均运行Debian Lenny。 iSCSI协议是一种存储区域网络(SAN)协议,允许iSCSI启动器使用通用以太网布线在(远程)iSCSI目标上使用存储设备。 对于iSCSI启动器,远程存储器看起来像一个正常的本地连接的硬盘驱动器。
我不会保证这将为您工作!
1初步说明
我在这里使用两个Debian Lenny服务器:
-
server1.example.com
(Initiator):IP地址192.168.0.100
-
server2.example.com
(目标):IP地址192.168.0.101
2设置目标(server2)
server2:
首先我们设置目标( server2
):
aptitude install iscsitarget iscsitarget-modules-`uname -r`
打开/ etc / default / iscsitarget
...
vi /etc/default/iscsitarget
...并将ISCSITARGET_ENABLE
设置为true
:
ISCSITARGET_ENABLE=true |
我们可以使用未使用的逻辑卷,映像文件,硬盘驱动器(例如/ dev / sdb
),硬盘驱动器分区(例如/ dev / sdb1
)或RAID设备(例如/ dev / md0
)作为存储。 在本例中,我将在卷组vg0
中创建一个名为storage_lun1
的20GB的逻辑卷:
lvcreate -L20G -n storage_lun1 vg0
(如果要使用图像文件,可以按如下方式创建它:
mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000
这将创建大小为20GB的映像文件/storage/lun1.img
。
)
接下来我们编辑/etc/ietd.conf
...
vi /etc/ietd.conf
...并注释掉该文件中的所有内容。 最后我们添加以下节:
[...] Target iqn.2001-04.com.example:storage.lun1 IncomingUser someuser secret OutgoingUser Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6 |
目标名称必须是全局唯一的名称,iSCSI标准定义了“iSCSI合格名称”,如下所示: iqn.yyyy-mm。<reverse domain name> [:identifier]
; yyyy-mm
是域有效的日期; 标识符可以自由选择。 IncomingUser
行包含用户名和密码,只有提供此用户名和密码的发起者(客户端)才能登录并使用存储设备; 如果您不需要身份验证,请勿在IncomingUser
行中指定用户名和密码。 在Lun
行中,我们必须指定存储设备的完整路径(例如/ dev / vg0 / storage_lun1
, /storage/
lun1.img
, / dev / sdb
等)。
现在我们告诉目标,我们想允许连接设备iqn.2001-04.com.example:storage.lun1
从IP地址192.168.0.100
( server1.example.com
)...
vi /etc/initiators.allow
[...] iqn.2001-04.com.example:storage.lun1 192.168.0.100 |
...并启动目标:
/etc/init.d/iscsitarget start
3设置启动器(server1)
server1:
在server1上
,我们安装启动器:
aptitude install open-iscsi
接下来我们打开/etc/iscsi/iscsid.conf
...
vi /etc/iscsi/iscsid.conf
...并将node.startup
设置为自动
:
[...] node.startup = automatic [...] |
然后我们重新启动启动器:
/etc/init.d/open-iscsi restart
现在我们连接到目标( server2
),并检查它提供的存储设备:
iscsiadm -m discovery -t st -p 192.168.0.101
server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#
iscsiadm -m node
server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#
存储设备iqn.2001-04.com.example:192.168.0.101:3260,1
上的storage.lun1的
设置存储在文件/etc/iscsi/nodes/iqn.2001-04.com.example:storage中.lun1 / 192.168.0.101,3260,1 / default
。 我们需要在该文件中设置目标的用户名和密码; 而不是手动编辑该文件,我们可以使用iscsiadm
命令为我们做这个:
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --op=update --name node.session.auth.authmethod --value=CHAP
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --op=update --name node.session.auth.username --value=someuser
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --op=update --name node.session.auth.password --value=secret
现在我们可以通过运行...登录
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login
server1:~# iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]
Login to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]: successful
server1:~#
...或通过重启启动器:
/etc/init.d/open-iscsi restart
(如果要注销,可以运行
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --logout
)
在输出中
fdisk -l
你现在应该找到一个新的硬盘驱动器(在这个例子中是/ dev / sdb
); 这是我们的iSCSI存储设备:
server1:~# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00031334
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Extended
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
server1:~#