标签 iSCSI 下的文章

当 Linux 系统连接到 SAN(存储区域网络)后,你需要重新扫描 iSCSI 服务以发现新的 LUN。

要做到这一点,你必须向存储团队提供 Linux 主机的 WWN 号和所需的 LUN 大小。

这篇文章将帮助你查找 Linux 主机的 WWN 号。

当存储团队将 LUN 与给定的 Linux 主机进行了映射,他们将为你提供新的 LUN 详细信息。

LUN 在存储术语中被称为 LUN 的串行十六进制。

你需要扫描 SCSI 主机来寻找存储团队分配的新 LUN。

这可以通过两种方式进行,扫描每个 scsi 主机设备或运行 rescan-scsi-bus.sh 脚本来检测新磁盘。

扫描后可以在 /dev/disk/by-id 目录下找到它们。

# ll /dev/disk/by-id

total 0
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684b -> ../../sdah
lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684c -> ../../sdw
.
.
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684d -> ../../sdjk
lrwxrwxrwx 1 root root 10 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684e -> ../../sdaa
lrwxrwxrwx 1 root root 9 Jul 9 17:52 scsi-60a98000486e542d4f5a2f47694d684f -> ../../sdh

另外,如果你已经用 multipath 配置了它们,那么可以用 multipath 命令找到。

