iSCSI网络存储架构 (来自网络资料的搜集整理实验-大部分来自“华章”培训的高俊峰老师)

iscsi的构架 ―― IP SAN

pc构架

就是将存储设备搭建在PC服务器上,通俗的说就是选择一个性能良好、可支持多块硬盘的PC服务器,然后选择一款成熟的存储管理软件()。最后通过PC服务器额以太网卡对外提供ISCSI数据传输服务。



wKiom1MhGeiwtC4gAADXqn5XtVM648.jpg



iscsi的实现原理


wKioL1MhGdTCzcU3AACl4jNdHX8576.jpg







搭建PC架构的iSCSI存储系统基本架构图

wKioL1MhGefAt7skAAF5uQAEqq0398.jpg



iSCSI地址规划                                        

wKioL1MhGfzTSLkFAAEbzNK7vMo302.jpg




安装iSCSI target软件

cd iscsitarget/

make

make install


starting

/etc/init.d/iscsi-target start


stopping

/etc/init.d/iscsi-target stop


配置

vi /etc/iet/ietd.conf

找到下面开头的行:

iqn #Target iqn.2001-04.com.example:storage.disk2.sys1.xyz

LUN #Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz

当需要添加第二块硬盘的时候,上边两行需要成对出现。


[root@hhh iscsitarget-1.4.20.2]# netstat -nltp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:44206               0.0.0.0:*                   LISTEN      2277/rpc.statd

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2155/rpcbind

tcp        0      0 0.0.0.0:10000               0.0.0.0:*                   LISTEN      2601/perl

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2520/sshd

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2340/cupsd

tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      3639/ietd

tcp        0      0 :::55178                    :::*                        LISTEN      2277/rpc.statd

tcp        0      0 :::111                      :::*                        LISTEN      2155/rpcbind

tcp        0      0 :::22                       :::*                        LISTEN      2520/sshd

tcp        0      0 ::1:631                     :::*                        LISTEN      2340/cupsd

tcp        0      0 :::3260                     :::*                        LISTEN      3639/ietd




安装客户端

windows

windows官网下载iscsi init


linux

rpm -ivh iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm


yum -y install iscsi-initiator-utils


可以使用如下指令向iSCSI Target主机查询划分了哪些lun

iscsiadm -m discovery --type sendtargets --portal IP

iscsiadm -m discovery -t sendtargets -p IP

说明,当成功执行一次Target发现后,iSCSI Initiator 就会将查询记录写到/var/lib/iscsi/send_targets对应目录下。


fdisk -l

就可以看到这个新的磁盘


登陆iScsi target(执行完发现,默认已经登陆到target)

iscsiadm -m node -T <iqn.2013-12.net.example....>  -p 192.168.0.200 -l

iscsiadm -m node -T <iqn.2013-12.net.example....>:port  -p 192.168.0.200 --login

端口号默认不用加,如果改变过端口就必须要加。


断开与target主机的连接

iscsiadm -m node -T <iqn.2013-12.net.example....>  -p 192.168.0.200 -u


查看信息

iscsiadm -m session -i

iscsiadm -m session -R


查看不同的服务端的信息

iscsiadm -m node


查看target配置信息

iscsiadm -m note -T <target名称> -p IP地址

iscsiadm -m discovery -p IP地址


管理共享磁盘

fdisk -l

fdisk /dev/sdc

mkfs.ext3 /dev/sdc5

partprobe


去掉自动检查的属性

tune2fs -c -l -i 0 /dev/sdc5

最大检查次数-1,检查时间0

编辑/etc/fstab文件,设置自动挂载

UUID=b5c94f7f-295f-2032-b258-2433ddc7e088   /data    ext3   _netdev  0  0

tune2fs -l /dev/sdc5

iSCSI在安全方面相关设定

IP认证


wKiom1MhGlKBP8JVAAJVwj075zY760.jpg



可以在initiators.allow的行里,添加多个IP地址,用逗号分隔。


密码认证

注释掉IP认证的行;不共存;添加

ALL ALL

修改主配置文件


wKioL1MhGk2ThntWAAJr9XHaZfQ056.jpg





就是在原有配置文件的基础上,添加一行,表示  标志头:用户名:密码。


客户端设定


windows


wKiom1MhGoKTruMmAAJBiETnDZY890.jpg


linux



wKioL1MhGnfif9eHAAMJHgqepJo221.jpg



网上下载的一段


1.windows
可用于windows2000、windowsXP、windows2003的较新版本iscsi-initiator程序是Initiator-2.04-build3273
安装成功后产生程序组Microsoft iSCSI Initiator, 桌面也有相应图标。基本操作如下:
点击 Microsoft iSCSI Initiator―>Discovery―>Add―>输入target的IP地址和端口号
点击 Microsoft iSCSI Initiator―>Targets―>Refresh, 发现当前可用的Target
点击 Microsoft iSCSI Initiator―>Targets―>选中target―>Logon―>OK, 建立连接
点击 控制面板―>管理工具―>计算机管理―>磁盘管理,可以看见映射到本机的逻辑磁盘。然后可以与本地磁盘一样进行分区格式化操作。
点击 Microsoft iSCSI Initiator―>Targets―>选中已经连接的target―>Details―>勾选相应的任务项目―>Logoff, 断开连接。

