Linux ISCSI服务配置,客户端进行访问

环境配置:

  • server端 172.25.0.11
  • client端 172.25.0.10

配置ISCSI服务端

1、安装软件包

yum install targetcli -y

2、防火墙放行target的端口 3260

[root@server0 ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 3260/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

3、准备本地块设备,也就是准备磁盘

[root@server0 ~]# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 回车
First sector (2048-20971519, default 2048): 回车
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 回车 Command (m for help): p p查看刚刚分好的新区
Disk identifier: 0x6dc8b66f Device Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 83 Linux Command (m for help): w 保存
[root@server0 ~]# partprobe
[root@server0 ~]# lsblk 可以看见系统已经生成sdb1的设备文件
...
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part

创建逻辑卷

[root@server0 ~]# pvcreate /dev/sdb1 ---->创物理卷
Physical volume "/dev/sdb1" successfully created
[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a-- 10.00g 10.00g [root@server0 ~]# vgcreate ISCSI_vg /dev/sdb1 ---->创建名为ISCSI_vg卷组
Volume group "ISCSI_vg" successfully created
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
ISCSI_vg 1 0 0 wz--n- 10.00g 10.00g [root@server0 ~]# lvcreate -n disk1_lv -L 100m ISCSI_vg ---->创建名为disk1_lv的逻辑卷
Logical volume "disk1_lv" created
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
disk1_lv ISCSI_vg -wi-a----- 100.00m

4、创建target,本节重点,也是最不容易理解的地方

首先打开targetcli工具,ls可以看见目前target下没有任何配置

[root@server0 ~]# targetcli
/> 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]
/>

(1)创建名为 iqn.2014-06.com.example.com:server0的target

/> /iscsi create iqn.2014-06.com.example.com:server0
Created target iqn.2014-06.com.example.com:server0.
Created TPG 1
可以看到iscsi创建了一个名为iqn.2014-06.com.example.com:server0的target,并且系统又在底下自动创建了tgp1
/> ls
o- iscsi ................................................................................................ [Targets: 1]
| o- iqn.2014-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 0]
| o- luns .............................................................................................. [LUNs: 0]
| o- portals ........................................................................................ [Portals: 0]
o- loopback ............................................................................................. [Targets: 0
/>

(2)为tgp1定义portals,也就是定义ip和端口

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/portals create 172.25.0.11 3260
Using default IP port 3260
Created network portal 172.25.0.11:3260.
/> ls
| o- iqn.2014-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 0]
| o- luns .............................................................................................. [LUNs: 0]
| o- portals ........................................................................................ [Portals: 1]
| o- 172.25.0.11:3260 ..................................................................................... [OK]
o- loopback ............................................................................................. [Targets: 0]

(3)为target绑定本地块设备,绑定刚刚创建的逻辑卷

首先定义一个block

