24.Linux iscsi 存储

Linux : iscsi 存储

原理

  1. SCSI 命令封装

    • 将本地的 SCSI 磁盘读写命令封装成 TCP/IP 数据包
    • 通过标准以太网传输(而非专用光纤通道)
  2. 组件角色

    组件作用
    Initiator(发起端)客户端(如服务器),向远程存储发起访问请求
    Target(目标端)服务端(如存储设备),提供虚拟磁盘资源
  3. 连接标识

    • IQN(iSCSI Qualified Name)
      唯一标识 Target 和 Initiator,格式:
      iqn.年月.域名反写:自定义标识
      示例:iqn.2025-08.com.example:xie

配置iSCSI存储服务器

安装targetcli软件包

yum install targetcli -y

新建分区

parted /dev/sda
(parted) unit                                          Unit?  [compact]? mib			#更改单位
(parted) p              
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 102400MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start     End        Size      Type      File system     Flags
 1      1.00MiB   1025MiB    1024MiB   primary   xfs             boot
 2      1025MiB   52225MiB   51200MiB  primary   xfs
 3      52225MiB  56321MiB   4096MiB   primary   linux-swap(v1)
 4      56330MiB  100000MiB  43670MiB  extended                  lba
查看分区信息发现有扩展分区,因此直接创建逻辑分区
(parted) mkpart         
Partition type?  [logical]? l
File system type?  [ext2]? 
Start? 56340mib         
End? 60350mib  
创建4g逻辑分区
查看
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 102400MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start     End        Size      Type      File system     Flags
 1      1.00MiB   1025MiB    1024MiB   primary   xfs             boot
 2      1025MiB   52225MiB   51200MiB  primary   xfs
 3      52225MiB  56321MiB   4096MiB   primary   linux-swap(v1)
 4      56330MiB  100000MiB  43670MiB  extended                  lba
 5      56340MiB  60350MiB   4010MiB   logical

使用targetcli交互模式,创建后备存储

targetcli
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> create block1 /dev/sda5 #创建后备存储
/backstores/block> cd ../..
创建iqn
/> ls
o- / ....................................... [...]
  o- backstores ............................ [...]
  | o- block ................ [Storage Objects: 1]
  | | o- block1  [/dev/sda5 (0 bytes) 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]
