一、简介:
iSCSI,Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。iscsi通过TCP/IP协议,实现远程存储单元的本地使用(映射为本地硬盘)
二、实验环境:
iSCSI-Server:服务端centos7 192.168.8.235
iSCSI-Client-linux:客户端centos7 192.168.8.8
iSCSI-Client-Windows:客户端 192.168.8.14
三、实验准备:
设置IP地址、测试网络连通性、关闭服务端的防火墙和selinux
#设置服务端IP:
[root@docker network-scripts]# cd /etc/sysconfig/network-scripts/
[root@docker network-scripts]# vim ifcfg-enp0s3
IPADDR=192.168.8.235 #在最后一行加入IP地址
#设置客户端IP:
同上,Windows后面会放图
测试网络连通性:
[root@docker ~]# ping 192.168.8.8
服务端关闭防火墙
[root@docker ~]# systemctl stop firewalld.service
关闭selinux
1、临时关闭:输入命令setenforce 0,重启系统后还会开启。
2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
配置ISCSI的服务端:
准备存储空间
以硬盘的形式存在的:添加一块硬盘 (/dev/sdb)
以文件的形式存在的:dd if=/dev/zero of=/opt/disk.img bs=1024k count=512
四、实验步骤
- 关闭服务端虚拟机,添加一个网盘
[root@docker ~]# init 0 #关闭虚拟机
2.到虚拟机当前主机上编辑虚拟机设置,为当前主机添加一块本地磁盘:
3.查看磁盘信息、是否添加成功
[root@docker ~]# fdisk -l
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ddd2a设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 6295551 2098176 82 Linux swap / Solaris
/dev/sda3 6295552 104857599 49281024 83 Linux磁盘 /dev/sdb:24.7 GB, 24696061952 字节,48234496 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
4 .创建文件
[root@docker dev]# dd if=/dev/zero of=/opt/disk.img bs=1024k count=512
记录了512+0 的读入
记录了512+0 的写出
536870912字节(537 MB)已复制,0.814878 秒,659 MB/秒
[root@docker dev]# cd /op
opp/ opt/
[root@docker dev]# cd /opt
[root@docker opt]# ls
cni containerd disk.img test-scp 网络设备监控 - 副本.zip
- 安装iscsi服务端:targetd、targetcli
[root@docker network-scripts]# yum -y install targetd targetcli
6.调用targetcli命令进行设置:
- 创建iscsi磁盘
- 创建服务端程序
- 创建服务卷luns
- 5.4 创建客户端连接器(启用chap认证)
[root@docker network-scripts]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'./> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 0]| o- fileio ................................................................. [Storage Objects: 0]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 0]o- loopback ......................................................................... [Targets: 0]
/> /backstores/block create idisk2 /dev/sdb #创建iscsi第一块磁盘
Created block storage object idisk2 using /dev/sdb.
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.0GiB) write-thru deactivated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 0]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 0]o- loopback ......................................................................... [Targets: 0]
/> /backstores/fileio create idisk3 /opt/disk.img #创建iscsi第二块磁盘
Created fileio idisk3 with size 536870912
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.0GiB) write-thru deactivated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................. [/opt/disk.img (512.0MiB) write-back deactivated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 0]o- loopback ......................................................................... [Targets: 0]
/> iscsi/ create iqn.2021-12.pip.cc:server #创建服务端程序
Created target iqn.2021-12.pip.cc:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 ........................................ [/dev/sdb (23.0GiB) write-thru deactivated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................. [/opt/disk.img (512.0MiB) write-back deactivated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 1]| o- iqn.2021-12.pip.cc:server ......................................................... [TPGs: 1]| o- tpg1 ............................................................... [no-gen-acls, no-auth]| o- acls .......................................................................... [ACLs: 0]| o- luns .......................................................................... [LUNs: 0]| o- portals .................................................................... [Portals: 1]| o- 0.0.0.0:3260 ..................................................................... [OK]o- loopback ......................................................................... [Targets: 0]
/> cd iscsi/iqn.2021-12.pip.cc:server/tpg1/ #进入服务端程序
/iscsi/iqn.20...c:server/tpg1> luns/ create #创建服务卷backstores/block/idisk2
Created LUN 0.
/iscsi/iqn.20...c:server/tpg1> luns/ create #创建服务卷
/backstores/fileio/idisk3
Created LUN 1.
/iscsi/iqn.20...c:server/tpg1> ls
o- tpg1 ..................................................................... [no-gen-acls, no-auth]o- acls ................................................................................ [ACLs: 0]o- luns ................................................................................ [LUNs: 2]| o- lun0 ........................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]| o- lun1 ..................................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]o- portals .......................................................................... [Portals: 1]o- 0.0.0.0:3260 ........................................................................... [OK]
/iscsi/iqn.20...c:server/tpg1> cd acls
/iscsi/iqn.20...ver/tpg1/acls> ls
o- acls .................................................................................. [ACLs: 0]
/iscsi/iqn.20...ver/tpg1/acls> cd ..
/iscsi/iqn.20...c:server/tpg1> acls/ create iqn.2021-12.pip.cc:client #创建客户端连接器
Created Node ACL for iqn.2021-12.pip.cc:client
Created mapped LUN 1.
Created mapped LUN 0.
/iscsi/iqn.20...c:server/tpg1> ls
o- tpg1 ..................................................................... [no-gen-acls, no-auth]o- acls ................................................................................ [ACLs: 1]| o- iqn.2021-12.pip.cc:client .................................................. [Mapped LUNs: 2]| o- mapped_lun0 ...................................................... [lun0 block/idisk2 (rw)]| o- mapped_lun1 ..................................................... [lun1 fileio/idisk3 (rw)]o- luns ................................................................................ [LUNs: 2]| o- lun0 ........................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]| o- lun1 ..................................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]o- portals .......................................................................... [Portals: 1]o- 0.0.0.0:3260 ........................................................................... [OK]
/iscsi/iqn.20...c:server/tpg1> cd acls/iqn.2021-12.pip.cc:client/
/iscsi/iqn.20...pip.cc:client> set auth userid=vec #创建用户
Parameter userid is now 'vec'.
/iscsi/iqn.20...pip.cc:client> set auth password=112233445566 #设置密码
Parameter password is now '112233445566'.
/iscsi/iqn.20...pip.cc:client> cd /
/> ls
o- / ......................................................................................... [...]o- backstores .............................................................................. [...]| o- block .................................................................. [Storage Objects: 1]| | o- idisk2 .......................................... [/dev/sdb (23.0GiB) write-thru activated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- fileio ................................................................. [Storage Objects: 1]| | o- idisk3 .................................... [/opt/disk.img (512.0MiB) write-back activated]| | o- alua ................................................................... [ALUA Groups: 1]| | o- default_tg_pt_gp ....................................... [ALUA state: Active/optimized]| o- pscsi .................................................................. [Storage Objects: 0]| o- ramdisk ................................................................ [Storage Objects: 0]o- iscsi ............................................................................ [Targets: 1]| o- iqn.2021-12.pip.cc:server ......................................................... [TPGs: 1]| o- tpg1 ............................................................... [no-gen-acls, no-auth]| o- acls .......................................................................... [ACLs: 1]| | o- iqn.2021-12.pip.cc:client ............................................ [Mapped LUNs: 2]| | o- mapped_lun0 ................................................ [lun0 block/idisk2 (rw)]| | o- mapped_lun1 ............................................... [lun1 fileio/idisk3 (rw)]| o- luns .......................................................................... [LUNs: 2]| | o- lun0 ..................................... [block/idisk2 (/dev/sdb) (default_tg_pt_gp)]| | o- lun1 ............................... [fileio/idisk3 (/opt/disk.img) (default_tg_pt_gp)]| o- portals .................................................................... [Portals: 1]| o- 0.0.0.0:3260 ..................................................................... [OK]o- loopback ......................................................................... [Targets: 0]
/>
exit 退出
5.5 重启targetd服务,并配置开机自动运行
[root@docker ~]# systemctl restart targetd
[root@docker ~]# systemctl enable targetd
6.客户端配置(Linux)
1 安装iscsid的客户端:iscsi-initiator-utils
[root@jbjb ~]#cd /media/cdrom/Packages/
[root@jbjb Packages]#yum -y install iscsi-initiator-utils
2 修改iscsi的配置文件:/etc/iscsi/
[root@jbjb Packages]#cd /etc/iscsi/
initiatorname.iscsi #定义客户端连接器的名称 iqn.2021-12.pip.cc:client
iscsid.conf:启用chap认证、配置服务器设定的用户与密码
启用chap认证
配置服务器设定的用户与密码
3 .启动iscsid服务,启动后刚配置的才会生效
[root@jbjb iscsi]# systemctl restart iscsid
4.发现存储服务器
[root@jbjb iscsi]# iscsiadm -m discovery -t st -p 192.168.8.235
192.168.8.235:3260,1 iqn.2021-12.pip.cc:server
5.登录存储服务器
[root@jbjb iscsi]# iscsiadm -m node -T iqn.2021-12.pip.cc:server -p 192.168.8.235 -l #登录
6.查看iscsi"网盘" : lsblk
- 磁盘使用使用:
7.1格式化
[root@jbjb iscsi]# mkfs.xfs -f /dev/sdc 格式化sdc盘
7.2挂载
[root@jbjb iscsi]# mount /dev/sdc /mnt/usb/ 挂载sdc到客户端的/mnt/usb/
7.3添加文件测试
[root@jbjb iscsi]# echo 11111111 > /mnt/usb/2.txt
[root@jbjb iscsi]# ll /mnt/usb/
总用量 4
-rw-r--r-- 1 root root 9 12月 19 06:01 2.txt
8.卸载存储服务器
先解除卸载
[root@jbjb iscsi]# umount -l /dev/sdc
然后执行
[root@jbjb iscsi]# iscsiadm -m node -T iqn.2021-12.pip.cc:server -p 192.168.8.235 -u
7.Windows客户端配置
调出程序属性
目标处填写服务端IP
卷和设备处点击自动配置
进入计算机管理,查看磁盘是否共享成功