使用ISCSI服务部署网络储存

发布时间:2024年01月16日

创建RAID 5 磁盘阵列

[root@localhost ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
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.

[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jun 21 01:03:14 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 : Wed Jun 21 01:05:00 2023
             State : clean
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 5692f526:17ee2012:9361508d:ebb9c842
            Events : 18

    Number   Major   Minor   RaidDevice State
       0     259        4        0      active sync   /dev/nvme0n2
       1     259        5        1      active sync   /dev/nvme0n3
       4     259        6        2      active sync   /dev/nvme0n4

       3     259        7        -      spare   /dev/nvme0n5

配置ISCSI客户端

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

//使用targetcli命令后就能进入到交互式页面,可以通过ls查看目录参数的结构,/backstores/block是ISCSI服务端配置共享设备的位置。需要把RAID5磁盘阵列md0文件加入到配置共享设备的"资源池中",并将该文件重新命名为disk0
/> cd /backstores/block
/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]
/>

//创建ISCSI target名称及配置共享资源。ISCSI名 target名称是由系统自动生成的,用于描述共享资源的唯一字符串
/> cd iscsi
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030.
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.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030 ......................................................... [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.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030/
/iscsi/iqn.20....f4e1883b8030> cd tpg1/luns
/iscsi/iqn.20...030/tpg1/luns> create /backstores/block/disk0
Created LUN 0.

//设置访问控制列表(ACL),ISCSI协议是通过客户端名称进行验证的,用户在访问存储共享资源时不需要输入密码,只要ISCSI客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,因此需要在ISCSI服务端的配置文件中写入一串能够验证用户信息的名称
/iscsi/iqn.20...030/tpg1/luns> cd ..
/iscsi/iqn.20...883b8030/tpg1> cd acls
/iscsi/iqn.20...030/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030:client
Created mapped LUN 0.

//设置ISCSI服务端的监听IP地址和端口号。位于生产环境中的服务器可能由多块网卡
/iscsi/iqn.20...030/tpg1/acls> 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 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.95.128
Using default IP port 3260
Created network portal 192.168.95.128:3260.

//检查配置文件
/iscsi/iqn.20.../tpg1/portals> cd /
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 1]
  | | o- disk0 ........................................................................... [/dev/md0 (40.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.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030 ....................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030:client ................................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................................................................................. [lun0 block/disk0 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ...................................................................... [block/disk0 (/dev/md0) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.95.128:3260 .............................................................................................. [OK]
  o- loopback ......................................................................................................... [Targets: 0]


[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3260/tcp
success
[root@localhost ~]# firewall-cmd --reload
success


//客户端配置
//ISCSI协议是通过客户端的名称来进行验证的,而该名称也是ISCSI客户端的唯一标识,而且必须与服务端配置文件中访问控制列表的中的信息一致
[root@localhost iscsi]# yum -y install iscsi-initiator-utils
[root@localhost iscsi]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.f4e1883b8030:client
[root@localhost iscsi]# systemctl restart iscsid
[root@localhost iscsi]# systemctl enable iscsid
Created symlink /etc/systemd/system/multi-user.target.wants/iscsid.service → /usr/lib/systemd/system/iscsid.service.
//先发现,在登陆,最后挂载并使用。iscsiadm是用来管理、查询、插入、更新或删除ISCSI数据库配置文件的命令行工具,先进行扫描ISCSI服务端。其中-m discovery参数目的是扫描并发现可用资源,-t st参数韦执行扫描操作的类型,-p IP参数为ISCSI服务端的IP地址
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.95.130
192.168.95.130:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e787270a21b6
//-m node参数将客户端所在主机作为一台节点服务器,-T参数为要使用的存储资源,-p IP是服务端地址,--login进行登陆验证
[root@localhost ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e787270a21b6 -p 192.168.95.130 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e787270a21b6, portal: 192.168.95.130,3260]
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e787270a21b6, portal: 192.168.95.130,3260] successful.
[root@localhost ~]# ls -d /dev/sdb
/dev/sdb
[root@localhost ~]# mkfs.xfs /dev/sdb
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/sdb               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkdir /iscsi
[root@localhost ~]# mount /dev/sdb /iscsi/
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        885M     0  885M   0% /dev
tmpfs           901M     0  901M   0% /dev/shm
tmpfs           901M  9.5M  891M   2% /run
tmpfs           901M     0  901M   0% /sys/fs/cgroup
/dev/sda3        98G  5.8G   92G   6% /
/dev/sda1       295M  211M   85M  72% /boot
tmpfs           181M   24K  181M   1% /run/user/0
/dev/sdb         40G  319M   40G   1% /iscsi
//写入/etc/fstab中时,请使用UUID进行挂载,查看UUID命令blkid | grep /dev/sdb

文章来源:https://blog.csdn.net/itxuchuanlong/article/details/135608965
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。