基本环境
底层: Windows 11 x64
虚拟化层:VMWare Workstation 17.0.2
虚拟化兼容性:ESXi 6.7
虚拟硬件:
CPU: 4 Core
RAM: 16 GB
HDD: 128 GB SCSI
HDD: 32 GB SATA (附加 iSCSI存储)
NetWork: NAT
操作系统版本: CentOS 7.9.2207 Mininal 无更新、无升级内核
无系统更新
无内核升级
关闭 SELinux
配置 NTP 时间同步
安装 Open VM Tools
美化 CLI
iSCSI 基本概念
# iSCSI 是一种基于TCP/IP网络的网路共享存储协议。使用方法类似于SAN,但是价格更便宜。
# iSCSI 存在几个基本概念
# iSCSI 磁盘,即 iSCSI客户端实际使用的存储空间,可以是物理磁盘也可以是镜像文件
# iSCSI 目标:实际就是 iSCSI 的客户端标识,或者说是客户端地址信息
# iSCSI 发起程序:实际就是 iSCSI 的服务器端标识,或者说服务器端地址信息
# 虽然 Linux 环境可以创建 iSCSI 服务器,但是操作相对复杂,修改配置还需要重启服务,各种麻烦
# 相对来说,使用Windows Server 系统部署 iSCSI 服务器,在各方面都更方便使用
# 也可以使用一些NAS系统作为iSCSI 服务器使用,GUI配置和使用相对更简便一些
应用场景设计概要
# 一台iSCSI CentOS 7.9 服务器
# 创建一个 32GB SATA 硬盘,用于做 iSCSI 存储磁盘使用
# 创建一个 10GB 空镜像文件,用于做 iSCSI 存储磁盘使用
# 一台iSCSI RokcyOS 9 客户端,用于链接 iSCSI 服务器
# 一台iSCSI Windows 10 客户端,用于链接 iSCSI 服务器
操作步骤
# 加载 iSCSI 存储空间 物理硬盘
# 创建 iSCSI 存储空间 镜像文件
# 安装 iSCSI 服务器端 软件包
# 配置 iSCSI 服务器端
# 创建 iSCSI 虚拟磁盘
# 创建 iSCSI 服务器端 程序
# 创建 iSCSI 存储空间
# 创建 iSCSI 客户端 连接器
# 管理 iSCSI 服务器端 系统服务
# 配置 iSCSI 服务器端 防火墙
# 配置 iSCSI 客户端
# Linux 客户端挂载 iSCSI 磁盘
# 安装 iSCSI 客户端 软件包
# 修改 iSCSI 客户端 配置文件
# 管理 iSCSI 客户端端 系统服务
# 配置 iSCSI 客户端 防火墙
# iSCSI 客户端 挂载 iSCSI 磁盘
# Windows 客户端挂载 iSCSI 磁盘
# 打开“iSCSI 发起程序”
# 修改“iSCSI 发起程序”名称”
# 连接“iSCSI 存储”
# 配置“服务卷(存储空间)”
# 查看“iSCSI 存储”
查看 或 创建 虚拟磁盘
# 根据“基本环境”信息所示,虚拟机已经提前加载了一个32GB SATA 硬盘
# 查看磁盘及分区详细信息
lsblk
# 创建 iSCSI 存储文件夹
mkdir -p /data/iscsi
# 生成一个 10GB 的文件
dd if=/dev/zero of=/data/iscsi/iscsi-disk-01.img bs=1024k count=10240
iSCSI 服务器 基本安装
# 安装 iSCSI 服务器 软件包
yum install -y targetd targetcli
# 银河麒麟 安装 iSCSI 服务器 软件包
yum install -y target-restore targetcli
配置 iSCSI 服务器
创建 iSCSI 磁盘
调用 targetcli 设置
# 使用 iSCSI 管理工具
targetcli
# 列出服务器上的节点
ls
# 其中,block 节点,表示使用物理硬盘的节点
# 其中,fileio 节点,表示使用文件镜像的节点
# 创建 block 节点,基于物理硬盘 iSCSI 磁盘 (硬盘为上一步操作查询的硬盘信息)
/backstores/block create iSCSI-Disk-01 /dev/sdb
# 创建 fileio 节点,基于文件镜像 iSCSI 磁盘(硬盘为上一步创建的镜像文件)
/backstores/fileio create iSCSI-Disk-02 /data/iscsi/iscsi-disk-01.img
创建服务端程序
# 此步骤创建的是 iSCSI 的 Target 设备名称
# iSCSI target名称必须是全球唯一的,必须是以 iqn 开头的其格式为:
# iqn.< yyyy-mm >.< tld.domain.some.host > [:< identifier >]
# iqn.< 年份-月份 >.< 域名反写 > [: < 设备识别;可以是任意字符串 >]
# 创建 iSCSI 服务端程序
/iscsi/ create iqn.2023-12.local.fourleaf:server
创建服务卷 (存储空间)
# 进入 iSCSI target (上一步操作创建的)
cd /iscsi/iqn.2023-12.local.fourleaf:server/tpg1/
# 创建 基于 物理磁盘 的 iSCSI 存储空间 (对应上面创建的iSCSI 磁盘)
luns/ create /backstores/block/iSCSI-Disk-01
# 创建 基于 文件镜像 的 iSCSI 存储空间 (对应上面创建的iSCSI 磁盘)
luns/ create /backstores/fileio/iSCSI-Disk-02
# 查看 创建的 存储空间
ls
# 查看 全部信息 (为了更直观查看,可以不仅仅看iSCSI target)
ls /# 进入 iSCSI target (上一步操作创建的)
cd /iscsi/iqn.2023-12.local.fourleaf:server/tpg1/
# 创建 基于 物理磁盘 的 iSCSI 存储空间 (对应上面创建的iSCSI 磁盘)
luns/ create /backstores/block/iSCSI-Disk-01
# 创建 基于 文件镜像 的 iSCSI 存储空间 (对应上面创建的iSCSI 磁盘)
luns/ create /backstores/fileio/iSCSI-Disk-02
# 查看 创建的 存储空间
ls
# 查看 全部信息 (为了更直观查看,可以不仅仅看iSCSI target)
ls /
创建客户端连接器
# 创建客户端连接器
acls/ create iqn.2023-12.local.fourleaf:client
# 进入连接器
cd acls/iqn.2023-12.local.fourleaf:client
# 以下步骤为了启用chap认证,非必须步骤
# 设置用户名
set auth userid=fourleaf
# 设置密码 (12~16位)
set auth password=122333444455555
# 查看 创建的客户端连接器
ls /iscsi/iqn.2023-12.local.fourleaf:server/tpg1/
# 回到 根目录 (否则下一次进入不会自动回到根目录)
cd /
# 退出
exit
iSCSI 服务器端 服务管理
# 启动 iSCSI 服务 (服务如果起不来,就重启系统)
systemctl start target.service
# 设置 iSCSI 服务 为开机自启动
systemctl enable target.service
# 检查 iSCSI 服务 运行状态
systemctl status target.service
# 查看 iSCSI 服务 进程运行信息
ps -ef | grep target
# 查看端口占用情况
ss -napt | grep 3260
# 停止 iSCSI 服务
systemctl stop target.service
# 重启 iSCSI 服务
systemctl restart target.service
iSCSI 防火墙管理
# 防火墙放行 iSCSI 服务
firewall-cmd --permanent --zone=public --add-service=iscsi-target
# 生效 防火墙策略
firewall-cmd --reload
客户端 挂载 iSCSI 磁盘
Linux 客户端挂载 iSCSI 磁盘 (RockyOS 9.3)
安装 iSCSI 客户端组件
# 安装 iSCSI 客户端 组件
yum install -y iscsi-initiator-utils
# 安装 iSCSI 客户端 组件 银河麒麟 KylinOS V10 SP3
yum install -y open-iscsi
修改 iSCSI 客户端 配置文件
修改iscsi配置文件
# 打开 客户端发起程序 配置文件
nano /etc/iscsi/initiatorname.iscsi
# 将 发起程序信息,修改为上面创建的客户端连接器 内容
# RockyOS 9.3 默认没有这个文件,使用 Nano 命令,会自动创建
# {
InitiatorName=iqn.2023-12.local.fourleaf:client
# }
# 或者使用命令直接修改内容
echo "InitiatorName=iqn.2023-12.local.fourleaf:client" > /etc/iscsi/initiatorname.iscsi
# 查看 修改结果
cat /etc/iscsi/initiatorname.iscsi
# 修改 iSCSI 客户端 配置文件
# 没有启用chap认证,无需修改本文件
#
# {
# 修改 第 58 行,取消注释,启用 chap认证
node.session.auth.authmethod = CHAP
# 修改 第 69 行,取消注释,修改最后的 username 为 上面创建的 用户
node.session.auth.username = fourleaf
# 修改 第 70 行,取消注释,修改最后的password 为 上面创建的 密码
node.session.auth.password = 122333444455555
# 或者使用命令直接修改内容
sed -i 's/#node.session.auth.authmethod = CHAP/node.session.auth.authmethod = CHAP/g' /etc/iscsi/iscsid.conf
sed -i 's/#node.session.auth.username = username/node.session.auth.username = fourleaf/g' /etc/iscsi/iscsid.conf
sed -i 's/#node.session.auth.password = password/node.session.auth.password = 122333444455555/g' /etc/iscsi/iscsid.conf
# 查看 修改内容
cat /etc/iscsi/iscsid.conf | tail -n +56 | head -n 16
管理 iSCSI 客户端服务
# 启动 iSCSI 客户端服务
systemctl start iscsid.service
# 设置 iSCSI 客户端服务 为开机自启动
systemctl enable iscsid.service
# 检查 iSCSI 客户端服务 运行状态
systemctl status iscsid.service
挂载 iSCSI 磁盘
# 发现 iSCSI 存储资源
iscsiadm -m discovery -t st -p 172.16.28.110
# 挂载 iSCSI 存储
iscsiadm -m node -T iqn.2023-12.local.fourleaf:server -p 172.16.28.110 --login
# 查看 iscsi存储
lsblk
# iSCSI 的 网络磁盘是由 iSCSI 客户端的服务进程加载的,不需要使用/etc/fstab 等方法自动加载
Windows 客户端挂载 iSCSI 磁盘 (Windows 10)
打开“iSCSI 发起程序”
打开“控制面板”中的“管理工具”,可以找到第一个图标的“iSCSI 发起程序”。
双击运行,会弹出对话框,提示要求启动“Microsoft iSCSI 服务”。
点击“是”后,会弹出“iSCSI 发起程序 属性”窗口。
修改“iSCSI 发起程序”名称”
选择“iSCSI 发起程序 属性”的“配置”选项卡,点击“发起程序名称”输入框下的“更改”按钮。
并在“iSCSI 发起程序名称”更改窗口中,输入前面创建的“发起程序名称(iqn.2023-12.local.fourleaf:client)”。
连接“iSCSI 存储”
在“iSCSI 发起程序 属性”的“目标”选项卡,在“目标”后的输入框中输入“iSCSI服务器的 IP 地址 (172.16.28.110)”并点击“快速连接”按钮。
如配置无误,在接下来弹出的“快速连接”窗口中的“进度报告”中就会显示“登陆成功”。
配置“服务卷(存储空间)”
在“iSCSI 发起程序 属性”的“卷和设备”选项卡,点击“自动配置”按钮后,可以看到“卷列表”中,会出现之前创建的两个“服务卷”。
查看“iSCSI 存储”
打开“控制面板”中的“管理工具”,双击“计算机管理”。
在“计算机管理”窗口中,选择“存储”下的“磁盘管理”。
在“磁盘管理”下可以看到新增了两个本地磁盘。
本文暂时没有评论,来添加一个吧(●'◡'●)