Linux——iSCSI服务配置

0.iSCSI Target 功能:

a]用来安装stateless server/client (用于无盘安装)

b]通过局域网、无线网络或者因特网共享磁盘或者磁带设备

c]安装SAN——存储阵列

d]通过Linux下的分布式文件系统实现负载均衡的web服务器集群

1. 构建iscsi target

1)iSCSI target(server)

存储资源所在的iSCSI服务器被称为“target”。iSCSI target通常是一个硬盘存储设备。当前大部分的主流操作系统都提供了配合iSCSI target使用的客户端软件initiator。 

2)iSCSI initiator(client)

initiator就是iSCSI传输的服务端。典型的initiator都有共同的目的,就是作为一个SCSI总线的适配器,代替物理上的SCSI设备(类似硬盘或者磁带)。iSCSI initiator通过IP网络传输SCSI命令。

3)安装 iSCSI target

CentOS / RHEL / fedora 安装tgt:$ yum install scsi-target-utils 

Debian / Ubuntu Linux 安装tgt:$sudo apt-get install tgt

4)启动tgtd:$ service tgtd start
5)配置iSCSI target(分配lun、id、名字等)

》定义iSCSI target名

a. 以下的例子中,创建了一个id为1的target,它的iqn为:iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz,并且添加了一个lun( logical unit)号为1的逻辑单元(由/dev/hdc1提供):

$tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz iqn号是局域网内iSCSI target的唯一标识,用来区分不同的target,所以在一个网络内,iqn号一定不能相同。

b. 要显示当前的iqn号,输入:$tgtadm --lld iscsi --op show --mode target 通常输出如下:

Target 1: iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
    Account information:
    ACL information:

》为target增加一个lun(/dev/sdb1)

$tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1

》接受iSCSI initiator的访问:要使target接受initiator的访问,需要输入如下命令,不过一般情况下3260端口就是监听状态,所以这一步可以省略。

#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL 这样将打开了3260端口

netstat -tulpn | grep 3260 结果如下:

t c p    0      0 0.0.0.0:3260       0.0.0.0:*            LISTEN      27328/tgtd
tcp6    0      0 :::3260                 :::*                    LISTEN      27328/tgtd   

当你做完这些操作,你的系统就被设置成一个iSCSI Target了。远程的客户端计算机就可以通过网络访问这台计算机上的硬盘了。你可以使用分布式的集群文件系统来安装真正的共享存储。如果需要的话,打开防火墙上的3260端口。
》如果你发现从initiator上登录不了target:
# iptables -F
# setenforce 0
2. iscsi initiator 管理iscsi卷

1)安装所需的包:

RHEL/CentOS/Febra :iscsi-initiator-utils 这个安装包由一个iSCSI协议的服务端程序,和管理这个服务端的工具组成。iSCSI通过网络层协议传输SCSI命令来读取分布的磁盘。安装这个包可以通过如下命令:

#yum install iscsi-initiator-utils 

Debian/Ubuntu Linux:如果使用的是Debian或者Ubuntu操作系统,可以通过如下命令:

$sudo apt-get install open-iscsi

2)iscsi-initiator配置:

使用iSCSI存储需要配置如下步骤:

1.通过init.d下的脚本或者手动启动iSCSI。需要修改/etc/iscsi/iscsid.conf配置文件。

2.寻找网络上的targets(存储的服务端,通常是SAN)。

3.当下次重启系统时,自动登录target。

4.获得iSCSI taget端的用户名、密码和存储服务器的IP地址或者主机名。


Step # 1:配置iSCSI-initiator

通过vi打开/etc/iscsi/iscsid.conf:#vi /etc/iscsi/iscsid.conf 

设置用户名和密码(当target端设置CHAP验证时必需,如果target端没有设置CHAP验证,可以跳过):

node.session.auth.username = My_ISCSI_USR_NAME
node.session.auth.password = MyPassword
discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
discovery.sendtargets.auth.password = MyPassword
 

这里:

node.session.* target端设置的CHAP权限验证中的用户名和密码。

  • discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s) 搜索过程中使用的CHAP权限验证用户名和密码。也可以设置其它的选项,可以参考man下面的说明。

Step # 2:开始运行iSCSI服务程序:

# service iscsi start

Step # 3:搜索targets

现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的存储服务器的ip地址为 192.168.1.5,输入:

#iscsiadm -m discovery -t sendtargets -p 192.168.1.5
# service iscsi start

现在,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:

#fdisk -l

Step # 3:格式化并挂载iSCSI卷

可以使用fdisk对/dev/sdd进行分区,再用mkfs.ext3在/dev/sdd上创建文件系统,命令如下:

#fdisk /dev/sdd

......
# mke2fs -j -m 0 -O dir_index /dev/sdd1    #格式化

或者

#mkfs.ext3 /dev/sdd1                            #格式化

提示:如果卷大于1TB,则可以使用nohup在后台运行mkfs.ext3:

#nohup mkfs.ext3 /dev/sdd1 &

挂载新分区:

#mkdir /mnt/iscsi
# mount /dev/sdd1 /mnt/iscsi
 

Step # 4:当下次启动系统时自动挂载iSCSI设备

首先,确定iscsi服务能够在系统启动时运行:

#chkconfig iscsi on

再打开/etc/fstab文件,增加如下设置:

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0 保存后退出。


