使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题
一,实验用到工具分别为:
VMware虚拟机,安装教程:VMware Workstation Pro 17 安装图文教程
FreeNAS系统,安装教程:FreeNAS-11.2-U4.1安装教程2024(图文教程)
二,新建虚拟机"IP-SAN Server",添加6块300G大小的磁盘并安装FreeNAS系统;添加两块网卡,IP地址分别设置为"10.1.1.88"、"20.1.1.88"。
前提:freenas已经安装好了,并命名为:IP-SAN Server
1,首先在网络编辑器添加两张网卡分别为VMnet5和VMnet6:









2,在IP-SAN Server虚拟机上添加6块300G大小的磁盘:







分别按照以上的步骤在添加5块300G硬盘,总共6块如以下图:

3,添加两张网卡:
由于系统已经自带了一张,我们只要添加的一张网卡就可以。


两个适配器指定不同的网卡,第一张指定为:VMnet5,第二张指定为:VMnet6


以上步骤都做好了如下图:

4,IP-SAN Server 两块网卡,IP地址分别设置为"10.1.1.88"、"20.1.1.88":

先修改第一张网卡的IP,进去系统后输入:1 (回车)

输入:1(回车)

输入:n(回车)

输入:n(回车)

输入:y(回车)

不用输入什么直接回车

输入:10.1.1.88(回车)

输入:24(回车)

输入:n(回车)
修改第二张网卡的IP输入:1 (回车)

两张网卡的ip都修改完成了,如以下图:

二,使用全部6块磁盘创建存储池"SAN_Storage",存储池布局选择"Raid-z2"。
1,使用任意一款浏览器,输入10.1.1.88进行访问freenas的web界面:

进入web界面后,使用root用户进行登录。
2,用6块磁盘创建存储池"SAN_Storage",存储池布局选择"Raid-z2":





以上做完成后,如以下图:

三,新建门户"10.1.1.88:3260"、"20.1.1.88:3260",均要求开启发现CHAP认证,用户名为:admin,密码为:163.com163.com。
1,先添加用户名为:admin,密码为:163.com163.com。


2,新建两个门户"10.1.1.88:3260"、"20.1.1.88:3260":




以上步骤都做好了,如下图:

四,新建目标"admin-winclt",为该目标配置两个区块(Extent),区块1大小为100G,区块2大小为500G,均使用Zvol格式并存储在"SAN_Storage"上,为该目标启用双向CHAP认证,正反向用户名均为admin,正向密码为163.com163.com,反向密码为:123.com123.com。
1,添加正反向用户名均为admin,正向密码为163.com163.com,反向密码为:123.com123.com:


以上都做好后,如以下图:

2,创建启动器:
注意:如果点击 Initiators 添加显示的跟我不一样,在左上有允许所有的启动器的就打勾(跟我一样就略)


以上做好如以下图:

3,新建目标"admin-winclt",为该目标配置两个区块(Extent),区块1大小为100G,区块2大小为500G,均使用Zvol格式并存储在"SAN_Storage"上,为该目标启用双向CHAP认证:






以上都做好如以下图:





都做好如以下图:

五,新建目标"admin-linuxclt",为该目标配置一个区块(Extent),区块1大小为200G,使用Zvol格式并存储在"SAN_Storage"上,为该目标启用双向CHAP认证,正向用户名为[admin-clt],反向用户名为:admin-srv,正向密码为:163.com163.com,反向密码为:123.com123.com。
1,创建组正向用户名为:admin-clt,反向用户名为:admin-srv,正向密码为:163.com163.com,反向密码为:123.com123.com。


做好如以下图:

2,新建目标 admin-linuxclt并为该目标启用双向CHAP认证:


以上做好如以下图:

3,为 admin-linuxclt 目标配置一个区块大小为200G,使用Zvol格式并存储在"SAN_Storage"上:


做好如以下图:



做好如以下图:

4,配置目标"admin-winclt"仅能通过门户"10.1.1.88:3260"进行连接,目标"admin-linuxclt"仅能通过门户"20.1.1.88:3260"进行连接。
由于我们前面 admin-winclt 和 admin-linuxclt 已经做了,这里就略了。


5,开启iscsi服务(这里非常重要):
有很多人做不成就是因为ISCSI服务没有开启。

六,安装并配置Windows Server 2019主机(iSCSI客户端),使用iSCSI发起程序通过门户"10.1.1.88:3260"连接到目标:admin-winclt。
1,安装Windows Server 2019:
转:Windows Server 2019 安装图文教程超详细(2024版)
2,配置winserver 2019跟freenas的10.1.1.88通一网段:
前提winserver2019已经安装好



进入系统后先 ping 10.1.1.88 通不通,ping通就往下做,不通就把winserver 2019的网卡改为自动获取的在ping。






没有报连接失败就是没有问题。









输入快捷 win + x :

可以看到有两块磁盘,分别为:100G和500G:

只要吧磁盘进行联机,然后在初始化,在新建卷就可以使用了
七,安装并配置Linux主机(iSCSI客户端),使用iscsi-initiator-utils程序通过门户:20.1.1.88:3260连接到目标:admin-linuxclt。
1,centos7安装教程:
转:Centos7安装教程 -- 2024(图文超详细)
2,修改centos网卡跟freenas的20.1.1.88同一张网卡:



先ping一下20.1.1.88如果通了以下的就可以略了。
如果ping不通20.1.1.88的修改ip




到桌面右键打开终端


能ping通就可以往下做了
修改iscsi配置文件:
vim /etc/iscsi/iscsid.conf

输入键盘上的 ESC 输入 :set nu 显示行号

注意我当前用的系统是centos7,因为每个系统位置都不同,修改的行号可能有偏差。
输入键盘上的 i 进行编辑,修改第57行,把前面的#去掉:

修改68,69和73,74行前面的#去掉,并添加验证密码:

修改78行前面的#去掉:

修改82,83行前面的#去掉,并添加验证密码:

以上都修改好后点击键盘上的 ESC 输入 :wq 保持并退出。
使用iscsi连接20.1.1.88的门户
iscsiadm -m discovery -t sendtargets -p 20.1.1.88

连接到20.1.1.88目标:
iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:admin-linuxclt -l

