收起左侧

使用docker搭建iscsi服务

10
回复
4359
查看
[ 复制链接 ]

8

主题

8

回帖

0

牛值

江湖小虾

2025-1-8 18:09:11 显示全部楼层 阅读模式

使用Docker 开启ISCSI 功能参考教程

一、 引用教程:

感谢以上三位大佬的支持:

tgt项目地址:https://github.com/fujita/tgt

stgt项目地址:https://github.com/wtnb75/docker-stgt

老K修改后的项目地址:https://github.com/bilibili-koryking/iscsi-docker

二、 实际操作

第一步建立一个文件夹,用于存放ISCSI镜像文件,并获得原始地址,名字随你心意:

第二步拉取所需镜像: koryking/iscsi-docker

方法很多可以用镜像仓库,也可以用shh进行拉取

参考SHH拉取命令:docker pull koryking/iscsi-docker

第三步,建立iscsi磁盘存储

方案一:在iscsi文件夹内建立一个img的镜像文件(适用于适用img文件)

这步只能用命令行,建立命令:

sudo -i #然后会有输入密码

cd /vol1/1000/ISCSI #此处为你建立img镜像文件位置

qemu-img create -f raw virtual_disk.img 100G #这句话命令是建立一个名字叫virtual_disk的img文件 虚拟硬盘大小100G 可以根据你自己需求修改

方案二:使用整个硬盘做镜像:

物理挂载准备

1.检查磁盘状态

如上所说必须要是当前未使用状态的盘,因为初次挂载到pc会对其进行格式化,已使用的盘直接进行物理挂载会在重启NAS后app端显示存储池损毁。

PS:如果后面跟着操作的时候不小心挂载错了,不要重启,不要重启,不要重启,马上备份数据,还有得救。

2.**找到未使用状态盘的设备名称**

ssh中输入lsblk查看,下图sdb分了两个区,我们先找到他的大存储分区(看SIZE列的大小),比如这里就是sdb2,这个大分区没有创建子分区(看树结构有没有下层分区)且后面没有创建挂载点(看MOUNTPOINTS列有没有挂载路径),则sdb就是未被使用的硬盘设备,其他sda,nvme0n1的大分区都创建了一个或多个挂载点,这种就是已经创建了存储池的盘,至于nvme1n1(6800以上使用m2做系统盘的机型,名称可能会根据你插入m2的数量变化)或者mmcblk0(老绿联云,极空间,4800等使用emmc的机型)这种创建了p1,p2,p3,p4...的,这个是系统盘,千万,千万,千万不要动。

3.**磁盘分区**

我这里未使用的盘是sdb,则对应的设备路径就是/dev/sdb,执行fdisk /dev/sdb,各位小伙伴则用自己找到的盘名替换这里的sdb。

PS:如果准备整盘挂载,那就无需进行磁盘分区,直接记住/dev/sd(a,b,c...替换成你自己未使用盘的设备名)就行了。

fdisk /dev/sdb

因为sdb2已经占用了所有的空间,我们需要先将sdb2分区的空间释放出来,执行完fdisk /dev/sdb后,我们会进入fdisk工具中,先输入d(表示我们要删除分区),在输入2(表示删除第2个分区,也就是sdb2),再输入w(保存操作并推出fdisk工具,如果上面步骤有输入错了的,这里输入q,表示直接退出,不保存操作)。

执行lsblk看下,sdb下,只剩下一个分区了,这个分区是磁盘系统分区,可以按照上面的操作给删掉也可以不管他,反正15g也无所谓。

继续执行fdisk /dev/sdb,进入fdisk工具,先输入n(表示创建分区),再输入2(表示创建一个新的第2分区也就是sdb2,如果之前删掉了sdb1,则这里输入1),下面输入的32000000(表示这个分区的起始块序号,可以不输入直接回车或者使把提示的默认块序号复制粘贴进去),21251757055(表示结束的块序号,一个块512个字节大小,根据自己想要分区的空间大小,自己算下应该是多少),如果有红字提示什么签名,直接输入y确认。继续n创建分区,直到分完所有块,输入w保存并退出fdisk工具。

再次执行lsblk,可以看到已经多了两个分区了,将准备挂载的分区名称都记下(比如这里就是/dev/sdb2,/dev/sdb3),到这一步物理磁盘挂载准备就做完了,如果无需虚拟磁盘挂载则直接跳转到第4章节查看部署步骤,如果也需要虚拟磁盘挂载那就继续按顺序查看。

第四步,运行docker

可以考虑适用SHH输入以下命令:

docker create \

--net host \ #网络模式host,不然需要映射3260端口

--name iscsi-docker \ #镜像名字,按你喜欢的来

--restart unless-stopped \ #启动管理

--privileged \ # privileged管理模式

-v /run/lvm:/run/lvm \#映射管理文件路径

-v /lib/modules:/lib/modules \#映射管理文件路径

-v /sys/kernel/config:/sys/kernel/config \#影射管理文件路径

-v /dev:/dev \#映射磁盘给iscsi的用这句,不然删除

-v /vol1/1000/ISCSI:/virtual_disk \#映射img虚拟磁盘的用这句不然删除,前半句是宿主机文件路径:docker内文件路径

-e targetname=koryking11 \ #iscsi服务名字按你喜欢的该

