Pnet-Labs 与 iSCSI 存储整合教程:存储池搭建、客户端安装、挂载验证及 DC 靶机部署

声明:

warning 此教程仅适用于你有一台可以不关机的集群环境,对于个人学习者,存储池挂载有选择权,选择是否将其纳入pnet-labs认可的挂载路径,但如果你选择挂载,那么基本就告别电脑关机,除非你是真的将其当成服务器使用,否则开关机会导致引导丢失(目前我不知道解决办法,当然你可以挂载硬盘文件),如果你按照教程做了,导致引导丢失,那么请及时进行取证,将”/opt/unetlab/html/templates” 以及”/opt/unetlab/addons/qemu”取出来,减少工作量

本次是要需要的软件均已免费共享

本教程分为两部分,先通过 StarWind 创建 iSCSI 存储池,再在 Pnet-Labs(基于 Ubuntu)中安装 iSCSI 客户端并挂载存储,最终实现存储扩容与虚拟机部署测试。

一、安装 Pnet-Labs

1.1 准备工作

  • 所需文件:Pnet-Labs 内存文件(镜像)
  • 硬件配置要求:
    • 初始存储:100G(后续通过 iSCSI 扩容)
    • 内存:27G
    • 网卡:2 块(分别配置 NAT 模式和桥接模式)
    • 关键前提:开启宿主机虚拟化功能(BIOS 中启用 VT-x/AMD-V)

Pnet-Labs 内存文件示例

Pnet-Labs 硬件配置(开启虚拟化)

1.2 初始登录与网络配置

  1. 默认账户:用户名 root,密码 pnet
    Pnet-Labs 默认登录界面

  2. 配置静态 IP:为确保 iSCSI 连接稳定,需将 Pnet-Labs 配置为静态 IP(避免 DHCP 自动分配导致地址变动)
    Pnet-Labs 静态 IP 配置

二、创建 iSCSI 存储池(基于 StarWind)

2.1 准备工作

  • 所需工具:StarWind Virtual SAN(用于创建 iSCSI 目标存储)
    StarWind 软件位置

2.2 安装 StarWind

  1. 双击 StarWind 安装包,启动安装向导
    StarWind 安装向导启动

  2. 选择安装路径(建议默认,或自定义到空间充足的磁盘)
    StarWind 安装路径选择

  3. 后续步骤保持默认(如组件选择、开始菜单文件夹等),直至安装完成
    StarWind 安装选项默认配置

  4. 安装完成后,启动 StarWind 管理界面
    StarWind 安装完成界面

2.3 创建 iSCSI 虚拟磁盘(存储池)

  1. 打开 StarWind 管理界面,右键点击左侧侧边栏的 Device,选择“Create Virtual Disk”(创建虚拟磁盘)
    StarWind 右键创建虚拟磁盘

  2. 选择磁盘类型:默认“Hard Disk”(硬盘),点击“Next”
    StarWind 选择虚拟磁盘类型

  3. 选择磁盘格式:建议“Thin Provisioning”(精简配置,按需占用空间),点击“Next”
    StarWind 选择磁盘格式

  4. 设置磁盘名称与保存路径:自定义名称(如“Pnet-iSCSI-Storage”),选择存储路径,点击“Next”
    StarWind 设置磁盘名称与路径

  5. 配置磁盘容量:根据需求设置(本教程示例为 200G),点击“Next”
    StarWind 设置磁盘容量

  6. 启用缓存优化:选择“Write-back caching”(回写缓存,提升存储读写速度),点击“Next”
    StarWind 启用回写缓存

  7. 开启集群化(可选但推荐):勾选“Enable Clustering”,便于后续存储扩容或高可用配置,点击“Next”
    StarWind 开启集群化

  8. 确认配置并完成创建:核对信息无误后,点击“Create”,等待磁盘创建完成
    StarWind 确认创建虚拟磁盘

三、Pnet-Labs(Ubuntu)挂载 iSCSI 存储

3.1 安装 iSCSI 客户端

通过 apt 包管理器安装 open-iscsi(Linux 常用 iSCSI 客户端工具):

1
2
3
4
# 更新软件源
sudo apt update
# 安装 open-iscsi
sudo apt install open-iscsi -y

安装 open-iscsi 客户端

3.2 启动并配置 iSCSI 服务

1
2
3
4
# 启动 iscsid 服务
sudo systemctl start iscsid
# 设置服务开机自启(避免重启后需手动启动)
sudo systemctl enable iscsid

3.3 发现 iSCSI 目标(存储池)

执行以下命令发现 StarWind 上创建的 iSCSI 目标(需替换 192.168.20.1 为 StarWind 所在主机的 IP 地址):

