完整教程:iSCSI服务器

news/2025/10/12 21:09:51/文章来源:https://www.cnblogs.com/ljbguanli/p/19137244

完整教程:iSCSI服务器

文章目录

  • iSCSI 服务器
    • iSCSI服务介绍
    • iSCSI架构
    • 配置 iSCSI 存储
      • 配置服务端
        • 安装软件包
        • 启用并启动服务
        • 准备共享块设备
        • 配置共享块存储
          • 4.1查询
          • 4.2后端存储添加块设备(配置backstore对象)
          • 4.3配置如何共享后端存储(配置Target IQN)
          • 4.4切换相应目录
          • 4.5配置放行客户端(iqn.2025-09.cloud.dyx.server.x8664:webapp)配置ACL
          • 4.6配置客户端可以访问的设备(配置LUN)
          • 4.7验证配置
          • 4.8退出配置
      • 配置客户端(访问iSCSI存储)
        • 安装软件包
        • 设置客户端的IQN
        • 扫描目标(连接iSCSI目标)
        • 挂载设备
        • 断开目标连接
        • 识别为本地硬盘 sdb
        • 使用
    • 多路径访问
        • 什么是多路径
        • 实例:
          • 环境配置:
          • server配置网络
          • client配置网络
          • 客户端卸载文件系统
          • 通过10.1.1.10扫描,并登录
          • 本机额外出现一块硬盘 sdc
          • 配置多路径:
          • 使用多路径软件识别,安装多路径软件
          • 生成多路径配置文件
          • 启动服务(启用多路径)
          • 查询(监控多路径)
          • 修改 fstab,并挂载
          • 监视web服务是否正常

iSCSI 服务器

iSCSI服务介绍

SCSI (Small computer ystem Interface,小型计算机系统接口),一种用于计算机和智能设备 之间(硬盘、软驱、光驱、打印机、扫描仪等)连接标准。

isCSI (Internet Small Computer System lnterface,Internet小型计算机系统接口),又称为IPSAN,是IBM公司研究开发的IP SAN技术,该技术是将现有SCS接口与以太网络(Ethernet)技术结 合,基于TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包 可以在互联网传输,最终实现iSCSI服务端提供存储给客户端。

通常,iSCSI使用专用的10Gb以太网或更好的网络,以最大程度地提高性能。

从物理服务器到存储的电缆通常封闭在数据中心内,并且理想情况下不直接连接到LAN网络,所 以SAN流量通常不加密,以最大程度地提高性能。为了实现WAN安全,iSCSI管理员可以使用 IPsec加密流量。

iSCSI架构

iSCSI服务是C/S架构。访问的iSCSI目标在客户端系统上显示为本地且未格式化的SCS快设备,等 同于通过SCSI布线、FC直连或FC交换光线连接的设备。

  • Initiator,isCSI客户端,通常以软件方式部署,也可以使用iSCSI Host Bus Adapters (HBAs)(HBA)硬件。Initiator必须具有唯一的名称(请参见IQN)。

  • Target,iS服务器上的iSCS存储资源。Target必须具有唯一的名称(请参见IQN)。每 个目标都提供一个或多个块设备或逻辑单元(LUN-logical units)。在大多数情况下, Target只提供一个设备,但一台服务器可以提供多个目标。

  • IQN(iSCSI Qualified Name)全球唯一的名称,用于标识发起者和目标。IQN具有以下格 式:

    #格式
    iqn.YYY-MM.com.reversed.domain:name_string
    iqn.2025-09.cloud.dyx.server.x8664:db
    • YYYY-MM,年和月。示例,2020年6月为2020-06。该日期有助于确保ION唯一性。
    • com.reversed.domain,反向域名。例如,server.redhat.fun的反向域名为 c1oud.1aoma.www.
    • name_string,用于标识您管理的特定目标。如果服务器只具有一个目标,则有时会 省略此名称。
  • Portal,指定服务器监听的地址和端口,如,172.25.250.50:3260。

  • LUN(Logical Unit Number),代表Target提供的块设备。每个目标可以提供一个或多个 LUN

  • ACL(Access Control List),使用Initiator的IQN限制客户端访问Target。

  • TPG(Target Portal Group),是目标的完整配置,包括Portal,LUNACL。几乎所有 目标都使用一个TPG,但是高级配置有时可能会定义多个TPG

  • discovery,查询服务器上有Target列表。

  • login,向Target验证,验证通过后即可以使用Target服务器提供的块设备。

