什么是ISCSI

iscsi--internet small computer system interface互联小型计算机系统接口,将数据包封装在TCP/IP协议中传输,使用普通网线和网络设备即可实现,相对于FC-SAN存储来说更廉价。

ISCSI系统结构

iscsi一般分为服务器端和客户端,服务器端负责管理本地磁盘或磁盘陈列,客户端则是用来发现并连接服务器端获得访问iscsi共享盘。

centos7中服务端和客户端所需要的安装包

centos7 软件包
服务端 targetcli, targetd,scsi-target-utils
客户端 iscsi-initiator-utils

实验环境

角色 主机名 IP
服务端 master 192.168.138.200
客户端 slave 192.168.138.201

服务器端配置

  • 准备一块磁盘并分好区,先不用格式化
  • 运行targetcli命令,给要要共享的磁盘定义名字
# targetcli
targetcli shell version 2.1.fb46
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 slave /dev/sdb
Created block storage object slave using /dev/sdb.
  • 创建iqn

    命名在同一子网内确保是唯一的,命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名称
/backstores/block> cd /iscsi
/iscsi> create iqn.2018-02.com.frank.master:slave
Created target iqn.2018-02.com.frank.master:slave.
Created TPG 1.
Default portal not created, TPGs within a target cannot share ip:port.
  • 创建acl允许ISCSI客户机连接
/iscsi> cd iqn.2018-02.com.frank.master:slave/tpg1/acls
/iscsi/iqn.20...ave/tpg1/acls> create iqn.2018-02.com.frank.master:slave
Created Node ACL for iqn.2018-02.com.frank.master:slave
/iscsi/iqn.20...ave/tpg1/acls> ls
o- acls .................................................... [ACLs: 1]
o- iqn.2018-02.com.frank.master:slave ............. [Mapped LUNs: 0]
  • 创建lun(target块设备的逻辑单元) 把块设备和iqn绑定
/iscsi> cd iqn.2018-02.com.frank.master:slave/tpg1/luns
/iscsi/iqn.20...ave/tpg1/luns> create /backstores/block/slave
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2018-02.com.frank.master:slave
/iscsi/iqn.20...ave/tpg1/luns> ls
o- luns .................................................... [LUNs: 1]
o- lun0 ................ [block/slave (/dev/sdb) (default_tg_pt_gp)]
  • 设置监听地址和端口
/iscsi/iqn.20.../tpg1/portals> create 192.168.138.200 ip_port=3260
Using default IP port 3260
Created network portal 192.168.138.200:3260.

这里要注意的是,使用ls查看一下是不是已经有0.0.0.0 3260这个条目,如果有删除掉再创建,不然会报错,还有一点的是如果 tgtd服务正在开启的情况下也无法创建,必须先停掉tgtd这个服务。

  • 设置登录验证
/iscsi/iqn.20....master:slave> set auth userid=test
Parameter userid is now 'test'.
/iscsi/iqn.20....master:slave> set auth password=test
Parameter password is now 'test'.

到这里服务器的配置就算完成了,最后看一下配置完成的状态

/> ls
o- / ........................................................................... [...]
o- backstores ................................................................ [...]
| o- block .................................................... [Storage Objects: 1]
| | o- slave ............................. [/dev/sdb (20.0GiB) write-thru activated]
| | o- alua ..................................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ......................... [ALUA state: Active/optimized]
| o- fileio ................................................... [Storage Objects: 0]
| o- pscsi .................................................... [Storage Objects: 0]
| o- ramdisk .................................................. [Storage Objects: 0]
o- iscsi .............................................................. [Targets: 1]
| o- iqn.2018-02.com.frank.master:slave .................................. [TPGs: 1]
| o- tpg1 ................................................. [no-gen-acls, no-auth]
| o- acls ............................................................ [ACLs: 1]
| | o- iqn.2018-02.com.frank.master:slave ..................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................................... [lun0 block/slave (rw)]
| o- luns ............................................................ [LUNs: 1]
| | o- lun0 ........................ [block/slave (/dev/sdb) (default_tg_pt_gp)]
| o- portals ...................................................... [Portals: 1]
| o- 192.168.138.200:3260 ............................................... [OK]
o- loopback ........................................................... [Targets: 0]
/>
  • 启动服务端
# systemctl start tgtd.service

客户端配置

  • 发现设备
# iscsiadm -m discovery -t sendtargets -p 192.168.138.200
iscsiadm: This command will remove the record [iface: default,
target: iqn.2018-04.com.frank.www:iscsi1, portal: 192.168.138.200,3260],
but a session is using it. Logout session then rerun command to remove record.
192.168.138.200:3260,1 iqn.2018-02.com.frank.master:slave
  • 连接设备
# iscsiadm -m node -T iqn.2018-02.com.frank.master:slave -p 192.168.138.200 --login
Logging in to [iface: default, target: iqn.2018-02.com.frank.master:slave,
portal: 192.168.138.200,3260] (multiple)
Login to [iface: default, target: iqn.2018-02.com.frank.master:slave,
portal: 192.168.138.200,3260] successful.
  • 查看设备
