在Ubuntu 10.04(启动器和目标)上使用iSCSI

在Ubuntu 10.04(启动器和目标)上使用iSCSI

本指南介绍如何设置iSCSI目标和iSCSI启动器(客户端),两者都运行Ubuntu 10.04。 iSCSI协议是一种存储区域网络(SAN)协议,允许iSCSI启动器使用通用以太网布线在(远程)iSCSI目标上使用存储设备。 对于iSCSI启动器,远程存储器看起来像一个正常的本地连接的硬盘驱动器。

我不会保证这将为您工作!

1初步说明

我在这里使用两个Ubuntu 10.04服务器:

  • server1.example.com (Initiator):IP地址192.168.0.100
  • server2.example.com (目标):IP地址192.168.0.101

因为我们将使用root权限运行本教程中的所有步骤,我们可以使用字符串sudo来为本教程中的所有命令添加所有命令,也可以通过键入来成为root

sudo su

2设置目标(server2)

server2:

首先我们设置目标( server2 ):

aptitude install iscsitarget

打开/ 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.100server1.example.com )(注释掉ALL ALL行,因为那个将允许所有发起者连接到所有目标)...

vi /etc/initiators.allow
[...]
iqn.2001-04.com.example:storage.lun1 192.168.0.100
#ALL ALL

...并启动目标:

/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
root@server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
root@server1:~#
iscsiadm -m node
root@server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
root@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
root@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
root@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存储设备:

root@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
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00016be9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        3917    31205377    5  Extended
/dev/sda5              32        3917    31205376   8e  Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
root@server1:~#

要使用该设备,我们必须格式化它:

fdisk /dev/sdb

server1:〜#fdisk / dev / sdb
设备既不包含有效的DOS分区表,也不包含Sun,SGI或OSF disklabel
构建一个新的DOS磁盘标签,磁盘标识符为0x882944df。
更改将仅保留在内存中,直到您决定编写它们。
之后,当然,以前的内容将无法恢复。


此磁盘的柱面数设置为20480。
没有什么问题,但是这大于1024,
并且在某些设置中可能会导致以下问题:
1)在引导时运行的软件(例如,LILO的旧版本)
2)从其他操作系统启动和分区软件
(例如DOS FDISK,OS / 2 FDISK)
警告:分区表4的无效标志0x0000将被w(rite)修正

命令(m为帮助): < - m
命令行动
一个可启动标志的切换
b编辑bsd disklabel
c切换dos兼容性标志
d删除一个分区
l列出已知的分区类型
m打印此菜单
n添加一个新的分区
o创建一个新的空DOS分区表
p打印分区表
q退出而不保存更改
s创建一个新的空的Sun磁盘标签
t更改分区的系统ID
u更改显示/输入单位
v验证分区表
w将表写入磁盘并退出
x额外功能(仅限专家)

命令(m帮助): < - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4): < - 1
第一个圆筒(1-20480,默认为1): < - ENTER
使用默认值1
最后一个圆柱体或+大小或+ sizeM或+ sizeK(1-20480,默认为20480): < - ENTER
使用默认值20480

命令(m为帮助): < - t
所选分区1
十六进制代码(L型列表代码): < - L

0空1e隐藏W95 FAT1 80旧Minix是Solaris启动
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39计划9 82 Linux交换/ So c1 DRDOS / sec(FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS / sec(FAT-
4 FAT16 <32M 40 Venix 80286 84 OS / 2隐藏C:c6 DRDOS /秒(FAT-
5扩展41 PPC PReP引导85 Linux扩展c7 Syrinx
6 FAT16 42 SFS 86 NTFS卷集da非FS数据
7 HPFS / NTFS 4d QNX4.x 87 NTFS卷集db CP / M / CTOS /。
8 AIX 4e QNX4.x第2部分88 Linux纯文本戴尔实用程序
9 AIX可启动4f QNX4.x第3部分8e Linux LVM df BootIt
OS / 2 Boot Manag 50 OnTrack DM 93变形虫e1 DOS访问
b W95 FAT32 51 OnTrack DM6 Aux 94变形虫BBT e3 DOS R / O
c W95 FAT32(LBA)52 CP / M 9f BSD / OS e4 SpeedStor
e W95 FAT16(LBA)53 OnTrack DM6 Aux a0 IBM Thinkpad Hi eb BeOS fs
f W95 Ext'd(LBA)54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI(FAT-12/16 /
11隐藏FAT12 56金弓a7 NeXTSTEP f0 Linux / PA-RISC b
12 Compaq diagnostics 5c Priam Edisk a8达尔文UFS f1 SpeedStor
14隐藏FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16隐藏FAT16 63 GNU HURD或Sys ab达尔文启动f2 DOS二级
17 Hidden HPFS / NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI交换fe LANstep
1b隐藏W95 FAT3 70 DiskSecure多bb启动向导隐藏ff BBT
1c隐藏W95 FAT3 75 PC / IX
十六进制代码(类型L列出代码): < - 83

命令(m为帮助): < - w
分区表已被更改!

调用ioctl()重新读取分区表。
同步磁盘
server1:〜#

之后,输出

fdisk -l

应该看起来如下:

root@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
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00016be9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        3917    31205377    5  Extended
/dev/sda5              32        3917    31205376   8e  Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x725b9dff

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       20480    20971504   83  Linux
root@server1:~#

现在我们在/ dev / sdb1上创建一个文件系统

mkfs.ext4 /dev/sdb1

...并安装它用于测试目的:

mount /dev/sdb1 /mnt

您现在应该在...的输出中看到新设备

mount
root@server1:~# mount
/dev/mapper/server1-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw)
/dev/sdb1 on /mnt type ext4 (rw)
root@server1:~#

...和

df -h
root@server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
                       18G  838M   16G   5% /
none                  243M  180K  242M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   36K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
none                  247M     0  247M   0% /lib/init/rw
none                   18G  838M   16G   5% /var/lib/ureadahead/debugfs
/dev/sda1             228M   17M  199M   8% /boot
/dev/sdb1              20G  172M   19G   1% /mnt
root@server1:~#

你可以这样卸载它:

umount /mnt

要使设备在启动时自动安装,例如在目录/存储中 ,我们创建该目录...

mkdir /storage

...并将以下行添加到/ etc / fstab中

vi /etc/fstab
[...]
/dev/sdb1       /storage        ext4    defaults,auto,_netdev 0 0

出于测试目的,您现在可以重新启动系统:

reboot

重新启动后,应安装设备:

mount
root@server1:~# mount
/dev/mapper/server1-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /boot type ext2 (rw)
/dev/sdb1 on /storage type ext4 (rw,_netdev)
root@server1:~#
df -h
root@server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
                       18G  839M   16G   5% /
none                  243M  180K  242M   1% /dev
none                  247M     0  247M   0% /dev/shm
none                  247M   36K  247M   1% /var/run
none                  247M     0  247M   0% /var/lock
none                  247M     0  247M   0% /lib/init/rw
none                   18G  839M   16G   5% /var/lib/ureadahead/debugfs
/dev/sda1             228M   17M  199M   8% /boot
/dev/sdb1              20G  172M   19G   1% /storage
root@server1:~#

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