本篇将简述的内容:Linux系统下的ISCSI服务
iscsi全称:Internet Small Computer System Interface——互联网小型计算机接口
通过网络获取磁盘设备在本地进行存储使用。
基于IP协议进行scsi数据的传输
IP/SAN网络:基于双绞线为传输介质的存储网络
光纤存储网络:基于光纤传输的存储网络(造价极高)
实现方式:软件形式;硬件形式
默认端口号:TCP/3260
相关名词
iscsi initiator:iscsi客户端
iscsi target:iscsi服务端
lun:一个块设备存储
iqn:
iscsi名称
iqn时间.域名反写:定义标识
关闭防火墙及禁止防火墙自启
systemctl stop firewalld && systemctl disable firewalld
关闭网络图形化工具
systemctl stop NetworkManager && systemctl disable NetworkManager
查看SElinux状态
getenforce
设置宽容模式(临时关闭SElinux)
setenforce 0
永久关闭SElinux
vim /etc/selinux/config
SELINUX=enforcing
改为
SELINUX=disabled
进入yum配置目录
cd /etc/yum.repos.d
创建备份
mkdir backup
将CentOS-* 文件移入备份文件夹
mv CentOS-* backup
新建文件
vim local.repo
文件内容
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
卸载光驱
umount /dev/sr0
加载光驱
mount /dev/sr0 /mnt
ping 已知IP
查看连通性
使用虚拟机搭建本服务时,可额外添加一块硬盘进行此步操作
添加硬盘后,进行热扫描
for i in `ls /sys/class/scsi_host`;do echo "- - -" > $i/scan;done
使用lsblk
命令查看
并对该磁盘进行分区(也可略过此步操作)
fdisk /path/sdb (假定硬盘名为sdb)
分区后,进行格式化,即可正常挂载使用
分区后硬盘名为sdb1
yum -y install targetcli
使用targetcli工具进入到iscsi服务器端管理界面
targetcli
进入后使用ls
查看
targetcli | 进入到服务器端的iscsi命令配置信息 |
---|---|
o- / … […] | 顶级目录 |
o- backstores … […] | 后备存储,主备存储空间,要共享的设备或分区得先加入到这里 |
o- block … [Storage Objects: 0] | 块存储,o- backstores子目录 |
o- fileio … [Storage Objects: 0] | 文件存储,o- backstores子目录 |
o- pscsi … [Storage Objects: 0] | 真实物理scsi设备,o- backstores子目录 |
o- ramdisk … [Storage Objects: 0] | 闪存,o- backstores子目录 |
o- iscsi … [Targets: 0] | 以ISCSI的方式共享存储设备的目录 |
o- loopback … [Targets: 0] |
(一)进入到/backstores/block目录中添加设备到块设备列表
cd /backstores/block
create disk0 /dev/sdb1
(二)进入到iscsi目录中生成iqn标签
create
#也可自行命名,例:iqn.日期.域名:域名组织分配的名字
(三)进入到/iscsi/iqn.*/tpg1/luns>目录下创建逻辑单元
cd /iscsi/iqn.*/tpg1/luns
create /backstores/block/disk0
进入到/iscsi/iqn.*/tpg1/acls>目录中创建访问控制规则
cd /iscsi/iqn.*/tpg1/acls
create iqn.*
进入到/iscsi/iqn.*/tpg1/portals>目录中创建端口
create 192.168.1.1 3260 #本机IP
#注意:因为原本存在一个端口0.0.0.0:3260,所以需要将原来的端口删除掉再进行创建
exit
退出,否则设置不会被保存
在认证文件中成iqn编号
vim /etc/iscsi/initiatorname.iscsi
将原来的认证编号改为新生成的编号
启动服务
systemctl start iscsi
systemctl start iscsid
安装软件
yum -y install iscsi-initiator-utils
在认证文件中生成iqn编号
vim /etc/iscsi/initiatorname.iscsi
将原来的认证编号改为新生成的编号
开启客户端服务
systemctl start iscsi
systemctl start iscsid
查找可用的iscsi资源列表
iscsiadm -m discovery -t st -p 192.168.1.1:3260
-m
指定模式
-t
指定动作类型,st
sendtargets
-p
指定服务器和端口
访问服务器的共享资源
iscsiadm -m node -T iqn.* -l
-T
targetnameiqn
-l
login
即可挂载使用
登出设备
scsiadm -m node -T iqn.* -u -p 192.168.91.138
ISCSI服务是一种强大的存储解决方案,可以在Linux系统中实现。通过配置iSCSI Target和iSCSI Initiator,可以将远程存储设备映射为本地设备,并实现共享存储。然而,使用iSCSI服务需要注意网络性能和配置管理的问题。