Linux iSCSI 磁盘共享管理

  iSCSI 服务是通过服务端(target)与客户端(initiator)的形式来提供服务。iSCSI 服务端用于存放存储源的服务器,将磁盘空间共享给客户使用,客户端可以再不充气的情况下扩容磁盘空间。iSCSI 服务端通过已终端的形式配置存储共享过程,每一个目录的含义都不同,下面会详细讲到。iSCSI 协议是通过客户端名称进行验证的,也就是说,用户在访问存储共享资源时不需要输入密码,只要 iSCSI 客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,因此需要在 iSCSI 服务端的配置文件中写入一串能够验证用户信息的名称。


Linux iSCSI 结构介绍

目录介绍

  • # iSCSI服务端存放本地共享设备的位置。
  • /backstores/block 
  • # SCSI服务端管理target。
  • /iscsi
  • # SCSI服务端共享资源设备加入到target。
  • /iscsi/target名称目录/tpg1/luns
  • SCSI服务端目录用于存放能够访问共享存储资源的客户端名称。
  • /iscsi/target名称目录/tpg1/acls
  • SCSI服务端目录用于指定客户端可被访问的监听IP地址及端口
  • /iscsi/target名称目录/tpg1/portals

Linux iSCSI 服务端配置

  • 需求:共享服务端的 /dev/sdb4 设备
  • 版本:targetd-0.8.6
  • 版本:targetcli-2.1

1、服务端安装iSCSI

yum -y install targetd targetcli

2、启动服务并设置开机自启动

systemctl start targetd
systemctl enable targetd

3、进入iSCSI服务终端、ls查看目录、服务端终端命令: targetcli

