当前位置: 首页 > article >正文

Kylin麒麟操作系统服务部署 | ISCSI存储服务

以下所使用的环境为:
虚拟化软件:VMware Workstation 17 Pro
麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64

一、网络存储结构

网络存储技术(Network Storage Technologies)是基于数据存储的一种通用术语。网络存储结构分为以下三种:

  • DAS直连式存储:直接与主机系统相连接的存储设备(硬盘、光盘)
  • NAS网络存储设备:直接与网络介质相连的特殊设备以实现数据存储(NFS、Samba、CIFS)
  • SAN存储区域网络:存储设备相连企鹅与一台服务器或服务器群相连形成网络(FC-SAN、IP-SAN)

NAS和SAN的区别

  • NAS使用TCP/IP传输数据;SAN使用SCSI或iSCSI协议传输数据
  • NAS采用NFS和CIFS技术实现文件共享,基于操作系统的“文件级“读写操作
  • SAN采用底层块协议,根据协议头的“块地址+偏移地址”,无需操作系统也可以正常识别

FC-SAN和IP-SNA的区别

  • FC-SAN以光纤为介质构建存储网络,通过光纤通道协议转发scsi协议
  • IP-SAN以IP网络构建存储网络,现对于FC-SAN更加经济实惠,通过TCP协议转发scsi协议

二、ISCSI存储概念

ISCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标志,它是一种基于IP Storage理论的新型存储技术,通过将SCSI接口和IP网络相结合,可以在IP网络上构建SAN存储区域网络。可以理解为:iSCSI=IP+SCSI。

ISCIS技术优势

  • 将用于本机的SCSI通过TCP/IP网络传输,只要IP可达,可无视地域
  • 连接的服务器数量不受限制(原有的SCSI-3最大连接数为15)
  • 基于服务器架构,可以实现在线扩容

ISCSI Target

被用于存储数据的iscis磁盘或具有iscsi功能的设备都可以被称为“ISCSI Target”。利用ISCSI Target可以将服务器的存储空间分配给客户端使用,客户端就可以像本地磁盘一样使用iscsi磁盘。

iSCSI initiator

iSCSI initiator是一个安装在系统上的软件或硬件设备,负责与iscis存储设备进行通信。

在这里插入图片描述

三、targetcli服务

targetcli支持通过普通命令方式使用或交互式使用。通过targetcli可以创建、删除和配置iSCSI目标,在交互式中,可以直观呈现目标的层级树,方便浏览和配置,支持使用Linux基本命令,如cd、ls、pwd等。

安装targetcli,麒麟操作系统默认已经安装好targetcli

yum install -y targetcli

在这里插入图片描述

进入交互模式

targetcli

在这里插入图片描述

1. 目录内容解析

查看当前目录内容

ls

在这里插入图片描述

  • backstores:存储目录
    • block:块设备,如:磁盘驱动器、磁盘分区、逻辑卷(类型标识符为b的设备文件)
    • fileio:文件存储,将文件模拟成磁盘,类似于虚拟机中的1个文件代表1个磁盘
    • pscsi:物理SCSI
    • ramdisk:内存中的1个指定大小的内存存储,也就是使用内存模拟磁盘

3. iscis目录解析

默认情况下,iscis目录为空。当我们在iscsi目录下创建iscis target时,会自动生成目录

  • 在创建IQN的同时会自动创建一个默认的TPG
  • iscsi:目标目录
    • acls:设置允许连接的客户端,通过iqn或IP地址限定
    • luns:逻辑单元号,指向物理存储
    • portals:映射的IP地址和端口号

在这里插入图片描述

3. LUN

目标要提供客户端对存储或输出设备的访问,需要配置一个或多个逻辑单元号(LUN)。在ISCSI中,LUN显示为目标的连续编号的磁盘驱动器,一般来说,目标只有一个LUN。iSCIS通过ACL限制启动器是否可以访问LUN。

LUN的全称是Logical Unit Number(逻辑单元号),是SCSI中的概念。块存储对象只要加入target存储系统,就会分配1个代号。在区分块设备时只需要说 target 中的 LUN号码,块存储对象被指定了一个LUN后,成为了一个“逻辑”磁盘,供存储客户端使用。

通俗的理解:将后端存储设备中的设备理解为房间,LUN理解为房号。客户端如果要访问该房间,只需要知道该房号即可访问。

四、ISCSI服务部署(基于磁盘)

节点设置

主机网络信息说明
Kylin-1192.168.110.1/24存储服务器
Kylin-2192.168.110.2/24测试客户端

[Step1]: Kylin-1配置:添加3块10G硬盘

在这里插入图片描述

[Step2]: Kylin-1配置:安装ISCIS存储服务器端

yum install -y targetcli

[Step3]: Kylin-1配置:创建块存储对象