配置 iSCSI 存储

部署软件

在iSCS服务器上,使用targetcli命令配置iSCSI目标。

  • targetcli命令同时支持交互式和非交互式执行。
  • targetcli命令将目标对象组织到分层树中,为了在该树中导航,该工具使用了熟悉的Linux 命令,例如cd,Is和pwd。
  • targetcli命令支持Tab键补全。
  • targetcli命令由targetcli软件包提供。

配置服务端

  1. 安装软件包
    [root@server ~ 11:12:58]# yum install -y targetcli targetd
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.aliyun.com
    * extras: mirrors.aliyun.com
    * updates: mirrors.aliyun.com
    ... ...
    完毕!
  2. 启用并启动服务
    [root@server ~ 11:26:11]# systemctl enable target --now
    Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
  3. 准备共享块设备
    [root@server ~ 11:26:49]# lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0  100G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   99G  0 part
    ├─centos-root 253:0    0   50G  0 lvm  /
    ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    └─centos-home 253:2    0   47G  0 lvm  /home
    sdb               8:16   0  200G  0 disk
    sr0              11:0    1  4.4G  0 rom
    [root@server ~ 11:28:20]# parted /dev/sdb mklabel gpt
    信息: You may need to update /etc/fstab.
    [root@server ~ 11:29:48]# parted /dev/sdb unit MiB mkpart dbapp 1 102401
    信息: You may need to update /etc/fstab.
    [root@server ~ 11:30:30]# lsblk /dev/sdb
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb      8:16   0  200G  0 disk
    └─sdb1   8:17   0  100G  0 part
  4. 配置共享块存储
    4.1查询

    当不带任何选项运行targetcli时,该命令将进入交互模式。

    在以下示例中,使用ls命令显示当前布局。

    [root@server ~ 11:47:42]# 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]

    补充:

    • /backstores 提供后端存储

    • /iscsi 配置如何共享后端存储

    4.2后端存储添加块设备(配置backstore对象)

    backstore类型:

    • block:服务器中的块设备,例如磁盘驱动器,磁盘分区或逻辑卷。
    • fileio:本地文件系统中的常规文件。targetci将该文件用作磁盘映像。
    • pscsi:物理SCSI设备。这种类型的存储允许客户端通过网络访问服务器上的物理SCSI设 备。
    • ramdisk:内存中的磁盘设备。这种类型的存储不会持久存储数据。服务器重新启动后, 数据将丢失。

    要使用targetcli创建后备存储,请使用其create命令。该命令的行为取决于您在配置树中的当前 位置。

    /> /backstores/block create dev=/dev/sdb1 name=db01
    Created block storage object db01 using /dev/sdb1.
    /> ls /backstores/block/
    o- block ........................................... [Storage Objects: 1]
    o- db01 ................. [/dev/sdb1 (100.0GiB) write-thru deactivated]
    o- alua ............................................ [ALUA Groups: 1]
    o- default_tg_pt_gp ................ [ALUA state: Active/optimized
    4.3配置如何共享后端存储(配置Target IQN)

    在/iscsi伪目录中,创建IQN,将选择的IQN名称作为其第一个参数。

    /> cd /iscsi
    /iscsi> create iqn.2025-09.cloud.dyx.server.x8664:db
    Created target iqn.2025-09.cloud.dyx.server.x8664:db.
    Created TPG 1.
    Global pref auto_add_default_portal=true
    Created default portal listening on all IPs (0.0.0.0), port 3260.
    /iscsi> ls
    o- iscsi ................................................... [Targets: 1]
    o- iqn.2025-09.cloud.dyx.server.x8664:db .................... [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]
    4.4切换相应目录
    /iscsi> cd /iscsi/iqn.2025-09.cloud.dyx.server.x8664:db/tpg1/
    /iscsi/iqn.20...x8664:db/tpg1> ls
    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]
    4.5配置放行客户端(iqn.2025-09.cloud.dyx.server.x8664:webapp)配置ACL

    创建ACL,以允许客户端启动程序访问目标。在Red Hat Enterprise Linux上,启动器的IQN存储 在/etc/iscsi/initiatorname.iscsi文件中。

    /iscsi/iqn.20...x8664:db/tpg1> acls/ create iqn.2025-09.cloud.dyx.server.x8664:webapp
    Created Node ACL for iqn.2025-09.cloud.dyx.server.x8664:webapp
    4.6配置客户端可以访问的设备(配置LUN)
    /iscsi/iqn.20...x8664:db/tpg1> luns/ create /backstores/block/db01
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL iqn.2025-09.cloud.dyx.server.x8664:webapp
    4.7验证配置
    /iscsi/iqn.20...x8664:db/tpg1> ls
    o- tpg1 .......................................... [no-gen-acls, no-auth]
    o- acls ..................................................... [ACLs: 1]
    | o- iqn.2025-09.cloud.dyx.server.x8664:webapp ....... [Mapped LUNs: 1]
    |   o- mapped_lun0 ............................. [lun0 block/db01 (rw)]
    o- luns ..................................................... [LUNs: 1]
    | o- lun0 ................. [block/db01 (/dev/sdb1) (default_tg_pt_gp)]
    o- portals ............................................... [Portals: 1]
    o- 0.0.0.0:3260 ................................................ [OK]
    4.8退出配置

    退出targetcli shell时,该命令将配置保存在 /etc/target/saveconfig.json 文件中。

    /iscsi/iqn.20...x8664:db/tpg1> exit
    Global pref auto_save_on_exit=true
    Last 10 configs saved in /etc/target/backup/.
    Configuration saved to /etc/target/saveconfig.json