[root@linuxprobe ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
Copyright - by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ................................................................... [...]
o- backstores ........................................................ [...]
| o- block ............................................ [Storage Objects: ]
| o- fileio ........................................... [Storage Objects: ]
| o- pscsi ............................................ [Storage Objects: ]
| o- ramdisk .......................................... [Storage Objects: ]
o- iscsi ...................................................... [Targets: ]
o- loopback ................................................... [Targets:

4、进入 /backstores/block 目录下、指定共享磁盘设备,命名磁盘设备

# 进入指定目录下
/> cd /backstores/block
# 创建共享设备,命名为 “disk0”
/backstores/block> create disk0 /dev/sdb4
Created block storage object disk0 using /dev/sdb4.

查看输出

5、进入 /iscsi 目录下创建iSCSI target 名称

# 进入指定目录
cd /iscsi
# 创建新的 target 名称
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.a52e09c8e24f.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

输出

6、进入 /iscsi/target名称目录/tpg1/luns 目录下创建共享资源加入到target

# 进入指定目录
/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/luns
# 创建共享设备到 target
/iscsi/iqn.20...f2d/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:client

输出

7、进入 /iscsi/target名称目录/tpg1/acls 设置访问控制,创建存入客户端可访问名称

# 进入指定目录
/iscsi/iqn.20...f2d/tpg1/luns> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/acls/
# 创建存入客户端可访问名称
/iscsi/iqn.20...f2d/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk
Created mapped LUN 0.

输出

8、进入 /iscsi/target名称目录/tpg1/portals 设置服务端共享设备的网卡IP地址及端口

# 进入指定目录
/iscsi/iqn.20...f2d/tpg1/acls> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/portals/
# 添加IP及端口、端口可以不填默认3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.1.17 3260
报错:Could not create NetworkPortal in configFS

# 报错可以删除 0.0.0.0
delete 0.0.0.0 3260 注:继续添加IP即可

报错

9、保存退出并重启服务

# 保存设置
/> saveconfig
# 退出
/> exit
# 重启服务
systemctl restart targetd
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload

开放防火墙

其他操作

# 该 tgp 关闭账号验证
/iscsi/../tpg1> set attribute authentication=0

关闭账号验证

# 该 tgp 使用自定义ad实现节点访问限制
/iscsi/.../tpg1> set attribute generate_node_acls=0

使用自定义ad实现节点访问限制


Linux iSCSI 客户端配置

  • 需求:使用服务端共享设备并挂载使用
  • 版本:iscsi-initiator-utils-6.2.0.874
  • 版本:iscsi-initiator-utils-iscsiuio-6.2.0.874

1、安装iscsi客户端

yum install iscsi-initiator-utils

2、将服务端访问控制表中的共享名称加入到客户端配置文件

vim /etc/iscsi/initiatorname.iscsi

iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d:xsk

3、启动iscsi客户端并设置开机自启

systemctl restart iscsid
systemctl enable iscsid

4、通过 iscsiadm 工具扫描发现 服务端共享的存储设备

# 其中,-m discovery 参数的目的是扫描并发现可用的存储资源,-t st 参数为执行扫描操作的类型,-p 192.168.10.17 数为 iSCSI 服务端的IP 地址
iscsiadm -m discovery -t st -p 192.168.1.17
192.168.1.17:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d

输出

5、登录 iSCSI 指定共享服务端

# 其中,-m node 参数为将客户端所在主机作为一台节点服务器,-T iqn.20.... 参为要使用的存储资源,-p 192.168.10.17 参数依然为对方iSCSI 服务端的 IP 地址。最后使用--login 或-l 参数进行登录验证。
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d -p 192.168.1.17 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d, portal: 192.168.1.17,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d, portal: 192.168.1.17,3260] successful.

输出

6、查看共享到客户端的磁盘设备

# 已共享到客户端本地
命令:file /dev/sdb
输出:/dev/sdb: block special

7、格式化共享设备

# 格式化格式为xfs
mkfs.xfs /dev/sdb

8、临时挂载设备

# 创建挂载目录
mkdir /iscsi
# 临时挂载设备
mount /dev/sdb /iscsi

9、永久挂载共享设备

vim /etc/fstab

UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsi xfs defaults,_netdev 0 0
命令:blkid | grep /dev/sdb
输出:/dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs"

查看设备UUID

注:_netdev 参数含义为在有网络传输时使用。

10、删除iSCSI共享资源

# 其中,-u 参数将其设备卸载
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d -u

Linux iSCSI 磁盘共享管理的更多相关文章

  1. centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课

    centos Linux下磁盘管理   parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpf ...

  2. Linux磁盘的管理

    文件系统 磁盘必须要有文件系统---数据库 文件系统是用来数据存储,数据库是用来管理数据 windows fat32  ntfs   exfat linux  单文件系统 inode--索引空间(文件 ...

  3. LINUX的磁盘管理du命令详解

    LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...

  4. Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk

    fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...

  5. lesson - 6 Linux下磁盘管理

    1. 查看磁盘或者目录的容量df  查看磁盘各分区使用情况   不加参数以k为单位   df -i inode数,df -h  以G或者T或者M   df -m  以M单位显示  du 查看目录或者文 ...

  6. linux磁盘管理系列一:磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  7. Linux 磁盘分区管理

    Linux 磁盘管理进阶 磁盘分区介绍 基本分区(primary partion) 基本分区也称主分区,引导分区.每块磁盘分区主分区与扩展分区加起来不能大于四个. 基本分区创建后可以立即使用,但是有分 ...

  8. Linux命令——磁盘管理

    Linux命令--磁盘管理 命令df 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等 参数:-i,查看inodes的使用状况 参数:-h,使用合适的单位显示(推荐) 命令du 作用:查看某个目录或 ...

  9. Linux下磁盘管理命令df与du

    Linux下磁盘管理命令df与du  对磁盘进行查看和控制的两个linux命令,df和du.  一.du命令 首先看一下du的help说明: [root@misdwh opt]# du --help ...

随机推荐

  1. C# recording audio based on audio in Console

    1. Install-package naudio -v 1.9.0 2. using NAudio.Wave; 3. public class NAudioHelper { public WaveI ...

  2. Wpf Prism.Unity 7

    Prism.Unity 中UnityBootStrapper已经不用了,可以继承PrismApplication 1.Install-package Prism.Unity -v 7.2.0.1367 ...

  3. WPF TextBox绑定Int类型的属性

    TextBox双向绑定int属性,清空输入框时Setter方法未触发. 我的解决方案: 1.属性置为int?: 2.xmlns:sys="clr-namespace:System;assem ...

  4. MySQL学习——操作视图

    MySQL学习——操作视图 摘要:本文主要学习了使用DDL语句操作视图的方法. 了解视图 是什么 视图是从一个.多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行. 特点 视图不是数据 ...

  5. 敏捷软件开发_实例1<二>

    敏捷软件开发_实例1 这本书的实例非常好,给了我非常多的启发.主要讲了两个实例,咖啡机和薪水支付实例,咖啡机实例比较简单并没有用什么设计模式,薪水支付实例用了很多设计模式,包括后面的打包等. 咖啡机实 ...

  6. webpack代码分离CommonsChunkPlugin插件的使用(防止重复)

    1.webpack.config.js中添加: const path = require('path'); + const webpack = require('webpack'); const HT ...

  7. mysql 实现全连接

    mysql不支持全连接,但可以通过左外连接+ union+右外连接实现 SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION SELECT * FR ...

  8. sleep() 和 wait() 有什么区别:

      ①原理不同. ​ sleep()方法是Thread类的静态方法,是线程用来控制自身流程的,它会使此线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动苏醒.而wait() ...

  9. eclipse的“sun.misc.BASE64Encoder”问题解决

    新建一个AndroidHello工程,编译运行,出现问题如下: 编辑/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini文件,加入 -vm /L ...

  10. 【洛谷P4589】[TJOI2018]智力竞赛(二分+最小链覆盖)

    洛谷 题意: 给出一个\(DAG\),现在要选出\(n+1\)条可相交的链来覆盖,最终使得未被覆盖的点集中,权值最小的点的权值最大. 思路: 显然最终的答案具有单调性,故直接二分答案来判断: 直接将小 ...