ISCSI介绍
iscsi协议的运行方式类似客户端-服务器配置。客户端系统将启动器软件配置为将scsi命令发送到远程服务器存储目标。访问的iscsi目标在客户端系统上显示为本地且未格式化的scsi块设备,等同于通过scsi布线、FC直连或FC交换光纤连接的设备。
iscsi使用ACL来执行LUN屏蔽,从而管理相应目标和LUN对启动器的可访问性。还可以使用CHAP身份验证来限制对目标的访问权限。在使用设备全球编号(WWN)进行软区域划分管理限制方面,iscsi ACL与FC类似。尽管FC交换级别强制端口限制(硬区域划分)没有任何可比较的iscsi机制,但以太网VLAN可以提供类似的隔离安全性。
与本地块设备不同的是,iscsi网络访问块设备可通过众多远程启动器发现。典型的本地文件系统(如ext4、XFS和btrfs)不支持同时多系统挂载,这会导致严重的文件系统损坏。集群系统利用全局文件系统(GFS2)解决多系统访问权限,其旨在提供分布式文件锁定和并发多节点文件系统挂载。
iSCSI的工作方式分为服务端(target)与客户端(initiator):
服务端:即存放硬盘或RAID设备的存储端,目的是为客户端提供可用的存储。
客户端:使用服务端的服务器主机。
实验需要两台虚拟主机来完成,分别是:
主机名称 | 操作系统 | IP地址 |
---|---|---|
system1 | RHEL7 | 172.24.10.11 |
system2 | RHEL7 | 172.24.10.12 |
逻辑单元LUN(即Logical Unit Number)是使用iSCSI协议中的重要概念,因为当客户机想要使用服务端存储设备时都必需输入对应的名称(Target ID),而一个服务端可能会同时提供多个可用的存储设备,于是便用LUN来详细的描述设备或对象,同时每个LUN Device可能代表一个硬盘或RAID设备,LUN的名称由用户指定。
服务端target (此环境中为system1)
yum -y install targetd targetcli (默认安装完毕)
[root@system1]# systemctl start targetd (启动iSCSI target服务程)
[root@system1]# systemctl enable target
[root@system1]# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-
user.target.wants/targetd.service' (将iSCSI target服务程序添加到开机启动项)
配置iSCSI服务端共享资源,targetcli是用于管理iSCSI服务端存储资源的专用配置命令,它能够提供类似于前面学习过的fdisk命令的交互式配置功能,将iSCSI共享资源的配置内容抽象成了“目录”的形式,我们只需要将各类配置信息写入到对应“目录”中即可,难点主要集中在认识每个“参数目录”的作用,当把配置参数正确妥当的填写到“目录”中后,iSCSI服务端也就能够提供存储设备资源服务了。
(1)创建pv,vg,lv
pvcreate /dev/sda
vgcreate iscsi_vg /dev/sda3
lvcreate -n iscsi_store -l 100%VG iscsi_vg
(2)配置防火墙
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.24.10.12/24" port port="3260" protocol="tcp" accept"
firewall-cmd --reload
(3)创建储存
targetcli命令用于管理iSCSI target存储设备
[root@system1 ~]# targetcli
/> /backstores/block create iscsi_store /dev/iscsi_vg/iscsi_store #create 新块设备名称 使用的设备
/> cd /iscsi #进入iscsi目录下配置
/iscsi> create iqn.2014-08.com.example:system1 #iqn(规范写法 iqn.日期.域名反写:描述)
/iscsi> cd iqn.2014-08.com.example:system1/tpg1/
/iscsi/.../tpg1> acls/ create iqn.2014-08.com.example:system2 #配置访问规则(谁可以访问)
/iscsi/.../tpg1> luns/ create /backstores/block/iscsi_store #将之前创建的块设备与配置iSCSI文件关联
/iscsi/.../tpg1> portals/ create 172.24.10.11 #target端IP及端口(端口可以不写)
/> saveconfig #保存配置
/>exit
注意:创建 portals 时,可能会出错,因为系统默认已经创建了 0.0.0.0: 3260 这个 portal,所以要先删除,命令是 portals/ delete 0.0.0.0 3260,删除后再执行一次上面的命令就可以创建了
(4)重启服务
systemctl restart target
至此 target端配置完毕!!!!!
(1)安装客户端:iscsi-initiator-utils
yum search iscsi
yum install -y iscsi-initiator-utils
(2)修改InitiatorName
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-08.com.example:system2 #等号后面为修改后内容
(3)发现设备
man iscsiadm (shift +G) 在文档末尾找到example标题
发现设备:
iscsiadm --mode discoverydb --type sendtargets --portal 172.24.10.11 --discover
登陆设备:
iscsiadm --mode node --targetname iqn.2014-08.com.example:system1 --portal 172.24.10.11:3260 --login
检查:
iscsiadm -m session
(4)使用 iSCSI 设备,分区并挂载
[root@system2 ~]# fdisk -l /dev/sdb (sdb 为新发现的 iscsi 设备名)
[root@system2 ~]# fdisk /dev/sdb (创建 2100M 的 Linux 分区/dev/sdb1)
[root@system2 ~]# partprobe /dev/sdb (通知文件系统)
[root@system2 ~]# mkfs.ext4 /dev/sdb1 (格式化分区为 ext4)
[root@system2 ~]# mkdir /mnt/data (准备挂载目录)
[root@system2 ~]# vim /etc/fstab (让新分区自动挂载)
/dev/sdb1 /mnt/data ext4 _netdev 0 0 (注意挂载选项是 _netdev)
[root@system2 ~]# mount -a
[root@system2 ~]# df -hT
至此,iSCSI实验完毕,仅供参考学习使用!
“`
注意:此次实验针对本人RHCE,省略部分已提前配置步骤,望参考时注意**。