• Linux----------iscsi网络存储即共享硬盘


    一、ISCSI简介
    SCSI 即小型计算机系统接口(Small Computer System Interface;简写:SCSI),一种用于计算机和外部设备之间(硬盘、光驱、软驱、打印机等)系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准,它是各种计算机和外部设备之间的接口标准。

    iSCSI是由Cisco和IBM发起的,它将SCSI命令封装在TCP/IP包里,并使用一个iSCSI帧头。它基于IP协议栈,假设以不可靠的网络为基础,依靠TCP恢复丢失的数据包。

    背景:
    相比直连存储,网络存储解决方案能够更加有效地共享,整合和管理资源。从服务器为中心的存储转向网络存储,一直依赖于数据传输技术的发展,速度要求与直连存储相当,甚至更高,同事需要克服并行SCSI固有的局限性。

    所有数据在没有文件系统格式化的情况下,都以块的形式存储于磁盘上。并行SCSI将数据以块的形式传送至存储,但是,对于网络它的用处相当有限,因为线缆不能超过25m,而且最多连接16个设备;

    光纤通道(FC,Fiber Channel,跑FC协议)是目前SAN的主导架构,它在专门的高速网络上分离存储资源。光纤通道协议与互联技术起源于满足高性能传送块数据的需求,同时克服直连存储的连接和距离限制。通常光纤通道设备连接距离可达到10000米,甚至数十万米,并且对于连接在SAN之上的设备没有数量要求。

    与SAN不同,NAS将数据以文件的形式传输并且可以直接连接至IP网络。部署NAS设备传送数据库块数据,使用基于SCSI的光纤通道协议,比Server Message Block(SMB)协议更加高效。

    iSCSI是一种使用TCP/IP协议,在现有IP网络上传输SCSI块命令的工业标准,它是一种在现有的IP网络上无需安装单独的光纤网络即可同时传输消息和块数据的突破性技术。iSCSI基于应用非常广泛的TCP/IP协议,将SCSI命令/数据块封装为iSCSI包,再封装至TCP 报文,然后封装到IP 报文中。iSCSI通过TCP面向连接的协议来保护数据块的可靠交付。由于iSCSI基于IP协议栈,因此可以在标准以太网设备上通过路由或交换机来传输。

    二、搭建ISCSI

    准备两台Linux服务器

    IP 安装的软件
    172.25.0.10 iscsi target端:targetcli*
    172.25.0.11 iscsi客户端:iscsi-init*

    要求:
    配置 server 提供一个 iSCSI 共享服务;磁盘名为 iqn.2014-09.com.example:server,服务端口为 3260,使用 iscsi_store 作为其后端卷其大小为 3G,此服务只能被 desktop.example.com 访问
    配置 desktop 使其能连接在 server 上提供的 iscsi;iSCSI 设备在系统启动的期间自动加载块设备 iSCSI 上包含一个大小 1500MiB 的分区,并格式化为 ext4,此分区挂载在/mnt/netdev 上同时在系统启动的期间自动加载

    • Server:
    //安装服务端主程序
    yum -y install targetcli*
    lsblk
    
    //分出3G的分区用于共享
    fdisk /dev/vdb
    +3G
    partprobe /dev/vdb
    
    //交互式配置
    [root@server0 ~]# targetcli
    Warning: Could not load preferences file /root/.targetcli/prefs.bin.
    targetcli shell version 2.1.fb34
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.
    /> ls
    o- / ................................................................................................. [...]
    o- backstores ...................................................................................... [...]
    | o- block .......................................................................... [Storage Objects: 0]
    | o- fileio ......................................................................... [Storage Objects: 0]
    | o- pscsi .......................................................................... [Storage Objects: 0]
    | o- ramdisk ........................................................................ [Storage Objects: 0]
    o- iscsi .................................................................................... [Targets: 0]
    o- loopback ................................................................................. [Targets: 0]
    /> cd backstores/block
    /backstores/block> create iscsi_store /dev/vdb1
    Created block storage object iscsi_store using /dev/vdb1.
    /backstores/block> cd /iscsi
    /iscsi> create iqn.2014-09.com.example:server
    Created target iqn.2014-09.com.example:server.
    Created TPG 1.
    /iscsi> ls
    o- iscsi ...................................................................................... [Targets: 1]
    o- iqn.2014-09.com.example:server .............................................................. [TPGs: 1]
    o- tpg1 ......................................................................... [no-gen-acls, no-auth]
    o- acls .................................................................................... [ACLs: 0]
    o- luns .................................................................................... [LUNs: 0]
    o- portals .............................................................................. [Portals: 0]
    /iscsi> cd iqn.2014-09.com.example:server/tpg1/acls
    /iscsi/iqn.20...ver/tpg1/acls> create iqn.2014-09.com.example:desktop
    Created Node ACL for iqn.2014-09.com.example:desktop
    /iscsi/iqn.20...ver/tpg1/acls> cd ../luns
    /iscsi/iqn.20...ver/tpg1/luns> create /backstores/block/iscsi_store
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL iqn.2014-09.com.example:desktop
    /iscsi/iqn.20...ver/tpg1/luns> cd ../portals
    /iscsi/iqn.20.../tpg1/portals> create 172.25.0.11 3260
    Using default IP port 3260
    Created network portal 172.25.0.11:3260.
    /iscsi/iqn.20.../tpg1/portals> cd /
    /> ls
    o- / ................................................................................................. [...]
    o- backstores ...................................................................................... [...]
    | o- block .......................................................................... [Storage Objects: 1]
    | | o- iscsi_store ............................................. [/dev/vdb1 (3.0GiB) write-thru activated]
    | o- fileio ......................................................................... [Storage Objects: 0]
    | o- pscsi .......................................................................... [Storage Objects: 0]
    | o- ramdisk ........................................................................ [Storage Objects: 0]
     o- iscsi .................................................................................... [Targets: 1]
    | o- iqn.2014-09.com.example:server ............................................................ [TPGs: 1]
    | o- tpg1 ....................................................................... [no-gen-acls, no-auth]
    | o- acls .................................................................................. [ACLs: 1]
    | | o- iqn.2014-09.com.example:desktop .............................................. [Mapped
    LUNs: 1]
    | | o- mapped_lun0 ................................................... [lun0 block/iscsi_store (rw)]
    | o- luns .................................................................................. [LUNs: 1]
    | | o- lun0 .......................................................... [block/iscsi_store (/dev/vdb1)]
    | o- portals ............................................................................ [Portals: 1]
    | o- 172.25.0.11:3260 ......................................................................... [OK]
    o- loopback ................................................................................. [Targets: 0]
    /> exit
    
    //启动target服务并加入自启动
    systemctl enable target.service
    systemctl restart target.service
    
    //加入防火墙
    firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 port
    port=3260 protocol=tcp accept' --permanent
    firewall-cmd --reload
    firewall-cmd --list-all
    
    • 客户机:
    //安装客户端iscsi程序
    yum -y install iscsi-init*
    man iscsiadm
    
    //修改iscsi配置文件,并连接上主服务器
    iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 –discover
    vim /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2014-09.com.example:desktop
    systemctl restart iscsid.service
    systemctl enable iscsid.service
    iscsiadm --mode node --targetname iqn.2014-09.com.example:server --portal 172.25.0.11:3260 –login
    
    //连接成功后查看磁盘会发现多个新磁盘,然后根据使用需求挂载并使用
    lsblk
    fdisk /dev/sda
    +1500M
    partprobe /dev/sda
    mkfs.ext4 /dev/sda1
    mkdir /mnt/netdev
    blkid
    
    vim /etc/fstab
    UUID /mnt/netdev ext4 defaults,_netdev 0 0
    mount -a
    
    //挂载上就可以正常使用了
    df -Th
    
  • 相关阅读:
    VBS操作Excel常见方法
    判断文件和文件夹是否存在
    vbs获取自身文件名,不带格式,不带路径
    vbs,修改文件名
    UiPath字符串函数的介绍和使用
    linux各个目录的作用
    Linux下设置memcached访问IP
    python单继承与多继承
    粘包,文件传输
    网络编程
  • 原文地址:https://www.cnblogs.com/wangchengshi/p/10981050.html
Copyright © 2020-2023  润新知