iSCSI共享存储搭建

news2024/10/9 5:15:45

1.简介

iSCSI:Internet Small Computer System Interface,Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术。

2.iSCSI的作用

基于客户端和服务端架构的虚拟磁盘技术,服务端提供磁盘空间,客户端连接并且可以当成本地磁盘来用。

3.iSCSI磁盘的构成

  • backstore 后端存储:对应到服务端提供实际存储空间的设备,需要起一个管理名称。

  • target 磁盘组:是客户端的访问目标,作为一个框架,由多个lun组成。

  • lun 逻辑单元:每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘。

4.iSCSI共享存储的逻辑

在服务器端物理磁盘会被分散成多个分区或逻辑卷,然后再绑定到单个的逻辑单元(LUN),一个LUN的绑定了一个分区或逻辑卷,LUN大小与绑定的分区或逻辑卷大小相同,所有的LUN再绑定到iqn标签,这个标签是创建target磁盘组是设定的,一个iqn标签可以绑定一个或多个LUN。在客户端每一个LUN最后相当于被挂载到客户端对应一个块设备(sdb.sdc.…)。最后设置访问控制,也就是设置客户端声称的名字,客户端需要iSCSI对应文件中的initiatorname设置成服务器中设置声明的名字才能进行访问。
在这里插入图片描述

5.服务端部署

1.确认服务端IP

