Linux巩固篇017-Linux iSCSI 服务部署网络存储

简介: 纸上得来终觉浅,绝知此事要躬行

前言

身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。

常用命令汇总

iSCSI 技术实现了物理硬盘设备与 TCP/IP 网络协议的相互结合,使得用户 可以通过互联网方便地访问远程机房提供的共享存储资源。

iSCSI 技术概述

当前的硬盘接口类型主要有 IDE、SCSI 和 SATA 这 3 种。

IDE 是一种成熟稳定、价格便宜的并行传输接口。

SATA 是一种传输速度更快、数据校验更完整的串行传输接口。

SCSI 是一种用于计算机和硬盘、光驱等设备之间系统级接口的通用标准,具有系统 资源占用率低、转速高、传输速度快等优点。

iSCSI,Internet Small Computer System Interface基于 TCP/IP 协议和 SCSI 接口协议的新型存储技术

创建 RAID 磁盘阵列

在虚拟机中添加 4 块新硬盘,用于创建 RAID 5 磁盘阵列和备份盘

image.png

使用 mdadm 命令创建 RAID 磁盘阵列,-Cv 参数为创建阵列并 显示过程,/dev/md0 为生成的阵列组名称,-n 3 参数为创建 RAID 5 磁盘阵列所需的硬盘个数, -l 5 参数为 RAID 磁盘阵列的级别,-x 1 参数为磁盘阵列的备份盘个数

[root@mail ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

mdadm: layout defaults to left-symmetric

mdadm: layout defaults to left-symmetric

mdadm: chunk size defaults to 512K

mdadm: size set to 20954112K

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

得到一块名称为/dev/md0 的新设备,这是一块 RAID 5 级别 的磁盘阵列,并且还有一块备份盘为硬盘数据保驾护航,可使用 mdadm -D 命令来查看 设备的详细信息。记录UUID后续准备配置到挂载文件中

[root@mail ~]# mdadm -D /dev/md0

/dev/md0:

          Version : 1.2

    Creation Time : Thu Jul 20 20:28:36 2023

       Raid Level : raid5

       Array Size : 41908224 (39.97 GiB 42.91 GB)

    Used Dev Size : 20954112 (19.98 GiB 21.46 GB)

     Raid Devices : 3

    Total Devices : 4

      Persistence : Superblock is persistent

      Update Time : Thu Jul 20 20:29:49 2023

            State : clean, degraded, recovering  

   Active Devices : 2

  Working Devices : 4

   Failed Devices : 0

    Spare Devices : 2

           Layout : left-symmetric

       Chunk Size : 512K

Consistency Policy : resync

   Rebuild Status : 72% complete

             Name : mail.linux.com:0  (local to host mail.linux.com)

             UUID : 8503eab6:3c076e22:37cd7422:6fbb157f

           Events : 12

   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      spare rebuilding   /dev/sdd

      3       8       64        -      spare   /dev/sde

配置 iSCSI 服务端

iSCSI 技术在工作形式上分为服务端(target)与客户端(initiator)。

1.安装 iSCSI 服务端程序

[root@mail ~]# yum -y install targetd targetcli

[root@mail ~]# systemctl start targetd

[root@mail ~]# systemctl enable targetd

2.配置 iSCSI 服务端共享资源

targetcli 是用于管理 iSCSI 服务端存储资源的专用 配置命令,它能够提供类似于 fdisk 命令的交互式配置功能,将 iSCSI 共享资源的配置内容抽 象成“目录”的形式,我们只需将各类配置信息填入到相应的“目录”中。

[root@mail ~]# 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]

/> cd /backstores/block

/backstores/block> ls

o- block ............................................................................................ [Storage Objects: 0]

/backstores/block> create disk0 /dev/md0

Created block storage object disk0 using /dev/md0.

/backstores/block> cd /

/> ls

o- / .................................................................................................................................. [...]

 o- backstores .............................................................................................................. [...]

 | o- block ....................................................................................... [Storage Objects: 1]

 | | o- disk0 .......................................... [/dev/md0 (40.0GiB) write-thru deactivated]

 | |   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: 0]

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

