zoukankan      html  css  js  c++  java
  • Linux ISCSI配置

    一、简介

    iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

    iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。

    iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。

    完整的iSCSI系统的拓扑结构如下:

    二、实验环境

    操作系统:CentOS release 6.3 (Final)

    iSCSI Target:192.168.1.21 / scsi-target-utils-1.0.24-12.el6_5.i686

    iSCSI Initiator:192.168.1.22 / iscsi-initiator-utils-6.2.0.873-10.el6.i686

    防火墙已关闭/iptables: Firewall is not running.

    SELINUX=disabled

    三、准备工作

    iSCSI可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition)、物理硬盘、raid设备、逻辑卷等,下面我们将准备其中的几种来测试,其他类型大家可以自行测试。

    3.1 模拟镜像

    在iSCSI Target的/srv目录下创建一个200M大小的镜像文件。

    # mkdir /srv/iscsi

    # dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200

    # ll -lh /srv/iscsi/disk1.img

    3.2 建立分区

    创建一个500M大小的分区/dev/sdb1.

    # fdisk /dev/sdb

    3.3 创建逻辑卷

    创建一个800M大小的LV.

    # pvcreate /dev/sdc

    # vgcreate vg0 /dev/sdc

    # lvcreate -L 800M -n lv1 vg0

    四、配置iSCSI Target

    4.1 安装tgt

    CentOS 自带了scsi-target-utils 软件,我们使用该软件进行target设置。

    # yum -y install scsi-target-utils

    4.2 配置tgt

    tgt的主配置文件为/etc/tgt/targets.conf,下面我们来设置改文件。

    在该文件最后新增以下设置:

     

    <target iqn.2014-07.dev.iscsi-target:iscsidisk>

        backing-store /srv/iscsi/disk1.img

        backing-store /dev/sdb1

        backing-store /dev/vg0/lv1

        backing-store /dev/sdd

    </target>

     

    说明:

    iqn = iSCSI Qualified Name

    iSCSI target的名称规则如下:

    iqn.2014-07.dev.iscsi-target:iscsidisk

    iqn.年份-月份.域名反写.设备识别

    每个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN),这个实验中有4个LUN。

    其他高级设置如initiator-address、incominguser,大家自行查资料。

    4.3 启动iSCSI target

    # /etc/init.d/tgtd start

    # chkconfig tgtd on

    # netstat -tulnp|grep tgt

    4.4 查看iSCSI target

    # tgt-admin –show

    LUN0 是控制器,可以看到各个LUN的大小和磁盘路径。

    至此,iSCSI Target 设定完毕。

    五、配置iSCSI Initiator

    5.1 安装initiator

    # yum -y install iscsi-initiator-utils

    5.2 设置开机启动

    # chkconfig iscsid on

    # chkconfig iscsi on

    5.3 配置文档

    initiator的配置文档位于/etc/iscsi/,该目录下有两个文件,initiatorname.iscsi 和iscsid.conf,

    其中iscsid.conf 是其配置文件,initiatorname.iscsi 是标记了initiator的名称,它的默认名称是InitiatorName=iqn.1994-05.com.redhat:b45be5af6021,我们可以根据实际情况进行更改,比较好区分,这里我们修改为InitiatorName=iqn.2014-07.dev.iscsi-initiator:initiator。

    因为在target里面,我们并没有设置访问限制,所以iscsid.conf 文件并不需要修改。

    5.4 侦测target

    如果我们事先不知道目标主机的target名称,我们就需要进行侦测,下面来讲解。

    # iscsiadm -m discovery -t sendtargets -p 192.168.1.21

    说明:

    -m discovery  //侦测target

    -t sendtargets  //通过iscsi协议

    -p IP:port  //指定target的IP和port,不写port的话,默认为3260

    5.5 查看nodes

    iscsiadm 侦测到的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动/etc/init.d/iscsi 就能够在下次开机时,自动连接到正确的target了。

    # ll -R /var/lib/iscsi/nodes/

    侦测信息都写入了/var/lib/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.1.21,3260,1/default 文件中了。

    5.6 连接target

    查看目前系统上面所有的target

    # iscsiadm -m node

    登录target

    # iscsiadm -m node -T iqn.2014-07.dev.iscsi-target:iscsidisk –login

    5.7 查看磁盘情况

    # fdisk –l

    可以看到,initiator 上面多了四块硬盘,大小和target上的LUN一致。这时你就可以像使用本地磁盘一样使用这些iSCSI设备了,下面我们来测试。

    5.8 将/dev/sdb 和/dev/sdc 创建成LV挂载使用

    创建LV

    # pvcreate /dev/sdb /dev/sdc

    # vgcreate iscsi /dev/sdb /dev/sdc

    # lvcreate -L 1G -n iscsilv iscsi

    格式化并挂载

    # mkfs.ext4 /dev/iscsi/iscsilv

    # mkdir /mnt/iscsi

    # vi /etc/fstab

    创建测试文件

    挂载成功,创建测试文件成功。

    5.9 重启测试

    测试成功。

    5.10 查看target信息

    # tgt-admin --show

     

    可以看到,此时使用该target的initiator 为iqn.2014-07.dev.iscsi-initiator:initiator,也就是我们上面更改的initiatorname,IP地址为192.168.1.22。

    至此,iSCSI 置完毕。

  • 相关阅读:
    css3学习笔记之效果
    css3学习笔记之2D转换
    css3学习笔记之文本效果
    css3学习笔记之渐变
    css3学习笔记之背景
    css3学习笔记之边框
    AngularJs 入门参考代码
    环形矩阵
    Qt编写串口通信程序全程图文讲解[转]
    Qt操作Sqlite数据库
  • 原文地址:https://www.cnblogs.com/guipeng/p/7541675.html
Copyright © 2011-2022 走看看