cd /backstores/block			# 进入块设备存储目录
create 10G-1 /dev/sdb			# 新建块设备
create 10G-2 /dev/sdc
create 10G-3 /dev/sdd
  • **create:**新建块设备
  • **10G-1:**块设备名称
  • **/dev/sdb:**块设备路径

在这里插入图片描述

[Step4]: Kylin-1配置:切换到iSCIS目录,创建ISCSI Target

cd /iscsi
create iqn.2024-09.com.meaauf		# 名称可以自定义

在这里插入图片描述

[Step5]: Kylin-1配置:切换到luns目录下,将block目录下的块存储加入luns目录下

cd iqn.2024-09.com.meaauf/tpg1/luns
create /backstores/block/10G-1
create /backstores/block/10G-2
create /backstores/block/10G-3

在这里插入图片描述

[Step6]: Kylin-1配置:切换到acls目录下,为initator客户端创建ACL访问(客户端连接器)

cd ../acls
create iqn.2024-09.com.meaauf.Kylin-2

在这里插入图片描述

[Step7]: Kylin-1配置:切换到portals目录下,指定新的监听地址和端口号

cd ../portals/
delete 0.0.0.0 3260			# 删除默认监听端口 3260
create 192.168.110.1 3260	# 添加监听端口

在这里插入图片描述

[Step8]: Kylin-1配置:设置允许连接的用户和密码

cd ../acls/iqn.2024-09.com.meaauf.kylin-2/
set auth userid=admin
set auth password=kylin2024

在这里插入图片描述

[Step9]: Kylin-1配置:查看当前配置

ls /

在这里插入图片描述

[Step10]: Kylin-1配置:可以手动保存后退出,也可以直接退出(退出会保存当前配置)

cd /
saveconfig

在这里插入图片描述

[Step11]: Kylin-1配置:启动target服务并加入到开机自启,调整防火墙策略,放行3260端口

systemctl enable --now target.service
firewall-cmd --add-port=3260/tcp --permanent
firewall-cmd --reload

[Step12]: Kylin-2配置:配置ISCSI存储客户端

yum -y install open-iscsi

[Step13]: Kylin-2配置:配置ISCSI Initiator客户端连接器名称

vim /etc/iscsi/initiatorname.iscsi# 修改内容如下,InitiatorName必须和服务端acls中设置值一致
InitiatorName=iqn.2024-09.com.meaauf.Kylin-2

[Step14]: Kylin-2配置:修改iscsid配置文件

vim /etc/iscsi/iscsid.conf# 添加下列内容
node.session.auth.authmethod = CHAP
node.session.auth.username = admin
node.session.auth.password = kylin2024

在这里插入图片描述

[Step15]: Kylin-2配置:重新启动iscsid服务

systemctl restart iscsid.service

[Step16]: Kylin-2配置:发现远程可用的iSCSI服务器节点

iscsiadm -m discovery -t sendtargets -p 192.168.110.1
iscsiadm -m discovery -t st -p 192.168.110.1
  • -m discovery:发现操作
  • -t sendtargets:指定发现类型为 sendtargets
  • -p 192.168.110.1:指定iSCSI目标门户地址

在这里插入图片描述

[Step17]: Kylin-2配置:登录远程可用的iSCSI服务器节点

iscsiadm -m node --login

在这里插入图片描述

[Step18]: Kylin-2验证:查看本地裸设备,可以看到新增了3块10G硬盘

lsblk

在这里插入图片描述

[Step19]: Kylin-2验证:卸载指定的iSCSI存储设备

iscsiadm -m node -T iqn.2024-09.com.meaauf -u

在这里插入图片描述

五、ISCSI服务部署(基于文件)

节点设置

主机网络信息说明
Kylin-1192.168.110.1/24存储服务器
Kylin-2192.168.110.2/24测试客户端

[Step1]: Kylin-1配置:创建1个文件,模拟磁盘

dd if=/dev/zero of=/dev/file bs=1M count=2048		# 创建1个2G的文件,文件名为 /dev/file
  • if=/dev/zero:指定源文件
  • of=/dev/file:指定输出文件
  • bs=1M:设置块大小,dd命令每次写入1M的数据
  • count=2048:复制的块数为2048

[Step2]: Kylin-1配置:创建iscis文件存储,进入fileio目录下

targetcli
> cd /backstores/fileio
> create file /dev/file

在这里插入图片描述

[Step3]: Kylin-1配置:创建逻辑单元号

cd /iscsi/iqn.2024-09.com.meaauf/tpg1/luns/
create /backstores/fileio/file

在这里插入图片描述

[Step4]: Kylin-1配置:创建客户端ACL,这里我们使用和上述一样的ACL规则

cd ../acls/

在这里插入图片描述

[Step5]: Kylin-1配置:退出