配置客户端(访问iSCSI存储)

  1. 安装软件包

    配置iSCSI客户端启动程序需要安装iscsi-initiator-utils软件包,该软件包包括iscsi和iscsid服务 以及/etc/iscsi/iscsid.conf和/etc/iscsi/initiatorname.iscsi配置文件。

    [root@client ~ 13:51:37]# yum list *iscsi*
    [root@client ~ 13:51:54]# yum install -y iscsi-initiator-utils
  2. 设置客户端的IQN

    作为iSCSI启动器,客户端需要其自己的唯一iSCSI合格名称(IQN)。在安装iscsiinitiator-utis的 过程中,该软件包生成唯一的IQN,并存储到/etc/iscsi/initiatorname.iscsi文件中。管理员通常 需要更改该名称。

    [root@client ~ 13:52:09]# vim /etc/iscsi/initiatorname.iscsi 
    [root@client ~ 13:52:53]# cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2025-09.cloud.dyx.server.x8664:webapp

    /etc/iscsi/iscsid.conf文件包含您连接的目标的默认设置。这些设置包括iSCS超时,重试以及用 于身份验证的用户名和密码参数。

    软件包安装会自动配置iscsid服务以便启动器在系统启动时自动重新连接到任何已发现的目 标。每当您修改启动程序的配置文件时,请重新启动iscsid服务。

  3. 扫描目标(连接iSCSI目标)

    在使用远程设备之前,首先需要发现目标。发现过程使用/etc/iscsi/iscsid.conf中的配置将目标信 息和设置存储在/var/lib/iscsi/nodes/目录中。

    [root@client ~ 13:52:57]# iscsiadm -m discovery -t st -p 10.1.8.10
    10.1.8.10:3260,1 iqn.2025-09.cloud.dyx.server.x8664:db

    选项说明:
    -m discovery 发现模式
    -t st 找target(sendtarget)
    -p 10.1.8.10 服务地址

  4. 挂载设备
    [root@client ~ 13:53:32]# iscsiadm -m node -T iqn.2025-09.cloud.dyx.server.x8664:db -l
    Logging in to [iface: default, target: iqn.2025-09.cloud.dyx.server.x8664:db, portal: 10.1.8.10,3260] (multiple)
    Login to [iface: default, target: iqn.2025-09.cloud.dyx.server.x8664:db, portal: 10.1.8.10,3260] successful.

    选项说明:
    -m node 登录模式
    -T iqn.2025-09.cloud.laoma.server.x8664:db 服务器IQN
    -l login

  5. 断开目标连接

    要停止使用iSCSI目标,请执行以下步骤:

    • 确保没有使用目标提供的任何设备。例如,卸载文件系统。
    • 从/etc/fstab等位置删除对目标的所有持久引用。
    • 从iSCSI目标注销。
    [root@client ~ 16:58:58]# iscsiadm -m node -T iqn.2025-09.cloud.dyx.server.x8664:db -u
  6. 识别为本地硬盘 sdb
    [root@client ~ 13:54:23]# lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0  100G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   99G  0 part
    ├─centos-root 253:0    0   50G  0 lvm  /
    ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    └─centos-home 253:2    0   47G  0 lvm  /home
    sdb               8:16   0  100G  0 disk
    sr0              11:0    1  4.4G  0 rom
  7. 使用

    重启系统验证
    问题: /dev/sdb 挂载超时,系统启动失败。
    原因: 操作系统启动,首先挂载设备,然后启动服务。这里sdb设备是如何识别到的呢? 是因为我们启动了iscsi服务,通过网络识别的吧。
    解决方法:

    1. 在紧急模式下,先注释/dev/sdb挂载条目,确保进入系统
    2. 进入系统后,设置挂载选项_netdev,表明设备是网络设备。操作系统在启动时候,会等网络相关服务启动完成后再挂载。
    3. 重启验证
    [root@client ~ 13:54:29]# mkfs.xfs /dev/sdb
    meta-data=/dev/sdb               isize=512    agcount=4, agsize=6553600 blks
    =                       sectsz=512   attr=2, projid32bit=1
    =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=26214400, imaxpct=25
    =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=12800, version=2
    =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@client ~ 14:17:25]# df
    文件系统                    1K-块    已用     可用 已用% 挂载点
    devtmpfs                   485728       0   485728    0% /dev
    tmpfs                      497816       0   497816    0% /dev/shm
    tmpfs                      497816    7896   489920    2% /run
    tmpfs                      497816       0   497816    0% /sys/fs/cgroup
    /dev/mapper/centos-root  52403200 1659448 50743752    4% /
    /dev/sda1                 1038336  142304   896032   14% /boot
    /dev/mapper/centos-home  49250820   33004 49217816    1% /home
    10.1.8.10:/shares/webapp 52403200 1658368 50744832    4% /usr/share/nginx/html
    tmpfs                       99564       0    99564    0% /run/user/0
    [root@client ~ 14:17:48]# umount /usr/share/nginx/html 
    #持久化挂载
    [root@client ~ 14:17:55]# vim /etc/fstab 
    [root@client ~ 14:19:37]# tail -1 /etc/fstab
    /dev/sdb  /usr/share/nginx/html xfs defaults        0 0
    [root@client ~ 14:19:53]# mount -a
    [root@client ~ 14:20:14]# df /usr/share/nginx/html
    文件系统           1K-块  已用      可用 已用% 挂载点
    /dev/sdb       104806400 32992 104773408    1% /usr/share/nginx/html
    [root@client ~ 15:49:09]# echo Hello data From iSCSI for nginx > /usr/share/nginx/html/index.html
    [root@client ~ 14:37:44]# vim /etc/fstab
    [root@client ~ 14:38:20]# tail -1 /etc/fstab
    /dev/sdb  /usr/share/nginx/html xfs  _netdev      0 0
    [root@client ~ 14:38:33]# reboot
    Connection closing...Socket close.
    Connection closed by foreign host.
    Disconnected from remote host(root@10.1.8.11.) at 14:38:46.
    Type `help' to learn how to use Xshell prompt.
    [C:\~]$
    Connecting to 10.1.8.11:22...
    Connection established.
    To escape to local shell, press 'Ctrl+Alt+]'.
    WARNING! The remote SSH server rejected X11 forwarding request.
    Last login: Fri Sep 26 14:37:44 2025 from 10.1.8.1
    [root@client ~ 14:38:59]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 475M     0  475M    0% /dev
    tmpfs                    487M     0  487M    0% /dev/shm
    tmpfs                    487M  7.7M  479M    2% /run
    tmpfs                    487M     0  487M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   50G  1.6G   49G    4% /
    /dev/sda1               1014M  139M  876M   14% /boot
    /dev/mapper/centos-home   47G   33M   47G    1% /home
    /dev/sdb                 100G   33M  100G    1% /usr/share/nginx/html
    tmpfs                     98M     0   98M    0% /run/user/0

多路径访问

什么是多路径

多路径是指服务器和存储阵列存在多个物理连接方式使用虚拟设备,这种方式可以提供更加弹性 的存储连接(一个路径down掉不会影响连接性),也可以聚合存储带宽提供性能。

多路径由dm-multipath子系统提供,使用内核device mapper系统获得虚拟设备,有multipathd 进程和multipath命令行工具管理。

软件包device-mapper-multipath提供必要的binaries daemon和kernel modules。安装、配 置、启动后,多路径设备节点会创建在两个位置。

出于管理目的,multipath设备创建在/dev/mapper,如果选择了user-friendly名称,这些设备也 可以命名为mpathN[pM],或者配置在World Wide ID (WWID)之后。管理员也可以自定义多路 径设备名,这些自定义名称在multipaths配置文件的multipaths部分使用alias选项定义。

多路径设备也会创建在/dev目录,格式/dev/dm-N与/dev/mapper下的文件匹配。这些设备提供 给系统内部使用,禁止管理目的直接使用。

重要:多路径提供存储访问路径down情况的保护。如果存储本身不可用,访问访问存储也会不可 用。

创建多路径设备,不同的路径将会合并到组中,取决于/etc/multipath.conf配置。典型情况,同 一时刻只能激活一个组,一个组可以包含多个路径。当某个组故障,多路径进程将切换流量到不 同组中。

实例:

如何单个网线断掉之后,还能继续呢?
用两个网线。 客户端识别设备,有两个路径。

实践:server和client都添加一个网卡 Vmnet1,IP地址分别设置为10.1.1.10 10.1.1.11

环境配置:
  1. server配置网络
    [root@server ~ 14:52:18]# nmcli c
    NAME        UUID                                  TYPE      DEVICE
    ens33       42311913-40db-4090-ad7f-091bbe0fd19a  ethernet  ens33
    有线连接 1  3f30e7d0-2304-316c-af4e-55b8f350fef5  ethernet  ens37
    [root@server ~ 14:52:24]# nmcli connection modify 有线连接\ 1 con-name ens37 ipv4.addresses 10.1.1.10/24 ipv4.method manual 
    [root@server ~ 14:53:36]# nmcli connection up ens37
    连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
  2. client配置网络
    [root@client ~ 14:54:44]# nmcli c
    NAME   UUID                                  TYPE      DEVICE
    ens33  42311913-40db-4090-ad7f-091bbe0fd19a  ethernet  ens33
    ens37  6f30a5e0-8bf6-3815-b274-ab47ae978ebd  ethernet  ens37
    [root@client ~ 14:55:03]# nmcli connection modify  ens37 ipv4.addresses 10.1.1.11/24 ipv4.method manual
    [root@client ~ 14:55:16]# nmcli connection up ens37
    连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
  3. 客户端卸载文件系统
    [root@client ~ 14:55:20]# umount /usr/share/nginx/html 
  4. 通过10.1.1.10扫描,并登录
    [root@client ~ 15:08:31]# iscsiadm -m discovery -t st -p 10.1.1.10
    10.1.1.10:3260,1 iqn.2025-09.cloud.dyx.server.x8664:db
    [root@client ~ 15:09:05]# iscsiadm -m node -T iqn.2025-09.cloud.dyx.server.x8664:db -l
    Logging in to [iface: default, target: iqn.2025-09.cloud.dyx.server.x8664:db, portal: 10.1.1.10,3260] (multiple)
    Login to [iface: default, target: iqn.2025-09.cloud.dyx.server.x8664:db, portal: 10.1.1.10,3260] successful.
  5. 本机额外出现一块硬盘 sdc
    [root@client ~ 15:09:12]# lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0  100G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   99G  0 part
    ├─centos-root 253:0    0   50G  0 lvm  /
    ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    └─centos-home 253:2    0   47G  0 lvm  /home
    sdb               8:16   0  100G  0 disk
    sdc               8:32   0  100G  0 disk
    sr0              11:0    1  4.4G  0 rom
配置多路径:
  1. 使用多路径软件识别,安装多路径软件
    [root@client ~ 15:09:16]# yum install -y device-mapper-multipath
  2. 生成多路径配置文件

    创建配置文件/etc/multipath.conf最简单的方法是使用mpathconf工具:

    • 如果文件不存在,使用以下命令生成配置文件。也可以从默认位置/usr/share/doc/devicemapper-multipath-*/multipath.conf贝过来。
    [root@client ~ 15:12:06]# mpathconf --enable
    • 如果文件已经存在,则以下命令会修改文件配置。
    [root@client ~ 17:08:09]# mpathconf --enable --with_multipathd y --with_chkconfig y
  3. 启动服务(启用多路径)

    编辑配置文件后,使用systemctl命令enable和start multipathd进程。

    [root@client ~ 15:12:18]# systemctl start multipathd.service 
  4. 查询(监控多路径)

    multipath命令也可用于多路径状态监控。

    [root@client ~ 15:13:42]# multipath -ll
    mpatha (36001405b3a9bfafcb0d4890ad71a61a4) dm-3 LIO-ORG ,db01
    size=100G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 32:0:0:0 sdb 8:16 active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
    `- 33:0:0:0 sdc 8:32 active ready running
    • 第一部分是多路径设备信息
      • 第一行:alias wwid设备名vendor和产品信息。
      • 第二行:size enabled features hardware handlers和写权限。
    • 第二部分是多路径设备的pathgroup,包括调度策略,优先级和path group状态,紧随的 是其成员path。对于每个path,也就是设备节点名,包括设备mjor和minor信息,path的 状态。
      • 状态为up,随时可以执行I0操作的path,显示的状态为ready。
      • 状态为down,显示为faulty。

    补充:如果客户端没有识别两个设备为同一个设备,需要使用iscsiadm登出 (-u选项),然后再次iscsiadm登入(-l选项)。

  5. 修改 fstab,并挂载
    [root@client ~ 15:14:06]# vim /etc/fstab 
    [root@client ~ 15:52:44]# tail -1 /etc/fstab 
    /dev/mapper/mpatha  /usr/share/nginx/html xfs  _netdev      0 0
    [root@client ~ 15:48:24]# mount -a
    [root@client ~ 15:48:34]# df
    文件系统                   1K-块    已用     可用 已用% 挂载点
    devtmpfs                  485728       0   485728    0% /dev
    tmpfs                     497816       0   497816    0% /dev/shm
    tmpfs                     497816    7920   489896    2% /run
    tmpfs                     497816       0   497816    0% /sys/fs/cgroup
    /dev/mapper/centos-root 52403200 1661664 50741536    4% /
    /dev/sda1                1038336  142304   896032   14% /boot
    /dev/mapper/centos-home 49250820   33004 49217816    1% /home
    tmpfs                      99564       0    99564    0% /run/user/0

    如果挂在不成功,可以重启

    [root@client ~ 15:48:37]# reboot
    Connection closing...Socket close.
    Connection closed by foreign host.
    Disconnected from remote host(root@10.1.8.11.) at 15:48:50.
    Type `help' to learn how to use Xshell prompt.
    [C:\~]$
    Connecting to 10.1.8.11:22...
    Connection established.
    To escape to local shell, press 'Ctrl+Alt+]'.
    WARNING! The remote SSH server rejected X11 forwarding request.
    Last login: Fri Sep 26 14:53:52 2025 from 10.1.8.1
    [root@client ~ 15:49:08]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 475M     0  475M    0% /dev
    tmpfs                    487M     0  487M    0% /dev/shm
    tmpfs                    487M  7.7M  479M    2% /run
    tmpfs                    487M     0  487M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   50G  1.6G   49G    4% /
    /dev/sda1               1014M  139M  876M   14% /boot
    /dev/mapper/centos-home   47G   33M   47G    1% /home
    /dev/mapper/mpatha       100G   33M  100G    1% /usr/share/nginx/html
    tmpfs                     98M     0   98M    0% /run/user/0
  6. 监视web服务是否正常
    #未断
    [root@server ~ 15:52:24]# watch -n1 'date;curl -s http://10.1.1.11'
    Every 1.0s: date;curl -s http://10.1.1.11          Fri Sep 26 16:00:14 2025
    2025年 09月 26日 星期五 16:00:14 CST
    Hello data From iSCSI for nginx
    [root@client ~ 15:58:09]# multipath -ll
    mpatha (36001405b3a9bfafcb0d4890ad71a61a4) dm-3 LIO-ORG ,db01
    size=100G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 32:0:0:0 sdc 8:32 active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
    `- 33:0:0:0 sdb 8:16 active ready running
    #断开网卡二
    [root@server ~ 15:52:24]# watch -n1 'date;curl -s http://10.1.1.11'
    Every 1.0s: date;curl -s http://10.1.1.11          Fri Sep 26 15:59:23 2025
    2025年 09月 26日 星期五 15:59:23 CST
    [root@client ~ 15:55:11]# multipath -ll
    mpatha (36001405b3a9bfafcb0d4890ad71a61a4) dm-3 LIO-ORG ,db01
    size=100G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 32:0:0:0 sdc 8:32 active ready running
    `-+- policy='service-time 0' prio=0 status=enabled
    `- 33:0:0:0 sdb 8:16 failed faulty running

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

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

