P2_iSCSI配置之Docker一键部署

iSCSI详解及 iSCSI服务端配置、客户端(Linux、Windows配置) 一、简介: iSCSI,Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。iscsi通过TCP/IP协议,实现远程存储单元的本地使用(映射为本地硬盘) 二、实验环境: iSCSI-Server:服务端centos7 192.168.8.235 iSCSI-Client-linux:客户端centos7 192.168.8.8 iSCSI-Client-Windows:客户端 192.168.8.14 阅读详情
AI摘要

本文介绍了使用Docker容器部署P2_iSCSI的方法,以减轻配置工作量。内容包括环境准备,如安装Docker;部署iSCSI Docker服务端,介绍两种创建方式;在Windows 11客户端挂载iSCSI Target;服务端查看挂载磁盘文件;还提及后期调整.img文件大小的步骤。

P2_iSCSI配置之Docker一键部署

[!NOTE]

书接上回 [P1]-iSCSI 部署-将NAS空间变为本地磁盘,并拥有与实体硬盘所有常用功能 ,在本地宿主机部署了iSCSI服务,但是配置过程过于繁琐,且对生产环境来讲有比较大的风险,这一次我们使用docker容器来部署,减轻工作量.部分教程参考自Docker实战-ISCSI_docker iscsi-优快云博客

1.环境准备

1.1安装docker
  • 更新系统软件包

首先,确保你的系统软件包是最新的。打开终端并运行以下命令:

sudo yum update -y
  • 设置 Docker 的仓库

在安装新版本的 Docker 之前,需要设置 Docker 的官方稳定仓库。

# 安装一些必要的包,使得 yum 可以使用基于 HTTPS 的仓库
sudo yum install -y yum-utils

# 设置 Docker 的稳定版仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 安装 Docker 引擎

现在你可以从设置好的稳定仓库中安装最新版本的 Docker 引擎了:

sudo yum install docker-ce docker-ce-cli containerd.io

如果有多个 Docker 版本可用,你也可以通过指定确切的版本号来安装特定版本的 Docker:

# 列出可用的 Docker 版本
yum list docker-ce --showduplicates | sort -r

# 使用版本号替换 <VERSION_STRING> 来安装特定版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
  • 配置Docker 使用加速器镜像源
mkdir /etc/docker/
vim /etc/docker/daemon.json

​ 添加镜像加速地址,注意镜像加速地址可能会失效,测试地址有效后再配置

{
    "registry-mirrors": [
        "https://docker.xuanyuan.me"
    ]
}

​ 重新加载docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker
  • 启动 Docker 并设置开机自启

安装完成后,启动 Docker,并将其配置为随系统启动。

sudo systemctl start docker
sudo systemctl enable docker
  • 确认Docker组件已经启动:
ps aux | grep docker

2.部署iSCSI docker服务端

  • 下载iSCSI Docker镜像:
docker pull wtnb75/stgt
  • 运行iSCSI容器: 下面的命令将启动一个名为stgt的容器,该容器会作为iSCSI服务端运行,并映射端口3260以允许客户端连接。
docker run \
  --restart unless-stopped
  --detach \
  --name stgt \
  --restart unless-stopped \
  --net host \
  --privileged \
  --volume /etc/target:/etc/target \
  --volume /run/lvm:/run/lvm \
  --volume /lib/modules:/lib/modules \
  --volume /sys/kernel/config:/sys/kernel/config \
  --volume /dev:/dev \
  --volume /vol2/1000/iscsi_img:/vol2/1000/iscsi_img(使用自己的img镜像所在的文件目录,并非.img文件的路径) \ 
wtnb75/stgt
  • 创建Target:
docker exec stgt tgtadm --mode target --op new --tid 1 --targetname iqn.2025-02.com.comsys:iscsi.fcdisk(名字自己定)
  • 创建LUN(这里假设你有一个硬盘镜像文件/vol2/1000/iscsi_img/storage.img,或者一个硬盘分区):
方式一: 使用.img硬盘镜像文件创建,如果没有现成的镜像文件,可以先通过dd或者truncate命令创建一个:
#使用dd命令创建
dd if=/dev/zero of=/vol2/1000/iscsi_img/storage.img bs=1M count=1024   # 创建一个1GB大小的镜像文件,记得使用自己的路径
#或者使用truncate 命令,truncate 命令不会立即分配实际的磁盘空间,而是通过稀疏文件的方式标记文件大小,这意味着文件的实际占用空间会随着数据写入而逐渐增加
truncate -s 2G /vol2/1000/iscsi_img/storage.img
#创建LUN
docker exec stgt tgtadm --mode logicalunit --op new --tid 1 --lun 1 --backing-store /vol2/1000/iscsi_img/storage.img