exit

[Step6]: Kylin-2配置:发现远程可用的iSCSI服务器节点,登录iSCSI服务器节点

iscsiadm -m discovery -t sendtargets -p 192.168.110.1
iscsiadm -m node --login

在这里插入图片描述

[Step7]: Kylin-2验证:查看本地裸设备,可以看到新增了1块2G硬盘

在这里插入图片描述

相关文章:

Kylin麒麟操作系统服务部署 | ISCSI存储服务

以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、网络存储结构 网络存储技术(Network Storage Technologies)是基于数据存储的一种通…...

数据结构_单链表

今天我们要开启链表的学习 🖋️🖋️🖋️ 学了顺序表我们可以知道: 🎈链表其实就是争对顺序表的缺点来设计的,补足的就是顺序表的缺点 🎈链表在物理上是上一个节点存放的下一个节点的地址 链表 …...

深陷帕金森困境,怎样重燃生活信心?

帕金森,这个悄然影响无数中老年人生活的神经系统疾病,正逐渐走进大众视野。患病后,患者常出现静止性震颤,安静时手部、下肢不自主抖动,如同在默默诉说着身体的异常。肢体变得僵硬,行动迟缓,起步…...

C语言(23)

字符串函数 11.strstr函数 1.1函数介绍: 头文件:string.h char *strstr ( const char * str1,const char *str2); 作用:在一个字符串(str1)中寻找另外一个字符串(str2)是否出现过 如果找到…...

Docker运行hello-world镜像失败或超时:Unable to find image ‘hello-world:latest‘ locally Trying to pull reposi

Docker运行hello-world镜像失败或超时,报错:Unable to find image ‘hello-world:latest’ locally Trying to pull repository docker.io/library/hello-world … /usr/bin/docker-current: missing signature key. See ‘/usr/bin/docker-current run …...

Linux内核如何和设备树协同工作的?

1.编写设备树 cd arch/riscv/boot/dts/ 再cd到厂商,例如下述内容。 2.编译设备树(dts->dtb)通过dtc命令来转换 3.解析设备树 例如上述内容,都是对设备树的解析。 这里重点说一下内核对设备树的处理吧,因为这个内…...

electron的通信方式(三种)

文章目录 一、渲染进程向主进程发送消息二、渲染进程向主进程发送消息并异步获取结果三、主进程向渲染进程发送消息 electron的主要是主线程和渲染线程之间的通信,简单记录一下三种通信方式 一、渲染进程向主进程发送消息 利用ipcRenderer.send()和ipcMain.on()方法…...

LLM中的transformer结构学习(二 完结 Multi-Head Attention、Encoder、Decoder)

文章目录 LLM中的transformer结构学习(二 完结 Multi-Head Attention、Encoder、Decoder)Self-Attention (自注意力机制)结构多头注意力 EncoderAdd & Norm 层Feed Forward 层 EncoderDecoder的第一个Multi-Head AttentionMas…...

高效编程指南:PyCharm与DeepSeek的完美结合

DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了,这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注:本文适用于所有的JetBrains开发工具&#xff0c…...

嵌入式c学习四

c语言的输入输出:ANSI组织发布的标准c库,使用函数需要包含对应头文件,使用输入输出函数时需要包含stdio.h (stdio -> standard input output)标准输入输出 格式化输出:int printf(const char * restrict format, ...)&#xf…...

爱可以传递,幸福可以具象化

遇到什么:晚上上课学生吵吵吵,把学生手机全部收了,放讲台上。 感受到的情绪:很烦躁。 反思:收手机也不是长久之计,可是物理有什么翻转课堂呢? 明天的待办事项:早上高数选修课&#x…...

力扣-数组-367 有效的完全平方数