/> cd iscsi 
/iscsi> ls
o- iscsi ............................ [Targets: 0]
/iscsi> 
/iscsi> create iqn.2025-08.com.example:xie
创建acl控制客户节点访问
/iscsi> ls
o- iscsi ............................ [Targets: 1]
  o- iqn.2025-08.com.example:xie ....... [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> cd iqn.2025-08.com.example:xie/tpg1/acls 
/iscsi/iqn.20...xie/tpg1/acls> create iqn.2025-08.com.example:yu
Created Node ACL for iqn.2025-08.com.example:yu
/iscsi/iqn.20...xie/tpg1/acls> ls
o- acls ................................ [ACLs: 1]
  o- iqn.2025-08.com.example:yu . [Mapped LUNs: 0]
/iscsi/iqn.20...xie/tpg1/acls> 

创建LUN,激活后备存储

/iscsi/iqn.20...xie/tpg1/acls> cd ../luns
/iscsi/iqn.20...xie/tpg1/luns> ls
o- luns ................................ [LUNs: 0]
/iscsi/iqn.20...xie/tpg1/luns> create /backstores/block/block1 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2025-08.com.example:yu
/iscsi/iqn.20...xie/tpg1/luns> ls
o- luns ................................ [LUNs: 1]
  o- lun0  [block/block1 (/dev/sda5) (default_tg_pt_gp)]

删除默认门户配置,创建新的门户配置侦听ip地址和端口

/iscsi/iqn.20...xie/tpg1/luns> cd ../portals/
/iscsi/iqn.20.../tpg1/portals> ls
o- portals .......................... [Portals: 1]
  o- 0.0.0.0:3260 ........................... [OK]
/iscsi/iqn.20.../tpg1/portals> delete ip_address=0.0.0.0 ip_port=3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> ls
o- portals .......................... [Portals: 0]
/iscsi/iqn.20.../tpg1/portals> create ip_address=192.168.100.10 ip_port=3260
Using default IP port 3260
Created network portal 192.168.100.10:3260.
/iscsi/iqn.20.../tpg1/portals> ls
o- portals .......................... [Portals: 1]
  o- 192.168.100.10:3260 .................... [OK]

重启服务

[root@xieyuhui ~]# systemctl restart target
[root@xieyuhui ~]# systemctl enable target

客户端配置

安装iscsi-initiator-utils软件包

[root@xieyuhui2 ~]# yum install iscsi-initiator-utils -y
[root@xieyuhui2 ~]# rpm -q iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.874-10.el7.x86_64
查看是否安装

修改/etc/iscsi/initiatorname.iscsi配置文件

vim /etc/iscsi/initiatorname.iscsi

在这里插入图片描述

作为iscsi节点,客户端需要唯一iqn

重启服务

[root@xieyuhui2 ~]# systemctl restart iscsi
[root@xieyuhui2 ~]# systemctl enable iscsi
[root@xieyuhui2 ~]# systemctl restart iscsid
[root@xieyuhui2 ~]# systemctl enable iscsid

iscsi客户端上连接目标之前,必须先发现目标

在这里插入图片描述

登录

在这里插入图片描述

使用iscsi块存储

[root@xieyuhui2 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of
commands.
(parted) unit     
Unit?  [compact]? mib
(parted) p        
Error: /dev/sdb: unrecognised disk label
                                                        Model: LIO-ORG block1 (scsi)
Disk /dev/sdb: 4010MiB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
                                                        (parted) mklabel  
New disk label type? gpt #设置类型
创建分区
(parted) mkpart   
Partition name?  []? 
File system type?  [ext2]? 
Start? 30mib      
End? 530mib       
Warning: The resulting partition is not properly aligned
for best performance.
Ignore/Cancel? I  
(parted) p        
Model: LIO-ORG block1 (scsi)
Disk /dev/sdb: 4010MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End     Size    File system  Name  Flags
 1      30.0MiB  530MiB  500MiB

                                                     (parted)   quit
                                                     [root@xieyuhui2 ~]# udevadm settle 

格式化为xfs,创建挂载目录并且永久挂载

[root@xieyuhui2 ~]# mkfs.xfs /dev/sdb1
[root@xieyuhui2 ~]# mkdir /hui
[root@xieyuhui2 ~]# blkid		#查看uuid
[root@xieyuhui2 ~]# vim /etc/fstab
[root@xieyuhui2 ~]# mount -a
[root@xieyuhui2 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        50G  3.5G   47G   7% /
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G   13M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1      1014M  163M  852M  17% /boot
tmpfs           394M  4.0K  394M   1% /run/user/42
tmpfs           394M   44K  394M   1% /run/user/0
/dev/sr0        4.3G  4.3G     0 100% /mnt

在这里插入图片描述

!!! defaults后面一定要加上 _netdev,这代表我们在有网络之后再读取此文件,如果不加,系统启动过程会先读取/etc/fstab文件,然后不能识别此设备,系统会一直启动失败

如何注销

临时注销,注销之前先取消挂载,然后删除/etc/fstab里面添加的配置信息

[root@xieyuhui2 ~]# umount /hui
[root@xieyuhui2 ~]# iscsiadm -m node -T iqn.2025-08.com.example:xie -p 192.168.100.10:3260 -u
Logging out of session [sid: 1, target: iqn.2025-08.com.example:xie, portal: 192.168.100.10,3260]
Logout of [sid: 1, target: iqn.2025-08.com.example:xie, portal: 192.168.100.10,3260] successful.

永久注销,永久注销之前要先临时注销iscsi目标

[root@xieyuhui2 ~]# iscsiadm -m node -T iqn.2025-08.com.example:xie -p 192.168.100.10:3260 -o delete
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值