相关文章

深入解析:数据库视图:虚拟表的强大应用

深入解析:数据库视图:虚拟表的强大应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

非常好的学习方式是哪样

非常好的学习方式是哪样pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

agc001_c题解

水的炸天,不做解释自己看吧 #include<bits/stdc++.h> #define MAXN 2010 #define inf 0x3f3f3f3f #define int long long using namespace std; namespace SHuxinn{struct node {int lst;int dep;int nxt ;} tr…

【Trie】 UVA1401 Remember the Word - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【IMU】6轴数据校准算法

【IMU】6轴数据校准算法 算法概述 本算法用于惯性测量单元的自动校准,通过多次采样和优化选择,确定传感器的最佳偏移量。 算法步骤初始化converged = false(加速度计收敛标志) new_offset = {0,0,0}(最优偏移量)…

2025 年 MES 服务商 TOP 平台机构推荐排行榜,mes 系统 /mes 软件 /mes 制造执行系统 /mes 生产制造执行系统 /mes 生产管理系统公司推荐

当前,离散制造行业正面临生产流程复杂、在制品管控难度大、数据协同滞后等突出问题。电子、家电、五金加工等领域的企业,往往受困于多工厂管理协同不畅、生产异常响应迟缓、质量追溯精准度不足等痛点,导致生产效率难…