思路和时间复杂度 思路:利用二分,确定区间是左闭右闭,然后根据大小进行二分时间复杂度: 代码 class Solution { public:bool isPerfectSquare(int num) {bool flag false;if(num 0 || num 1) return true;long long …...

Java关键字与标识符

Java关键字是预定义的保留字,用于定义程序结构和语义,如if、for、class等,不能用作标识符。JDK 8有50个关键字,JDK 11引入var用于局部变量类型推断。标识符用于命名变量、类等,由字母、数字、_、$组成,不能…...

【神经网络】python实现神经网络(二)——正向推理的模拟演练

一.神经网络假设 在开始讲解之前,首先我们假设有这样一套神经网络,一共有三层: 其中,关于神经网络的权重、偏置的符号定义如下(如果不知道什么是权重和偏置,可以参考我之前写过的一篇文章:【机器学习】机器学习是什么意思): 以下文章将沿用以上这个设…...

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI…...

Rust规律归纳随笔

1. 针对所有权规则&#xff1a; 唯一所有权 <------------> 智能指针(引用计数)<-------------->共享所有权 (引用计数) { 单线程&#xff1a;Rc 多线程&#xff1a;Arc } 2. 针对借用规则&#xff1a; 共享不可变&#xff08;多读&#xff09;<----->…...

Houdini SOP层 Scatter节点

SOP 代表 Surface Operator&#xff08;几何体操作节点&#xff09;&#xff0c;所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP&#xff08;几何体&#xff09;层级&#xff1a; 进入 Geometr…...

Win7 火狐浏览器 Mozilla Firefox 115.7.0esr下载地址(及Chrome、Supermium浏览器)

如题&#xff0c;官网下载地址&#xff1a; Mozilla Firefox 115.7.0esr 已经发布&#xff0c;感兴趣的朋友可去官方下载&#xff01; https://ftp.mozilla.org/pub/firefox/releases/115.7.0esr/ 其他方案&#xff1a; 1、谷歌 Chrome 浏览器的 109版本&#xff0c;即最后一…...

Docker 学习笔记:从入门到部署,实战演练全流程!

&#x1f4cc; 开篇&#xff1a;为什么要学 Docker&#xff1f; 还在为环境不一致、部署麻烦、依赖冲突头疼吗&#xff1f;Docker 让一切变得简单&#xff01;作为现代开发和运维的神器&#xff0c;Docker 让我们可以用 一句命令 解决 “在我电脑上能跑” 的问题。今天&#x…...

【网络安全工程】任务12:网络安全设备

目录 一、防火墙​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 二、入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 三、防病毒网关​ ​1、作用​ 2、配置方式​ 3、存在的漏洞​ …...

Linux 进程控制:创建、终止、等待与程序替换全解析

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 1.进程创建 1-1 fork函数初识​ 1-2 fork函数返回值​ 1-3…...

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里&#xff0c;我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下&#xff0c;SwiftUI 会将每个视图尺寸处理的井井有条&#xff0c;不过在某些时候我们还是得亲力亲为。 如上图所示&#xff0c;无论顶部 TabView 容器里子视图…...

机器学习中的梯度下降是什么意思?

梯度下降&#xff08;Gradient Descent&#xff09;是机器学习中一种常用的优化算法&#xff0c;用于最小化损失函数&#xff08;Loss Function&#xff09;。通过迭代调整模型参数&#xff0c;梯度下降帮助模型逐步逼近最优解&#xff0c;从而提升模型的性能。 1.核心思想 梯…...

opencv-显示图片

安装软件 sudo apt install python3 //确保虚拟机只有python3 ln -sf /usr/bin/python3.6 /usr/bin/python sudo apt install python3-pip pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple pip install opencv-contrib-python -i https://pypi.tuna…...

sap关账+策略模式(避免大量if elseif)

旧代码 Transactional(rollbackFor Exception.class)public AjaxResult purchaseOrderReceiptOutSourceAfterSapCloseAccountingPeriod(Long id) {SysPurorderPostingLog sysPurorderPostingLog sysPurorderPostingLogMapper.selectSysPurorderPostingLogById(id);if (Object…...

EverArt MCP 服务器安装调试笔记 -cline

EverArt MCP 服务器安装调试笔记 问题描述 用户在使用 EverArt MCP 服务器时遇到报错&#xff1a;“MCP error -1: Connection closed”。 调试过程 检查配置文件 cline_mcp_settings.json: 确认 everart 服务器的配置信息&#xff0c;包括 command、args 和 env 是否正确。…...

1035.不相交的线

1035.不相交的线 力扣题目链接(opens new window) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#xff0c;这些直线需要同时满足&#xff1a; nums1[i] nums2[j]且绘制的直线…...

Django-ORM-select_related

Django-ORM-select_related 作用使用场景示例无 select_related 的查询有 select_related 的查询 如何理解 "只发起一次查询&#xff0c;包含所有相关作者信息"1. select_related 的工作原理2. 具体示例解析3. 为什么只发起一次查询 数据库中的books量巨大&#xff0…...

2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MDA词频统计两种方式)(吴非、赵宸宇、甄红线300+关键词三种方法)

2001-2023年上市公司数字化转型年报词频统计&#xff08;年报词频统计和MD&A词频统计两种方式&#xff09;&#xff08;吴非、赵宸宇、甄红线300关键词三种方法&#xff09; 1、时间&#xff1a;2001-2023年 2、来源&#xff1a;上市公司年报 3、参考文献&#xff1a; …...

IO多路复用实现并发服务器

一.select函数 select 的调用注意事项 在使用 select 函数时&#xff0c;需要注意以下几个关键点&#xff1a; 1. 参数的修改与拷贝 readfds 等参数是结果参数 &#xff1a; select 函数会直接修改传入的 fd_set&#xff08;如 readfds、writefds 和 exceptfds&#xf…...