[!NOTE]

可以后期增加 .img 文件的大小,详情请见文章末尾

方式二: 使用硬盘分区创建,分区为/dev/adb1,请根据实际情况调整
 # 注意ISCSI通过提供块设备(例如硬盘或分区)的方式进行工作,不能直接共享一个文件系统目录
docker exec stgt tgtadm --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb1
  • 授权: 允许特定网段内的客户端访问iSCSI Target。
docker exec stgt tgtadm --mode target --op bind --tid 1 --initiator-address 192.168.0.105   #(客户端IP)
  • 查看已定义的信息:
docker exec stgt tgtadm --mode target --op show
  • 输出如下:
[root@learn 1000]# docker exec stgt tgtadm --mode target --op show
Target 1: iqn.2017-04.com.comsys:iscsi.fcdisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 2147 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /vol2/1000/iscsi_img/storage.img
            Backing store flags: 
    Account information:
    ACL information:
        192.168.0.105
  • 开放防火墙3260端口

确保服务器上的防火墙允许iSCSI通信,默认情况下,iSCSI使用3260端口。可以暂时关闭防火墙

#在CentOS/RHEL系统上: 
systemctl stop firewalld

或者,只开放特定端口:

firewall-cmd --zone=public --add-port=3260/tcp --permanent
firewall-cmd --reload

3. 在客户端(如 Windows 11)挂载 iSCSI Target

4.服务端查看通过iSCSI挂载到Windows 的磁盘上放入的文件

参考 P1_部署一个iSCSI服务端,将NAS空间挂载成真正的电脑硬盘 - DUTYC博客 第5章节

5.后期调整.img文件的大小

[!IMPORTANT]

最好在一个非生产环境中测试整个过程,以避免意外的数据丢失或其他问题。

步骤 1: 增加 .img 文件的大小

首先,增加 .img 文件的物理大小。假设想将其扩展到 50GB:

truncate -s 50G /vol2/1000/iscsi_img/storage.img

或使用 dd(实际分配空间):

dd if=/dev/zero bs=1M count=0 seek=50G of=/vol2/1000/iscsi_img/storage.img

加载 .img 文件为循环设备

接下来,将 .img 文件加载为一个循环设备:

losetup -f --show /vol2/1000/iscsi_img/storage.img

这将返回一个循环设备名称,例如 /dev/loop0。

调整 NTFS 分区大小

由于 .img 文件包含的是 NTFS 文件系统,我们需要使用 ntfsresize 来调整文件系统的大小。在此之前,请确保安装了 ntfs-3g 工具包,它包含了 ntfsresize:

yum install ntfs-3g -y
检查文件系统的一致性

在调整大小之前,建议先检查文件系统的完整性:

ntfsfix /dev/loop0

虽然 ntfsfix 主要用于修复NTFS文件系统中的错误,但在某些情况下,它也能帮助确保文件系统处于良好的状态以便进行调整。

调整文件系统大小

现在可以使用 ntfsresize 来调整文件系统的大小。请注意,ntfsresize 不会自动调整分区表,因此我们只需关注文件系统本身:

ntfsresize -i /dev/loop0   # 查看当前文件系统信息
ntfsresize --force /dev/loop0   # 调整文件系统以占用所有可用空间

注意:ntfsresize 在执行操作前会进行一次模拟运行并询问是否继续,使用 --force 参数可以直接执行调整,但请谨慎使用。

更新 iSCSI Target 配置

理论上,在扩展 .img 文件和调整文件系统大小后,iSCSI Target 应该已经能够识别新的容量。但是,为了确保客户端能看到全部可用空间,可能需要在客户端上重新扫描或重新连接 iSCSI Target。

6.总结

[!NOTE]

以上步骤详细描述了如何在 Linux (NAS)上安装docker部署 iSCSI Target。每个环境可能有其特定的需求或限制,请根据实际情况调整上述步骤; 如果有任何问题或需要进一步的帮助,请询问我们

邮箱:dutyc.studio@qq.com 作者Github : Persistence