-e lundev1=/dev/sda1 \#如果用磁盘的保留这句,多个磁盘多个命令行,每行改数字1.2.3.4…

-e lundev1=/virtual_disk/virtual_disk.img \#如果用虚拟盘 用这句 多个磁盘多个命令行,并要设多个磁盘img文件,改数字1.2.3.4…

-e ip_address=192.168.x.0/24 \#设置为你的IP网段

koryking/iscsi-docker:latest

第五步:到你需要iscsi的电脑上挂载磁盘并使用

收藏
送赞 2
分享

0

主题

3

回帖

0

牛值

江湖小虾

2025-1-11 23:58:02 显示全部楼层
@飞牛产品同学 这个功能有预计的上线时间吗?

0

主题

1

回帖

0

牛值

江湖小虾

2025-1-22 00:55:07 显示全部楼层
根本不行    docker create 也是搞笑   容器都没运行   手动运行了   Windows上面也不出现挂载目标
[md]我成功了,我磁盘少,用的虚拟磁盘,你参考一下。 第一步创建虚拟磁盘,qemu-img create -f raw vdisk-100g.img 100G 第二步在飞牛Docker管理 》compse下新建应用iscsi , 参考下面的配置,注意修改一个虚拟磁  详情 回复
2025-3-21 21:43
[md]那我部署成功了是假的? ![iscsi.jpg](data/attachment/forum/202502/12/211031dnqfu5bbzeyphgtz.jpg "iscsi.jpg") [/md]  详情 回复
2025-2-12 21:10

8

主题

8

回帖

0

牛值

江湖小虾

2025-2-12 21:10:33 楼主 显示全部楼层

那我部署成功了是假的? iscsi.jpg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

13

回帖

0

牛值

江湖小虾

2025-2-19 11:13:10 显示全部楼层
大佬,我手里一个群晖nas加一个飞牛小主机,群晖划了一块icsci盘出来,怎么才能把这块盘挂载到飞牛上呢
搜索Debian挂载iscsi的方法就行  详情 回复
2025-2-28 22:02

8

主题

8

回帖

0

牛值

江湖小虾

2025-2-28 22:02:59 楼主 显示全部楼层
搜索Debian挂载iscsi的方法就行

1

主题

7

回帖

0

牛值

江湖小虾

2025-3-19 21:11:18 显示全部楼层
部署成功了,但是速度很不理想,电脑是单2.5G网卡,nas是1G+2.5G组静态链路均衡理论3.5G,smb能跑满2G,测速下iscsi数据正常,一到windows资源管理器传输文件速度只有20MB/s左右,用着很难受,不知道是哪里的问题
我普通的smb协议,nas跟win互传数据都是顶上线。1G的时候112M/s,2.5G的时候280M/s。在nas里还放了vhdx文件,直接挂载在win里打游戏也是可以的,LOL加载无感知,pubg启动客户端的时候有感知教本地稍慢,玩起来无感知  详情 回复
2025-7-6 18:21
steam下游戏勉强能到35MB/s  详情 回复
2025-3-19 21:12

1

主题

7

回帖

0

牛值

江湖小虾

2025-3-19 21:12:20 显示全部楼层
不太爱打游 发表于 2025-3-19 21:11
部署成功了,但是速度很不理想,电脑是单2.5G网卡,nas是1G+2.5G组静态链路均衡理论3.5G,smb能跑满2G,测 ...

steam下游戏勉强能到35MB/s

9

主题

25

回帖

0

牛值

初出茅庐

2025-3-21 21:43:12 显示全部楼层

<br /> <br />

我成功了,我磁盘少,用的虚拟磁盘,你参考一下。

第一步创建虚拟磁盘,qemu-img create -f raw vdisk-100g.img 100G

第二步在飞牛Docker管理 》compse下新建应用iscsi , 参考下面的配置,注意修改一个虚拟磁盘的路径

`services: iscsi: image: "koryking/iscsi-docker:latest" container_name: iscsi volumes:

  • /run/lvm:/run/lvm
  • /lib/modules:/lib/modules
  • /sys/kernel/config:/sys/kernel/config
  • /vol2/1000/Docker/iscsi/disk:/virtual_disk network_mode: host restart: always dns:
  • 223.5.5.5 environment:
  • TZ=Asia/Shanghai
  • targetname=fn-iscsi
  • lundev1=/virtual_disk/vdisk-100g.img
  • ip_address=192.168.1.0/24 `

image.png

image.png

image.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

1

回帖

0

牛值

江湖小虾

2025-5-24 09:37:22 显示全部楼层

我也成功了,失败的话,可以查看docker里面的日志,如果有提示,就是配置有问题

image.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

1

回帖

0

牛值

江湖小虾

2025-7-6 18:21:13 显示全部楼层
不太爱打游 发表于 2025-3-19 21:11
部署成功了,但是速度很不理想,电脑是单2.5G网卡,nas是1G+2.5G组静态链路均衡理论3.5G,smb能跑满2G,测 ...

我普通的smb协议,nas跟win互传数据都是顶上线。1G的时候112M/s,2.5G的时候280M/s。在nas里还放了vhdx文件,直接挂载在win里打游戏也是可以的,LOL加载无感知,pubg启动客户端的时候有感知教本地稍慢,玩起来无感知。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则