`multipath 主要是配置到 Oracle 数据库服务器中,以提高性能。

# multipath -ll

60a98000486e542d4f5a2f47694d684b dm-37 NETAPP,LUN C-Mode
size=512G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:4:18 sdoe 128:416 active ready running
| |- 0:0:4:18 sdpq 131:256 active ready running
| |- 0:0:5:18 sdsr 135:496 active ready running
| `- 1:0:5:18 sdsq 135:480 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
|- 1:0:1:18 sdfw 131:32 active ready running
|- 1:0:0:18 sdci 69:96 active ready running
|- 0:0:1:18 sdbz 68:208 active ready running
|- 0:0:0:18 sds 65:32 active ready running
|- 1:0:3:18 sdmd 69:336 active ready running
|- 1:0:2:18 sdjj 8:464 active ready running
|- 0:0:3:34 sdjt 65:368 active ready running
`- 0:0:2:34 sdgi 131:224 active ready running

这个过程适用于基于 Red Hat 6.x、7.x 和 8.x(RHEL - Red Hat Enterprise Linux)的系统,如 CentOS 和 Oracle Linux。

方法 1:如何使用 /sys 类文件在 Linux 上扫描新的 LUN 和 SCSI 磁盘

sysfs 文件系统是一个伪文件系统,它为内核数据结构提供了一个接口。

sysfs 下的文件提供了关于设备、内核模块、文件系统和其他内核组件的信息。

sysfs 文件系统通常被挂载在 /sys。通常,它是由系统自动挂载的。

你可以使用 echo 命令来扫描每个 SCSI 主机设备,如下所示:

# echo "- - -" > /sys/class/scsi_host/host[n]/scan

当你运行上面的重新扫描所有的命令时,三个破折号(- – -)指的是通配符选项。这些值如下:

# echo "c t l" > /sys/class/scsi_host/host[n]/scan

这里:

  • c:HBA 上的通道
  • t:SCSI 目标 ID
  • l:LUN ID
  • n:HBA 编号

运行下面的命令来查找系统中所有的主机总线编号:

# ls /sys/class/scsi_host
host0 host1 host2

得到主机总线编号后,运行以下命令来发现新的磁盘:

# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan

另外,还可以用 for 循环用一条命令进行扫描。

# for host in ls /sys/class/scsi_host/;do echo "- - -" >/sys/class/scsi_host/${host}/scan; done

你可以使用文章开头提到的 ls 命令来检查它们。

# ls /dev/disk/by-id | grep -i "serial-hex of LUN"

方法 2:如何使用 rescan-scsi-bus.sh 脚本在 Linux 上扫描新的 LUN 和 SCSI 磁盘

确保你已经安装了 sg3_utils 包来使用这个脚本。否则,运行以下命令来安装它。

对于 RHEL/CentOS 6/7 系统,使用 yum 命令安装 sg3_utils。

# yum install -y sg3_utils

对于 RHEL/CentOS 8 和 Fedora 系统,使用 dnf 命令安装 sg3\_utils。

# dnf install -y sg3_utils

现在你可以使用 rescan-scsi-bus.sh 脚本重新扫描 LUN。

# ./rescan-scsi-bus.sh

via: https://www.2daygeek.com/scan-detect-luns-scsi-disks-on-redhat-centos-oracle-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

iSCSI 发起程序是一种用于同 iSCSI 目标器认证并访问服务器上共享的LUN的客户端。我们可以在本地挂载的硬盘上部署任何操作系统,只需要安装一个包来与目标器验证。

Client Initiator Setup

初始器客户端设置

功能

  • 可以处理本地挂载磁盘上的任意文件系统
  • 在使用fdisk命令分区后不需要重启系统

前置阅读

我的客户端设置

  • 操作系统 – CentOS 6.5 (Final)
  • iSCSI 目标器 IP – 192.168.0.50
  • 使用的端口 : TCP 3260

警告:永远不要在LUN还挂载在客户端(发起程序)时停止服务。

客户端设置

1. 在客户端,我们需要安装包‘iSCSI-initiator-utils’,用下面的命令搜索包。

# yum search iscsi

示例输出

============================= N/S Matched: iscsi ================================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils

2. 找到了包,就用下面的yum命令安装初始化包。

# yum install iscsi-initiator-utils.x86_64

3. 安装完毕后,我们需要发现目标器上的共享。客户端的命令有点难记,因此我们使用man找到需要运行的命令列表。

# man iscsiadm

man iscsiadm

man iscsiadm

4. 按下SHIFT+G 进入man页的底部并且稍微向上滚动找到示例的登录命令。下面的发现命令中,需要用我们的服务器IP地址来替换。

# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.0.200 --discover

5. 这里我们从下面的命令输出中找到了iSCSI的限定名(iqn)。

192.168.0.200:3260,1 iqn.2014-07.com.tecmint:tgt1

Discover Target

发现服务器

6. 要登录就用下面的命令来连接一台LUN到我们本地系统中,这会与服务器验证并允许我们登录LUN。

# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260 --login

Login To Target Server

登录到服务器

注意:登出使用登录命令并在命令的最后使用logout来替换。

# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260 --logout

Logout from Target Server

登出服务器

7. 登录服务器后,使用下面的命令列出节点的记录行。

# iscsiadm --mode node

List Node

列出节点

8. 显示特定节点的所有数据

# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260

示例输出

# BEGIN RECORD 6.2.0-873.10.el6
node.name = iqn.2014-07.com.tecmint:tgt1
node.tpgt = 1
node.startup = automatic
node.leading_login = No
iface.hwaddress = <empty>
iface.ipaddress = <empty>
iface.iscsi_ifacename = default
iface.net_ifacename = <empty>
iface.transport_name = tcp
iface.initiatorname = <empty>
iface.bootproto = <empty>
iface.subnet_mask = <empty>
iface.gateway = <empty>
iface.ipv6_autocfg = <empty>
iface.linklocal_autocfg = <empty>
....

9. 接着列出使用的磁盘,fdisk会列出所有的登录认证过的磁盘。

# fdisk -l /dev/sda

List Disks

列出磁盘

10. 运行fdisk命令来创建一个新的分区

# fdisk -cu /dev/sda

Create New Partition

创建新分区

注意:在使用fdisk创建新分区之后,我们无需重启,就像使用我们本地的文件系统一样就行。因为这个将远程共享存储挂载到本地了。

11. 格式化新创建的分区

# mkfs.ext4 /dev/sda1

Format New Partition

格式化新分区

12. 创建一个目录来挂载新创建的分区

# mkdir /mnt/iscsi_share
# mount /dev/sda1 /mnt/iscsi_share/
# ls -l /mnt/iscsi_share/

Mount New Partition

挂载新分区

13. 列出挂载点

# df -Th
  • -T – 输出文件系统类型
  • -h – 以易读的方式显示大小

List New Partition

列出新分区

14. 如果需要永久挂载,使用fstab文件

# vim /etc/fstab

15.在fstab后追加下面行

/dev/sda1  /mnt/iscsi_share/   ext4    defaults,_netdev   0 0

注意: 在fstab中使用\_netdev,说明这是一个网络设备。

Auto Mount Partition

自动挂载分区

16. 最后检查我们fstab文件是否有错误。

# mount -av
  • -a – 所有挂载点
  • -v – 冗余模式

Verify fstab Entries

验证fstab文件

我们已经成功完成了我们的客户端配置。现在让我们像本地磁盘一样使用它吧。


via: http://www.tecmint.com/iscsi-initiator-client-setup/

作者:Babin Lonston 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

LUN是逻辑单元号,它与iSCSI存储服务器共享。iSCSI 目标器通过TCP/IP网络共享它的物理驱动器给发起程序(initiator)。这些来自一个大型存储(SAN:Storage Area Network)的驱动器集合称作LUN。在真实环境中LUN是在LVM中定义的,因为它可以按需扩展。

Create LUNS using LVM in Target Server

在目标器中使用 LVM 创建 LUN

为什么使用LUN?

LUN用于存储,SAN存储大多数由LUN的集群来组成存储池,LUN由目标器的几块物理驱动器组成。我们可以使用LUN作为系统物理驱动器来安装操作系统,LUN可以用在集群、虚拟服务器、SAN中。在虚拟服务器中使用LUN的主要用途是作为操作系统的存储。LUN的性能和可靠性根据在创建目标存储服务器时所使用的驱动器决定。

前置阅读

要了解创建iSCSI 目标器,点击下面的链接。

主服务器设置

系统信息和网络设置部分与前文的iSCSI 目标器相同 - 我们在相同的服务器上定义LUN。

  • 操作系统 – CentOS 6.5 (Final)
  • iSCSI 目标器 IP – 192.168.0.200
  • 使用的端口 : TCP 860, 3260
  • 配置文件 : /etc/tgt/targets.conf

在iSCSI 目标器使用LVM创建LUN

首先,用fdisk -l命令找出驱动器的列表,这会列出系统中所有分区的列表。

# fdisk -l

上面的命令只会给出基本系统的驱动器信息。为了得到存储设备的信息,使用下面的命令来得到存储设备的列表。

# fdisk -l /dev/vda && fdisk -l /dev/sda

List Storage Drives

列出存储设备

注意:这里vda是虚拟机硬盘,因为我使用的是虚拟机来用于演示,/dev/sda 是额外加入的存储。

第一步: 创建用于LUN的LVM驱动器

我们使用/dev/sda驱动器来创建LVM。

# fdisk -l /dev/sda

List LVM Drive

列出LVM驱动器

现在让我们使用如下fdisk命令列出驱动器分区。

# fdisk -cu /dev/sda
  • 选项 ‘-c’ 关闭DOS兼容模式。
  • 选项 ‘-u’ 用于列出分区表时给出扇区而不是柱面的大小。

使用n创建新的分区。

Command (m for help): n

使用p创建主分区。

Command action
   e   extended
   p   primary partition (1-4)

给我们创建的分区一个分区号。

Partition number (1-4): 1

到这里,我们就要设置LVM驱动器了。因此,我们需要使用默认的设置来使用整个驱动器。

First sector (2048-37748735, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-37748735, default 37748735): 
Using default value 37748735

选择分区的类型,这里我们要设置LVM,因此使用8e。使用l列出所有的类型。

Command (m for help): t

选择想要改变类型的分区。

Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

在改变完类型之后,通过打印(p)选项来列出分区表。

Command (m for help): p

Disk /dev/sda: 19.3 GB, 19327352832 bytes
255 heads, 63 sectors/track, 2349 cylinders, total 37748736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9fae99c8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    37748735    18873344   8e  Linux LVM

使用w写入设置并退出fdisk工具,重启系统使设置生效。

作为参考,我下面附上了截图来给你在创建LVM驱动器时一个明确的指导。

Create LVM Partition

创建LVM分区

系统重启后,使用fdisk命令列出分区表。

# fdisk -l /dev/sda

Verify LVM Partition

验证LVM分区

第二步: 为LUN创建逻辑卷

现在我们使用‘pvcreate’命令创建物理卷。

# pvcreate /dev/sda1

用iSCSI的名字创建卷组来区分这个卷组。

# vgcreate vg_iscsi /dev/sda1

这里我定义了4个逻辑卷,因此在我的iSCSI target上就会有4个LUN。

# lvcreate -L 4G -n lv_iscsi vg_iscsi
# lvcreate -L 4G -n lv_iscsi-1 vg_iscsi
# lvcreate -L 4G -n lv_iscsi-2 vg_iscsi
# lvcreate -L 4G -n lv_iscsi-3 vg_iscsi

列出物理卷、卷组和逻辑卷确定。

# pvs && vgs && lvs
# lvs

为了更好地理解上面的命令,我在下面包含了截图作为参考。

Creating LVM Logical Volumes

创建LVM逻辑卷

Verify LVM Logical Volumes

验证LVM逻辑卷

第三步: 在目标器中定义LUN

我们已经创建了逻辑卷并准备使用LUN,现在我们在目标器配置中定义LUN,只有这样做它才能用在客户机中(发起程序)。

用你选择的编辑器打开位于‘/etc/tgt/targets.conf’的目标器配置文件。

# vim /etc/tgt/targets.conf

追加下面的target配置文件中的定义。保存并关闭文件。

<target iqn.2014-07.com.tecmint:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi
</target>
<target iqn.2014-07.com.tecmint:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-1
</target>
<target iqn.2014-07.com.tecmint:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-2
</target>
<target iqn.2014-07.com.tecmint:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-3
</target

Configure LUNs in Target Server

在target中配置LUN

上图的解释:

  1. iSCSI 采取限定名 (iqn.2014-07.com.tecmint:tgt1).
  2. 名称随便你
  3. 用于确定目标名, 这是这台服务器中的第一个目标
  4. LVM共享特定的LUN。

接下来使用下面的命令重载tgd服务配置。

# /etc/init.d/tgtd reload

Reload Configuration

重载配置

接下来使用下面的命令验证可用的LUN。

# tgtadm --mode target --op show

List Available LUNs

列出可用LUN

LUNs Information

LUN信息

上面的命令会列出可用LUN的下面这些信息

  1. iSCSI 限定名
  2. iSCSI 已经准备好
  3. 默认LUN 0被控制器所保留
  4. LUN 1是我们定义的目标器
  5. 这里我为每个LUN都定义了4GB
  6. 在线: 是的,这就是可以使用的LUN

现在我们已经使用LVM为目标器定义了LUN,这可扩展并且支持很多特性,如快照。我们将会在第三部分了解如何用目标器授权,并且本地挂载远程存储。


via: http://www.tecmint.com/create-luns-using-lvm-in-iscsi-target/

作者:Babin Lonston 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

iSCSI 是一种块级别的协议,用于通过TCP/IP网络共享原始存储设备,可以用已经存在的IP和以太网如网卡、交换机、路由器等通过iSCSI协议共享和访问存储。iSCSI target是一种由远程iSCSI服务器(target)提供的远程硬盘。

Install iSCSI Target in Linux

在Linux中安装iSCSI Target

我们不需要占用很大的资源就可以为客户端提供稳定的连接和性能。iSCSI服务器称为“Target(目标器)”,它提供服务器上的存储共享。iSCSI客户端称为“Initiator(发起程序)”,它访问目标器共享的存储。市场中有卖的用于大型存储服务如SAN的iSCSI适配器。

我们为什么要在大型存储领域中使用iSCSI适配器

以太网适配器(NIC)被设计用于在系统、服务器和存储设备如NAS间传输分组数据,它不适合在Internet中传输块级数据。

iSCSI Target的功能

  • 可以在一台机器上运行几个iSCSI 目标器
  • 一台机器可以提供多个iSCSI 目标器用于iSCSI SAN访问
  • 一个目标器就是一块存储,并且可以通过网络被发起程序(客户端)访问
  • 把这些存储汇聚在一起让它们在网络中可以访问的是iSCSI LUN(逻辑单元号)
  • iSCSI支持在同一个会话中使用多个连接
  • iSCSI发起程序在网络中发现目标接着用LUN验证并登录,这样就可以本地访问远程存储。
  • 我们可以在本地挂载的LUN上安装任何操作系统,就像我们安装我们本地的操作系统一样。

为什么需要iSCSI?

在虚拟化中,我们需要存储拥有高度的冗余性、稳定性,iSCSI以低成本的方式提供了这些特性。与使用光纤通道的SAN比起来,我们可以使用已经存在的设备比如NIC、以太网交换机等建造一个低成本的SAN。

现在我开始使用iSCSI 目标器安装并配置安全存储。本篇中,我们遵循下面的步骤:

  • 我们需要隔离一个系统来设置iSCSI 目标器和发起程序(客户端)。
  • 在大型存储环境中可以添加多个硬盘,但是这里我们除了基本的安装盘之外只使用了一个额外的驱动器。
  • 这里我们只使用了2块硬盘,一个用于基本的服务器安装,另外一个用于存储(LUN),这个我们会在这个系列的第二篇描述。

主服务器设置

  • 操作系统 – CentOS 6.5 (Final)
  • iSCSI 目标器 IP – 192.168.0.200
  • 使用的端口 : TCP 860, 3260
  • 配置文件 : /etc/tgt/targets.conf

安装 iSCSI Target

打开终端并使用yum命令来搜索需要在iscsi 目标器上安装的包名。

# yum search iscsi

输出示例

========================== N/S matched: iscsi =======================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils
lsscsi.x86_64 : List SCSI devices (or hosts) and associated information
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs

你会的到上面的那些结果,选择Target包来安装。

# yum install scsi-target-utils -y

Install iSCSI Utils

安装iSCSI工具

列出安装的包里面的内容来了解默认的配置、服务和man页面的位置。

# rpm -ql scsi-target-utils.x86_64

List All iSCSI Files

列出所有的iSCSI包里面的文件

让我们启动iSCSI服务,并检查服务运行的状态,iSCSI的服务名是tgtd。

# /etc/init.d/tgtd start
# /etc/init.d/tgtd status

Start iSCSI Service

启动iSCSI服务

现在我们需要配置开机自动启动。

# chkconfig tgtd on

现在验证tgtd服务的运行级别是否配置正确。

# chkconfig --list tgtd

Enable iSCSI on Startup

开机启动iSCSI

现在使用tgtadm来列出在我们的服务器上已经配置了哪些target和LUN。

# tgtadm --mode target --op show

tgtd已经安装并在运行了,但是上面的命令没有输出因为我们还没有在Target服务器上定义LUN。要查看手册,可以运行‘man‘命令。

# man tgtadm

iSCSI Man Pages

iSCSI Man 页面

如果你的目标器上有iptable的话,那么我们需要为iSCSI添加iptable规则。首先使用netstat命令找出iscsi target的端口号,目标器总是监听TCP端口3260。

# netstat -tulnp | grep tgtd

Find iSCSI Port

找出iSCSI端口

下面加入如下规则让iptable允许广播iSCSI 目标器发现包。

# iptables -A INPUT -i eth0 -p tcp --dport 860 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT

Open iSCSI Ports

打开iSCSI端口

Add iSCSI Ports to Iptables

添加iSCSI端口到iptable中

注意: 规则可能根据你的默认链策略而不同。接着保存iptable并重启该服务。

# iptables-save
# /etc/init.d/iptables restart

Restart iptables

重启iptable

现在我们已经部署了一个目标器来共享LUN给通过TCP/IP认证的发起程序。这也适用于从小到大规模的生产环境。

在我的下篇文章中,我会展示如何在目标器中使用LVM创建LUN,并且如何在客户端中共享LUN,不要忘记留下有价值的评论。


via: http://www.tecmint.com/create-centralized-secure-storage-using-iscsi-targetin-linux/

作者:Babin Lonston 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Hello,我是——邪恶君子!今天呢,给大家分享一下Linux上iSCSI的搭建,通过文字+图像的解说,不管你是小白还是菜鸟,都能够让你掌握搭建iSCSI的精华所在!

废话不多说,看招:

首先呢,给大家说一下本次教程的环境:系统版本:RedHat Enterprise Linux 6.2

在搭建iSCSI前呢,先把SELinux禁用;关闭防火墙并清空所有规则。并配置好yum源(直接挂载本地光盘,yum源指向本地就行)。

开始搭建

首先要安装一个包:scsi-target-utils-1.0.14-4.el6.x86\_64

#yum -y install scsi-target-utils

在这或许会有人抱怨了,邪恶啊,这么长的名字记不住肿么办?不要怕,没事,邪恶教你一招:直接执行命令#yum -y install scsi-target* 也可以,这下简单多了吧。

好了,安装完以后,要启动服务,iSCSI的服务为tgtd,直接启动就行了

#service tgtd start
#chkconfig tgtd on (设为开机启动)

到此,我们安装完毕,简单吧!!!

创建iSCSI

在创建前呢,你要在你的电脑上先分出一个区用来搭建iSCSI存储。邪恶这次是分出一个5G大小的分区来创建iSCSI,给大家附上我的分区图:

大家看到了吧,sda5,大小为5G!

其实,在这里简单的提一下,分区的大小你自己随便定,也可以是一个硬盘,都行!

接下来呢,就是激动人心的时刻,关键来了哦,邪恶所说的精华就是接下来的内容,看招:

执行下面的三条命令:

#tgtadm --lld iscsi --mode target --op new --tid 1 -T iqn.mailtest.com.20140916:disk1
#tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 -b /dev/sda5
#tgtadm --lld iscsi --mode target --op bind --tid 1 -I ALL

给大家简单解释一下命令,建议大家在执行前先执行一下

#tgtadm --help

看一下命令的帮助文档。

第一条命令,只需掌握 --tid后面的参数“1”,这个“1”在这里就是个编号,你也可以设为2,不过建议大家从1开始,习惯嘛!然后就是-T后面的参数,-T后面的参数自己随便写,但记住一点就行,需以iqn开头,然后后面的你想怎么起都行,一般都是"iqn.hostname:diskX",hostname就是你的主机名,X代表编号。

第二条命令,需要记住--tid后面的参数必须要和第一条的一样, --lun后面的参数也是代表编号,和第一条命令的--tid类似,-b后面就跟你要搭建iSCSI的分区就行。

第三条命令,更简单,只需注意--tid后面的参数要和第一条、第二条的一样,其实第二条和第三条都是以第一条的为基准的,然后就是-I后面的参数,这里设置为ALL是代表允许所有的IP都可以访问。你也可以设置为个别的IP,具体的可以参考帮助文档。

执行完以后,可以执行

#tgt-admin -s

查看一下自己创建的iSCSI,这里把我自己搭建效果图给大家附上

从图上可以看到,刚才自己创建的iSCSI Target及编号,也可以看到自己创建的lun和编号,最下面可以显示出用的哪个分区创建的。

到此,搭建完毕,是不是很简单!

这在儿,有个要点需记住,那就是开机后,上面3条命令创建的iSCSI会失效,要想开机后还有,那就把上面的3条命令添加到/etc/rc.d/rc.local里面,看图:

这样,以后在重启或关机后再开机就可以保证创建的iSCSI失效了!

或许到这儿,就会有人问了:“邪恶,你为什么不讲一下理论知识?”。

邪恶回答你的很简单:一讲理论就讲的多了,就需要花很大的文字去讲解,而且邪恶也不敢保证理论讲的是否正确。邪恶在此顺便给大家说一下,邪恶的原则是通过自己的实践和自己的心得和体会,尽量的写的精简点,然后分享给大家,让菜鸟和小白都能快速掌握,至于理论知识,百度上一大堆,都解释的很详细,一看就明白!

客户端测试

接下来,邪恶再给大家讲一下怎么验证自己搭建的iSCSI是否可用,同时也讲一下客户端的操作!看招:

首先,客户端需要先安装iscsi-initiator-utils包,执行命令安装:

#yum -y install iscsi-initiator-utils

如果这两个包的名字也记不住肿么办,没问题,邪恶我再教你一招,直接执行命令:#yum -y install iscsi-init*

安装完毕后,启动相应的服务,并设置为开机启动,命令:

#service iscsi start
#chkconfig iscsi on
#service iscsid start
#chkconfig iscsid on

好了,到此呢,准备工作已准备完毕,各位,接下来就是见证神奇的时刻:

在客户端执行下面两条命令:

#iscsiadm -m discovery -t sendtargets -p 10.30.12.121:3260(效果看下图)

到这一步就可以看出,你服务端创建的iSCSI Target 的编号和名称。这条命令只需记住-p后面跟iSCSI服务的地址就行了,也可以是主机名,都可以!3260是服务的端口号,默认的!

#iscsiadm -m node -T iqn.mailtest.com.20140916:disk1 -p 10.30.12.121:3260 -l(效果看下图)

好了,已经看到successful。成功了!验证和客户端都是这样操作的,两条命令就okay了!

简单吧!这时,你就可以执行#fdisk -l 查看自己的分区了,会多出一个硬盘,效果见图:

看到了吧,我已经用红色的框框给大家标注出来了,是不是很神奇呢?

各位!到此,整个教程就结束了!你是否学会了呢!不管是否掌握了,先给自己鼓个掌吧,辛苦自己可以从头仔细认真的学到尾!谢谢大家的支持,希望可以多多交流!欢迎大家指出有错误的地方,或者写的不好的地方,供改进,促提升!