[root@server ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:92:10:46 brd ff:ff:ff:ff:ff:ff
    inet 10.0.128.170/24 brd 10.0.128.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::4edf:b81d:8852:fef5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2.添加一块新的硬盘,重启使得系统识别到磁盘:sdb

[root@server ~]# fdisk -l

Disk /dev/sda: 37.6 GB, 37580963840 bytes, 73400320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00041dad

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    73400319    35650560   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-root: 34.4 GB, 34351349760 bytes, 67092480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

3.使用fdisk进行分区,将sdb磁盘分成两个分区

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3266af65

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200    20971519     9436160   83  Linux

4.安装 targetcli 软件包

[root@server ~]# yum -y install targetcli

5.设置target服务开机启动,并启动服务

[root@server ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
[root@server ~]# systemctl start target

6.使用targetcli命令进行配置

[root@server ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 0]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 0]
  o- loopback ..................................................... [Targets: 0]

#1.创建后端存储test0、test1
/> /backstores/block create dev=/dev/sdb1 name=test0
Created block storage object test0 using /dev/sdb1.
/> /backstores/block create dev=/dev/sdb2 name=test1
Created block storage object test1 using /dev/sdb2.

#2.创建target
/> iscsi/ create iqn.2023-06.com.test:server
Created target iqn.2023-06.com.test:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

#3.进行lun0、lun1关联
/> iscsi/iqn.2023-06.com.test:server/tpg1/luns create /backstores/block/test0
Created LUN 0.
/> iscsi/iqn.2023-06.com.test:server/tpg1/luns create /backstores/block/test1
Created LUN 1.

#4.在 TPG 项下,新建 ACL 设置 IQN 为iqn.2018-05.com.test:desktop的客户端使用
/> iscsi/iqn.2023-06.com.test:server/tpg1/acls create iqn.2023-06.com.test:clientCreated Node ACL for iqn.2023-06.com.test:client
Created mapped LUN 1.
Created mapped LUN 0.

#5.查看配置信息
/> ls
o- / .............................................................................. [...]
  o- backstores ................................................................... [...]
  | o- block ....................................................... [Storage Objects: 2]
  | | o- test0 ................................ [/dev/sdb1 (1.0GiB) write-thru activated]
  | | | o- alua ........................................................ [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ............................ [ALUA state: Active/optimized]
  | | o- test1 ................................ [/dev/sdb2 (9.0GiB) write-thru activated]
  | |   o- alua ........................................................ [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ............................ [ALUA state: Active/optimized]
  | o- fileio ...................................................... [Storage Objects: 0]
  | o- pscsi ....................................................... [Storage Objects: 0]
  | o- ramdisk ..................................................... [Storage Objects: 0]
  o- iscsi ................................................................. [Targets: 1]
  | o- iqn.2023-06.com.test:server ............................................ [TPGs: 1]
  |   o- tpg1 .................................................... [no-gen-acls, no-auth]
  |     o- acls ............................................................... [ACLs: 1]
  |     | o- iqn.2023-06.com.test:client ............................... [Mapped LUNs: 2]
  |     |   o- mapped_lun0 ...................................... [lun0 block/test0 (rw)]
  |     |   o- mapped_lun1 ...................................... [lun1 block/test1 (rw)]
  |     o- luns ............................................................... [LUNs: 2]
  |     | o- lun0 .......................... [block/test0 (/dev/sdb1) (default_tg_pt_gp)]
  |     | o- lun1 .......................... [block/test1 (/dev/sdb2) (default_tg_pt_gp)]
  |     o- portals ......................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 .......................................................... [OK]
  o- loopback .............................................................. [Targets: 0]

#6.退出
/> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json

7.重启target服务

[root@server ~]# systemctl restart target

8.设置target服务开机启动

[root@server ~]# systemctl enable target

9.关闭防火墙

[root@server ~]# systemctl stop firewalld.service 

6.客户端配置

1.安装iscsi-initiator-utils

[root@client ~]# yum install -y iscsi-initiator-utils

2.编辑配置文件 /etc/iscsi/initiatorname.iscsi,修改名称为服务端中客户端声称的名字

[root@client ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2023-06.com.test:client

3.发现服务端共享存储

[root@client ~]# iscsiadm --mode discoverydb --type sendtargets --portal 10.0.128.170 --discover
10.0.128.170:3260,1 iqn.2023-06.com.test:server

4.设置 iscsid 开机启动,重启此服务

[root@client ~]# systemctl enable iscsid
Created symlink from /etc/systemd/system/multi-user.target.wants/iscsid.service to /usr/lib/systemd/system/iscsid.service.
[root@client ~]# systemctl restart iscsid

5.使用共享存储,被识别为sdb、sdc

[root@client ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   34G  0 part 
  ├─centos-root 253:0    0   32G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
sdc               8:32   0    9G  0 disk 

6.验证会话状态及相关的磁盘信息

[root@client ~]# iscsiadm -m session -P 3 |grep Attached
                Attached SCSI devices:
                        Attached scsi disk sdb          State: running
                        Attached scsi disk sdc          State: running

7.在新磁盘上创建分区

#1.创建sdb1分区
[root@client ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2a2fa4e3.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (65528-2097151, default 65528): 
Using default value 65528
Last sector, +sectors or +size{K,M,G} (65528-2097151, default 2097151): 
Using default value 2097151
Partition 1 of type Linux and of size 992 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#2.创建sdc1分区
[root@client ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2a2fa4e3.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (65528-2097151, default 65528): 
Using default value 65528
Last sector, +sectors or +size{K,M,G} (65528-2097151, default 2097151): 
Using default value 2097151
Partition 1 of type Linux and of size 992 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#3.查看
[root@client ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   34G  0 part 
  ├─centos-root 253:0    0   32G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
└─sdb1            8:17   0  992M  0 part 
sdc               8:32   0    9G  0 disk 
└─sdc1            8:33   0    9G  0 part 
sr0              11:0    1  4.4G  0 rom  

8.格式化磁盘分区

[root@client ~]# mkfs.xfs /dev/sdb1
[root@client ~]# mkfs.xfs /dev/sdc1

9.创建挂载目录

[root@client ~]# mkdir /iscsi1
[root@client ~]# mkdir /iscsi2

10.挂载分区

[root@client ~]# mount /dev/sdb1 /iscsi1
[root@client ~]# mount /dev/sdc1 /iscsi2 
[root@client ~]# df -h|grep /iscsi
/dev/sdb1                961M  2.5M  893M   1% /iscsi1
/dev/sdc1                9.0G   33M  9.0G   1% /iscsi2

11.永久挂载

[root@client ~]# blkid
/dev/sda1: UUID="94690918-1083-4616-9920-d6c0a4315911" TYPE="xfs" 
/dev/sda2: UUID="a76gEe-pO26-I0hG-SgV9-Wr97-UP08-8jVg37" TYPE="LVM2_member" 
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="3f7fa0b5-79c5-488c-b23e-5bbcde77235f" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="7ec9af7e-eb4f-4732-aa97-1e03f085727c" TYPE="swap" 
/dev/sdb1: UUID="dcc14954-15c7-4564-aa6e-fa3a36412b48" TYPE="ext4" 
/dev/sdc1: UUID="cebe8fcf-729f-4b04-a354-2a772be98ea0" TYPE="xfs" 

在/etc/fstab 文件中添加两行

UUID=dcc14954-15c7-4564-aa6e-fa3a36412b48 /iscsi1 xfs    defaults        0 0
UUID=cebe8fcf-729f-4b04-a354-2a772be98ea0 /iscsi2 xfs    defaults        0 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何让url在新页面打开路由页面,并脱离vue-admin-template的壳,即不包裹在侧边栏和顶栏中

文章目录 一、打开的页面不包裹在侧边栏和顶栏中二、新窗口打开&#xff08;_blank&#xff09;三、最终效果 一、打开的页面不包裹在侧边栏和顶栏中 在使用vue-admin-template新建的页面中&#xff0c;打开的页面都是在框架内的内容区。 但假如我需要在左侧点击一个链接&…

面试题丨android面试问题合集

1、项目里静态分析和基于xposed动态工具介绍一下&#xff0c;如果不使用xposed&#xff0c;怎么实现动态分析工具&#xff1f; 静态分析工具是指在不运行程序的情况下&#xff0c;通过对程序文件进行源代码分析&#xff0c;从而对程序的安全性、可靠性、性能等进行分析的工具。…

HOOPS技术如何助力企业数字化转型?

近年来&#xff0c;随着科技的迅速发展&#xff0c;数字技术的应用已经深入到各个行业和领域。云计算、人工智能、物联网、大数据分析等技术的成熟和普及&#xff0c;为企业提供了丰富的数字化工具和解决方案。企业意识到利用这些技术可以提高效率、降低成本、创新业务模式&…

学习中心上新丨Python教程-Django框架快速入门到实战

腾讯云千锋教育强强联手&#xff0c;一同研发重磅推出全新课程《千锋图片云存储》Python 教程-Django 框架从入门到实战-基于腾讯云 COS Django框架实战教程发布 腾讯云开发者社区“学习中心”直达&#xff1a; 腾讯云开发者社区-腾讯云 扫码加入“腾讯云开发者社区学习中心交…

618小红书推广种草达人,品牌运营4大块是什么

当今电商行业的竞争越来越激烈&#xff0c;品牌宣推变得尤为重要。其中&#xff0c;小红书是一个备受关注的电商平台之一。618小红书推广种草达人&#xff0c;品牌运营4大块是什么&#xff0c;今天和大家一起分享下。 618期间的小红书推广落地&#xff0c;应从关键词优化、内容…

流量矩阵估计综述Traffic Matrix Estimation Techniques- A Survey on Current Practices

Paper: Traffic Matrix Estimation Techniques- A Survey on Current Practices | IEEE Conference Publication | IEEE Xplore 来源&#xff1a;2023 International Conference on Sustainable Computing and Data Communication Systems (ICSCDS) (强烈建议搭配英文原文看&…

Vue 有哪些经典面试题?

前言 下面总结了vue的一些经典的面试题&#xff0c;希望对正在找工作面试的小伙伴们提供一些帮助&#xff0c;我们废话少说直接进入整体、 简述一下什么是MVVM模型 MVVM&#xff0c;是Model-View-ViewModel的简写&#xff0c;其本质是MVC模型的升级版。其中 Model 代表数据模…

不入耳蓝牙耳机哪种好?音质好佩戴舒适的四款不入耳蓝牙耳机推荐

普通入耳式蓝牙耳机长时间佩戴会有挤压感、不适感&#xff0c;而不入耳蓝牙耳机则没有这种烦恼&#xff0c;不入耳设计&#xff0c;佩戴更稳固舒适&#xff0c;运动佩戴也不会轻易甩掉。我来推荐四款好用、不可错过的不入耳蓝牙耳机给大家&#xff0c;来看看有没有心仪那款吧。…

华为和思科如何实现双机热备?

概要&#xff1a; 在当今高度依赖网络的时代&#xff0c;网络设备的高可用性和可靠性变得尤为重要。网络设备的故障可能导致服务中断、数据丢失以及生产力下降等问题。为了应对这些挑战&#xff0c;一种常见的解决方案是使用双机热备&#xff08;High Availability, HA&…

「Win」HOOK钩子技术

✨博客主页&#xff1a;何曾参静谧的博客 &#x1f4cc;文章专栏&#xff1a;「Win」Windows程序设计 相关术语 HOOK技术&#xff1a;是一种在Windows系统中常用的技术&#xff0c;它可以截获并修改操作系统或应用程序的行为。通过使用Hook技术&#xff0c;我们可以实现以下功能…

网络编程重点

1> OIS 7层模型 TCP/IP 4层模型 5层模型 2> 传输层的功能 网络层的功能&#xff1f;以及分别是第几层 传输层&#xff1a;提供端到端的可靠传输&#xff0c;指定哪个进程哪个发送进程接收 第四层 网络层&#xff1a;寻址和路由选择 第三层 3>MAC地址&#xff1a; a. …

JAVA 巧用 Robot 类(应用于网课)

目录 前言&#xff1a;理论依据&#xff1a;现实依据&#xff1a;朴素版只能循环阅读不能翻页&#xff1a;升级版 翻页 阅读&#xff1a;如何使用&#xff1a; 前言&#xff1a; 最近发现有个阅读得读300分钟&#xff0c;懒得去找软件&#xff0c;于是就自己写了一个代码去实现…

(1Gb)S28HS01GTGZBHA030/ S28HS01GTGZBHV033/ S28HS01GTGZBHA033 FLASH - NOR闪存器件

产品简介&#xff1a; Infineon 带有HyperBus™的S26HSxT以及S26HLxT Semper™闪存是一种高性能、安全可靠的NOR闪存解决方案。 这些组件集成了关键的安全功能&#xff0c;用于汽车、工业、通信等行业的各种应用。S26HSxT和S26HLxT Semper闪存采用HyperBus接口&#xff0c;符…

仙境传说RO:添加限购物品刷新物品库存教程

仙境传说RO&#xff1a;添加限购物品刷新物品库存教程 大家好我是艾西&#xff0c;在游戏中我们会有普通的基础装备那么必然就会有到顶的套装&#xff0c;往往可能一套到顶的套装就可能霸服。那么就需要GM去做游戏的设定以及限制&#xff0c;上一篇文章中我给大家讲述了如果创…

风控系统设计

一、思路 要实现一个简单的业务风控组件,要做什么工作呢? 1.风控规则的实现 a.需要实现的规则: 自然日计数 自然小时计数 自然日自然小时计数 自然日自然小时计数 这里并不能单纯地串联两个判断,因为如果自然日的判定通过,而自然小时的判定不通过的时候,需要回退,自然日…

NetApp 混合云技术

为何选择 NetApp 的混合云 NetApp 可帮助您构建一个现代化的混合云&#xff0c;从而统一您的基础架构&#xff0c;并让您的数据可以自由流动到所需的任何位置&#xff0c;确保以数据为中心的业务能够快速应对变化&#xff0c;灵活调整方向&#xff0c;并获得竞争优势。 什么是…

界面控件DevExtreme工具栏 - 拥有全新的自适应模式/弹出窗口

本文涵盖了最近对DevExtreme JavaScript工具栏组件(v22.2)所做的更改&#xff0c;并简要描述了相关的实现细节。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET C…

对话人工智能 |新时代AI如何“落地“

前言&#xff1a; Comate代码助手推出&#xff0c;现场生成了贪吃蛇游戏&#xff0c;我们距离AI自动编程还有多远&#xff1f; 文章目录 序章正文背景基础坚实文心大模型飞浆深度学习框架 Comate的出现优质的智能助理和伙伴多场景适用优势特征Demo演示视频&#xff1a; 总结 序…

【C++学习】C++入门(1)

写在前面 欢迎来到C的世界&#xff0c;这是一门令人兴奋的语言。 好吧&#xff0c;每当我开始阅读C的书籍的时候&#xff0c;开头的第一句话必定是这个&#xff0c; 也不知道其他语言的编程书籍是不是这样&#xff0c;那就让这句话也作为我C分享之路上的第一句话吧。 目录 …

mac配置iterm2

1、iTerm2 - macOS Terminal Replacement 下载 2、设置默认 3、配置主题theme 这里选择用Solarized Dark theme&#xff0c;下载地址&#xff1a;http://ethanschoonover.com/solarized&#xff0c;解压。 我这里失效了&#xff0c;选择从github上下载Solarized Dark这个主题…