2.RedHat Enterpris Linux 5
下载initiator软件包Open-iscsi-2.0.865.tar.gz到/root目录
使用方法:解压缩软件
[root@RedHat5 ~]# tar xvzf Open-iscsi-2.0.865.tar.gz
在/root下生成目录Open-iscsi-2.0.86,进入该目录进行编译和安装
[root@RedHat5 ~]# cd Open-iscsi-2.0.86
[root@RedHat5 Open-iscsi-2.0.86]# make
[root@RedHat5 Open-iscsi-2.0.86]# make install
[root@RedHat5 Open-iscsi-2.0.86]# cd ~
编译安装完成后生成必要的驱动程序模块、守护进程和管理程序iscsiadm
用法
启动Open-iscsi
[root@RedHat5 ~]# service open-iscsi start
如果希望在启动机器时自动加载,执行下面命令
[root@RedHat5 ~]# chkconfig --level 3 open-iscsi on
这里的参数3是运行级别,如果是图形界面要改为5。
发现target,询问target名称
[root@RedHat5 ~]# iscsiadm -m discovery -t sendtargets -p targetIP地址:端口号
该命令将报告出target名称
建立连接
得到了target名称后,使用下面命令建立连接
[root@RedHat5 ~]# iscsiadm -m node -T target名称 -p targetIP地址:端口号 --login
这时应该看到映射到的逻辑磁盘名号,使用fdisk -l 可以看到有关逻辑磁盘的详细内容,可以象使用本地硬盘一样对其进行分区、创建文件系统、挂载、卸载等操作。
断开连接
如果逻辑磁盘已经挂载,断开连接前应先卸载,然后使用下面命令
[root@RedHat5 ~]# iscsiadm -m node -T target名称 -p targetIP地址:端口号 --logout
关机之前应该正确的卸载和断开逻辑磁盘,否则会在target服务器上留下僵死的进程,造成服务器资源的浪费。




3.Fedora core 6 Fedora 7
这两个操作系统都有适用的rpm包,适用于Fedora core 6的是iscsi-initiator-utils-6.20.695-0.5.i386.rpm,适用于Fedora 7的是iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm,下载对应的文件后用rpm命令安装。
[Federa]# rpm -ivh iscsi-initiator-utils-6.20.754-0.0.fc7.i386.rpm
用法
这两个rpm包其实就是上面说的Open-iscsi软件,其管理程序也是iscsiadm,用法与上面所说完全一样。但因安装方法不同产生的启动脚本文件有所差异。这里需要如下的方法启动:
加载内核模块
[Federa]# modprobe -q iscsi_tcp
启动守护进程
[Federa]# iscsid
而后就可以用iscsiadm程序来管理,发现的target信息会保存在数据库中,下次启动时自动加载模块和启动守护进程。如果要从数据库中***某个target的信息,使用下面命令:
查询数据库中内容
[Federa]# iscsiadm -m node
***指定的target
[Federa]# iscsiadm -m node -o delete -T target名称 -p targetIP地址:端口号

4.FreeBSD5.4FreeBSD6.2
安装软件
以root身份登录系统,下载initiator软件iscsi-12.tar.bz2到/root。
解压缩软件
# tar xvzf iscsi-12.tar.bz
将得到两个目录sys和iscontrol
分别进入这两个目录进行编译:
# cd sys/modules/iscsi_initiator
# ln -s ../.. @
# make
编译成功后在该目录下生成内核模块文件iscsi_initiator.ko,把该文件复制到/boot/kernel目录下。
# cd iscontrol
# make
编译成功后在该目录下生成管理程序 iscontrol, 把该文件复制到/sbin目录下。
用法
首先装载内核模块
# kldload iscsi_initiator.ko
如果不想看到很多的输出信息
# sysctl debug.iscsi=0
发现target,询问target名称
# iscontrol -d targetaddress=targetIP地址
该命令将报告出target名称。
连接target
# iscontrol targetaddress=target的IP地址 TargetName=target名称
这里的target名称是发现target命令报告出的名称。
连接成功后,将报告出映射到本机的scsi设备名号,如da0或da1等。
内核模块装载命令和连接命令应该写入启动脚本文件/etc/rc.local, 这样机器启动时可自动建立连接。
应用下面命令可以看到连接到的设备
# camcontrol devlist
然后可以象使用本地硬盘一样对其进行分区、创建文件系统、挂载、卸载等操作。
如要结束连接,首先要卸载相应的设备,然后向iscontrol进程发-HUP信号,或用top找到iscontrol的进程号,直接kill掉。
该软件在target端服务中断后再恢复时(例如重新启动机器)不能自动再建立连接,必须手动重新建立连接。该软件不支持身份验证,target端不能设置密码。

5.Open Solaris
Open Solaris操作系统内置了iSCSI Initiator, 其管理程序名称也是iscsiadm, 但与Linux下的iscsiadm不是同一程序,使用语法也不相同。
用法:
以root身份登录,启动一个终端窗口,在窗口中执行命令:
发现target, 询问target名称
# iscsiadm add discovery-address targetIP地址:端口号
建立连接
# iscsiadm modify discovery -t enable
查看逻辑磁盘名号
# format
然后根据逻辑盘的名号(例如c1t0d0)进行格式化、创建文件系统、挂载。
断开连接
# iscsiadm modify discovery -t disable
***一个target
# iscsiadm remove discovery-address targetIP地址:端口号


本文出自 “小崔的实验笔记” 博客,谢绝转载!

你可能感兴趣的:(iSCSI)