fdsik -l

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
Disk label type: gpt
# Start End Size Type Name # fdisk /dev/sdc Command (m for help): n
Partition number (1-128, default 1):
First sector (34-41943006, default 8192):
Last sector, +sectors or +size{K,M,G,T,P} (8192-41943006, default 41943006): +10G
Created partition 1 Command (m for help): n
Partition number (2-128, default 2):
First sector (34-41943006, default 20979712):
Last sector, +sectors or +size{K,M,G,T,P} (20979712-41943006, default 41943006):
Created partition 2 Command (m for help): w
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.
[root@slave ~]# fdisk /dev/sdc
WARNING: fdisk GPT support is currently new, and therefore in an
experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Command (m for help): p Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
Disk label type: gpt # Start End Size Type Name
1 8192 20979711 10G Linux filesyste
2 20979712 41943006 10G Linux filesyste
  • 格式化分区并挂载
# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=610351 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2441402, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@slave ~]# mkfs.xfs /dev/sdc2
meta-data=/dev/sdc2 isize=512 agcount=4, agsize=610291 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2441162, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mount /dev/sdc1 /iscsi/
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 37G 11G 27G 28% /
devtmpfs devtmpfs 712M 0 712M 0% /dev
tmpfs tmpfs 723M 12K 723M 1% /dev/shm
tmpfs tmpfs 723M 72M 651M 10% /run
tmpfs tmpfs 723M 0 723M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 184M 831M 19% /boot
tmpfs tmpfs 145M 0 145M 0% /run/user/0
/dev/sdc1 xfs 9.4G 33M 9.3G 1% /iscsi

centos7配置iscsi的更多相关文章

  1. CentOS7 配置ISCSI targetcli 共享存储

  2. CentOS7系列--3.2CentOS7中配置iSCSI服务

    CentOS7配置iSCSI服务 在网络上的存贮服务为iSCSI Target,而连接到iSCSI Target服务的叫iSCSI Initiator 1. 直接配置iSCSI Target服务 1. ...

  3. targetcli配置iSCSI

    概述:这篇文章来介绍LIO下的用户态工具targetcli来配置iSCSI服务 虚拟机环境:centos7.x(内核版本3.10.0-862.el7.x86_64) IP分别为192.168.1.20 ...

  4. 配置iSCSI部署网络存储

    iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研 ...

  5. CentOS 6.5下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能 ...

  6. CentOS 6.3下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  7. Centos7 配置网络步奏详解

    Centos7 配置网络步奏详解 编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-ens01 备注:这里的ens01不是所有系统都叫这个,有的可能叫其他 ...

  8. centos7配置开启无线网卡,重启防火墙

    centos7配置无线网卡: 在虚拟机为nat的网络连接下(就是默认的那个),centos7默认网卡未激活. 可以设置 文件 /etc/sysconfig/network-scripts/ifcfg- ...

  9. CentOS7.4 ISCSI

    试验机配置: cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) uname -r 3.10.0-693.el7.x86_64 所 ...

随机推荐

  1. python3读取sqlyog配置文件中的MySql密码

    这个人有什么目的?: 我多多少少听过一些安全圈的大牛说到类似的思路,大意是可以通过扫描各种程序和服务的配置文件(比如SVN的文件,RSYNC的配置文件等), 从中发现敏感信息,从而找到入侵的突破口.沿 ...

  2. 学号 20175223 《Java程序设计》第 5 周学习总结

    目录 教材学习内容总结 教材学习中的问题和解决过程 1. 在 jdb 调试时使用命令行参数. 代码调试中的问题和解决过程 1. 在jdb调试时通过命令行传入参数 2. "可能尚未初始化变量& ...

  3. NOIP2007奖学金题解——洛谷1093

    题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高 ...

  4. 查找数组中重复的唯一元素+时间复杂度O(n)+空间复杂度O(1)

    这是我BIGO前端面试时,面试官给我出的一道题,题目是长度为N的数组,元素大小范围在[1,N-1],只有一个重复的元素,用O(n)的时间复杂度和O(1)的空间复杂度找出来这个重复的元素, 大致思路 1 ...

  5. python笔记——随手记

    1.max与min函数的使用min(0)返回该矩阵中每一列的最小值 min(1)返回该矩阵中每一行的最小值 max(0)返回该矩阵中每一列的最大值 max(1)返回该矩阵中每一行的最大值2.argso ...

  6. 【原创】Arduino入门基础知识总结

     一.概述   Arduino是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件. Arduino可以用来开发交互产品,比如它可以读取大量的开 ...

  7. div不固定高度垂直居中

    父容器的css属性 display:table;overflow:hidden;子容器的css属性 vertical-align:middle;display:table-cell; <!DOC ...

  8. 模拟setTimeOut

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. 基于selenium+phantomJS的动态网站全站爬取

    由于需要在公司的内网进行神经网络建模试验(https://www.cnblogs.com/NosenLiu/articles/9463886.html),为了更方便的在内网环境下快速的查阅资料,构建深 ...

  10. Findout之为什么公司内部不能使用SSH协议连接外网服务器

    今天在公司学习Linux的过程中,想试着像在Windows中操作Github一样对代码进行克隆,只不过是使用命令行的方式.根据一篇博文(Linux下初次使用Github配置)进行了配置,当我进行到第二 ...