• Centos 6.5 x64创建并挂载使用iscsi共享磁盘


    前景摘要:NFS或iSCSI,哪个更好?
    文件 vs 块
    NFS使用文件级别的实施,服务器或存储阵列托管整个文件系统,客户到文件系统上读写文件,可以在阵列端对主存储数据进行重复数据删除。
    iSCSI和FC则使用数据块,存储阵列向客户提供数据块集合,赋予原始存储数据一定的格式化,而不去管文件系统究竟如何使用。
    从网络角度看,NFS和iSCSI也存在明显的差异。采用NFS,额外所需的吞吐量和冗余主要是通过网络链路汇聚来获得,还需小心注意去平衡阵列端多个IP地址别名上的存储连接,以确保负载均衡能够生效。另一方面,iSCSI内置了多路径能力,可提供更多的高级负载均衡算法,在多条服务器和阵列端存储路径上智能化地平衡存储流量。
    关于现代NFS实施的一个常见误区是,认为其实施是基于UDP/IP的。这一误解通常来自NFS v2完全基于UDP这一事实。尽管UDP是一个相对低延迟的IP传输协议,但它缺少安全和交付机制,在跟踪目前的TCP/IP网络时难以保障状态连接所带来的好处。而从NFS v3开始,TCP成了它所支持的一个传输协议。

    实验环境:
    scsi服务端(centos 6.5 x64):10.207.0.155
    scsi客户端(centos 6.5 x64):10.207.2.5(挂载端)

    linux initiator client挂载netapp iscsi使用其实也是一样的。

    1、在服务端安装软件并配置好共享的磁盘,首先在虚拟机中新加入一块硬盘,这里添加10G
    [root@server ~]# fdisk -l

    Disk /dev/sda: 10.7 GB, 10737418240 bytes
    255 heads, 63 sectors/track, 1305 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: 0x00000000


    Disk /dev/vda: 53.7 GB, 53687091200 bytes
    255 heads, 63 sectors/track, 6527 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: 0x000cdead

       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1               1        1045     8388608   83  Linux
    /dev/vda2            1045        2089     8388608   83  Linux
    /dev/vda3            2089        2611     4194304   82  Linux swap / Solaris
    /dev/vda4            2611        6528    31456256    5  Extended
    /dev/vda5   *        2612        3134     4194304   83  Linux
    /dev/vda6            3134        6528    27259904   83  Linux

    2、安装scsi服务端软件
    yum install scsi-target-utils -y

    添加scsi共享磁盘
    [root@server ~]# vim /etc/tgt/targets.conf
    default-driver iscsi
    <target iqn.2008-09.com.example:0.155.target1>
        backing-store /dev/sda
    </target>

    ####iqn规范定义格式为iqn.domaindate. reverse.domain.name:optional name,例如:iqn.2008-09.com.example:0.155.target1####

    关闭防火墙和selinux,启动tgt服务
    service tgtd start

    [root@server]# netstat -tlunp
    tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      1634/tgtd 

    3、在客户端安装客户端软件,并设置挂载
    安装客户端软件initiator
    yum install iscsi-initiator-utils -y

    这个安装将iscsid、iscsiadm安装到/sbin目录下,它还将把默认的配置文件安装到/etc/iscsi目录下:
    /etc/iscsi/iscsid.conf 所有刚发起的iSCSI session默认都将使用这个文件中的参数设定。
    /etc/iscsi/initiatorname.iscsi 软件iSCSI initiator的intiator名称配置文件。
    在iscsi启动的时候,iscsid和iscsiadm会读取这两个配置文件。

    [root@client]# iscsi-iname
    iqn.1994-05.com.redhat:a1b5d296688c

    [root@client]# chkconfig iscsi --level 35 on
    [root@client]# chkconfig iscsid --level 35 on

    Open-iSCSI是通过以下iSCSI数据库文件来实现永久配置的:
    Discovery (/var/lib/iscsi/send_targets):在/var/lib/iscsi/send_targets目录下包含iSCSI portals的配置信息,每个portal对应一个文件,文件名为“iSCSI portal IP,端口号”(例如“10.207.0.155,3260”)。
    Node (/var/lib/iscsi/nodes):在/var/lib/iscsi/nodes目录下,生成一个或多个以iSCSI存储服务器上的Target名命名的文件夹,在该文件夹下有一个文件名为“iSCSI portal IP,端口号” (例如“10.207.0.155,3260”)的配置参数文件,该文件中是initiator登录target时要使用的参数,这些参数的设置是从/etc/iscsi/iscsi.conf中的参数设置继承而来的,可以通过iscsiadm对某一个参数文件进行更改(需要先注销到target的登录)。

    查看是否有共享磁盘
    [root@clinet]# iscsiadm -m discovery -t sendtargets -p 10.207.0.155:3260
    10.207.0.155:3260,1 iqn.2008-09.com.example:0.155.target1

    挂载磁盘
    [root@client]# iscsiadm -m node -T iqn.2008-09.com.example:0.155.target1 -p 10.207.0.155 --login
    Logging in to [iface: default, target: iqn.2008-09.com.example:0.155.target1, portal: 10.207.0.155,3260] (multiple)
    Login to [iface: default, target: iqn.2008-09.com.example:0.155.target1, portal: 10.207.0.155,3260] successful.

    ####注意:中间2008-09这段是填写上面查询出来的那个磁盘名####

    查看是否挂载成功
    [root@clinet ~]# fdisk -l

    Disk /dev/sda: 584.7 GB, 584652423168 bytes
    255 heads, 63 sectors/track, 71079 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: 0x000e12af

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1        1045     8388608   82  Linux swap / Solaris
    /dev/sda2   *        1045        1567     4194304   83  Linux
    /dev/sda3            1567        3134    12582912   83  Linux
    /dev/sda4            3134       71080   545782784    5  Extended
    /dev/sda5            3134        4178     8388608   83  Linux
    /dev/sda6            4178        5223     8388608   83  Linux
    /dev/sda7            5223       71080   529002496   83  Linux

    Disk /dev/sdc: 10.7 GB, 10737418240 bytes
    64 heads, 32 sectors/track, 10240 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
    挂载成功后,块设备可以fdisk mkfs挂载使用。

    4、查看iSCSI session信息
    用iscsiadm -m session查看iSCSI session和设备信息
    [root@testpuppet ~]# iscsiadm -m session
    tcp: [2] 10.207.0.155:3260,1 iqn.2008-09.com.example:0.155.target1 (non-flash)

    5、iscsiadm的命令汇总
    iscsiadm是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。

    发现iscsi存储: iscsiadm -m discovery -t st -p ISCSI_IP
    查看iscsi发现记录:iscsiadm -m node
    删除iscsi发现记录:iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP
    登录iscsi存储:iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l
    登出iscsi存储:iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
    显示会话情况:iscsiadm -m session
    登出所有iscsi存储:iscsiadm -m node -U all

    iscsiadm -m discovery -t sendtargets -p 10.207.0.155
    iscsiadm -m node
    iscsiadm -m node -L all
    iscsiadm -m node -T iqn.2001-04.com.example-test -p 10.207.0.155 --login
    iscsiadm -m node -U all
    iscsiadm -m node -T iqn.2001-04.com.example-test -p 10.207.0.155 –logout

  • 相关阅读:
    QMainWindow透明背景
    在Xcode中产看QString的数据
    使用QtConcurrent在线程池中执行网络操作
    QThread和QObject的调用方法总结
    策略模式 C++实现
    【转】单元测试要做多细?
    Mac系统添加QQ邮箱帐号提示无法验证
    Qt半透明对话框
    SVD的几何意义,以及在去噪,推荐系统中的应用
    BP神经网络原理及python实现
  • 原文地址:https://www.cnblogs.com/zyd112/p/6245511.html
Copyright © 2020-2023  润新知