本文是我在研制固态iSCSI服务器软件时所做的一些实验的总结,都没有涉及身份验证功能的使用,如需要了解如何使用身份验证功能,请参考相应软件的帮助文件或在线man文档。
WindowxXP、 Windows2000、 Windows2003
RedHat Enterpris Linux 5
Fedora core 6 、Fedora 7
FreeBSD5.4、FreeBSD6.2
Open SolarisWindowxXP、 Windows2000、 Windows2003
- 安装
可用于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, 断开连接。
- 编译安装软件
以root身份登录系统,下载initiator软件包Open-iscsi-2.0.865.tar.gz到/root目录。 [可以在它官网上下载:http://www.open-iscsi.org/] 解压缩软件 [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服务器上留下僵死的进程,造成服务器资源的浪费。
- 安装
这两个操作系统都有适用的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地址:端口号
- 安装软件
以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端不能设置密码。
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地址:端口号 本文出自 51CTO.COM技术博客 |