ISCSI:
iSCSI技术实现了物理硬盘设备与TCP/TP网络传输协议的相互结合,使得用户可以通过互联网方便的获取到远程机房提供的共享存储资源
(1)ISCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也能够将 Linux 主机仿真成 iSCSI target 了!目的在提供其他主机使用的『磁盘』
(2)ISCSI initiator:就是能够使用 target 的客户端,通常是服务器。 也就是说,想要连接到 iSCSI target 的服务器,也必须要安装 iSCSI initiator 的相关功能后才能够使用 iSCSI target 提供的磁盘就是了
一、软件安装(服务端、客户端)
shareserver(ip=172.25.254.227)———服务端 yum install targetcli -y
client (ip=172.25.254.127)———客户端 yum install iscsi-initiator-utils -y
二、共享设备
服务端:
[root@shareserver ~]# yum install targetcli -y # 下载策略编写工具
[root@shareserver ~]# systemctl start target # 启动target服务
[root@shareserver ~]# fdisk /dev/vdb # 新建分区,大小为1G(我建立的是逻辑卷,因为可以扩容)
[root@shareserver ~]# pvcreate /dev/vdb1 # 将/dev/vdb1做成一个物理卷
[root@shareserver ~]# vgcreate vg0 /dev/vdb1 # 创建卷组vg0,并将vdb1加入此卷组
[root@shareserver ~]# vgdisplay # 查看pe的个数
[root@shareserver ~]# lvcreate -l 255 -n lv0 vg0 # -l表示指定pe的个数,把所有的pe都分给lv0
[root@shareserver ~]# targetcli # 打开软件
/> /backstores/block create westos:storagel /dev/vg0/lv0 # 对逻辑卷重命名
/> /iscsi create iqn.2018-11.com.westos:storagel # 客户端访问时显示的名称
/> /iscsi/iqn.2018-11.com.westos:storagel/tpg1/acls create iqn.2018-11.com.westos:westoskey # 生成密钥
/> /iscsi/iqn.2018-11.com.westos:storagel/tpg1/luns create /backstores/block/westos:storagel # 将在客户端显示的名称与实际共享的设备的连接
/> /iscsi/iqn.2018-11.com.westos:storagel/tpg1/portals/ create 172.25.254.227 # 创建一个网络接口
!!!有时添加网络接口失败,可能已经存在一个网络接口,删除重新添加
/> iscsi/iqn.2018-11.com.westos:storagel/tpg1/portals/ delete x.x.x.x xxxx # 删除网络接口
在客户端:
在iSCSI客户端使用共享存储资源,需要先发现,再登陆,最后挂载并使用,iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具,用户需要先使用这个iscsiadm命令对远程iSCSI服务端进行扫描发现,查看该服务器上面有哪些可用的共享存储资源
[root@client ~]# yum search iscsi #根据软件信息找软件
[root@client ~]# yum install -y iscsi-initiator-utils.x86_64
[root@client ~]# iscsiadm -m discovery -t st -p 172.25.254.227:3260,1 iqn.2018-11.com.westos:storagel
-m discovery # 扫描发现可用存储资源,
-t st # 指定扫描发现操作的类型,
-p 172.25.254.227 # 服务端iSCSI服务端的IP地址
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.227 -l # 登录
-m node # 将本机作为一台节点服务器
-T iqn.2018-11.com.westos:storagel # 要使用的存储资源名称,字符串很长手打容易错,我们直接复制上面扫描发现到的结果即可
-p 172.25.254.142 # 对方iSCSI服务端的IP地址
-l # 登录
iSCSI协议是通过客户端名称进行验证的,而该名称也就是iSCSI客户端的唯一标识,这串信息必须与服务端配置文件中ACL访问控制列表中的信息匹配一致,否则客户端在尝试使用存储共享时就会弹出验证失败的报错信息。
[root@client ~]# vim /etc/iscsi/initiatorname.iscsi #打开
InitiatorName=iqn.2018-11.com.westos:westoskey #把刚刚服务端的ACL访问控制列表名称填写进入
[root@client ~]# systemctl restart iscsid.service #重启服务
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.227 -l # 成功登陆
[root@client ~]# fdisk -l # 查看到新增加了一块分区
在服务端扩展磁盘:
[root@shareserver ~]# fdisk /dev/vdb # 再新建一个分区
[root@shareserver ~]# pvcreate /dev/vdb2 # 将/dev/vdb2#做成一个物理卷
[root@shareserver ~]# vgextend vg0 /dev/vdb2 #将新的物理卷vdb2加入物理卷组vg0
[root@shareserver ~]# vgdisplay
[root@shareserver ~]# lvextend -l 510 /dev/vg0/lv0 # 把所有的PE都给/dev/vg0/lv0
在客户端:
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.227 -u # 因为共享设备的大小已经更新,所以我们需要退出登录,通过再次登录来刷新客户端的大小,-u表示退出登录
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.227 -l # 重新登录
[root@client ~]# fdisk -l # 大小已经改变
在对iSCSI服务端进行登陆验证显示顺利成功后就会在系统中多了一块名为/dev/sda的设备文件,这个远程的存储资源设备文件就这么活生生的出现到了iSCSI客户端主机上面,接下来我们就可以像使用自己电脑上的硬盘一样来对这块设备进行操作了。
三、使用共享设备
(1)永久挂载设备
客户端:
[root@client ~]# fdisk /dev/sda # 在这块设备上建立一个新的分区
[root@client ~]# fdisk -l # 查看分区
[root@client ~]# partprobe # 同步
[root@client ~]# mkfs.xfs /dev/sda1 # 格式化
[root@client ~]# mount /dev/sda1 /mnt/ # 临时挂载
[root@client ~]# df
[root@client ~]# umount /mnt
[root@client ~]# vim /etc/fstab # 永久挂载
/dev/sda1 /mnt xfs defaults,_netdev 0 0 # _netdev表示声明这是一个网络设备
[root@client ~]# reboot
注:第一次如果重启很慢的话,就先强制关机,在开机即可
[root@client ~]# df # 开机之后再次查看,自动挂载
四、删除设备
客户端:
[root@client ~]# yum install tree -y
[root@client ~]# tree /var/lib/iscsi/ # 以树形图的方式显示此目录,/var/lib/iscsiIscsi的认证数据目录
[root@client ~]# vim /etc/fstab
删除:/dev/sda1 /mnt xfs defaults,_netdev 0 0
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.142 -u # 登出iscsi
[root@client ~]# iscsiadm -m node -T iqn.2018-11.com.westos:storagel -p 172.25.254.142 -o delete # 删除配置文件
[root@client ~]# tree /var/lib/iscsi/ # 再次查看就已经删除
[root@client ~]# fdisk -l # 查看设备已经删除
服务端:
[root@shareserver ~]# targetcli #打开软件
/> clearconfig confirm=True
/> ls # 查看成功删除