共计 3209 个字符,预计需要花费 9 分钟才能阅读完成。
文档目的
部署 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] | 删除 portals 下ip地址和端口 |
systemctl restart iscsid | iscsi客户端重启 |
iscsiadm
| |
file /dev/sdb | 检查硬盘信息 |
所需软件
targetd
targetcli
系统环境
服务器:Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.CentOS.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )
客户端:Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (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)
查看 RAID 阵列 UUID 值
mdadm -D /dev/md0
创建 RAID 阵列配置文件
vim /etc/mdadm.conf
写入以下语句
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md0 UUID=edf6f2dd:17c58f31:e60b3208:e585f906
2.安装target 服务程序
yum -y install targetd targetcli
启动 iSCSI target 服务程序
systemctl start targetd
添加 iSCSI target 服务到开机启动项
systemctl enable targetd
3.创建存储对象
targetcli
进入 /backstores/block 目录中创建设备disk0
cd /backstores/block
create disk0 /dev/md0
返回根目录,查看创建后的设备
cd /
ls
4.配置iSCSI target 目标
进入 iscis 目录
cd iscsi
创建 iSCSI target 目标
create
进入 target/luns 目录中创建 LUN 设备
cd iqn.2003-………..
cd tpg1
cd luns
create /backstores/block/disk0
5.设置访问控制列表
创建访问控制列表
ls /
cd ..
cd acls
create iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client
注:create的 acl 名字可以用 ls / 查看 iscisi 下targetID,并在显示的 targetID 后加上“:client”
切换到 portals 目录中,先删除 0.0.0.0:3260, 再添加允许监听的 IP 地址
cd ..
cd portals
delete 0.0.0.0 3260
create 172.16.34.71
注:这里一定要先删除 0.0.0.0 地址,否则会报错“Could not create NetworkPortal in configFS”!
6. 关闭端口防火墙
firewall-cmd –zone=public –add-port=3260/tcp –permanent
firewall-cmd –reload
配置iSCSI 客户端
1. 检查能否与 iscsi 服务端通信
ping -c 172.16.34.71
2. 安装客户端服务程序
yum install iscsi-initiator-utils -y
3. 编辑 iscsi 客户端名称文件
vim /etc/iscsi/initiatorname.iscsi
替换以下语句
InitiatorName=iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445:client
注:这里的名字必须与 iscsi 服务端设置的 acls 名称一致,否则会报错“iSCSI login failed due to authorization failure”!
重启 iscsi 客户端服务
systemctl restart iscsid
发现 iscsi 服务端的可用存储设备
iscsiadm -m discovery -t st -p 172.16.34.71
连接 iscsi 服务端的可用存储设备
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.centos-cloud.x8664:sn.c15800d54445 -p 172.16.34.71 –login
验证
file /dev/sdb
连接前
fdisk -l
连接后
fdisk -l
格式化磁盘
mkfs.xfs /dev/sdb
mkdir /iscsi
mount /dev/sdb /iscsi
df -h
常见问题
问题一:无法建立本地IP portals 监听,显示“Could not create NetworkPortal in configFS”
解决方法:
删除 /iscsi/iqn.20../portals 已有IP:端口,再次建立即可
cd /iscsi/iqn.20../tpg1/portals
delete 0.0.0.0 3260
create 172.16.34.70 (这里的 IP 是iSCSI服务器的 IP 地址)
问题二:iSCSI 客户端无法连接 iSCSI 服务端,显示错误“iSCSI login failed due to authorization failure”
解决方法:
客户端中的 initiator 唯一标识(/etc/iscsi/initiatorname.iscsi)必须和服务器上的名字一直
客户端 vim /etc/iscsi/initiatorname.iscsi
服务端
targetcli
cd /
ls
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141445.htm