转自:《iscsi使用方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux上搭建iSCSI服务器,需要进行以下步骤: 1. 安装iSCSI软件包:在Linux系统上安装iSCSI软件包,例如open-iscsiiscsi-target。 2. 配置iSCSI Target:使用iscsi-target软件包创建iSCSI Target,配置iSCSI Target的名称、IP地址、端口等信息。 3. 创建iSCSI LUN:使用iscsi-target软件包创建iSCSI LUN(逻辑单元),并将其映射到物理存储设备上。 4. 配置iSCSI Initiator:在客户端上安装iSCSI Initiator软件包,并配置iSCSI Initiator的名称、IP地址、端口等信息。 5. 连接iSCSI Target:在客户端上使用iSCSI Initiator连接iSCSI Target,并将iSCSI LUN映射到客户端上。 6. 测试iSCSI连接:使用客户端上的工具测试iSCSI连接是否正常,例如使用dd命令在iSCSI LUN上创建文件。 以上是在Linux上搭建iSCSI服务器的基本步骤,具体操作可以参考相关文档或教程。 ### 回答2: 先介绍一下iSCSI的基本概念吧:iSCSI是一种存储协议,它是一种基于网络的存储协议,通过网络将远程存储设备映射到本地主机上,使得本地主机可以像使用本地硬盘一样使用远程存储设备。iSCSI协议在网络存储领域应用广泛,特别是在虚拟化环境下,iSCSI存储是实现共享存储的重要方式之一。 搭建iSCSI服务器需要准备两个方面的工作,第一是准备一个可用的Linux服务器,第二是安装和配置iSCSI软件。 一、准备Linux服务器 1. 首先要安装Linux系统,这里我们以CentOS系统为例; 2. 确认服务器硬件配置符合iSCSI的要求; 3. 安装和配置网络环境; 4. 创建一个LUN(Logical Unit Number)存储单元,这是iSCSI存储的最小单位。 二、安装和配置iSCSI软件 1. 安装iSCSI软件,Linux下主流的iSCSI软件有多种,比如open-iscsi、tgt等,这里我们以open-iscsi为例; 2. 配置iSCSI服务器参数,包括iSCSI服务名称、存储密码等; 3. 创建iSCSI Target,这是iSCSI存储的核心部分,它是定义好的LUN逻辑单元映射到物理存储单元的过程; 4. 配置iSCSI Target的参数,包括存储IP地址、端口等; 5. 配置iSCSI Initiator,这是客户端连接iSCSI Target的过程; 6. 测试iSCSI存储的可用性。 综上,搭建iSCSI服务器并不是很复杂,但是需要较多的Linux操作技能。如果您不熟悉Linux操作,建议参考相关的教程或请专业技术人员操作。 ### 回答3: iSCSI是基于以太网的存储网络协议,可以将存储器虚拟化为IP网络资源。Linux搭建iSCSI服务器可以提供高效、稳定、灵活的存储资源服务,并且可以支持多种操作系统的访问,如Windows、Linux、Unix等。 步骤如下: 1. 安装iSCSI-target软件 Linux上的iSCSI-target软件有多种可选,如SCST、tgt、LIO等。在这里以tgt为例,它是Linux下使用最广泛的一个iSCSI-target软件。 在Ubuntu中,可以使用命令sudo apt-get install tgt安装tgt软件包。在CentOS中,可以使用命令yum install scsi-target-utils安装。 2. 配置tgt tgt的配置文件为/etc/tgt/targets.conf,在配置文件中,首先需要定义一个iSCSI Target,如下所示: <target iqn.2019-12.com.example:server.target1> backing-store /dev/sdb # 这里指定了iSCSI Target的存储设备 initiator-address 192.168.0.10 # 指定发起者的IP地址 incominguser user password # 指定iSCSI登录的用户名和密码 </target> 以上配置文件表示定义了一个名称为iqn.2019-12.com.example:server.target1的iSCSI Target,使用/dev/sdb设备作为存储设备,指定发起者IP地址为192.168.0.10。同时定义了一个iSCSI登录的用户名和密码。 3. 启动tgt服务 在tgt服务配置好后,需要使用命令systemctl start tgt启动tgt服务,使之生效。同时可以使用命令systemctl enable tgt设置开机启动服务。 4. 配置发起者 在Windows中,可以使用Microsoft iSCSI Initiator软件来作为iSCSI客户端进行连接。在Linux中,可以使用open-iscsi软件包来配置iSCSI客户端。 在Ubuntu中,可以使用命令sudo apt-get install open-iscsi安装open-iscsi软件包,在CentOS中,可以使用命令yum install iscsi-initiator-utils安装。 在配置iSCSI Initiator时,需要指定以下参数: - 目标iSCSI Target的名称或IP地址 - 登录iSCSI Target时需要用到的用户名和密码 - iSCSI Target的LUN ID(逻辑单元号),表示iSCSI Target中的哪个存储设备 对于open-iscsi,在Ubuntu中配置文件为/etc/iscsi/initiatorname.iscsi,在CentOS中为/etc/iscsi/initiatorname.iscsi,在配置文件中定义以下配置项: InitiatorName=iqn.2020-01.com.example:client # 定义iSCSI Initiator的名称 NodeStartUp=automatic # 设置开机启动 在配置iSCSI Initiator后,可以使用命令iscsiadm -m discovery -P1来发现iSCSI Target。使用命令iscsiadm -m node -l可以登录iSCSI Target,并使用命令lsblk来查看iSCSI Target中的存储设备。 总结 搭建Linux iSCSI服务器并不复杂,需要操作者掌握基本的Linux系统操作和熟悉iSCSI的相关知识。通过一个简单的例子,我们可以了解到如何安装iSCSI-target软件、配置tgt,并使用iSCSI Initiator来连接iSCSI Target。同时,还需注意一些安全和性能的问题,如防火墙设置、安全登录、并发连接等,以保障服务的可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值