zoukankan      html  css  js  c++  java
  • iSCSI 服务器搭建

    一、简介

    • SCSI(Small Computer System Interface),小型计算机系统接口,是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI 标准定义命令、通信协议以及实体的电气特性(换成 OSI 的说法,就是占据物理层、链接层、套接层、应用层),最大部分的应用是在存储设备上(例如硬盘、磁带机),除外,SCSI 可以连接的设备包括有扫描仪、光学设备(像 CD、DVD)、打印机等等,SCSI 命令中有条列出支持的设备 SCSI 周边设备。理论上,SCSI 不可能连接所有的设备,所以有“1Fh - unknown or no device type”这个参数存在
    • iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet 小型计算机系统接口,又称为 IP-SAN,是一种基于因特网及 SCSI-3 协议下的存储技术,由 IETF 提出,并于 2003 年 2 月 11 日成为正式的标准。与传统的 SCSI 技术比较起来,iSCSI 技术有以下三个革命性的变化:
      • 把原来只用于本机的 SCSI 协议透过 TCP/IP 网络发送,使连接距离可作无限的地域延伸
      • 连接的服务器数量无限(原来的 SCSI-3 的上限是 15)
      • 由于是服务器架构,因此也可以实现在线扩容以至动态部署
    • 个人理解:
      • iscsi 的存储单元表现为硬盘的形式(网络硬盘)
      • SMB 和 NFS 服务是基于文件系统的数据共享,而 iscsi 基于整体的存储块,要使用该存储单元需要客户端通过 TCP/IP 协议远程连接,并映射为本地磁盘

    二、服务端配置

    1. 准备存储空间

    • 硬盘形式:VMware 中编辑虚拟机设置,添加一块硬盘(/dev/sdb
    $ lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   20G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   19G  0 part
      ├─centos-root 253:0    0   17G  0 lvm  /
      └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    sdb               8:16   0    1G  0 disk  # 新添加的硬盘
    sr0              11:0    1  4.4G  0 rom
    $ 
    
    • 文件形式:dd申请空间
    $ dd if=/dev/zero of=/opt/disk.img bs=1024k count=512
    记录了512+0 的读入
    记录了512+0 的写出
    536870912字节(537 MB)已复制,2.49767 秒,215 MB/秒
    $ ls -lh /opt/
    总用量 512M
    -rw-r--r--. 1 root root 512M 9月  27 09:45 disk.img
    

    2. 安装 iscsi 服务端

    $ yum install targetd targetcli -y
    # 创建iscsi磁盘
    $ targetcli
    targetcli shell version 2.1.53
    /> 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]
    /> /backstores/block create idisk1 /dev/sdb
    Created block storage object idisk1 using /dev/sdb.
    /> /backstores/fileio create idisk2 /opt/disk.img
    Created fileio idisk2 with size 536870912
    /> ls
    o- / ................................................................................... [...]
      o- backstores ........................................................................ [...]
      | o- block ............................................................ [Storage Objects: 1]
      | | o- idisk1 ................................... [/dev/sdb (1.0GiB) write-thru deactivated]
      | |   o- alua ............................................................. [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
      | o- fileio ........................................................... [Storage Objects: 1]
      | | o- idisk2 ............................ [/opt/disk.img (512.0MiB) write-back deactivated]
      | |   o- alua ............................................................. [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
      | o- pscsi ............................................................ [Storage Objects: 0]
      | o- ramdisk .......................................................... [Storage Objects: 0]
      o- iscsi ...................................................................... [Targets: 0]
      o- loopback ................................................................... [Targets: 0]
    # 创建服务端程序
    /> /iscsi create iqn.2021-09.pip.cc:server
    Created target iqn.2021-09.pip.cc:server.
    Created TPG 1.
    Global pref auto_add_default_portal=true
    Created default portal listening on all IPs (0.0.0.0), port 3260.
    /> ls
    o- / ................................................................................... [...]
      o- backstores ........................................................................ [...]
      | o- block ............................................................ [Storage Objects: 1]
      | | o- idisk1 ................................... [/dev/sdb (1.0GiB) write-thru deactivated]
      | |   o- alua ............................................................. [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
      | o- fileio ........................................................... [Storage Objects: 1]
      | | o- idisk2 ............................ [/opt/disk.img (512.0MiB) write-back deactivated]
      | |   o- alua ............................................................. [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
      | o- pscsi ............................................................ [Storage Objects: 0]
      | o- ramdisk .......................................................... [Storage Objects: 0]
      o- iscsi ...................................................................... [Targets: 1]
      | o- iqn.2021-09.pip.cc:server ................................................... [TPGs: 1]
      |   o- tpg1 ......................................................... [no-gen-acls, no-auth]
      |     o- acls .................................................................... [ACLs: 0]  # 创建客户端连接器
      |     o- luns .................................................................... [LUNs: 0]  # 创建服务卷
      |     o- portals .............................................................. [Portals: 1]
      |       o- 0.0.0.0:3260 ............................................................... [OK]
      o- loopback ................................................................... [Targets: 0]
    # 创建服务卷:磁盘做成服务卷才能被客户端识别
    /> cd /iscsi/iqn.2021-09.pip.cc:server/tpg1/
    /iscsi/iqn.20...c:server/tpg1> luns/ create /backstores/block/idisk1
    Created LUN 0.
    /iscsi/iqn.20...c:server/tpg1> luns/ create /backstores/fileio/idisk2
    Created LUN 1.
    /iscsi/iqn.20...c:server/tpg1> ls
    o- tpg1 ............................................................... [no-gen-acls, no-auth]
      o- acls .......................................................................... [ACLs: 0]
      o- luns .......................................................................... [LUNs: 2]
      | o- lun0 ..................................... [block/idisk1 (/dev/sdb) (default_tg_pt_gp)]
      | o- lun1 ............................... [fileio/idisk2 (/opt/disk.img) (default_tg_pt_gp)]
      o- portals .................................................................... [Portals: 1]
        o- 0.0.0.0:3260 ..................................................................... [OK]
    # 创建客户端连接器(启用chap认证:验证客户端身份)
    /iscsi/iqn.20...c:server/tpg1> acls/ create iqn.2021-09.pip.cc:client
    Created Node ACL for iqn.2021-09.pip.cc:client
    Created mapped LUN 1.
    Created mapped LUN 0.
    /iscsi/iqn.20...c:server/tpg1> cd acls/iqn.2021-09.pip.cc:client/
    /iscsi/iqn.20...pip.cc:client> set auth userid=test
    Parameter userid is now 'test'.
    /iscsi/iqn.20...pip.cc:client> set auth password=112233445566  # 密码要在[12,16]范围内
    Parameter password is now '112233445566'.
    /iscsi/iqn.20...pip.cc:client> exit
    Global pref auto_save_on_exit=true
    Configuration saved to /etc/target/saveconfig.json
    # 启动targetd服务
    $ systemctl restart targetd
    $ systemctl enable targetd
    Created symlink from /etc/systemd/system/multi-user.target.wants/targetd.service to /usr/lib/systemd/system/targetd.service.
    $ ss -anpt | grep 3260
    LISTEN     0      256          *:3260                     *:*
    

    三、客户端配置

    1. Linux 客户端

    # 安装客户端程序 iscsi-initiator-utils
    $ yum -y install iscsi-initiator-utils
    $ ls /etc/iscsi/
    initiatorname.iscsi  iscsid.conf
    $ vi /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2021-09.pip.cc:client  # 定义客户端连接器名称
    $ vi /etc/iscsi/iscsid.conf
    node.session.auth.authmethod = CHAP  # 启用chap认证
    node.session.auth.username = test
    node.session.auth.password = 112233445566
    # 启动iscsid服务
    $ systemctl restart iscsid
    $ systemctl enable iscsid
    # 发现存储服务器
    $ iscsiadm -m discovery -t st -p 192.168.11.60
    192.168.11.60:3260,1 iqn.2021-09.pip.cc:server
    # 登录存储服务器
    $ iscsiadm -m node -T iqn.2021-09.pip.cc:server -p 192.168.11.60 --login
    Logging in to [iface: default, target: iqn.2021-09.pip.cc:server, portal: 192.168.11.60,3260] (multiple)
    Login to [iface: default, target: iqn.2021-09.pip.cc:server, portal: 192.168.11.60,3260] successful.
    # 使用
    $ lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   20G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   19G  0 part
      ├─centos-root 253:0    0   17G  0 lvm  /
      └─centos-swap 253:1    0    2G  0 lvm
    sdb               8:16   0    1G  0 disk  # *
    sdc               8:32   0  512M  0 disk  # *
    sr0              11:0    1  4.4G  0 rom
    

    2. Windows 客户端

    • 打开:控制面板 / 所有控制面板项 / 管理工具 / iSCSI 发起程序

    配置:

    连接方式一:

    连接方式二:

    配置卷:

  • 相关阅读:
    常见的位运算技巧总结(膜wys)
    BZOJ1878:[SDOI2009]HH的项链
    BZOJ4300:绝世好题
    BZOJ1298:[SCOI2009]骰子的学问
    BZOJ2748:[HAOI2012]音量调节
    BZOJ1951:[SDOI2010]古代猪文
    BZOJ1002:[FJOI2007]轮状病毒
    BZOJ1081:[SCOI2005]超级格雷码
    BZOJ2595:[WC2008]游览计划
    BZOJ1190:[HNOI2007]梦幻岛宝石
  • 原文地址:https://www.cnblogs.com/lb477/p/15342319.html
Copyright © 2011-2022 走看看