3.创建 iSCSI target 名称及配置共享资源

iSCSI target 名称是由系统自动生成的, 这是一串用于描述共享资源的唯一字符串。我们需要把前面加入到 iSCSI 共享资 源池中的硬盘设备添加到这个新目录中,这样用户在登录 iSCSI 服务端后,即可默认使用这 硬盘设备提供的共享存储资源了。

/> cd iscsi

/iscsi> create

Created target iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143.

Created TPG 1.

Global pref auto_add_default_portal=true

Created default portal listening on all IPs (0.0.0.0), port 3260.

/iscsi> cd iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143/

/iscsi/iqn.20....a71163049143> ls

o- iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143 ..................... [TPGs: 1]

 o- tpg1 ...................................................................................... [no-gen-acls, no-auth]

   o- acls .............................................................................................................. [ACLs: 0]

   o- luns ............................................................................................................. [LUNs: 0]

   o- portals ..................................................................................................... [Portals: 1]

     o- 0.0.0.0:3260 ..................................................................................................... [OK]

/iscsi/iqn.20....a71163049143> cd tpg1/luns  

/iscsi/iqn.20...143/tpg1/luns> create /backstores/block/disk0  

Created LUN 0.

4.设置访问控制列表(ACL)

iSCSI 协议是通过客户端名称进行验证的,也就是 说,用户在访问存储共享资源时不需要输入密码,只要 iSCSI 客户端的名称与服务端中设置 的访问控制列表中某一名称条目一致即可,因此需要在 iSCSI 服务端的配置文件中写入一串 能够验证用户信息的名称。acls 参数目录用于存放能够访问 iSCSI 服务端共享存储资源的客户 端名称。刘遄老师推荐在刚刚系统生成的 iSCSI target 后面追加上类似于:client 的参数,这样 既能保证客户端的名称具有唯一性,又非常便于管理和阅读

/iscsi/iqn.20...143/tpg1/luns> cd ..

/iscsi/iqn.20...63049143/tpg1> cd acls  

/iscsi/iqn.20...143/tpg1/acls> create iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143:client

Created Node ACL for iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143:client

Created mapped LUN 0.

5.设置 iSCSI 服务端的监听 IP 地址和端口号(自己服务器的端口号)

将由系统自动开启服务器 192.168.227.136 的 3260 端口将向外提供 iSCSI 共享存储资源服务

/iscsi/iqn.20...143/tpg1/acls> cd ..

/iscsi/iqn.20...63049143/tpg1> cd portals/

/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260

Deleted network portal 0.0.0.0:3260

/iscsi/iqn.20.../tpg1/portals> create 192.168.227.136

Using default IP port 3260

Created network portal 192.168.227.136:3260.

6.配置妥当后检查配置信息,重启 iSCSI 服务端程序并配置防火墙策略

在参数文件配置妥当后,可以浏览刚刚配置的信息,确保与下面的信息基本一致,配置完成!

image.png

exit退出

/iscsi/iqn.20.../tpg1/portals> exit

Global pref auto_save_on_exit=true

Configuration saved to /etc/target/saveconfig.json

配置 Linux 客户端

1.安装iSCSI客户端

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

2.修改客户端配置

iSCSI 协议是通过客户端的名称来进行验证,而该名称也是 iSCSI 客户端的唯 一标识,而且必须与服务端配置文件中访问控制列表中的信息一致,否则客户端在尝试访问 存储共享设备时,系统会弹出验证失败的保存信息。