/> /backstores/block create name=server0.disk1 dev=/dev/ISCSI_vg/disk1_lv
Created block storage object server0.disk1 using /dev/ISCSI_vg/disk1_lv
/> ls
o- / ............................................................................................................. [...]
o- backstores .................................................................................................. [...]
| o- block ...................................................................................... [Storage Objects: 1]
| | o- server0.disk1 ...................................... [/dev/ISCSI_vg/disk1_lv (100.0MiB) write-thru deactivated

为target指定LUN(逻辑单元号),也就是把刚才定义的block分配给target

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/luns create /backstores/block/server0.disk1
Created LUN 0.
/> ls
o- iscsi ................................................................................................ [Targets: 1]
| o- iqn.2014-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 0]
| o- luns .............................................................................................. [LUNs: 1]
| | o- lun0 ....................................................... [block/server0.disk1 (/dev/ISCSI_vg/disk1_lv)]
| o- portals ........................................................................................ [Portals: 1]
| o- 172.25.0.11:3260 ..................................................................................... [OK]
o- loopback ............................................................................................. [Targets: 0

(4)为target设定acl(访问控制列表)

配置只允许名为 iqn.2014-06.com.example:desktop0的客户端访问

/> iscsi/iqn.2014-06.com.example.com:server0/tpg1/acls create iqn.2014-06.com.example:desktop0
Created Node ACL for iqn.2014-06.com.example:desktop0
Created mapped LUN 0.

关闭密码验证

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/ set attribute authentication=0
Parameter authentication is now '0'.

关闭tgp级别的acl节点限制,也就是只针对tgp/acl下的initiator进行限制,而不是整个tgp

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/ set attribute generate_node_acls=0
Parameter generate_node_acls is now '0'.

(5)保存退出

/> saveconfig 配置完毕保存
/> exit 退出

最后配置下来总的列表就是这样

/> ls
o- / ............................................................................................................. [...]
o- backstores .................................................................................................. [...]
| o- block ...................................................................................... [Storage Objects: 1]
| | o- server0.disk1 ........................................ [/dev/ISCSI_vg/disk1_lv (100.0MiB) 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-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 1]
| | o- iqn.2014-06.com.example:desktop0 ......................................................... [Mapped LUNs: 1]
| | o- mapped_lun0 ............................................................. [lun0 block/server0.disk1 (rw)]

| o- luns .............................................................................................. [LUNs: 1]
| | o- lun0 ....................................................... [block/server0.disk1 (/dev/ISCSI_vg/disk1_lv)]
| o- portals ........................................................................................ [Portals: 1]
| o- 172.25.0.11:3260 ..................................................................................... [OK]
o- loopback ............................................................................................. [Targets: 0

服务端配置完成
错误补救:
万一有写错了配置,就删掉重新进行配置,可以看见portals已经没有内容了

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/portals/ delete 172.25.0.11 3260
Deleted network portal 172.25.0.11:3260
/> ls
o- iscsi ................................................................................................ [Targets: 1]
| o- iqn.2014-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 1]
| | o- iqn.2014-06.com.example:desktop0 ......................................................... [Mapped LUNs: 1]
| | o- mapped_lun0 ............................................................. [lun0 block/server0.disk1 (rw)]
| o- luns .............................................................................................. [LUNs: 1]
| | o- lun0 ....................................................... [block/server0.disk1 (/dev/ISCSI_vg/disk1_lv)]
| o- portals ........................................................................................ [Portals: 0]
o- loopback ............................................................................................. [Targets: 0]

重新配置

/> /iscsi/iqn.2014-06.com.example.com:server0/tpg1/portals create 172.25.0.11 3260
Using default IP port 3260
Created network portal 172.25.0.11:3260.
/> ls
| o- iqn.2014-06.com.example.com:server0 ................................................................... [TPGs: 1]
| o- tpg1 ................................................................................... [no-gen-acls, no-auth]
| o- acls .............................................................................................. [ACLs: 1]
| | o- iqn.2014-06.com.example:desktop0 ......................................................... [Mapped LUNs: 1]
| | o- mapped_lun0 ............................................................. [lun0 block/server0.disk1 (rw)]
| o- luns .............................................................................................. [LUNs: 1]
| | o- lun0 ....................................................... [block/server0.disk1 (/dev/ISCSI_vg/disk1_lv)]
| o- portals ........................................................................................ [Portals: 1]
| o- 172.25.0.11:3260 ..................................................................................... [OK]
o- loopback ............................................................................................. [Targets: 0

client端配置

1、安装软件包

[root@desktop0 ~]# yum install iscsi-initiator-utils -y 红帽系统一般都会安装,所以此步骤可以跳过

2、启动服务,并设定开机重启

[root@desktop0 ~]# systemctl start iscsi iscsid
[root@desktop0 ~]# systemctl enable iscsi iscsid

3、修改文件,因为服务端中acls指定只允许名为iqn.2014-06.com.example:dekstop0的设备去访问,所以这个文件就这样配置

[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-06.com.example:desktop0
修改之后重启iscisd服务
[root@desktop0 ~]# systemctl restart iscsid

4、发现设备

[root@desktop0 ~]# iscsiadm -m discovery -t st -p 172.25.0.11
172.25.0.11:3260,1 iqn.2014-06.com.example.com:server0

5、登录iscsi

首先查看一下目前系统设备

[root@desktop0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 10G 0 disk
sr0 11:0 1 1024M 0 rom

登录

[root@desktop0 ~]# iscsiadm -m node -T iqn.2014-06.com.example.com:server0 -l
或者可以写为
[root@desktop0 ~]# iscsiadm -m node -l

可以发现多了一块100M的磁盘

[root@desktop0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 10G 0 disk
sdc 8:32 0 100M 0 disk
sr0 11:0 1 1024M 0 rom

6、对磁盘进行分区

分区

[root@desktop0 ~]# fdisk /dev/sdc
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 回车
First sector (8192-204799, default 8192): 回车
Using default value 8192
Last sector, +sectors or +size{K,M,G} (8192-204799, default 204799): 回车
Command (m for help): w
[root@desktop0 ~]# partprobe

格式化

[root@desktop0 ~]# mkfs.ext4 /dev/sdc1 

7、设定开机挂载

查看uuid,加入/etc/fstab文件中,注意挂载选项必须加_netdev

[root@desktop0 ~]# blkid /dev/sdc1
/dev/sdc1: UUID="8bd4649c-3191-4962-a8a9-08e2093bdc1c" TYPE="ext4"
[root@desktop0 ~]# vim /etc/fstab
...
UUID=8bd4649c-3191-4962-a8a9-08e2093bdc1c /mnt/iscsi ext4 defaults,_netdev 0 0

创建挂载点并且挂载

[root@desktop0 ~]# mkdir -p /mnt/iscsi
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
/dev/sdc1 89M 1.6M 81M 2% /mnt/iscsi

错误补救:
每次开机iscsi都会自动登录,iscsi会从/var/lib/iscsi/nodes/目录去找到发现的target去登录

[root@desktop0 ~]# ls /var/lib/iscsi/nodes/
iqn.2014-06.com.example.com:server0

彻底删除发现过的target
首先取消登录所有的target

[root@desktop0 ~]# iscsiadm -m node -u

然后指定名字删除,此时发现存储目录已经没有数据,下次也不会重新去自动登录了

[root@desktop0 ~]# iscsiadm -m node -T iqn.2014-06.com.example.com:server0 -o delete
[root@desktop0 ~]# ls /var/lib/iscsi/nodes/

然后就可以重启服务重新进行发现,登录,挂载的操作

本教程到此结束

如果有什么建议或者看不明白的地方,欢迎评论区留言或者私信本人,看到了第一时间处理。

本人为Linux菜鸟,还望Linux大神多多指教。

Linux ISCSI服务配置的更多相关文章

  1. Kali Linux常用服务配置教程获取IP地址

    Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...

  2. Kali Linux常用服务配置教程启动DHCP服务

    Kali Linux常用服务配置教程启动DHCP服务 通过前面的介绍,DHCP服务就配置好了.接下来,用户就可以使用该服务器来获取IP地址了.下面将对前面配置的服务进行测试. 1.启动DHCP服务 如 ...

  3. Kali Linux常用服务配置教程安装及配置DHCP服务

    Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中 ...

  4. Kali Linux常用服务配置教程DHCP服务原理

    Kali Linux常用服务配置教程DHCP服务原理 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一个局域网的网络协议,基于UDP协议工作 ...

  5. Linux vsftpd服务配置以及三种验证方式以及常见错误解决办法

    文件传输协议(FTP): 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件 ...

  6. Linux vsftpd服务配置具体解释

    [背景] 近日.一朋友dominoserver要进行升级.迁移,搭建了linux測试系统,也开启vsftpd服务,但是配置的ftp账号,程序无法正常下载附件. [问题跟踪] 通过ftpclient连接 ...

  7. linux nfs服务配置挂载以及oracle使用nfs存储挂载注意事项

    服务端共享目录 /home/XXX/nfs_shared 172.16.22.0/24(rw,no_root_squash) service nfs restart 常用命令: 查看所有nfs共享目录 ...

  8. Linux NTP服务配置 for Oracle RAC

    安装Oracle 11g RAC时,我们需要配置ntp服务.在使用虚拟机的情况下对于时钟同步方式的配置有很多种方式,可以使用vmware自带的时钟同步功能,也可以直接将本地的一个节点用作时间服务器.本 ...

  9. linux samba 服务配置及日志管理

    2012-01-16    安装samba共需3个rpm包   samba-common-3.0.23c-2.i386.rpm  samba-3.0.23c-2.i386.rpm  samba-cli ...

随机推荐

  1. Android 平台 Native 代码的崩溃捕获机制及实现

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w 一.背景 ...

  2. 分布式架构原理解析,Java开发必修课

    1. 分布式术语 1.1. 异常 服务器宕机 内存错误.服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用. 服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上. ...

  3. Got permission denied while trying to connect to the Docker daemon socket at

    添加新用户后执行docker命令由于没权限出现以下报错: ”Got permission denied while trying to connect to the Docker daemon soc ...

  4. Golang之变量去哪儿

    目录 什么是逃逸分析 为什么要逃逸分析 逃逸分析是怎么完成的 逃逸分析实例 总结 参考资料 写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的 ...

  5. Python使用Ctypes与C/C++ DLL文件通信过程介绍及实例分析

    项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子.无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中 ...

  6. 我的python渗透测试工具箱之自制netcat

    此工具的目的是实现在目标主机上的文件传输,控制命令行的功能,主要逻辑依靠python的subprocess模块.`sys`模块和`getopt`模块. 知识准备 studin和studut studi ...

  7. Cayley图数据库的可视化(Visualize)

    引入   在文章Cayley图数据库的简介及使用中,我们已经了解了Cayley图数据库的安装.数据导入以及进行查询等.   Cayley图数据库是Google开发的开源图数据库,虽然功能还没有Neo4 ...

  8. DSAPI QQ用户相关

    获取指定QQ号头像 Label1.Image=DSAPI.QQ用户相关.下载QQ头像("20353841") 获取指定QQ群头像 Label1.Image = DSAPI.QQ用户 ...

  9. Identity4实现服务端+api资源控制+客户端请求

    准备写一些关于Identity4相关的东西,最近也比较对这方面感兴趣.所有做个开篇笔记记录一下,以便督促自己下一个技术方案方向 已经写好的入门级别Identity4的服务+api资源访问控制和简单的客 ...

  10. PHP八大设计模式

    设计模式 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法. 单例模式 $_instance必须声明为静态的私有变量 构造函数和析构函数必须声 ...