使用iSCSI服务部署网络存储
实验环境:
主机名称 | 操作系统 | IP地址 |
---|---|---|
iSCSI服务端 | CentOS 7.4 | 192.168.126.131 |
iSCSI客户端 | CentOS 7.4 | 192.168.126.200 |
iSCSI客户端 | Windows 10专业版 | 192.168.126.240 |
一、创建磁盘阵列
- 在虚拟机中添加 4 块新硬盘,用于创建 RAID 5 磁盘阵列和备份盘。
- 启动系统,查看新添加磁盘的名称。
- 使用 mdadm 命令创建 RAID 磁盘阵列。
[root@source yum.repos.d]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
参数注释:-Cv :创建阵列并显示过程,/dev/md0 :生成的阵列组名称,-n 3 :创建 RAID 5 磁盘阵列所需的硬盘个数, -l 5 : RAID 磁盘阵列的级别,-x 1 :磁盘阵列的备份盘个数,/dev/sdb:硬盘名称。 - 查看md0设备的详细信息:
[root@source yum.repos.d]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Aug 25 10:00:21 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Consistency Policy : resync
Name : source:0 (local to host source)
UUID : aabe90f3:c5fa83d9:9a6f12b4:e3240291
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
二、配置iSCSI服务端
1. 安装iSCSI服务端程序以及配置命令工具
# yum -y install targetd targetcli
2. 启动iSCSI服务端程序并加入开机自启
#systemctl start targetd
#systemctl enable targetd
3. 配置 iSCSI 服务端共享资源。
将刚创建的 RAID 5 磁盘阵列 md0 文件加入到配置共享设备的“资源池”中,并将该文件重新命名为 disk0,
4. 创建 iSCSI target 名称及配置共享资源。
iSCSI target 名称由系统自动生成,同时在/iscsi 参数目录中创建一个与其字符串同名的新目录用来存放共享资源。将前面加入到 iSCSI 共享资源池中的硬盘设备添加到这个新目录中,这样客户端在登录 iSCSI 服务端后,即可使用这硬盘设备提供的共享存储资源。
5. 设置访问控制列表(ACL)。
iSCSI 协议是通过客户端名称进行验证的。用户在访问存储共享资源时不需要输入密码,只要iSCSI客户端的名称与服务端中访问控制列表中某一名称一致即可,因此需要在iSCSI 服务端的配置文件中写入一串能够验证用户信息的名称。acls 参数目录用于存放能够访问 iSCSI 服务端共享存储资源的客户端名称。
6. 设置 iSCSI 服务端的监听 IP 地址和端口号。
7. 配置成功后如下图:
三、配置Linux客户端
1. 安装iSCSI客户端程序initiaor
# yum -y install iscsi-initiator-utils
2. 编辑 iSCSI 客户端的配置文件,把服务端访问控制列表设置好的名称填写进来,启动iSCSI服务端程序并加入开机自启
# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.source.x8664:sn.6e9e340b30a2:client
#systemctl start iscsid
#systemctl enable iscsid
3. iSCSI 客户端访问并使用共享存储资源
3.1 扫描iSCSI服务端
# iscsiadm -m discovery -t st -p 192.168.126.131
参数注释:-m discovery :扫描并发现可用的存储资源,-t st :执行扫描操作的类型,-p 192.168.126.131 :iSCSI 服务端的 IP 地址。
3.2 登录iSCSI服务端:
# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.source.x8664:sn.6e9e340b30a2 -p 192.168.126.131 -–login
参数注释:-m node :将客户端所在主机作为一台节点服务器,-T :要使用的存储资源,-p 192.168.126.131 : iSCSI 服务端的 IP 地址, --login :登录验证。
4. 至此iSCSI网络存储在Linux客户端挂载成功:
5. 对磁盘进行格式化并挂载
四、配置Windows客户端
- 运行 iSCSI 发起程序,Windows 10 操作系统默认安装了 iSCSI 客户端程序。
- 连接 iSCSI 服务端的共享存储资源,由于在 iSCSI 服务端程序上设置了 ACL,因此先需要在 “配置”选项卡中更改服务器配置过的 ACL 策略名称。
- 扫描发现 iSCSI 服务端上可用的存储资源。在 “目标”选项卡的“目标”文本框中写入 iSCSI 服务端的 IP 地址,然后单击“快速连接”。
- 访问 iSCSI 远程共享存储资源。查看已挂载的磁盘。
至此iSCSI网络存储在Windows客户端挂载成功。