小白带你学习Linux iscsi的命令和操作(二十六)

简介: 小白带你学习Linux iscsi的命令和操作(二十六)



前言

iSCSI(Internet Small Computer System Interface)是一种用于在IP网络上传输SCSI命令的协议。它允许计算机通过网络连接到远程存储设备,将这些远程存储设备视为本地存储设备来使用。iSCSI将SCSI命令封装在TCP/IP协议中进行传输,使得计算机可以通过网络访问远程存储设备,从而实现存储资源的共享和扩展。

一、概述

1、全称:Internet Small Computer System Interface——互联网小型计算机接口

2、通过网络获取磁盘设备在本地进行存储使用。

3、iscsi

基于IP协议进行scsi数据的传输

IP/SAN网络            基于双绞线为传输介质的存储网络

光纤存储网络          基于光纤传输的存储网络

                             造价极高

实现方式    软件形式

                   硬件形式

默认端口号           3260

4、相关名词

scsi initiator          iscsi客户端

iscsi target          iscsi服务端

lun           一个块设备存储

iqn      

iscsi名称

iqn.时间.域名反写:定义标识

二、实验

1、构建iscsi服务

关闭防火墙和宽容模式

systemctl stop firewalld.service
setenforce 0

安装targetcli

挂载磁盘

mount /dev/sr0 /mnt
yum -y install targetcli

2、使用targetcli工具进入到iscsi服务器端管理界面

targetcli

targetcli

进入到服务器端的iscsi命令配置信息

o- / .................... [...]                     顶级目录

o- backstores ............... [...]       后备存储,主备存储空间,要共享的设备或分区得先加入到这里

| o- block .............. [Storage Objects: 0]         块存储,o- backstores子目录

| o- fileio ............. [Storage Objects: 0]           文件存储,o- backstores子目录

| o- pscsi ................. [Storage Objects: 0]           真实物理scsi设备,o- backstores子目录

| o- ramdisk ................ [Storage Objects: 0]        闪存,o- backstores子目录

o- iscsi ................ [Targets: 0]           以ISCSI的方式共享存储设备的目录

o- loopback ................. [Targets: 0]

添加一块磁盘为15G

cd /sys/class/scsi_host/

for i in `ls /sys/class/scsi_host`;do echo "- - -" > $i/scan;done

fdisk /dev/sdb

3、实现步骤

3.1服务器端

进入到/backstores/block目录中添加设备到块设备列表             create disk0 /dev/sdb1

进入到iscsi目录中生成iqn标签                                                   create

进入到/iscsi/iqn.20...909/tpg1/luns>目录下创建逻辑单元       create /backstores/block/disk0

进入到/iscsi/iqn.20...909/tpg1/acls>目录中创建访问控制规则           create iqn.20......

进入到/iscsi/iqn.20.../tpg1/portals>目录中创建端口           create 192.168.1.1 3260

注意:因为原本存在一个端口0.0.0.0:3260,所以需要将原来的端口删除掉再进行创建

exit退出,否则设置不会被保存

exit

在认证文件中成iqn编号

vim  /etc/iscsi/initiatorname.iscsi

vim  /etc/iscsi/initiatorname.iscsi

将原来的认证编号改为新生成的编号

启动服务

systemctl start iscsi

systemctl start iscsid

systemctl start iscsi
 systemctl start iscsid

3.2客户端

安装软件

mount /dev/sr0 /mnt

yum -y install iscsi-initiator-utils

yum -y install iscsi-initiator-utils

在认证文件中生成iqn编号

vim  /etc/iscsi/initatorname.iscsi

vim  /etc/iscsi/initatorname.iscsi

将原来的认证编号改为新生成的编号

开启客户端服务

systemctl start iscsi

systemctl start iscsid

systemctl start iscsi
 systemctl start iscsid

查找可用的iscsi资源列表

iscsiadm -m discovery -t st -p 192.168.1.1:3260

iscsiadm -m discovery -t st -p 192.168.28.1:3260

-m    指定模式

-t    指定动作类型,st,sendtargets

-p    指定服务器和端口

访问服务器的共享资源

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3f2f0c3bd909 -l
-T    targetnameiqn

-l    login

查看到有了之后重启一下服务

把磁盘挂载上去

iscsiadm -m discovery -t st -p 192.168.28.1:3260 -l
lsblk

把磁盘分区格式化

fdisk /dev/sdb

挂载磁盘

先格式化磁盘分区

mkfs -t /dev/sdb1
mount /dev/sdb1 /opt

挂载

三、注意事项

1、自动挂载时必须使用UUID,否则会出问题,同时在参数中添加_netdev,如UUID=33899a29-9f9e-476f-b8e9-cc9ad0986dac /mnt xfs defaults,_netdev                       blkid查看UUID

2、开机启动关闭防火墙,因为当计算机开机首先是bios自检查找硬盘中的操作系统引导启动,但是当系统没有完全启动时计算机就没有通过网络通讯,而iscsi是基于网络的共享存储,所以开机重启需要告诉内核这条开机挂载是基于网络的存储

相关文章
|
29天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
74 8
|
27天前
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
|
11天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
39 14
Linux 10 个“who”命令示例
|
17小时前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
34 20
|
1天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
20 7
|
20天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
30 9
|
18天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
24天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
88 3
|
29天前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
49 4
|
27天前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
29 1