相关文章:
使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题
一,实验用到工具分别为: VMware虚拟机,安装教程:VMware Workstation Pro 17 安装图文教程 FreeNAS系统,安装教程:FreeNAS-11.2-U4.1安装教程2024(图文教程) 二,新建虚…...
Sql Sqserver 相关知识总结
Sql Sqserver 相关知识总结 文章目录 Sql Sqserver 相关知识总结前言优化语句查询(select)条件过滤(Where)分组处理(GROUP BY)模糊查询(like)包含(in)合集&am…...
面试题整理17----K8s中request和limit资源限制是如何实现的
面试题整理17----K8s中request和limit资源限制是如何实现的 1. 资源请求(Resource Requests)2. 资源限制(Resource Limits)3. 总结 在Kubernetes(K8s)中,Pod的资源限制(Resource Lim…...
Spring Boot @Conditional注解
在Spring Boot中,Conditional 注解用于条件性地注册bean。这意味着它可以根据某些条件来决定是否应该创建一个特定的bean。这个注解可以放在配置类或方法上,并且它会根据提供的一组条件来判断是否应该实例化对应的组件。 要使用 Conditional注解时&#…...
jpeg文件学习
相关最全的一篇文章链接:https://www.cnblogs.com/wtysos11/p/14089482.html YUV基础知识 Y表示亮度分量:如果只显示Y的话,图像看起来会是一张黑白照。 U(Cb)表示色度分量:是照片蓝色部分去掉亮度&#x…...
c++基于过程
前言: 笔记基于C黑马程序员网课视频:黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 在此发布笔记,只是为方便学习,不做其他用途,原作者为黑马程序员。 1. C基础 1.1 用Visual Studio写C程…...
FOC软件 STM32CubeMX 使用
1、安装-及相关软件版本 展示版本注意事项:keil MDK和STM32CubeMX版本至少要大于等于图中版本。 2、 Motor Profiler 5.2.0使用方法...
leetcode hot 100 全排列
46. 全排列 已解答 中等 相关标签 相关企业 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int…...
使用qrcode.vue生成当前网页的二维码(H5)
使用npm: npm install qrcode.vue 使用yarn: yarn add qrcode.vue package.json: 实现: <template><div class"code"><qrcode-vue :value"currentUrl" :size"size" render-as&…...
0055. shell命令--useradd
目录 55. shell命令--useradd 功能说明 语法格式 选项说明 选项 退出值 相关文件 /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/skel/ /etc/login.defs /etc/default/useradd 实践操作 注意事项 55. shell命令--useradd 功能说明 useradd 命令是 Lin…...
blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质
描述:在blender中合并的模型导出为glb,在threejs中导入仍显示多个mesh,并不是统一的整体,导致需要整体高亮或者使用DragControls等不能统一控制。 原因:模型有多个材质,在blender中合并的时候,…...
vue 本地自测iframe通讯
使用 postMessage API 来实现跨窗口(跨域)的消息传递。postMessage 允许你安全地发送消息到其他窗口,包括嵌套的 iframe,而不需要担心同源策略的问题。 发送消息(父应用) 1. 父应用:发送消息给…...
C++:单例模式
创建自己的对象,同时确保对象的唯一性。 单例类只能有一个实例☞静态成员static☞静态成员 必须类外初始化 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 静态成员类内部可以访问 构造函数私有化☞构造函数私有外部不能创建&#x…...
SOME/IP 协议详解——信息格式
文章目录 1. 头部格式1.1 消息 ID(Message ID)1.2 长度(Length)1.3 请求 ID(Request ID)1.4 协议版本(Protocol Version):1.5 接口版本(Interface Version&am…...
C# GDI+数码管数字控件
调用方法 int zhi 15;private void button1_Click(object sender, EventArgs e){if (zhi > 19){zhi 0;}lcdDisplayControl1.DisplayText zhi.ToString();} 运行效果 控件代码 using System; using System.Collections.Generic; using System.Drawing.Drawing2D; using …...
在交叉编译中,常见的ELF(elf)到底是什么意思?
ELF 是 Executable and Linkable Format 的缩写,中文翻译为“可执行与可链接格式”。它是一种通用的文件格式,主要用于存储可执行文件、目标文件(编译后的中间文件)、动态库(.so 文件)以及内存转储文件&…...
Unity开发AR之Vuforia-MultiTarget笔记
前言 在增强现实(AR)技术蓬勃发展的今天,越来越多的开发者开始探索如何将AR应用于各种场景中。Vuforia作为一个领先的AR开发平台,为开发者提供了强大的工具和功能,使得创建AR体验变得更加简单和直观。本文将为您介绍Vuforia的基本概念、特点,以及如何配置和使用MultiTar…...
深入解析 Oracle 的聚合函数 ROLLUP
目录 深入解析 Oracle 的聚合函数 ROLLUP一、ROLLUP 函数概述二、ROLLUP 函数语法三、ROLLUP 实例详解(一)基础分组聚合(二)引入 ROLLUP 函数(三)ROLLUP 与 NULL 值(四)多列复杂分组…...
Wend看源码-Java-集合学习(List)
摘要 本篇文章深入探讨了基于JDK 21版本的Java.util包中提供的多样化集合类型。在Java中集合共分类为三种数据结构:List、Set和Queue。本文将详细阐述这些数据类型的各自实现,并按照线程安全性进行分类,分别介绍非线程安全与线程安全的实现方…...
【软件】教务系统成绩提交工具使用步骤
【软件】教务系统成绩提交工具使用步骤 零、快速开始 安装 与大多数软件一样,安装步骤很简单,一直点击“下一步”即可快速完成安装,安装完成后,在桌面会有一个软件图标,双击即可打开软件主界面。 导入成绩到Excel中…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