1
sudo iscsiadm -m discovery -t sendtargets -p 192.168.20.1
  • 成功发现后,会输出类似结果:192.168.20.1:3260,-1 iqn.2008-08.com.starwindsoftware:kubernetes.docker.internal-pnet-target
    发现 iSCSI 目标
    iSCSI 目标发现结果

3.4 登录 iSCSI 目标

使用上一步发现的 IQN(iSCSI 目标标识符) 登录存储:

1
sudo iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:kubernetes.docker.internal-pnet-target -p 192.168.20.1 -l
  • 登录成功提示:Login to [iface: default, target: ...] successful.

3.5 确认 iSCSI 设备已被识别

通过 lsblk 命令查看系统磁盘列表,确认 iSCSI 设备(通常为 /dev/sdb,容量与创建时一致,本示例为 200G):

1
lsblk

lsblk 查看 iSCSI 设备

3.6 格式化 iSCSI 设备(首次使用)

警告:此操作会清除设备所有数据,请确认设备为新创建的 iSCSI 盘(如 /dev/sdb,格式化为 ext4 文件系统:

1
sudo mkfs.ext4 /dev/sdb

3.7 创建挂载点并挂载设备

  1. 创建挂载目录(自定义路径,本示例为 /mnt/iscsi):

    1
    sudo mkdir -p /mnt/iscsi  # -p 确保目录不存在时自动创建
  2. 挂载 iSCSI 设备到目录:

    1
    sudo mount /dev/sdb /mnt/iscsi

3.8 验证挂载结果

通过 df -h 命令查看挂载状态,确认 /dev/sdb 已挂载到 /mnt/iscsi

1
df -h
  • 成功挂载示例:/dev/sdb 196G 61M 186G 1% /mnt/iscsi
    df -h 验证挂载
    iSCSI 挂载完成(总存储扩容至 300G)

四、测试:部署 DC 靶机验证存储可用性

4.1 准备靶机模板与镜像

  1. 创建虚拟机模板文件:进入 Pnet-Labs 模板目录,创建 DC 靶机的 YAML 配置文件:

    1
    2
    3
    4
    # 进入模板目录
    cd /opt/unetlab/html/templates
    # 创建并编辑 DC 模板文件
    sudo vim DC.yml
  2. 粘贴以下 YAML 内容(定义 DC 靶机的硬件配置):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # Linux 系统模板(DC 渗透测试靶机)
    # 默认账号:DC不提供账户密码
    ---
    type: qemu
    description: "[渗透测试] DC "
    name: DC
    cpulimit: 1
    icon: Server.png
    cpu: 1
    ram: 1024
    ethernet: 1
    eth_format: eth{0}
    shutdown: 1
    console: vnc
    inject_as_first_nic: 1
    username: root
    qemu_arch: x86_64
    qemu_version: 6.0.0
    qemu_nic: virtio-net-pci
    qemu_options: -machine type=pc,accel=kvm -vga virtio -usbdevice tablet -boot order=cd -cpu host

    保存退出:按wq

  3. 上传靶机镜像:将 DC 靶机的 qcow2 镜像文件(虚拟机磁盘格式)放入 Pnet-Labs 的镜像目录:

    1
    2
    # 目录路径(需提前创建 DC-1 文件夹)
    /opt/unetlab/addons/qemu/DC-1/

    上传 DC 靶机 qcow2 镜像

4.2 登录 Pnet-Labs 控制台创建靶机

  1. 访问 Pnet-Labs Web 控制台:在浏览器输入 Pnet-Labs 的静态 IP(如 http://192.168.20.100)。

  2. 登录控制台:默认用户名 admin,密码 pnet

  3. 创建 DC 靶机:

    • 点击左侧“Templates”,找到“[渗透测试] DC”模板。
    • 拖拽模板到拓扑区域,配置网络(如桥接模式)。
    • 启动靶机,确认可正常运行。

DC 靶机创建成功

五、教程总结

至此,Pnet-Labs 配置 iSCSI 存储的全流程已完成:

  1. 成功安装 Pnet-Labs 并配置静态 IP。
  2. 通过 StarWind 创建 200G iSCSI 存储池。
  3. 在 Pnet-Labs 中挂载 iSCSI 存储,将总存储从 100G 扩容至 300G。
  4. 部署 DC 靶机验证存储可用性,确认 iSCSI 存储可正常支撑虚拟机运行。

后续可根据需求,通过 StarWind 继续扩容 iSCSI 存储,或增加更多虚拟机测试。

教程完成总结

效果显示