2025 年10月 WMS 服务商最新推荐榜单,wms系统 wms软件,wms仓库管理软件,wms仓库管理系统软件公司推荐

在离散制造行业加速数智化转型的当下,仓储管理作为企业生产与供应链协同的核心环节,正面临着多重挑战。电子、家电、五金加工等领域的企业,往往存在库存信息滞后、出入库效率低下、账实不符等问题,传统依赖人工记忆…

【仿生机器人】核心采购清单 (仿生机器人头方案)

【仿生机器人】核心采购清单 (仿生机器人头方案)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

Matlab凭借GUI实现点云的中值滤波(附最简版)

Matlab凭借GUI实现点云的中值滤波(附最简版)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

CF数据结构题做题记录-1

CF3000的数据结构题做题记录-1 CF464E. The Classic Problem 肯定还是跑最短路,假设比较的复杂度是 \(O(\alpha)\),相加的复杂度是 \(O(\beta)\),那么我们直接使用 dijkstra 的复杂度是 \(O(\alpha(n+m)\log n+\bet…

完整教程:安宝特产品丨FME Realize:重构数据与现实的边界,让空间计算赋能现场决策

完整教程:安宝特产品丨FME Realize:重构数据与现实的边界,让空间计算赋能现场决策pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

尝试对音频功率放大器芯片的噪声基底特性进行测量与计算:以纳芯威NS4268为例

前言 最近我有一个项目需要用到带音量控制功能的耳机音频功率放大器芯片。在群友的推荐下,我选择了NS4268,但测试后发现它的噪声性能较差。于是,我制作了测试PCB,对其噪声特性进行简单测量。 测试PCB 测试使用的PC…

常见问题解决 --- wireshark安装失败

常见问题解决 --- wireshark安装失败Wireshark 4.2 是官方支持 Windows 10 的最后一个发布分支。 Wireshark 4.0 是官方支持 Windows 8.1 和 Windows Server 2012 的最后一个发布分支。 Wireshark 3.6 是官方支持 32 位…

Node.js 性能优化:实用技巧与实战指南 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

3.1 策略梯度方法(Policy Gradient Methods)

策略梯度方法(Policy Gradient Methods)背景 在基于值函数的方法(如 DQN)中,直接逼近 Q 值存在多种问题:Q 值无界:可能取任意实数(正或负),输出层必须是线性的; Q 值方差大:不同 \((s,a)\) 对的 Q 值差异巨…

perl语言中的三目运算符和do代码块

我有这么一个需求,根据学生考试成绩进行ABC划分,比如80分以上为A,60-80分为B,60分一下为C 我们能够相当的最简单的方式就是通过if判断并赋值的方式实现,如下代码: $ perl -E my $a; my $b=67; if($b > 80){$…

ll

llimport numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split, KFold, cross_val_score from sklearn.linear_model imp…

CCPC2023女生专场 游记(VP)

整体进步明显,女生赛再砍一金,我们走在正确的道路上。省流 整体进步明显,女生赛再砍一金,我们走在正确的道路上。 在解决掉 \(vivid\_stareium\) 这个问题之后,\(ZWU\) 进入了 \(jianfeijian\) 和 \(yrjzs\) 的时…

tp3.2不再生成Runtime/Logs日志

<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------…

2.5 分布式学习(Distributed Learning)

分布式学习(Distributed Learning)分布式 DQN(GORILA) 深度强化学习的主要瓶颈是学习速度慢,主要由以下两点决定:样本复杂度(sample complexity):获得令人满意的策略所需的状态转移数量; 在线交互限制(onli…