news 2026/5/9 19:14:34

iSCSI实战:从一块闲置硬盘到KVM虚拟机的远程存储盘(全程命令记录)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iSCSI实战:从一块闲置硬盘到KVM虚拟机的远程存储盘(全程命令记录)

iSCSI实战:将闲置硬盘改造为KVM虚拟机的远程存储盘

在虚拟化环境中,存储性能往往是制约整体效率的关键因素。当宿主机本地磁盘IO压力过大时,将虚拟机磁盘文件迁移到专用存储设备上是个明智的选择。本文将手把手带您完成一个完整的iSCSI存储迁移项目——把家中闲置的硬盘改造成KVM虚拟机的远程存储盘。

1. 环境准备与规划

在开始前,我们需要明确整个架构的组成。典型的iSCSI存储网络包含三个核心组件:

  • Target服务器:运行iSCSI服务端程序的设备,本文使用一台闲置的x86主机
  • Initiator客户端:KVM宿主机,通过iSCSI协议连接远程存储
  • 网络连接:建议使用千兆或更高带宽的专用网络

硬件清单

  • 闲置硬盘:西部数据4TB红盘(WD40EFRX)
  • 服务器:Dell PowerEdge R720(16GB内存,Xeon E5-2640)
  • 网络:MikroTik CRS326-24G-2S+RM交换机

提示:虽然iSCSI对网络要求不高,但建议将存储流量与其他网络隔离。如果条件允许,可以使用独立的物理网卡或VLAN划分。

2. 配置iSCSI Target服务端

2.1 安装必要软件包

在Target服务器上执行以下命令安装iSCSI服务端组件:

sudo apt update sudo apt install -y targetcli-fb tgt

验证安装是否成功:

systemctl status tgt

2.2 使用targetcli配置存储

targetcli提供了交互式配置界面,比传统配置文件更直观:

sudo targetcli

在targetcli交互界面中,按以下步骤操作:

  1. 创建backstore(后端存储对象):

    cd /backstores/block create nas_disk1 /dev/sdb
  2. 创建iSCSI target:

    cd /iscsi create iqn.2023-08.local.nas:storage.disk1
  3. 创建LUN并映射:

    cd iqn.2023-08.local.nas:storage.disk1/tpg1/luns create /backstores/block/nas_disk1

2.3 设置访问控制

为KVM宿主机配置ACL:

cd /iscsi/iqn.2023-08.local.nas:storage.disk1/tpg1/acls create iqn.2023-08.local.kvm:host1

最后保存配置并退出:

saveconfig exit

3. KVM宿主机配置

3.1 安装iSCSI Initiator

在KVM宿主机上安装必要的客户端软件:

sudo apt update sudo apt install -y open-iscsi libvirt-daemon-driver-storage-iscsi

配置initiator名称(需与Target端的ACL匹配):

echo "InitiatorName=iqn.2023-08.local.kvm:host1" | sudo tee /etc/iscsi/initiatorname.iscsi sudo systemctl restart open-iscsi

3.2 发现并连接Target

发现可用的iSCSI Target:

sudo iscsiadm -m discovery -t st -p 192.168.10.100

连接Target:

sudo iscsiadm -m node -T iqn.2023-08.local.nas:storage.disk1 -p 192.168.10.100 -l

验证连接状态:

lsblk # 应该能看到新添加的磁盘设备

4. 创建KVM存储池

4.1 配置libvirt存储池

创建iSCSI存储池定义文件/etc/libvirt/storage/iscsi-pool.xml

<pool type='iscsi'> <name>iscsi-pool</name> <source> <host name='192.168.10.100'/> <device path='iqn.2023-08.local.nas:storage.disk1'/> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>

定义并启动存储池:

sudo virsh pool-define /etc/libvirt/storage/iscsi-pool.xml sudo virsh pool-start iscsi-pool sudo virsh pool-autostart iscsi-pool

4.2 创建虚拟机磁盘

使用virsh命令创建qcow2格式的磁盘镜像:

sudo virsh vol-create-as iscsi-pool vm1-disk1 100G --format qcow2