[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143:client

[root@localhost ~]# systemctl restart iscsid

[root@localhost ~]# systemctl enable iscsid

3.访问并使用共享存储资源

iscsiadm 是用于管理、查询、插入、更新或删除 iSCSI 数据库配置文件的命令行工具,用户需要先使用这个工具扫描发现远程 iSCSI 服务端,然后 查看找到的服务端上有哪些可用的共享存储资源。-m discovery 参数的目的是扫描并发 现可用的存储资源,-t st 参数为执行扫描操作的类型,-p 192.168.10.10 参数为 iSCSI 服务端的 IP 地址

[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.227.136

iscsiadm: cannot make connection to 192.168.227.136: No route to host

我们发现No route to host多半是服务器被防火墙了

服务端

[root@mail ~]# iptables -F

客户端

[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.227.136

192.168.227.136:3260,1 iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143

4.登录 iSCSI 服 务端

-m node 参数为将客户端所在主机作为一台节点服务器,-T iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143 参数为要使用的存储资源(大家可以直接复制 前面命令中扫描发现的结果,以免录入错误),-p 192.168.10.10 参数依然为对方 iSCSI 服务端 的 IP 地址。最后使用--login 或-l 参数进行登录验证

[root@localhost ~]#  iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143 -p 192.168.227.136 --login

Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143, portal: 192.168.227.136,3260] (multiple)

Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143, portal: 192.168.227.136,3260] successful.

可以看到新增了一块盘/dev/sdb

[root@localhost ~]# file /dev/sdb

/dev/sdb: block special

5.挂载

直接格式化并挂载使用

[root@localhost ~]# mkfs.xfs /dev/sdb

[root@localhost ~]# mkdir /iscsi

[root@localhost ~]# mount /dev/sdb /iscsi

[root@localhost ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        18G  5.0G   13G  28% /

devtmpfs        472M     0  472M   0% /dev

tmpfs           488M     0  488M   0% /dev/shm

tmpfs           488M  8.3M  479M   2% /run

tmpfs           488M     0  488M   0% /sys/fs/cgroup

/dev/sda1       297M  138M  160M  47% /boot

tmpfs            98M     0   98M   0% /run/user/0

tmpfs            98M   12K   98M   1% /run/user/42

/dev/sdb         40G   33M   40G   1% /iscsi

blkid 命令用于查看设备的名称、文件系统及 UUID,复制下来UUID

[root@localhost ~]# blkid | grep /dev/sdb

/dev/sdb: UUID="36397367-2e17-4beb-a906-54e6ba79b840" TYPE="xfs"  

/dev/sdb 是一块网络存储设备, iSCSI 协议是基于 TCP/IP 网络传输数据的,因此必须在/etc/fstab 配置文件中添加上_netdev 参数,表示当系统联 网后再进行挂载操作,以免系统开机时间过长或开机失败

[root@localhost ~]# vim /etc/fstab

添加如下命令行

UUID=36397367-2e17-4beb-a906-54e6ba79b840 /iscsi       xfs     defaults,_netdev   0 0

6.卸载

用 iscsiadm 命令的-u 参数将其设备卸载

[root@localhost /]# umount /dev/sdb

umount: /dev/sdb: not mounted

[root@localhost /]# umount /iscsi

umount: /iscsi: not mounted

[root@localhost /]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143 -u

Logging out of session [sid: 1, target: iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143, portal: 192.168.227.136,3260]

Logout of [sid: 1, target: iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143, portal: 192.168.227.136,3260] successful.

配置 Windows 客户端

还是之前看十五章怎么弄的Windows主机,如果弄过了,就直接启动

搜索管理工具,打开iscsi发起程序

image.png

连接指定ip选中共享硬盘存储资源

image.png

配置一下,把相关的名称和iscsi名称改成一致的

iqn.2003-01.org.linux-iscsi.mail.x8664:sn.a71163049143:client

image.png

连接到资源

image.png

访问 iSCSI 远程共享存储资源,右键单击桌面上的“计算机”图标,打开管理,选择磁盘管理,点击确定

image.png

磁盘设备进行初始化,右击磁盘1(未分配部分),新建简单卷,剩下的都下一步,想改名字就改一下

image.png

验证新加卷能否正常使用

image.png

正常,成功

结语

简问简答

1.简述 iSCSI 存储技术在生产环境中的作用。

答:iSCSI 存储技术通过把硬件存储设备与 TCP/IP 网络协议相互结合,使得用户可以通过 互联网方面地访问远程机房提供的共享存储资源。

2.在 Linux 系统中,iSCSI 服务端和 iSCSI 客户端所使用的服务程序分别叫什么?

答:iSCSI 服务端程序为 targetd,iSCSI 客户端程序为 initiator。

3.在使用 targetcli 命令配置 iSCSI 服务端配置文件时,acls 与 portals 参数目录中分别存放什 么内容?

答:acls 参数目录用于存放能够访问 iSCSI 服务端共享存储资源的客户端名称,portals 参数目录用于定义由服务器的哪个 IP 地址对外提供共享存储资源服务。

4.iSCSI 协议占用了服务器哪个协议和端口号?

答:iSCSI 协议占用了服务器 TCP 协议的 3260 端口号。

5.用户在填写 fstab 设备挂载配置文件时,一般会把远程存储资源的 UUID(而非设备的名称) 填写到配置文件中。这是为什么?

答:在 Linux 系统中,设备名称是由 udev 服务进行管理的,而 udev 服务的设备命名规则 是由设备类型及系统识别顺序等信息共同组成的。考虑到网络存储设备具有识别顺序不稳 定的特点,所以为了避免识别顺序混乱造成的挂载错误问题,故使用 UUID 进行挂载操作。

6.在使用 Windows 系统来访问 iSCSI 共享存储资源时,它有两个步骤与 Linux 系统一样。请 说明是哪两个步骤。

答:扫描并发现服务端上可用的 iSCSI 共享存储资源;验证登录

如果想根据教程实践的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下

入口一:新人免费试用

入口二:大学生免费试用

入口三:低价服务器购买

入口四:低价服务器购买2

入口五:建站特惠购买

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
72 2
|
20天前
|
算法 安全 网络安全
网络安全服务
机密主要利用密码学技术加密文件实现,完整主要利用验证码/Hash技术,可用**主要灾备来保障。 网络环境下的身份鉴别,当然还是依托于密码学,一种可以使用口令技术,另一种则是依托物理形式的鉴别,如身份卡等。其实更为安全的是实施多因子的身份认证,不只使用一种方式。数字签名可以用来保证信息的完整性,比如RSA就可以用于数字签名: 若A向B发送信息m则先用自己的保密密钥(私钥)对m加密,然后用B的公钥第二次加密,发送个B后,B先用自己的私钥解密一次,再用A的公钥解密即可。 Kerberos使用对称密码算法来实现通过可信第三方密钥分发中心的认证服务,已经成为工业界的事实标准。
31 3
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
46 5
linux系统服务二!
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
51 3
linux系统服务!!!
|
1月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
126 5
|
1月前
|
存储 网络协议 安全
软件管理,磁盘存储,文件系统以及网络协议
【11月更文挑战第9天】本文介绍了软件管理、磁盘存储和网络协议等内容。软件管理包括软件生命周期管理和软件包管理,涉及需求分析、设计、实现、测试、发布、维护等阶段,以及软件包的安装、升级和依赖关系处理。磁盘存储部分讲解了磁盘的物理结构、分区与格式化、存储管理技术(如 RAID 和存储虚拟化)。网络协议部分涵盖了分层模型、重要协议(如 HTTP、TCP、IP)及其应用与安全。
|
1月前
|
云安全 人工智能 安全
阿里云稳居公共云网络安全即服务市占率第一
日前,全球领先的IT市场研究和咨询公司IDC发布了《中国公有云网络安全即服务市场份额,2023:规模稳步增长,技术创新引领市场格局》报告。报告显示,阿里云以27.0%的市场份额蝉联榜首。
|
1月前
|
运维 安全 5G
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
254 3
下一篇
DataWorks