对接华为存储iSCSI 一、华为Cinder Driver获取 1、通过OpenStack社区仓库。从Kilo版本开始,华为Driver已集成到OpenStack社区 仓库,安装OpenStack即会自带华为Driver,位于*…/cinder/cinder/volume/* drivers/huawei目录下。 2、通过华为仓库。 步骤1:打开浏览器,访问仓库地址:https://github.com/Huawei/OpenStack_Driver。 步骤2 :点击“Download ZIP”按钮,华为Driver将以压缩包的形 阅读详情

相关推荐

CentOS8使用cephadm部署和配置Ceph Octopus

部署工具:cephadm 操作系统:CentOS 8 Ceph版本:Octopus 操作用户:root 部署前,请注意:根据目前(2020年8月)Ceph官方文档的介绍,cephadm的对各服务的支持情况如下: 完全支持:MON、MGR、OSD、CephFS、rbd-mirror 支持但文档不全:RGW、dmcrypt OSDs 开发中:NFS、iSCSI 准备 除非特别说明,本节的操作在所有节点进行。 部署环境: 主机 IP 配置 磁盘(除系统盘) 服务 ceph-mon1.

刘康的专栏 1万+

Docker实战-ISCSI

基于docker实现iscsi

weixin_44486757的博客 3142

Docker部署iVentoy:轻松搭建PXE网络批量装机平台

PXE网络装机是通过网络引导计算机安装操作系统的技术,常用于批量部署多台设备。传统PXE需要手动搭建DHCP、TFTP、HTTP/NFS等多种服务,并编写复杂的启动菜单,配置门槛高。Docker容器化为简化PXE部署提供了现代化解决方案。iVentoy作为Ventoy的网络版本,将PXE服务封装成容器化应用,只需挂载存放ISO文件的目录,即可自动提供DHCP/proxyDHCP、TFTP引导及HTTP文件传输,客户端开机后通过网卡引导即可出现图形化多镜像选择菜单。该方案适用于机房维护、实验室管理、NAS玩家

weixin_34221036的博客 293

iscsi 自动挂载 及 docker安装 Docker的使用

iscsi 自动挂载 及 docker安装iscsi自动挂载使用blkid 将 /dev/sdb uuid 查出来然后编辑 /etc/fstab重启验证即可 docker安装(一)rpm 安装 docker 使用 rz 将 rpm 包上传使用 rpm 安装启动docker使用docker images 显示本机上的images使...

weixin_34014555的博客 1110

docker-iscsi-volume:适用于Docker的ISCSI卷驱动程序插件

docker-iscsi-卷 适用于Docker的ISCSI卷驱动程序插件

Android 14密钥管理深度解析:从Keystore到Keymint的架构演进与Trusty安全实践

本文深入解析Android 14密钥管理系统的架构演进,从Keystore到Keymint的技术升级,以及Trusty安全环境的最佳实践。详细探讨了Keystore2的性能优化、Keymint的标准化设计,以及如何在Trusty TEE中实现安全密钥管理,为开发者提供构建现代密钥管理系统的实用指南。

weixin_42533120的博客 260

使用iSCSI服务部署网络存储

ffdf

qq_27546717的博客 1267

独立站SaaS平台源码搭建全流程指南:从零到部署

一、什么是独立站SaaS?二、搭建前的准备工作技术选型建议模块 推荐方案 备选方案前端框架 React/Vue3 + TypeScript Angular后端框架 Spring Boot (Java)/Django (Python) Node.js (NestJS)数据库 MySQL + Redis PostgreSQL/MongoDB云服务 阿里云/腾讯云/AWS 华为云容器化 Docker + Kubernetes Docker Compose环境要求。

Vx18664956126的博客 1891

Folia 安装教程:Windows / macOS / Linux 全平台下载与部署指南

Folia 是一个把歌词渲染成全屏动画的桌面播放器,支持网易云、酷狗、Navidrome 与本地音乐库。这篇 Folia 下载安装教程带你走完全流程:先判断该拿哪个包,再按平台装完,最后自查与排障,顺利的话五分钟装好。 [![Folia 安装后的全屏歌词动画效果](https://raw.gitcode.com/GitHub_Trending/fo/folia-major/raw/7a5f975

gitblog_00310的博客 688

【AUTOSAR-COM】-10.5-APP CAN Frame/PDU“发送周期不准“的影响因素

一个Tx PDU在COM模块中的数据流; Tx APP CAN Frame/PDU"发送周期不准"的影响因素;

「汽车电子助手」的博客 2386

国产服务器系统的PXE无人值守自动化安装部署——以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例

本文详细介绍了三种国产服务器系统(银河麒麟、统信UOS、OpenEuler)的PXE无人值守自动化安装方法。主要内容包括:1)从系统ISO镜像中提取内核文件和根系统文件;2)编写GRUB菜单引导文件;3)配置自动应答文件实现自动化安装;4)重启PXE服务并测试安装过程。文章特别强调了硬盘容量需≥100GB、UEFI模式设置等注意事项,并提供了root密码重置方法。对于x86架构Windows上模拟ARM架构系统安装也给出了具体命令。通过完整的配置流程,可实现国产服务器系统的快速批量部署。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1464

在macOS上连接远程存储:iSCSI启动器完全指南

你是否想过将Mac变成高性能网络存储客户端?macOS iSCSI启动器项目让你的Mac能够无缝连接远程iSCSI存储目标,把网络存储变成本地磁盘一样使用!无论是开发测试环境、多媒体工作流还是企业级存储方案,这个开源工具都能为你提供专业级的iSCSI存储连接能力。 ## 🚀 为什么你需要macOS iSCSI启动器? 想象一下,你的MacBook Pro能够直接访问企业级SAN存储阵列,或者

gitblog_00950的博客 812

上位机图像处理和嵌入式模块部署(qmacvisual入门)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 虽然我们前面学习了很多的知识点,比如说在windows这边,用qt写界面,用opencv写图像处理代码;在linux这边先用树莓派测试,最后再部署到自己的平台上面。但是,对于一个商业软件是怎么运行的,很多时候我们心理还是没有底,或者说,自己写的软件距离一个商业软件还有多远,大部分学习的同学是不知道的。 就算有的同学说,这个时候可以借鉴一下vision pro,或者是

嵌入式-老费,一个分享专业嵌入式知识的blog 1228

macOS iSCSI启动器终极指南:如何让Mac变身专业存储服务器

还在为Mac存储空间不足而烦恼?或者需要让多台Mac共享同一块高速存储?今天我要介绍的这个开源神器——macOS iSCSI启动器,能让你的Mac电脑瞬间变身为专业级的存储服务器!🎯 想象一下,通过网络就能把远程存储设备变成Mac的本地硬盘,这简直是开发者和创意工作者的福音! **核心关键词**:macOS iSCSI启动器、iSCSI存储连接、网络存储解决方案、内核扩展、存储虚拟化 **长

gitblog_00190的博客 964

FPGA发展趋势:异构计算、AI加速、可重构计算

FPGA技术正朝着异构计算、AI加速和可重构计算三大方向发展。作为高效能计算平台,FPGA在异构架构中与CPU/GPU协同工作,发挥低延迟、高能效优势;在AI领域通过定制化架构实现边缘推理加速;其硬件可重构特性支持动态适应多样化计算需求。最新进展包括部分可重构技术、智能网卡和边缘AI应用。未来,FPGA将在自适应计算、量子接口和软件定义硬件等领域持续突破,成为异构计算架构的核心组件,推动硬件与软件的深度融合。性能对比显示FPGA在能效比(5-20TOPS/W)和灵活性方面具有显著优势。

2301_79143213的博客 967

【Dumper-7】入门指南 - 带你领略不一样的UE世界

摘要: Dumper-7是一款用于分析UE4/UE5游戏的逆向工具,可自动生成游戏内部结构的C++ SDK。支持Visual Studio、CMake和Xmake三种构建方式,通过DLL注入目标游戏后,自动识别引擎结构并输出C++ SDK文件(默认保存在C:\Dumper-7目录)。该工具适用于游戏Mod开发、安全研究和机制分析,提供完整的类层次映射、属性/函数识别功能。使用时需注意x64平台配置,生成SDK后可集成到自定义DLL项目中,通过示例代码展示如何查找游戏对象、访问世界状态和调用引擎函数。

kinghzking的专栏 434

5个关键步骤:在macOS上构建企业级iSCSI存储连接解决方案

在当今数据驱动的企业环境中,macOS系统如何高效连接到远程iSCSI存储目标?iSCSI Initiator for macOS项目提供了一个完整的开源解决方案,通过内核扩展与用户空间服务的协同工作,将远程存储无缝呈现为本地设备。本文将深入解析这一专业级iSCSI启动器的技术实现、部署策略和性能优化方案。 ## 🎯 为什么选择macOS iSCSI启动器? 企业存储需求日益增长,但macO

gitblog_01011的博客 793

使用Spring Cloud实现银行核心系统的案例示例

以下是一个基于Spring Cloud的银行核心业务系统实现方案,涵盖架构设计、关键模块实现与生产级部署方案。该系统设计满足金融级高可用、强一致性和监管合规要求。

银行信息系统应用架构详解 1172

PyTorch-CUDA-v2.6镜像是否支持iSCSI块存储接入?

PyTorch-CUDA-v2.6镜像本身不支持直接连接iSCSI存储,因缺少必要工具与权限。实际可行方案是由宿主机完成iSCSI挂载,再通过卷映射将数据传入容器。这种职责分离的设计更安全、稳定,符合生产环境需求,同时兼顾性能与可维护性。

weixin_35749786的博客 643

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

内网服务器没网怎么办?手把手教你离线搞定Docker和Docker-Compose(附一键脚本)

本文详细介绍了在内网服务器无法连接互联网的情况下,如何离线安装和配置Docker及Docker-Compose的完整解决方案。从前期准备、版本匹配到实际安装和系统服务配置,提供了经过金融、医疗等行业验证的实战经验,并附赠一键化部署脚本,帮助IT运维人员高效完成内网环境下的Docker生态部署。

weixin_34269583的博客 413

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何在macOS上快速搭建企业级iSCSI存储连接的完整指南

macOS iSCSI启动器是一个专业的开源项目,它让你能够在macOS系统上实现高性能的iSCSI存储连接。无论你是系统管理员、开发人员还是企业用户,这个项目都能为你的macOS设备提供企业级的网络存储解决方案。通过巧妙的内核扩展与用户空间服务协同工作,远程iSCSI存储设备可以像本地磁盘一样无缝使用。 **核心关键词**:macOS iSCSI连接、网络存储配置、内核扩展开发、存储虚拟化、企

gitblog_00153的博客 383

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

macOS iSCSI启动器深度解析:企业级存储连接的5大核心技术实现

在当今企业IT架构中,**macOS iSCSI存储连接**已成为专业用户和开发者不可或缺的网络存储解决方案。macOS iSCSI启动器作为开源项目,通过创新的**内核扩展**与用户空间服务协同机制,将远程iSCSI存储设备无缝呈现为本地存储设备,为macOS系统提供了完整的**iSCSI协议处理**能力。无论是开发测试环境、多媒体工作流还是企业级数据存储,这个项目都展示了macOS平台下**存

gitblog_00233的博客 782

Ceph 使用 TGT 创建 ISCSI target 服务器,让 Windows 可以通过 ISCSI 来使用 Ceph

编译 TGT 拉取源码 git clone https://github.com/fujita/tgt.git /source_code/tgt 启动编译容器 docker run -ti --name tgt -v /source_code/tgt/:/tgt ubuntu 修改镜像源为阿里源 cat > /etc/apt/sources.list << EOF #添加阿...

kunyus的博客 1235

Docker容器化部署实战指南

容器化技术通过将应用及其依赖打包成标准化单元,解决了环境配置与依赖管理的难题。Docker作为主流容器引擎,采用共享内核架构实现毫秒级启动和MB级资源占用,显著提升部署密度。其核心原理包括镜像分层、联合文件系统和命名空间隔离,支持从开发测试到生产环境的全流程标准化。在微服务架构、CI/CD流水线和云原生场景中,Docker通过Compose编排和Swarm集群实现服务自动化管理。本文以Python项目为例,详解Overlay2存储驱动优化、多阶段镜像构建等实战技巧,并涵盖安全扫描、性能监控等生产级解决方案。

weixin_34391445的博客 420

macOS iSCSI启动器:企业级存储连接的专业解决方案与架构实践

**核心关键词**:macOS iSCSI启动器、企业级存储连接、网络存储解决方案、内核扩展技术、存储虚拟化 **长尾关键词**:macOS存储扩展开发、iSCSI协议处理原理、虚拟HBA驱动实现、iSCSI CHAP认证配置、企业级存储连接方案、macOS iSCSI配置最佳实践、iSCSI启动器性能优化、网络存储故障排查、iSCSI会话管理、存储栈集成技术 当企业面临macOS系统与远程存

gitblog_00970的博客 754

一文搞懂NAS、SAN、iSCSI:文件级与块级存储的选型指南

在数据存储领域,按访问方式可分为文件级、块级与对象级存储。文件级存储如NAS,以文件和目录为管理单位,适合共享与备份;块级存储如SAN,提供裸盘给服务器,满足数据库、虚拟化对低延迟和高并发的苛刻要求;而iSCSI协议则让块存储跑在普通IP网络上,大幅降低企业部署SAN的门槛。与此同时,对象存储如MinIO、Ceph凭借S3接口在海量非结构化数据场景异军突起。理解这些基础概念,有助于在家庭或企业场景下做出合理的存储选型——从群晖等家用NAS到iSCSI阵列,再到分布式存储,不同架构各有适用边界。本文用通俗比喻

weixin_34288121的博客 366
上一篇: [P1]-iSCSI 部署-将NAS空间变为本地磁盘,并拥有与实体硬盘所有常用功能
下一篇: 无需监听网卡!利用企业路由器门户功能实现WiFi渗透测试
LECREATE
博客等级 码龄3年 65粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值