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

  1. yum -y install targetd targetcli

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

  1. systemctl start targetd
  2. systemctl enable targetd

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

  1. [root@linuxprobe ~]# targetcli
  2. Warning: Could not load preferences file /root/.targetcli/prefs.bin.
  3. targetcli shell version 2.1.fb34
  4. Copyright - by Datera, Inc and others.
  5. For help on commands, type 'help'.
  6. /> ls
  7. o- / ................................................................... [...]
  8. o- backstores ........................................................ [...]
  9. | o- block ............................................ [Storage Objects: ]
  10. | o- fileio ........................................... [Storage Objects: ]
  11. | o- pscsi ............................................ [Storage Objects: ]
  12. | o- ramdisk .......................................... [Storage Objects: ]
  13. o- iscsi ...................................................... [Targets: ]
  14. o- loopback ................................................... [Targets:

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

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

查看输出

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

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

输出

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

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

输出

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

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

输出

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

  1. # 进入指定目录
  2. /iscsi/iqn.20...f2d/tpg1/acls> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.037746bdcf2d/tpg1/portals/
  3. # 添加IP及端口、端口可以不填默认3260
  4. /iscsi/iqn.20.../tpg1/portals> create 192.168.1.17 3260
  1. 报错:Could not create NetworkPortal in configFS
  2.  
  3. # 报错可以删除 0.0.0.0
  4. delete 0.0.0.0 3260
  5.  
  6. 注:继续添加IP即可

报错

9、保存退出并重启服务

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

开放防火墙

其他操作

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

关闭账号验证

  1. # 该 tgp 使用自定义ad实现节点访问限制
  2. /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客户端

  1. yum install iscsi-initiator-utils

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

vim /etc/iscsi/initiatorname.iscsi

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

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

  1. systemctl restart iscsid
  2. systemctl enable iscsid

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

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

输出

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

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

输出

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

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

7、格式化共享设备

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

8、临时挂载设备

  1. # 创建挂载目录
  2. mkdir /iscsi
  3. # 临时挂载设备
  4. mount /dev/sdb /iscsi

9、永久挂载共享设备

vim /etc/fstab

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

查看设备UUID

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

10、删除iSCSI共享资源

  1. # 其中,-u 参数将其设备卸载
  2. 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. Java匹马行天下之学编程的起点——编程常识知多少

    学编程的起点——编程常识知多少 前言: 刚去大学那会,我就知道我被录取的学院是软件学院,还知道一点就是软件学院主要是学电脑的,但具体要学什么其实一无所知.待的时间久了,慢慢的,像“编程”.“软件”.“ ...

  2. JAVA的基本语法1

    1.关键字 关键字的定义和特点 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(单词). 就是在java语言编程的时候,在关键的地方使用的单词,体现关键的地方的含义.这些单词都是特有的,并且 ...

  3. centos 安装gitlab

    1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...

  4. Typescript基础(4)——接口

    前言 今天继续typescript的学习,开始ts接口部分的学习. 接口 接口的理解 首先,我们谈论一下现实生活中的接口.比如生活中常用的插座接口,有些插头是三孔插座的,有些是两孔插座的.插座接口规定 ...

  5. centos7 apache后台转nginx后台

    背景 一开始买完服务器装的是用apache搭的后台, 现在想使用nginx, 希望对你有参考作用 查看系统版本信息 lsb_release -a 我的版本信息是 首先关闭apache-tomcat服务 ...

  6. CSS @规则

    最近在看极客时间winter大神的重学前端系列,遇到了许多不常用但是很重要的知识点.感觉视野得到了极大的开阔(打个广告,哈哈). 其中css @规则令人印象深刻.简单的做下笔记: @namespace ...

  7. 【Android】Context的使用

    Android开发经常需要使用Context来启动Activity,或者打开SharedPreferences,或者构建一个Dialog.最近老是用到getContext(),getApplicati ...

  8. [转]Eclipse插件开发之基础篇(6) SWT简介

    原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/09/01/eclipse_plugin_1_3_1.html SWT(Standard Widget ...

  9. JEB动态调试解密数据包加密字段

    0x00 场景 在测试某个app的时候,抓取数据包,发现某些参数存在被加密的情况,或者有签名校验的情况,这个时候如果我们想直接去篡改数据包的内容往往是做不到的,那就来看看抓取的某个app登录数据包,如 ...

  10. Centos7 环境安装初始化

    安装系统 默认分区 磁盘分配(以20G为例): Boot分区:引导分区系统启动的必要核心文件,建议1G Var分区:存放log文件,不分则在/下,建议1G Home分区:存放用户数据,一般都比较大,建 ...