CentOS7配置targetcli工具,配置iscsi共享磁盘空间。

说到今天的心情,也能用好也能用不好来形容。
今天也不整这些影响心情的事情。我来粗略的配置一下target服务的共享存储配置,解决计算机磁盘空间不足的问题。

两台计算机

一台功能服务型计算机,一台用作共享存储的服务器。

功能型主机:

[root@localhost ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

磁盘 /dev/sda:64.0 GB, 64023257088 字节,125045424 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 6F22154B-F340-445A-9DD3-36035F0E1A86


#         Start          End    Size  Type            Name
 1         2048       411647    200M  EFI System      EFI System Partition
 2       411648      2508799      1G  Microsoft basic
 3      2508800    125044735   58.4G  Linux LVM

磁盘 /dev/mapper/centos-root:39.4 GB, 39355154432 字节,76865536 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:19.2 GB, 19214106624 字节,37527552 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdb:52.4 GB, 52437189120 字节,102416385 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 33550336 字节

[root@localhost ~]#

可以看到服务型功能主机的硬盘空间不到60G,这个硬盘大小做服务的时候是不够用的。

存储共享服务器

存储共享服务器也就是多加了一块硬盘,但是可以用来模拟共享存储空间用。

[root@www ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.4G     0  1.4G    0% /dev
tmpfs                    1.4G     0  1.4G    0% /dev/shm
tmpfs                    1.4G  9.4M  1.4G    1% /run
tmpfs                    1.4G     0  1.4G    0% /sys/fs/cgroup
/dev/mapper/centos-root   90G   38G   53G   42% /
/dev/sda1               1014M  240M  775M   24% /boot
tmpfs                    284M   12K  284M    1% /run/user/42
tmpfs                    284M     0  284M    0% /run/user/0
[root@www ~]# fdisk -l

磁盘 /dev/sda:320.1 GB, 320071851520 字节,625140335 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00044653

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   113262591    55581696   8e  Linux LVM
/dev/sda3       113262592   625140334   255938871+  8e  Linux LVM

磁盘 /dev/sdb:500.1 GB, 500106780160 字节,976771055 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x624aa2e0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   102416383    51207168   8e  Linux LVM
/dev/sdb2       102416384   204832768    51208192+  8e  Linux LVM
/dev/sdb3       204834816   512086016   153625600+  8e  Linux LVM
/dev/sdb4       512088064   976771054   232341495+  8e  Linux LVM

磁盘 /dev/mapper/centos-root:96.6 GB, 96636764160 字节,188743680 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@www ~]#

可以看到,我的共享存储服务器在sdb下划分了4个分区用作后面的共享存储配置。(fdisk 磁盘分区的操作方式可以自行查找文章进行配置,这里不具体阐述了;)

共享存储服务器检查安装targetcli工具

(CentOS7.1往前的貌似不是targetcli工具,可以自行对照系统配置,以防我的操作方式有一些区别;)
我的是已经安装了targetcli配置工具的:
查看targetcli

[root@www ~]# rpm -q targetcli
targetcli-2.1.fb49-1.el7.noarch

如果你的系统内没有安装,可以执行yum源安装此工具:

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

也可以更新此工具为最新版本:
没有相关更新,我这就是个演示。

[root@www ~]# yum update targetcli

已加载插件:fastestmirror, langpacks
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
base                                                                                                                                             | 3.6 kB  00:00:00
extras                                                                                                                                           | 2.9 kB  00:00:00
updates                                                                                                                                          | 2.9 kB  00:00:00
No packages marked for update
[root@www ~]#

进入服务端targetcli工具

直接输入targetcli就行:

[root@www ~]# targetc
targetcli  targetctl
[root@www ~]# targetcli
targetcli shell version 2.1.fb49
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> -h
/> help

GENERALITIES
============
This is a shell in which you can create, delete and configure
configuration objects.

The available commands depend on the current path or target
path you want to run a command in: different path have
different sets of available commands, i.e. a path pointing at
an iscsi target will not have the same availaible commands as,
say, a path pointing at a storage object.

The prompt that starts each command line indicates your
current path. Alternatively (useful if the prompt displays
an abbreviated path to save space), you can run the
pwd command to display the complete current path.

Navigating the tree is done using the cd command. Without
any argument, cd will present you with the full objects
tree. Just use arrows to select the destination path, and
enter will get you there. Please try help cd for navigation
tips.

COMMAND SYNTAX
==============
Commands are built using the following syntax:

[TARGET_PATH] COMMAND_NAME [OPTIONS]

The TARGET_PATH indicates the path to run the command from.
If ommited, the command will be run from your current path.

The OPTIONS depend on the command. Please use help
COMMAND to get more information.


AVAILABLE COMMANDS
==================
The following commands are available in the
current path:

  - bookmarks action [bookmark]
  - cd [path]
  - clearconfig [confirm]
  - exit
  - get [group] [parameter...]
  - help [topic]
  - ls [path] [depth]
  - pwd
  - refresh
  - restoreconfig [savefile] [clear_existing]
  - saveconfig [savefile]
  - sessions [action] [sid]
  - set [group] [parameter=value...]
  - status
  - version
/>

help可以获取帮助,双击Tab键可以显示在当前路径下使用的targetcli命令:

current path:

  - bookmarks action [bookmark]
  - cd [path]
  - clearconfig [confirm]
  - exit
  - get [group] [parameter...]
  - help [topic]
  - ls [path] [depth]
  - pwd
  - refresh
  - restoreconfig [savefile] [clear_existing]
  - saveconfig [savefile]
  - sessions [action] [sid]
  - set [group] [parameter=value...]
  - status
  - version
/>
*              /              @last          backstores/    iscsi/         loopback/      bookmarks      cd
clearconfig    exit           get            help           ls             pwd            refresh        restoreconfig
saveconfig     sessions       set            status         version
/>

目前是在根路径下,直接敲ls(和linux的ls一样)命令来查看所有路径及路径下的配置,敲pwd命令可以显示当前所在的路径(和linux的pwd一样)。

/>
*              /              @last          backstores/    iscsi/         loopback/      bookmarks      cd
clearconfig    exit           get            help           ls             pwd            refresh        restoreconfig
saveconfig     sessions       set            status         version
/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 2]
  | | o- block_sd2 ...................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- block_sd3 ..................................................................... [/dev/sdb3 (146.5GiB) 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.2020-08.sd2.liyi.com:test ..................................................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.1994-05.com.redhat:be46bf1b1f5c .................................................................. [Mapped LUNs: 2]
  |     |   o- mapped_lun0 ............................................................................. [lun0 block/block_sd2 (rw)]
  |     |   o- mapped_lun1 ............................................................................. [lun1 block/block_sd3 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 2]
  |     | o- lun0 ................................................................. [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  |     | o- lun1 ................................................................. [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.0.104:3260 ............................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/> pwd
/
/>

完成共享存储服务的空间配置:

创建block块

创建一个block块关联我需要共享的分区:
需要在backstores/block路径下创建关联block块

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 2]
  | | o- block_sd2 ...................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- block_sd3 ..................................................................... [/dev/sdb3 (146.5GiB) 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]

可以看到我目前已经共享了两个block块,一个是sd2、一个是sd3,这两个名称我是根据sdb分区名称来配置的。
在sd2这个block块的右边可以看到sd2关联的是/dev/sdb2,sdb2的分区空间为48.8G的空间。sd3也和sd2相同,关联的是sdb3,sdb3有146.5的大小。

创建一个新的block关联块

切换路径到block下,创建一个sd4的关联block:

/> cd backstores/block/
/backstores/block> ls
o- block ...................................................................................................... [Storage Objects: 2]
  o- block_sd2 .......................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | o- alua ....................................................................................................... [ALUA Groups: 1]
  |   o- default_tg_pt_gp ........................................................................... [ALUA state: Active/optimized]
  o- block_sd3 ......................................................................... [/dev/sdb3 (146.5GiB) write-thru activated]
    o- alua ....................................................................................................... [ALUA Groups: 1]
      o- default_tg_pt_gp ........................................................................... [ALUA state: Active/optimized]
/backstores/block> create
dev=       name=      readonly=  wwn=
/backstores/block> create name=sd4 dev=
Desktop/         TeamViewer/      下载/          公共/          图片/          文档/          模板/
视频/          音乐/
/backstores/block> create name=sd4 dev=/dev/sdb
/dev/sdb       /dev/sdb1      /dev/sdb2      /dev/sdb3      /dev/sdb4
/backstores/block> create name=sd4 dev=/dev/sdb4
Created block storage object sd4 using /dev/sdb4.
/backstores/block> ls
o- block ...................................................................................................... [Storage Objects: 3]
  o- block_sd2 .......................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | o- alua ....................................................................................................... [ALUA Groups: 1]
  |   o- default_tg_pt_gp ........................................................................... [ALUA state: Active/optimized]
  o- block_sd3 ......................................................................... [/dev/sdb3 (146.5GiB) write-thru activated]
  | o- alua ....................................................................................................... [ALUA Groups: 1]
  |   o- default_tg_pt_gp ........................................................................... [ALUA state: Active/optimized]
  o- sd4 ............................................................................. [/dev/sdb4 (221.6GiB) write-thru deactivated]
    o- alua ....................................................................................................... [ALUA Groups: 1]
      o- default_tg_pt_gp ........................................................................... [ALUA state: Active/optimized]
/backstores/block>

可以看见新增了一个sd4的block块,关联的是sdb4,sdb4有221.6G大小。

进入ISCSI路径下配置共享存储对象和共享存储连接

创建一个iscsi共享存储名称:

/iscsi> create wwn=iqn.2020-08.sd2.liyi.com:test

查看共享存储显示的iscsi名称:

 o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2020-08.sd2.liyi.com:test ..................................................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.1994-05.com.redhat:be46bf1b1f5c .................................................................. [Mapped LUNs: 2]
  |     |   o- mapped_lun0 ............................................................................. [lun0 block/block_sd2 (rw)]
  |     |   o- mapped_lun1 ............................................................................. [lun1 block/block_sd3 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 2]
  |     | o- lun0 ................................................................. [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  |     | o- lun1 ................................................................. [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.0.104:3260 ............................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]

里面有一些名称是我已经创建完成的共享。
创建完成iscsi名称后,下面会默认创建一个tpg1的路径,在tpg1路径下有三个路径为主要的:
1.acls(客户端访问名称,免认证配置)
2.luns(共享lun存储池,调用block共享块)
3.portals(共享存储地址和端口)

创建luns共享池

创建一个共享lun,将需要共享的block块配置进lun池:

/iscsi> cd iqn.2020-08.sd2.liyi.com:test/tpg1/luns/
/iscsi/iqn.20...est/tpg1/luns> ls
o- luns .................................................................................................................. [LUNs: 2]
  o- lun0 ......................................................................... [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  o- lun1 ......................................................................... [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
/iscsi/iqn.20...est/tpg1/luns> create
/backstores/block/block_sd2  /backstores/block/block_sd3  /backstores/block/sd4        Desktop/
TeamViewer/                  anaconda-ks.cfg              help                         info.txt
initial-setup-ks.cfg         newtest01.txt                下载/                      公共/
图片/                      文档/                      模板/                      视频/
音乐/                      add_mapped_luns=             lun=                         storage_object=
/iscsi/iqn.20...est/tpg1/luns>
*          /          @last      lun0/      lun1/      bookmarks  cd         create     delete     exit       get        help
ls         pwd        refresh    set        status
/iscsi/iqn.20...est/tpg1/luns> create
/backstores/block/block_sd2  /backstores/block/block_sd3  /backstores/block/sd4        Desktop/
TeamViewer/                  anaconda-ks.cfg              help                         info.txt
initial-setup-ks.cfg         newtest01.txt                下载/                      公共/
图片/                      文档/                      模板/                      视频/
音乐/                      add_mapped_luns=             lun=                         storage_object=
/iscsi/iqn.20...est/tpg1/luns> create lun=lun2 storage_object=
/backstores/block/block_sd2                 /backstores/block/block_sd3                 /backstores/block/sd4
Desktop/                                    TeamViewer/                                 anaconda-ks.cfg
help                                        info.txt                                    initial-setup-ks.cfg
newtest01.txt                               下载/                                     公共/
图片/                                     文档/                                     模板/
视频/                                     音乐/
/iscsi/iqn.20...est/tpg1/luns> create lun=lun2 storage_object=/backstores/block/
/backstores/block/block_sd2                 /backstores/block/block_sd3                 /backstores/block/sd4
/iscsi/iqn.20...est/tpg1/luns> create lun=lun2 storage_object=/backstores/block/sd4
Created LUN 2.
Created LUN 2->2 mapping in node ACL iqn.1994-05.com.redhat:be46bf1b1f5c
/iscsi/iqn.20...est/tpg1/luns> ls
o- luns .................................................................................................................. [LUNs: 3]
  o- lun0 ......................................................................... [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  o- lun1 ......................................................................... [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
  o- lun2 ............................................................................... [block/sd4 (/dev/sdb4) (default_tg_pt_gp)]
/iscsi/iqn.20...est/tpg1/luns>

创建了一个新lun2,调用的是block块中的sd4,这个lun2的大小就是sd4的block大小。

创建acls免认证访问

在这里我们需要先打开那个没有多大磁盘空间的主机(我的就是功能型客户端),在功能型客户端中查看是否有iscsi这个工具:
客户端默认是自带iscsi功能的,先查看一下需要免认证的客户端的iscsi名称。
查看客户端iscsi名称:
默认路径是在/etc/iscsi/initiatorname.iscsi中

[root@localhost ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:be46bf1b1f5c
[root@localhost ~]#

我的客户端iscsi名称是这个,我把这个名称写入共享存储服务器的acls配置内:

/iscsi/iqn.20...est/tpg1/luns> cd ../acls/
/iscsi/iqn.20...est/tpg1/acls> ls
o- acls .................................................................................................................. [ACLs: 1]
  o- iqn.1994-05.com.redhat:be46bf1b1f5c .......................................................................... [Mapped LUNs: 3]
    o- mapped_lun0 ..................................................................................... [lun0 block/block_sd2 (rw)]
    o- mapped_lun1 ..................................................................................... [lun1 block/block_sd3 (rw)]
    o- mapped_lun2 ........................................................................................... [lun2 block/sd4 (rw)]
/iscsi/iqn.20...est/tpg1/acls>
/                                     @last                                 iqn.1994-05.com.redhat:be46bf1b1f5c/
bookmarks                             cd                                    create
delete                                exit                                  get
help                                  ls                                    pwd
refresh                               set                                   status
tag                                   untag
/iscsi/iqn.20...est/tpg1/acls> create
add_mapped_luns=  wwn=
/iscsi/iqn.20...est/tpg1/acls> create wwn=iqn.1994-05.com.redhat:be46bf1b1f5c

因为我这个已经添加了,就不再重新添加了,按两下Tab键可以查看当前路径下可用的命令,可以用delete命令再删除添加的客户端iscsi名称。

将共享存储服务器的地址和端口配置进portals中

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 3]
  | | o- block_sd2 ...................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- block_sd3 ..................................................................... [/dev/sdb3 (146.5GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- sd4 ........................................................................... [/dev/sdb4 (221.6GiB) 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.2020-08.sd2.liyi.com:test ..................................................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.1994-05.com.redhat:be46bf1b1f5c .................................................................. [Mapped LUNs: 3]
  |     |   o- mapped_lun0 ............................................................................. [lun0 block/block_sd2 (rw)]
  |     |   o- mapped_lun1 ............................................................................. [lun1 block/block_sd3 (rw)]
  |     |   o- mapped_lun2 ................................................................................... [lun2 block/sd4 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 3]
  |     | o- lun0 ................................................................. [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  |     | o- lun1 ................................................................. [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
  |     | o- lun2 ....................................................................... [block/sd4 (/dev/sdb4) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.0.104:3260 ............................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/> cd iscsi/iqn.2020-08.sd2.liyi.com:test/tpg1/portals/
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ............................................................................................................ [Portals: 1]
  o- 192.168.0.104:3260 ....................................................................................................... [OK]
/iscsi/iqn.20.../tpg1/portals>
/                    192.168.0.104:3260/  @last                bookmarks            cd                   create
delete               exit                 get                  help                 ls                   pwd
refresh              set                  status
/iscsi/iqn.20.../tpg1/portals> delete
192.168.0.104   ip_address=     ip_port=
/iscsi/iqn.20.../tpg1/portals> delete ip_
ip_address=  ip_port=
/iscsi/iqn.20.../tpg1/portals> delete ip_address=192.168.0.104 ip_port=3260

我这个是删除掉里面的IP地址和端口。
下面是创建IP和端口(共享服务器的IP地址)

/iscsi/iqn.20.../tpg1/portals> create ip_address=192.168.0.104 ip_port=3260

记住这个端口,等下需要在服务器上放行这个端口,现在已经配置完成了服务器的共享存储targetcli。

放行服务器端的3260端口

我用的是firewall防火墙,所以需要使用firewall-cmd新加3260端口:

[root@www ~]# firewall-cmd --add-
--add-forward-port=                --add-lockdown-whitelist-command=  --add-masquerade                   --add-service=
--add-icmp-block=                  --add-lockdown-whitelist-context=  --add-port=                        --add-source=
--add-icmp-block-inversion         --add-lockdown-whitelist-uid=      --add-protocol=                    --add-source-port=
--add-interface=                   --add-lockdown-whitelist-user=     --add-rich-rule=
[root@www ~]# firewall-cmd --add-port=3260/tcp

查看firewall开启的3260端口:

[root@www ~]# firewall-cmd --list-ports
80/tcp 3306/tcp 21/tcp 3260/tcp
[root@www ~]# netstat -an | grep 3260
tcp        0      0 192.168.0.104:3260      0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.104:3260      192.168.0.175:51998     ESTABLISHED
[root@www ~]#

下面的192.168.0.175这个是我已经建立了客户端调用共享存储后列出的记录。

客户端配置iSCSI

iscsi查看服务器共享的存储名称

[root@localhost ~]# iscsiadm -h
iscsiadm -m discoverydb [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -Dl ] ] | [ [ -p ip:port -t type] [ -o operation ] [ -n name ] [ -v value ] [ -lD ] ]
iscsiadm -m discovery [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ]
iscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u | -R | -s] ] [ [ -o  operation  ] [ -n name ] [ -v value ] ]
iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P  printlevel] [ -r sessionid | sysfsdir [ -R | -u | -s ] [ -o operation ] [ -n name ] [ -v value ] ]
iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename | -H hostno|MAC ] [ [ -o  operation  ] [ -n name ] [ -v value ] ] [ -C ping [ -a ip ] [ -b packetsize ] [ -c count ] [ -i interval ] ]
iscsiadm -m fw [ -d debug_level ] [ -l ]
iscsiadm -m host [ -P printlevel ] [ -H hostno|MAC ] [ [ -C chap [ -x chap_tbl_idx ] ] | [ -C flashnode [ -A portal_type ] [ -x flashnode_idx ] ] | [ -C stats ] ] [ [ -o operation ] [ -n name ] [ -v value ] ]
iscsiadm -k priority
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.0.104 
192.168.0.104:3260,1 iqn.2020-08.sd2.liyi.com:test
[root@localhost ~]#

可以看到客户端查到了服务器的iscsi名称。
客户端登陆服务端iscsi共享
这里有三条命令来使用iscsiadm,分别为查看、连接、断开连接:
查看:iscsiadm -m discovery -t st -p 【服务器IP地址】
登陆:iscsiadm -m node -T 【服务器iscsi名称】 -p 【服务器IP地址】 -l
断开连接:iscsiadm -m node -T 【服务器iscsi名称】 -u

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0 59.6G  0 disk
├─sda1            8:1    0  200M  0 part /boot/efi
├─sda2            8:2    0    1G  0 part /boot
└─sda3            8:3    0 58.4G  0 part
  ├─centos-root 253:0    0 36.7G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 17.9G  0 lvm  /home
sdb               8:16   0 48.9G  0 disk
[root@localhost ~]# iscsiadm -m node -T iqn.2020-08.sd2.liyi.com:test -u
Logging out of session [sid: 3, target: iqn.2020-08.sd2.liyi.com:test, portal: 192.168.0.104,3260]
Logout of [sid: 3, target: iqn.2020-08.sd2.liyi.com:test, portal: 192.168.0.104,3260] successful.
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0 59.6G  0 disk
├─sda1            8:1    0  200M  0 part /boot/efi
├─sda2            8:2    0    1G  0 part /boot
└─sda3            8:3    0 58.4G  0 part
  ├─centos-root 253:0    0 36.7G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 17.9G  0 lvm  /home
[root@localhost ~]#

可以看到,我的客户端断开了sdb这个iscsi共享空间了。
使用登陆命令访问iscsi共享空间:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0 59.6G  0 disk
├─sda1            8:1    0  200M  0 part /boot/efi
├─sda2            8:2    0    1G  0 part /boot
└─sda3            8:3    0 58.4G  0 part
  ├─centos-root 253:0    0 36.7G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 17.9G  0 lvm  /home
[root@localhost ~]# iscsiadm -m node -T iqn.2020-08.sd2.liyi.com:test -p 192.168.0.104 -l
Logging in to [iface: default, target: iqn.2020-08.sd2.liyi.com:test, portal: 192.168.0.104,3260] (multiple)
Login to [iface: default, target: iqn.2020-08.sd2.liyi.com:test, portal: 192.168.0.104,3260] successful.
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0  59.6G  0 disk
├─sda1            8:1    0   200M  0 part /boot/efi
├─sda2            8:2    0     1G  0 part /boot
└─sda3            8:3    0  58.4G  0 part
  ├─centos-root 253:0    0  36.7G  0 lvm  /
  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0  17.9G  0 lvm  /home
sdb               8:16   0  48.9G  0 disk
sdc               8:32   0 221.6G  0 disk
sdd               8:48   0 146.5G  0 disk
[root@localhost ~]#

可以看见,现在列出了三个新的共享iscsi分区,这个就是targetcli服务器内的三个lun池。可以直接用mount命令挂载共享存储空间来直接使用了。

客户端挂载共享存储空间

可以看到客户端多了三个共享分区:sdb,sdc,sdd。
需要使用共享分区可以直接将此分区挂载到某个目录下即可:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0  59.6G  0 disk
├─sda1            8:1    0   200M  0 part /boot/efi
├─sda2            8:2    0     1G  0 part /boot
└─sda3            8:3    0  58.4G  0 part
  ├─centos-root 253:0    0  36.7G  0 lvm  /
  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0  17.9G  0 lvm  /home
sdb               8:16   0  48.9G  0 disk
sdc               8:32   0 221.6G  0 disk
sdd               8:48   0 146.5G  0 disk
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   37G  8.5G   29G   23% /
devtmpfs                 1.8G     0  1.8G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   56M  1.8G    3% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda2               1014M  172M  843M   17% /boot
/dev/sda1                200M  9.8M  191M    5% /boot/efi
/dev/mapper/centos-home   18G   40M   18G    1% /home
tmpfs                    371M   40K  371M    1% /run/user/1000
tmpfs                    371M     0  371M    0% /run/user/0
[root@localhost ~]# ll /
总用量 28
drwxr-xr-x.   2 root root    42 8月  24 17:20 Application
lrwxrwxrwx.   1 root root     7 7月   8 09:53 bin -> usr/bin
dr-xr-xr-x.   6 root root  4096 8月  14 13:34 boot
drwxr-xr-x.  20 root root  3400 8月  27 11:24 dev
drwxr-xr-x. 135 root root 12288 8月  17 14:39 etc
drwxr-xr-x.   3 root root    18 7月   8 10:07 home
lrwxrwxrwx.   1 root root     7 7月   8 09:53 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 7月   8 09:53 lib64 -> usr/lib64
drwxr-xr-x.   4 root root    29 8月  18 11:34 media
drwxr-xr-x.   2 root root     6 11月  5 2016 mnt
drwxr-xr-x.   3 root root    16 7月   8 09:59 opt
dr-xr-xr-x. 224 root root     0 8月  17 15:31 proc
dr-xr-x---.  16 root root  4096 8月  26 15:13 root
drwxr-xr-x.  37 root root  1220 8月  27 06:57 run
lrwxrwxrwx.   1 root root     8 7月   8 09:53 sbin -> usr/sbin
drwxr-xr-x.   2 root root     6 11月  5 2016 srv
dr-xr-xr-x.  13 root root     0 8月  17 15:31 sys
drwxrwxrwt.  14 root root  4096 8月  27 11:21 tmp
drwxr-xr-x.  13 root root   155 7月   8 09:53 usr
drwxr-xr-x.  20 root root   282 7月   8 10:05 var
drwxr-xr-x.   2 root root     6 8月  25 12:19 virtual_kvm
[root@localhost ~]# df -h /virtual_kvm/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   37G  8.5G   29G   23% /
[root@localhost ~]# mou
mount        mount.fuse   mount.nfs    mount.nfs4   mountpoint   mountstats   mousetweaks
[root@localhost ~]# mount /dev/sd
sda   sda1  sda2  sda3  sdb   sdc   sdd
[root@localhost ~]# mount /dev/sdb /virtual_kvm/
[root@localhost ~]# df -h /virtual_kvm/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb         48G   53M   46G    1% /virtual_kvm
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   37G  8.5G   29G   23% /
devtmpfs                 1.8G     0  1.8G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   56M  1.8G    3% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda2               1014M  172M  843M   17% /boot
/dev/sda1                200M  9.8M  191M    5% /boot/efi
/dev/mapper/centos-home   18G   40M   18G    1% /home
tmpfs                    371M   40K  371M    1% /run/user/1000
tmpfs                    371M     0  371M    0% /run/user/0
/dev/sdb                  48G   53M   46G    1% /virtual_kvm
[root@localhost ~]#

可以看到,我将sdb的共享空间挂载给了/virtual_kvm文件夹,现在这个文件夹的空间是48G。

服务器避免意外操作保存配置

在服务器targetcli中使用save命令来保存当前的iscsi配置信息:

/> ls
o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- block .................................................................................................. [Storage Objects: 3]
  | | o- block_sd2 ...................................................................... [/dev/sdb2 (48.8GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- block_sd3 ..................................................................... [/dev/sdb3 (146.5GiB) write-thru activated]
  | | | o- alua ................................................................................................... [ALUA Groups: 1]
  | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
  | | o- sd4 ........................................................................... [/dev/sdb4 (221.6GiB) 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.2020-08.sd2.liyi.com:test ..................................................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.1994-05.com.redhat:be46bf1b1f5c .................................................................. [Mapped LUNs: 3]
  |     |   o- mapped_lun0 ............................................................................. [lun0 block/block_sd2 (rw)]
  |     |   o- mapped_lun1 ............................................................................. [lun1 block/block_sd3 (rw)]
  |     |   o- mapped_lun2 ................................................................................... [lun2 block/sd4 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 3]
  |     | o- lun0 ................................................................. [block/block_sd2 (/dev/sdb2) (default_tg_pt_gp)]
  |     | o- lun1 ................................................................. [block/block_sd3 (/dev/sdb3) (default_tg_pt_gp)]
  |     | o- lun2 ....................................................................... [block/sd4 (/dev/sdb4) (default_tg_pt_gp)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.0.104:3260 ............................................................................................... [OK]
  o- loopback ......................................................................................................... [Targets: 0]
/> saveconfig
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
[root@www ~]# ll /etc/target/
总用量 16
drwxr-xr-x. 2 root root  252 8月  27 11:33 backup
-rw-r--r--. 1 root root 8980 8月  27 11:33 saveconfig.json
-rw-r--r--. 1 root root  581 8月   4 2017 targetd.yaml
[root@www ~]# ll /etc/target/backup/
总用量 48
-rw-r--r--. 1 root root 3694 8月  26 10:12 saveconfig-20200826-10:12:53.json
-rw-r--r--. 1 root root 4644 8月  26 15:15 saveconfig-20200826-15:15:03.json
-rw-r--r--. 1 root root 4650 8月  26 15:15 saveconfig-20200826-15:15:12.json
-rw-r--r--. 1 root root 6422 8月  27 10:22 saveconfig-20200827-10:22:02.json
-rw-r--r--. 1 root root 6821 8月  27 10:25 saveconfig-20200827-10:25:40.json
-rw-r--r--. 1 root root 8980 8月  27 11:33 saveconfig-20200827-11:33:10.json
[root@www ~]#

这下就完美搞成了!别忘了点赞哦。

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值