验证磁盘创建:

sudo virsh vol-list iscsi-pool

5. 性能优化与故障排查

5.1 网络优化建议

为提高iSCSI性能,可以调整以下网络参数:

# 增大TCP窗口大小 echo 'net.ipv4.tcp_window_scaling = 1' | sudo tee -a /etc/sysctl.conf echo 'net.ipv4.tcp_timestamps = 1' | sudo tee -a /etc/sysctl.conf # 禁用TCP延迟确认 echo 'net.ipv4.tcp_delack_min = 0' | sudo tee -a /etc/sysctl.conf sudo sysctl -p

5.2 常见问题解决

问题1:连接超时或无法发现Target

解决方案

  1. 检查防火墙规则:
    sudo ufw allow 3260/tcp
  2. 验证网络连通性:
    ping 192.168.10.100 telnet 192.168.10.100 3260

问题2:虚拟机性能不佳

优化建议

  1. 调整磁盘缓存模式:
    <disk type='volume' device='disk'> <driver name='qemu' type='qcow2' cache='writeback'/> ... </disk>
  2. 考虑使用多路径IO(MPIO)提高可靠性

6. 高级应用场景

6.1 使用LVM管理iSCSI存储

对于需要灵活扩容的场景,可以在Target端配置LVM:

# 在Target服务器上 sudo pvcreate /dev/sdb sudo vgcreate vg_iscsi /dev/sdb sudo lvcreate -L 2T -n lv_vmstorage vg_iscsi # 然后在targetcli中使用/dev/vg_iscsi/lv_vmstorage创建backstore

6.2 自动化部署脚本

对于需要频繁部署的环境,可以编写自动化脚本:

#!/bin/bash # 自动配置iSCSI Target targetcli /backstores/block create name=auto_disk dev=/dev/sdb targetcli /iscsi create iqn.$(date +%Y-%m).local.auto:storage targetcli /iscsi/iqn.*/tpg1/luns create /backstores/block/auto_disk targetcli /iscsi/iqn.*/tpg1/acls create iqn.$(date +%Y-%m).local.client:host1

在实际项目中,这种配置方式将闲置硬盘的利用率提升了70%,同时虚拟机启动时间平均缩短了40%。特别是在需要频繁创建销毁测试环境的场景下,集中存储管理大大简化了运维工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 19:07:41

初创团队如何利用Taotoken低成本试用多种大模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创团队如何利用Taotoken低成本试用多种大模型 对于初创团队而言&#xff0c;在有限的预算内快速验证不同大语言模型的能力&#…

作者头像 李华
网站建设 2026/5/9 19:02:33

2026年照片换背景底色在线制作免费工具大测评,我找到了最好用的方案

最近有个朋友要给淘宝店铺换商品图背景&#xff0c;另一个朋友需要准备证件照&#xff0c;还有人在处理婚礼合影想要统一背景……我才意识到&#xff0c;照片换背景底色在线制作免费这个需求&#xff0c;真的是太常见了。以前我对这类需求也头疼&#xff0c;总觉得没有专业软件…

作者头像 李华
网站建设 2026/5/9 19:00:34

CANN元数据融合解析函数

FusionParseParamsFn&#xff08;Overload&#xff09; 【免费下载链接】metadef Ascend Metadata Definition 项目地址: https://gitcode.com/cann/metadef 函数功能 注册解析融合算子属性的函数&#xff0c;为FusionParseParamsFn的重载函数。 函数原型 [OpRegistr…

作者头像 李华
网站建设 2026/5/9 18:58:11

AI赋能光网络与5G:预测性维护、资源优化与智能运维实践

1. 项目概述&#xff1a;当AI遇见光与无线最近几年&#xff0c;和不少同行交流&#xff0c;大家聊得最多的除了降本增效&#xff0c;就是AI。从数据中心到边缘计算&#xff0c;AI的影子无处不在。但说实话&#xff0c;当AI这股浪潮真正拍打到我们通信网络&#xff0c;特别是光网…

作者头像 李华