iSCSI网络SCSI接口
iSCSI(艾斯卡斯)简介
iSCSI
是一种网络存储协议
,可以将远程存储设备映射
为本地块设备
。
samba/nfs
只共享文件
和目录
;
iscsi
直接网络共享整块硬盘
,可以跨平台共享磁盘
;
iscsi
= internet
+ SCSI(Small Computer System Interface:小型计算机系统接口)
iscsi
=互联网
+硬盘
iscsi
的一块磁盘
只能共享
给一个主机
。
- SATA
- IDE
iSCSI-HBA卡
传统的网卡是用来传输上网数据的,想让网卡传输硬盘数据的话;建议使用硬件:iSCSI-HBA卡
;
iSCSI-HBA卡
可以让硬盘
传输数据更加稳定
,没有也可以。
iSCSI-HBA
卡需要安装专有驱动
。
iSCSi架构
ISCSI 这个架构主要将存储装置
与使用的主机
这两
部分,分别是:
ISCSI target
(iSCSI共享磁盘
) :就是存储设备端
,存放磁盘或RAID的设备,目前也能够将Linux主机仿真
成ISCSI target
了,目的在提供其他主机使用的磁盘。ISCSI inITiator
(iSCSI客户端
): 就是能够使用target的客户端
,通常是服务器,只有装有iscsi initiator
的相关功能后才能使用ISCSI target
提供的磁盘
。
iSCSI局限性
- 网速局限性
- 网络波动性,会有数据丢失风险
完全手动搭建ISCSI–原理模式
0.创建RAID10
实验环境下使用软RAID
模拟。
# 创建RAID10
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[b-e]
# 等待RAID10初始化完毕
## 查看初始化进度Resync status: 100%(或消失) 时才可用
mdadm -D /dev/md0
1.安装iSCSI服务程序
最低OS版本
要求是Centos7
# 安装iSCSI服务程序
## targetd 服务程序
## targetcli 交互式配置工具
yum -y install targetd targetcli
# 启动和开机自启targetd服务
systemctl enable --now targetd
2.开始配置ISCSI服务端
难点是了解每一个虚拟目录是干嘛的。
# 开始配置,输入命令后进入交互式配置
targetcli
# 输入ls,查看目录(ISCSI将配置模拟成李Linux目录)
ls
进入/backstores/block目录
/backstores/block
目录是 Linux 内核中用于管理块设备后端
的目录,提供了一个简单的接口
,可以让用户在 Linux 中管理块设备后端
,通常用于配置 iSCSI 存储设备后端
。
该目录下的 device
文件来表示一个块设备后端
,每个device文件
都包含了后端设备
的信息
,例如设备名称
、路径
、大小
等。
## /backstores/block是iSCSI服务端配置共享设备的目录
cd /backstores/block
将磁盘添加到共享列表
# 将/dev/md0添加到共享磁盘列表,共享磁盘的名称显示为disk0
# 在 /backstores/block 目录下创建一个名为 disk0 的文件,表示一个块设备后端
## 将/dev/md0 作为存储系统的后端设备
create disk0 /dev/md0
创建iSCSI target(共享磁盘)
/backstores/block/iscsi
目录是 Linux 内核中用于管理 iSCSI target和连接
的目录。该提供了一个简单的接口
,可以让用户在 Linux 中管理 iSCSI target和连接
。
# 进入iscsi
cd iscsi
## 打印 /iscsi>
create命令
指定该iSCSI target
的名称
、别名
、TPG(Target Portal Group)(目标端口组)
等信息,并将该iSCSI target
映射到 /backstores/block/disk0
这个块设备后端
上,表示该iSCSI target
提供的存储空间
由 disk0
文件表示。
# 创建iSCSI target名称(共享磁盘)
create
## 会自动创建一个共享名称
例如:本次自动创建
的共享名称
为:iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c
!!!注意
:每个名称后面
都有一个点(.)
,复制时一定不要复制这个点
。
创建LUN(逻辑单元号)
iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c
是 iSCSI
设备的全局唯一标识符(Global Unique Identifier,GUID)
,也称为 iSCSI 名称(iSCSI Name)
。iSCSI 名称
是用于标识 iSCSI 设备的唯一名称
,由多个部分
组成,包括:
iSCSI 名称标识符
(iSCSI Name Identifier,IQN
)、iSCSI 名称空间
(iSCSI Name Space,NS
)、iSCSI 名称附加器
(iSCSI Name Adder,NA
),
其中IQN
是iSCSI 名称
的固定部分
。
# 进入这个iSCSI target名称(共享资源)
cd iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c
tpg1/luns
目录是用于管理 iSCSI target
的 LUN(Logical Unit Number逻辑单元号)
的目录
# 进入tpg1/luns目录,luns目录指的是要共享的设备名称
cd tpg1/luns
ls
创建一个名为/backstores/block/disk0
的 LUN(逻辑单元号)
,并将该 LUN(逻辑单元号)
映射到 /backstores/block/disk0
这个块设备后端
上,表示该 LUN(逻辑单元号)
提供的存储空间
由 disk0 文件
表示。
# 使用disk0来存储数据
create /backstores/block/disk0
创建Portal
# 返回上一级目录---(tpg1)目录
cd ..
portals目录
是用于管理iSCSI target
的 Portal
的目录。Portal
是 iSCSI 存储设备
上的网络接口
,用于接收
来自客户端的请求
和数据
。
# 进入portals目录
cd portals
eth0
网卡接口
的IP地址
是192.168.10.10
# 创建一个名为 192.168.10.10 的 Portal,并将该 Portal 映射到 Linux 系统中的 eth0 网络接口上,表示该 Portal 可以接收来自 eth0 的 iSCSI 请求和数据。
## 设置访问哪个IP可以访问这个磁盘
create 192.168.10.10
## 用户访问192.168.10.10:3260可以访问这个磁盘
配置ACL
acls目录
用于管理iSCSI target
的 ACL(Access Control List访问控制列表)
的目录。ACL
用于控制哪些客户端
可以访问该目标
,哪些客户端不能访问
。
# 返回上一级目录 tpg1
cd ..
# 进入acls目录
cd acls
创建一个名为 iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c:client
的 ACL
,并将该 ACL
映射到刚刚创建的 iSCSI target
上,表示该 ACL
具有访问该目标的权限
。client
是 iSCSI target的别名
# 配置谁可以访问这块磁盘
## client 是 iSCSI target的别名
create iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c:client
# 保存并退出
exit
3.配置iSCSI客户端
# 安装客户端
yum install iscsi-initiator-utils -y
# 开机自启iscsid服务
systemctl enable --now iscsid
编辑客户端的配置文件–允许挂载的磁盘
vim /etc/iscsi/initiatorname.iscsi
## iSCSI initiator 名称的示例
# InitiatorName= 共享名称:
# :client: 表示iSCSI客户端的名称
InitiatorName=iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c:client
4. 发现共享磁盘-Discovery
# 发现共享磁盘-Discovery
## -m 动作类型 discovery(发现)
## -t st 是发现动作的固定格式
## -p 服务端的地址
iscsiadm -m discovery -t st -p 192.168.1.1:3260
5. 登录挂共享磁盘
# 登陆/挂载共享磁盘
## -m 动作类型 node(节点)
## -T 要挂载的设备名称
## -p 服务端的地址
## -l 登陆/挂载的意思
iscsiadm -m node –T iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c -p 192.168.1.1:3260 -l
# 查看磁盘挂载情况
ls -l /dev/sd*
或
df -h
6.卸载共享磁盘
# 卸载共享磁盘
## -u 卸载磁盘
iscsiadm -m node –T iqn.2003-p1.org.linux-iscsi.localhost.x8664:sn:20db2cb6227c -p 192.168.1.1:3260 -u