Linux下iSCSI服务部署文档

文档目的

部署iSCSI服务

基础知识

传统的SCSI小型计算机系统接口(Small Computer System Interface)技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用SCSI总线链接,因此受到了物理环境的限制。

iSCSI小型计算机系统接口(即Internet Small Computer System Interface)则是由IBM公司研究开发用于实现在IP网络上运行SCSI协议的新存储技术,即能够让SCSI接口与以太网技术相结合,使用iSCSI协议基于以太网传送SCSI命令与数据,克服了SCSI需要直接连接存储设备的局限性,使得我们可以跨越不同的服务器共享存储设备,并可以做到不停机状态下扩展存储容量。

SAN存储区域网络技术(Storage Area Network)便是基于iSCSI存储协议,采用高速光钎通道传输存储数据的服务程序。

逻辑单元LUN(Logical Unit Number)是使用iSCSI协议中的重要概念,因为当客户机想要使用服务端存储设备时都必需输入对应的名称(Target ID),而一个服务端可能会同时提供多个可用的存储设备,于是便用LUN来详细的描述设备或对象,同时每个LUN Device可能代表一个硬盘或RAID设备,LUN的名称由用户指定。

iSCSI的工作方式分为服务端(target)与客户端(initiator

常用命令

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

创建RAID 5

mdadm -D /dev/md0

查看RAID阵列详细信息,获取UUID

create

iSCSI中创建磁盘镜像

delete [ip] [port]

删除portalsip地址和端口

systemctl restart iscsid

iscsi客户端重启

iscsiadm

 

 

file /dev/sdb

检查硬盘信息

所需软件

targetd

targetcli

系统环境

客户端:Linux version 3.10.0-229.el7.x86_64 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

操作步骤

配置iSCSI服务器

1.准备作为LUN发布的存储设备

现在虚拟机中添加四个容量为20GB的硬盘

创建RAID5并且设置一块备份用的故障盘

mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

注:如果提示mdadm命令未找到,请先安装mdadm命令(yum install mdadm -y

wKioL1gV0x-D4CZqAAAcv6f5by8739.png

查看RAID阵列UUID

mdadm -D /dev/md0

wKiom1gV0zyxEs7JAAAZUQZHzfM882.png

创建RAID阵列配置文件

vim /etc/mdadm.conf

写入以下语句

DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde

ARRAY /dev/md0 UUID=edf6f2dd:17c58f31:e60b3208:e585f906

wKioL1gV01XTjxbgAAAKm_q1mU0445.png

2.安装target服务程序

yum -y install targetd targetcli

启动iSCSI target服务程序

systemctl start targetd

添加iSCSI target服务到开机启动项

systemctl enable targetd

3.创建存储对象

targetcli

wKiom1gV03SzLQgtAAASHSVDvJA820.png

进入/backstores/block目录中创建设备disk0

cd /backstores/block

create disk0 /dev/md0

wKiom1gV04ugCjPkAAAuXnujkiU246.png

返回根目录,查看创建后的设备

cd /

ls

wKioL1gV06GT_YvfAAA2TNBtves678.png

4.配置iSCSI target目标

进入iscis目录

cd iscsi

创建iSCSI target 目标

create

进入target/luns目录中创建LUN设备

cd iqn.2003-...........

cd tpg1

cd luns

create /backstores/block/disk0

wKioL1gV08PSWX1LAAAiTIYU7kg232.png

5.设置访问控制列表

创建访问控制列表

ls /

cd ..

cd acls

create iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client

注:createacl名字可以用 ls / 查看iscisitargetID,并在显示的targetID后加上“:client

wKiom1gV096CEwf6AABp0Y61s2c984.png

切换到portals目录中,先删除0.0.0.0:3260, 再添加允许监听的IP地址

cd ..

cd portals

delete 0.0.0.0 3260

create 172.16.34.71

wKioL1gV0_nzxdBKAAAf-pgliVw185.png

注:这里一定要先删除0.0.0.0地址,否则会报错“Could not create NetworkPortal in configFS”!

wKiom1gV1BbTS3koAABg5kgbvwc231.png

6.关闭端口防火墙

firewall-cmd --zone=public --add-port=3260/tcp --permanent

firewall-cmd --reload

wKiom1gV1C-BcOdRAAAPknpgov8914.png

配置iSCSI客户端

1.检查能否与iscsi服务端通信

ping -c 172.16.34.71

2. 安装客户端服务程序

yum install iscsi-initiator-utils -y

wKioL1gV1FSiiMF4AAALFlM5sjU583.png

3.编辑iscsi客户端名称文件

vim /etc/iscsi/initiatorname.iscsi

替换以下语句

InitiatorName=iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client

wKiom1gV1HDDRglRAAAJcKcg2L8523.png

注:这里的名字必须与iscsi服务端设置的acls名称一致,否则会报错“iSCSI login failed due to authorization failure”!

重启iscsi客户端服务

systemctl restart iscsid

发现iscsi服务端的可用存储设备

iscsiadm -m discovery -t st -p 172.16.34.71

wKiom1gV1LmDARjLAAAL3BESEec000.png

连接iscsi服务端的可用存储设备

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445 -p 172.16.34.71 --login

wKioL1gV1NzQlBK0AAAg8dUbdCY146.png

验证

file /dev/sdb

连接前

fdisk -l

wKioL1gV1P2hHTneAABm2jqUpL4433.png

连接后

fdisk -l

wKioL1gV1RjhbrmLAABp0advC9o644.png

格式化磁盘

mkfs.xfs /dev/sdb

wKioL1gV1TLASuONAAAY2Rd_tpU809.png

mkdir /iscsi

mount /dev/sdb  /iscsi

df -h

wKiom1gV1UnhIqdwAAAoORYQaN4871.png

常见问题

问题一:无法建立本地IP portals 监听,显示“Could not create NetworkPortal in configFS”

wKiom1gV1W_DkfzdAAANAAlDhu8939.png

解决方法:

删除/iscsi/iqn.20../portals 已有IP:端口,再次建立即可

cd /iscsi/iqn.20../tpg1/portals

delete 0.0.0.0 3260

create 172.16.34.70    (这里的IPiSCSI服务器的IP地址)

wKioL1gV1auyFzFdAABPsuOMQxw041.png

wKioL1gV1auw2BtyAAAVWgmepJw981.png

问题二:iSCSI客户端无法连接iSCSI服务端,显示错误“iSCSI login failed due to authorization failure”

wKiom1gV1ciBo1A2AAAqEXNN0xc835.png

解决方法:

客户端中的initiator唯一标识(/etc/iscsi/initiatorname.iscsi)必须和服务器上的名字一直

客户端 vim /etc/iscsi/initiatorname.iscsi 

wKiom1gV1fDhdWVzAAALU9-f0Ig479.png

服务端

targetcli

cd /

ls

wKiom1gV1grCylRXAABpv2zfE3Q907.png

猜你喜欢

转载自www.linuxidc.com/Linux/2017-03/141445.htm