Linux搭建ISCSI服务器全过程
作者:DG0913L
1、简介
iSCSI主要是通过TCP/IP的技术,将存储设备端通过iSCSI target功能,组成可以提供磁盘的服务器端,再通过iSCSI initiator(iSCSI初始化用户)功能,成为能够挂载使用iSCSI target的客户端,如此便能够通过iSCSI协议来进行磁盘的应用。
iSCSI target
:存储设备端,存放磁盘的RAID设备,可将Linux主机仿真为iSCSI target,以供其他主机使用;iSCSI initiator
:安装iSCSI initiator之后才能够使用target提供的磁盘服务,通常为服务器
2、目标规划
Server主机名 | 服务端ip | iscsi名称 | 访问权限控制列表 |
iscsi01.brick.com | 192.168.79.131 | iqn.2022-11.com.brick.iscsi01:server | iqn.2022-11.com.brick:client01 |
192.168.79.134 | iqn.2022-11.com.brick.iscsi02:server | iqn.2022-11.com.brick:client01 | |
双网卡,主要是模拟2个 iSCSI target存储设备端 | |||
Client主机名 | 客户端ip | 访问服务端ip | |
test01.brick.com | 192.168.79.132 | 192.168.79.131 | 192.168.79.134 |
模拟连接2个 iSCSI targe |
3、坏境准备
虚拟机添加一块磁盘,划分为3个LV
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─centos-root 253:0 0 27G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk [root@localhost ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@localhost ~]# vgcreate /dev/iscsi01 /dev/sdb Volume group "iscsi01" successfully created [root@localhost ~]# lvcreate -L 2G -n test1 iscsi01 Logical volume "test1" created. [root@localhost ~]# lvcreate -L 2G -n test2 iscsi01 Logical volume "test2" created. [root@localhost ~]# lvcreate -l 100%FREE -n test3 iscsi01 Logical volume "test3" created. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 26.99g swap centos -wi-ao---- 2.00g test1 iscsi01 -wi-a----- 2.00g test2 iscsi01 -wi-a----- 2.00g test3 iscsi01 -wi-a----- <6.00g [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─centos-root 253:0 0 27G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 10G 0 disk ├─iscsi01-test1 253:2 0 2G 0 lvm ├─iscsi01-test2 253:3 0 2G 0 lvm └─iscsi01-test3 253:4 0 6G 0 lvm
4、配置ISCSI服务端
[root@localhost ~]# mount /dev/cdrom /mnt/ #挂载镜像 mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# mkdir -p /etc/yum.repos.d/back [root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back/ #对原有的yum源进行备份 [root@localhost ~]# cd /etc/yum.repos.d/back/ [root@localhost back]# cp CentOS-Base.repo ../ [root@localhost back]# cd ../ [root@localhost yum.repos.d]# vi CentOS-Base.repo #修改yum源 [root@localhost yum.repos.d]# cat CentOS-Base.repo [root@test01 mnt]# cat /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-Base baseurl=file:///mnt gpgcheck=1 gpgkey=file:///RPM-GPG-KEY-CentOS-7 [root@localhost yum.repos.d]# yum clean all 已加载插件:fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast 正在清理软件源: base Cleaning up list of fastest mirrors Other repos take up 156 M of disk space (use --verbose for details) [root@localhost yum.repos.d]# yum repolist 已加载插件:fastestmirror Determining fastest mirrors base | 3.6 kB 00:00:00 (1/2): base/group_gz | 153 kB 00:00:00 (2/2): base/primary_db | 6.1 MB 00:00:00 源标识 源名称 状态 base CentOS-7 - Base 10,073 repolist: 10,073 [root@localhost yum.repos.d]# yum install targetcli -y #安装ISCSI服务端 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 targetcli.noarch.0.2.1.53-1.el7_9 将被 安装 --> 正在处理依赖关系 python-rtslib >= 2.1.fb41,它被软件包 targetcli-2.1.53-1.el7_9.noarch 需要 --> 正在处理依赖关系 python-ethtool,它被软件包 targetcli-2.1.53-1.el7_9.noarch 需要 --> 正在处理依赖关系 python-configshell,它被软件包 targetcli-2.1.53-1.el7_9.noarch 需要 --> 正在检查事务 ---> 软件包 python-configshell.noarch.1.1.1.26-1.el7 将被 安装 --> 正在处理依赖关系 python-urwid,它被软件包 1:python-configshell-1.1.26-1.el7.noarch 需要 --> 正在处理依赖关系 python-six,它被软件包 1:python-configshell-1.1.26-1.el7.noarch 需要 --> 正在处理依赖关系 pyparsing,它被软件包 1:python-configshell-1.1.26-1.el7.noarch 需要 ---> 软件包 python-ethtool.x86_64.0.0.8-8.el7 将被 安装 --> 正在处理依赖关系 libnl.so.1()(64bit),它被软件包 python-ethtool-0.8-8.el7.x86_64 需要 ---> 软件包 python-rtslib.noarch.0.2.1.74-1.el7_9 将被 安装 --> 正在处理依赖关系 python-kmod,它被软件包 python-rtslib-2.1.74-1.el7_9.noarch 需要 --> 正在检查事务 ---> 软件包 libnl.x86_64.0.1.1.4-3.el7 将被 安装 ---> 软件包 pyparsing.noarch.0.1.5.6-9.el7 将被 安装 ---> 软件包 python-kmod.x86_64.0.0.9-4.el7 将被 安装 ---> 软件包 python-six.noarch.0.1.9.0-2.el7 将被 安装 ---> 软件包 python-urwid.x86_64.0.1.1.1-3.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 =========================================================================================================================================================== Package 架构 版本 源 大小 =========================================================================================================================================================== 正在安装: targetcli noarch 2.1.53-1.el7_9 base 75 k 为依赖而安装: libnl x86_64 1.1.4-3.el7 base 128 k pyparsing noarch 1.5.6-9.el7 base 94 k python-configshell noarch 1:1.1.26-1.el7 base 68 k python-ethtool x86_64 0.8-8.el7 base 34 k python-kmod x86_64 0.9-4.el7 base 57 k python-rtslib noarch 2.1.74-1.el7_9 base 104 k python-six noarch 1.9.0-2.el7 base 29 k python-urwid x86_64 1.1.1-3.el7 base 654 k 事务概要 =========================================================================================================================================================== 安装 1 软件包 (+8 依赖软件包) 总下载量:1.2 M 安装大小:5.2 M Downloading packages: ----------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 5.8 MB/s | 1.2 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 数据库已被非 yum 程序修改。 正在安装 : python-six-1.9.0-2.el7.noarch 1/9 正在安装 : pyparsing-1.5.6-9.el7.noarch 2/9 正在安装 : python-kmod-0.9-4.el7.x86_64 3/9 正在安装 : python-rtslib-2.1.74-1.el7_9.noarch 4/9 正在安装 : libnl-1.1.4-3.el7.x86_64 5/9 正在安装 : python-ethtool-0.8-8.el7.x86_64 6/9 正在安装 : python-urwid-1.1.1-3.el7.x86_64 7/9 正在安装 : 1:python-configshell-1.1.26-1.el7.noarch 8/9 正在安装 : targetcli-2.1.53-1.el7_9.noarch 9/9 验证中 : python-urwid-1.1.1-3.el7.x86_64 1/9 验证中 : libnl-1.1.4-3.el7.x86_64 2/9 验证中 : python-ethtool-0.8-8.el7.x86_64 3/9 验证中 : python-rtslib-2.1.74-1.el7_9.noarch 4/9 验证中 : targetcli-2.1.53-1.el7_9.noarch 5/9 验证中 : python-kmod-0.9-4.el7.x86_64 6/9 验证中 : python-six-1.9.0-2.el7.noarch 7/9 验证中 : pyparsing-1.5.6-9.el7.noarch 8/9 验证中 : 1:python-configshell-1.1.26-1.el7.noarch 9/9 已安装: targetcli.noarch 0:2.1.53-1.el7_9 作为依赖被安装: libnl.x86_64 0:1.1.4-3.el7 pyparsing.noarch 0:1.5.6-9.el7 python-configshell.noarch 1:1.1.26-1.el7 python-ethtool.x86_64 0:0.8-8.el7 python-kmod.x86_64 0:0.9-4.el7 python-rtslib.noarch 0:2.1.74-1.el7_9 python-six.noarch 0:1.9.0-2.el7 python-urwid.x86_64 0:1.1.1-3.el7 完毕! [root@localhost yum.repos.d]# systemctl start target #启动 [root@localhost yum.repos.d]# systemctl status target #查询服务状态 ● target.service - Restore LIO kernel target configuration Loaded: loaded (/usr/lib/systemd/system/target.service; disabled; vendor preset: disabled) Active: active (exited) since 日 2022-11-13 00:22:34 CST; 9s ago Process: 1388 ExecStart=/usr/bin/targetctl restore (code=exited, status=0/SUCCESS) Main PID: 1388 (code=exited, status=0/SUCCESS) 11月 13 00:22:34 localhost.localdomain systemd[1]: Starting Restore LIO kernel target configuration... 11月 13 00:22:34 localhost.localdomain target[1388]: No saved config file at /etc/target/saveconfig.json, ok, exiting 11月 13 00:22:34 localhost.localdomain systemd[1]: Started Restore LIO kernel target configuration. [root@localhost yum.repos.d]# systemctl enable target #开机自启 Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service. [root@localhost yum.repos.d]# systemctl disable firewalld #开机补启动防火墙 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost yum.repos.d]# systemctl stop firewalld #关闭防火墙 [root@localhost yum.repos.d]# vi /etc/selinux/config #关闭selinux [root@localhost yum.repos.d]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@localhost yum.repos.d]# hostnamectl set-hostname iscsi01.brick.com #修改主机名 [root@localhost yum.repos.d]# init 6 #重启 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(inter_test_192.168.79.131) at 00:28:25. Type `help' to learn how to use Xshell prompt. [root@iscsi01 /]# 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- ramdisk .............................................. [Storage Objects: 0] o- iscsi .......................................................... [Targets: 0] o- loopback ....................................................... [Targets: 0] />
注:targetcli是用于管理iSCSI服务端存储资源的专用配置命令,它提供交互式配置功能,将iSCSI共享资源的配置内容抽象成“目录”的形式,只需将各类配置信息填入到相应的“目录”中即可。
#以下步骤涉及到的目录
/backstores/block
:iSCSI服务端配置共享设备的位置(在这里添加要共享的磁盘设备并重命名)
/> backstores/block create test1 /dev/iscsi01/test1 Created block storage object test1 using /dev/iscsi01/test1. /> backstores/block create test2 /dev/iscsi01/test2 Created block storage object test2 using /dev/iscsi01/test2. /> backstores/block create test3 /dev/iscsi01/test3 Created block storage object test3 using /dev/iscsi01/test3. /> ls o- / ......................................................................................................................... [...] o- backstores .............................................................................................................. [...] | o- block .................................................................................................. [Storage Objects: 3] | | o- test1 ................................................................ [/dev/iscsi01/test1 (2.0GiB) write-thru deactivated] | | | o- alua ................................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized] | | o- test2 ................................................................ [/dev/iscsi01/test2 (2.0GiB) write-thru deactivated] | | | o- alua ................................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized] | | o- test3 ................................................................ [/dev/iscsi01/test3 (6.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/iqn......xxx/tpg1
:通过在/iscsi目录执行create命令生成iSCSI target名称时自动生成的与iSCSI target名称同名的目录的子目录
acls
:用于存放能够访问iSCSI服务端共享存储资源的验证信息luns
:用于存放可共享的硬盘设备(/backstores/block只是一个预备资源池,但没声明可共享)portals
:用于存放iscsi服务端的ip地址5
/> #模拟两台ISCSI服务器 /> iscsi/ create iqn.2022-11.com.brick.iscsi01:server Created target iqn.2022-11.com.brick.iscsi01:server. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /> iscsi/ create iqn.2022-11.com.brick.iscsi02:server Created target iqn.2022-11.com.brick.iscsi02:server. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /> #创建ACL控制列表,两台服务的列表名称必须一样,否则客户端无法连接两台服务器 /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/acls create iqn.2022-11.com.brick:client01 Created Node ACL for iqn.2022-11.com.brick:client01 /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/luns create /b /backstores/block/test1 /backstores/block/test2 /backstores/block/test3 /bin/ /boot/ /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/luns create /backstores/block/test1 Created LUN 0. Created LUN 0->0 mapping in node ACL iqn.2022-11.com.brick:client01 /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/luns create /backstores/block/test2 Created LUN 1. Created LUN 1->1 mapping in node ACL iqn.2022-11.com.brick:client01 /> iscsi/iqn.2022-11.com.brick.iscsi02:server/tpg1/acls create iqn.2022-11.com.brick:client01 Created Node ACL for iqn.2022-11.com.brick:client01 /> iscsi/iqn.2022-11.com.brick.iscsi02:server/tpg1/luns create /backstores/block/test3 Created LUN 0. Created LUN 0->0 mapping in node ACL iqn.2022-11.com.brick:client01 /> #修改portals /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/portals/ delete 0.0.0.0 3260 Deleted network portal 0.0.0.0:3260 /> iscsi/iqn.2022-11.com.brick.iscsi02:server/tpg1/portals/ delete 0.0.0.0 3260 Deleted network portal 0.0.0.0:3260 /> iscsi/iqn.2022-11.com.brick.iscsi01:server/tpg1/portals/ create 192.168.79.131 3260 Using default IP port 3260 Created network portal 192.168.79.131:3260. /> iscsi/iqn.2022-11.com.brick.iscsi02:server/tpg1/portals/ create 192.168.79.134 3260 Using default IP port 3260 Created network portal 192.168.79.134:3260. /> #最初始化的/> ls o- / ......................................................................................................................... [...] o- backstores .............................................................................................................. [...] | o- block .................................................................................................. [Storage Objects: 3] | | o- test1 .................................................................. [/dev/iscsi01/test1 (2.0GiB) write-thru activated] | | | o- alua ................................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized] | | o- test2 .................................................................. [/dev/iscsi01/test2 (2.0GiB) write-thru activated] | | | o- alua ................................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized] | | o- test3 .................................................................. [/dev/iscsi01/test3 (6.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: 2] | o- iqn.2022-11.com.brick.iscsi01:server .............................................................................. [TPGs: 1] | | o- tpg1 ............................................................................................... [no-gen-acls, no-auth] | | o- acls .......................................................................................................... [ACLs: 1] | | | o- iqn.2022-11.com.brick:client01 ....................................................................... [Mapped LUNs: 2] | | | o- mapped_lun0 ................................................................................. [lun0 block/test1 (rw)] | | | o- mapped_lun1 ................................................................................. [lun1 block/test2 (rw)] | | o- luns .......................................................................................................... [LUNs: 2] | | | o- lun0 ............................................................ [block/test1 (/dev/iscsi01/test1) (default_tg_pt_gp)] | | | o- lun1 ............................................................ [block/test2 (/dev/iscsi01/test2) (default_tg_pt_gp)] | | o- portals .................................................................................................... [Portals: 1] | | o- 192.168.79.131:3260 .............................................................................................. [OK] | o- iqn.2022-11.com.brick.iscsi02:server .............................................................................. [TPGs: 1] | o- tpg1 ............................................................................................... [no-gen-acls, no-auth] | o- acls .......................................................................................................... [ACLs: 1] | | o- iqn.2022-11.com.brick:client01 ....................................................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................................................. [lun0 block/test3 (rw)] | o- luns .......................................................................................................... [LUNs: 1] | | o- lun0 ............................................................ [block/test3 (/dev/iscsi01/test3) (default_tg_pt_gp)] | o- portals .................................................................................................... [Portals: 1] | o- 192.168.79.134: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
5、ISCSI服务客户端配置
[root@localhost ~]# #修改主机名 [root@localhost ~]# hostnamectl set-hostname test01.brick.com [root@localhost ~]# #关闭防火墙 [root@localhost ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# #关闭Selinux [root@localhost ~]# vi /etc/selinux/config [root@localhost ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@localhost ~]# init 6 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(test1_192.168.79.132) at 12:56:26. Type `help' to learn how to use Xshell prompt. [root@test01 ~]# #挂载yum源 [root@test01 ~]# mount /dev/cdrom /mnt mount: 在 /dev/sr0 上找不到媒体 [root@test01 ~]# #查看虚拟机是否连接ISO镜像 [root@test01 ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载 [root@test01 ~]# rm -rf /etc/yum.repos.d/* [root@test01 ~]# cd /etc/yum.repos.d/ [root@test01 yum.repos.d]# scp root@192.168.79.131:/etc/yum. yum.conf yum.repos.d/ [root@test01 yum.repos.d]# scp root@192.168.79.131:/etc/yum.repos.d/*.repo ./ The authenticity of host '192.168.79.131 (192.168.79.131)' can't be established. ECDSA key fingerprint is SHA256:RqX2HnBB90KNzIrKyY7yCTJRMwibwXa8rvZ1BOqizLk. ECDSA key fingerprint is MD5:12:76:62:cb:44:18:7a:92:fd:45:bc:84:8d:bd:dd:54. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.79.131' (ECDSA) to the list of known hosts. root@192.168.79.131's password: CentOS-Base.repo 100% 537 200.5KB/s 00:00 [root@test01 yum.repos.d]# cat CentOS-Base.repo [root@test01 mnt]# cat /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-Base baseurl=file:///mnt gpgcheck=1 gpgkey=file:///RPM-GPG-KEY-CentOS-7 [root@test01 yum.repos.d]# #也可以自己创建一个文件,按照格式书写。 [root@test01 mnt]# yum install iscsi-initiator-utils 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 iscsi-initiator-utils.x86_64.0.6.2.0.874-22.el7_9 将被 安装 --> 正在处理依赖关系 iscsi-initiator-utils-iscsiuio >= 6.2.0.874-22.el7_9,它被软件包 iscsi-initiator-utils-6.2.0.874-22.el7_9.x86_64 需要 --> 正在检查事务 ---> 软件包 iscsi-initiator-utils-iscsiuio.x86_64.0.6.2.0.874-22.el7_9 将被 安装 --> 解决依赖关系完成 依赖关系解决 =========================================================================================================================================================== Package 架构 版本 源 大小 =========================================================================================================================================================== 正在安装: iscsi-initiator-utils x86_64 6.2.0.874-22.el7_9 base 423 k 为依赖而安装: iscsi-initiator-utils-iscsiuio x86_64 6.2.0.874-22.el7_9 base 94 k 事务概要 =========================================================================================================================================================== 安装 1 软件包 (+1 依赖软件包) 总下载量:517 k 安装大小:2.5 M Is this ok [y/d/N]: Y Downloading packages: ----------------------------------------------------------------------------------------------------------------------------------------------------------- 总计 92 MB/s | 517 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : iscsi-initiator-utils-iscsiuio-6.2.0.874-22.el7_9.x86_64 1/2 正在安装 : iscsi-initiator-utils-6.2.0.874-22.el7_9.x86_64 2/2 验证中 : iscsi-initiator-utils-6.2.0.874-22.el7_9.x86_64 1/2 验证中 : iscsi-initiator-utils-iscsiuio-6.2.0.874-22.el7_9.x86_64 2/2 已安装: iscsi-initiator-utils.x86_64 0:6.2.0.874-22.el7_9 作为依赖被安装: iscsi-initiator-utils-iscsiuio.x86_64 0:6.2.0.874-22.el7_9 完毕! [root@test01 mnt]# 添加acl访问控制列表 [root@test01 mnt]# echo InitiatorName=iqn.2022-11.com.brick:client01 > /etc/iscsi/initiatorname.iscsi [root@test01 mnt]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2022-11.com.brick:client01 [root@test01 mnt]# systemctl restart iscsid [root@test01 mnt]# systemctl enable iscsid Created symlink from /etc/systemd/system/multi-user.target.wants/iscsid.service to /usr/lib/systemd/system/iscsid.service. [root@test01 mnt]# systemctl status iscsid ● iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; enabled; vendor preset: disabled) Active: active (running) since 日 2022-11-13 13:15:03 CST; 11s ago Docs: man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) Main PID: 1343 (iscsid) Status: "Ready to process requests" CGroup: /system.slice/iscsid.service └─1343 /sbin/iscsid -f 11月 13 13:15:03 test01.brick.com systemd[1]: Starting Open-iSCSI... 11月 13 13:15:03 test01.brick.com systemd[1]: Started Open-iSCSI.
iscsiadm命令详解
- iscsiadm是个模式化的工具,其模式可通过-m或--mode选项指定,
- 常见的模式有discoverydb、node、fw、session、host、iface几个,
- 如果没有额外指定其它选项,则discoverydb和node会显示其相关的所有记录;
- session用于显示所有的活动会话和连接,fw显示所有的启动固件值,host显示所有的iSCSI主机,
- iface显示/var/lib/iscsi/ifaces目录中的所有ifaces设定。
-l --login | 登入节点(服务器) |
-t --type=type | 这里可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSItarget发送一个可用target列表给initiator; |
-p --portal=ip[:port] | 指定target服务的IP和端口 |
-m --mode | 可用的mode有discovery, node, fw, host iface 和 session |
-T --targetname=targetname | 用于指定target的名字 |
-u --logout | 登出节点(服务器) |
-o --op=OPEARTION | 指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一 |
[root@test01 ~]# iscsiadm -m discovery -t st -p 192.168.79.131 #查询发现记录 192.168.79.131:3260,1 iqn.2022-11.com.brick.iscsi01:server 192.168.79.134:3260,1 iqn.2022-11.com.brick.iscsi02:server [root@test01 ~]# iscsiadm -m node show #查看iscsi发现记录,show 可以忽略 192.168.79.131:3260,1 iqn.2022-11.com.brick.iscsi01:server 192.168.79.134:3260,1 iqn.2022-11.com.brick.iscsi02:server [root@test01 ~]# iscsiadm -m node -o delete -T iqn.2022-11.com.brick.iscsi02:server #删除目标iscsi发现记录 [root@test01 ~]# iscsiadm -m node -o delete #删除所有目标 [root@test01 ~]# iscsiadm -m node -T iqn.2022-11.com.brick.iscsi01:server -p 192.168.79.131 -l #登陆记录 [root@test01 ~]# iscsiadm -m node -L all #登录所有记录 [root@test01 ~]# iscsiadm -m node -u #退出所有登陆 [root@test01 ~]# iscsiadm -m session #查看连接记录 [root@test01 ~]# iscsiadm -m node -o show -T iqn.2022-11.com.brick.iscsi01:server #查看数据结构的树状信息 [root@test01 ~]# iscsiadm -m node –T iqn.2022-11.com.brick.iscsi01:server -p 192.168.79.131 -o update -n node.startup -v automatic #开机自动登陆或者修改/etc/iscsi/iscsid.conf文件,将:#node.startup = automatic 一行前面的#去掉改成node.startup = automatic #操作步骤 1发现2登录3开机启动5挂载硬盘6配置开机自动挂载 [root@test01 ~]# iscsiadm -m discovery -t st -p 192.168.79.131 #发现目标 192.168.79.131:3260,1 iqn.2022-11.com.brick.iscsi01:server 192.168.79.134:3260,1 iqn.2022-11.com.brick.iscsi02:server [root@test01 ~]# iscsiadm -m node -T iqn.2022-11.com.brick.iscsi01:server -p 192.168.79.131 -l #登陆目标 Logging in to [iface: default, target: iqn.2022-11.com.brick.iscsi01:server, portal: 192.168.79.131,3260] (multiple) Login to [iface: default, target: iqn.2022-11.com.brick.iscsi01:server, portal: 192.168.79.131,3260] successful. [root@test01 ~]# iscsiadm -m session tcp: [13] 192.168.79.131:3260,1 iqn.2022-11.com.brick.iscsi01:server (non-flash) [root@test01 ~]# iscsiadm -m node –T iqn.2022-11.com.brick.iscsi01:server -p 192.168.79.131 -o update -n node.startup -v automatic #开机自动登陆 [root@test01 ~]# iscsiadm -m session tcp: [13] 192.168.79.131:3260,1 iqn.2022-11.com.brick.iscsi01:server (non-flash) [root@test01 ~]# lsblk #查看是否成功,多了 /dev/sdb /dev/sdc NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 2G 0 disk sdc 8:32 0 2G 0 disk sr0 11:0 1 9.6G 0 rom [root@test01 ~]# init 6 #重启确认是否成功 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(test1_192.168.79.132) at 16:16:10. Type `help' to learn how to use Xshell prompt. Connecting to 192.168.79.132:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request. Last login: Sun Nov 13 16:21:36 2022 from 192.168.79.1 [root@test01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 2G 0 disk sdc 8:32 0 6G 0 disk sdd 8:48 0 2G 0 disk sr0 11:0 1 9.6G 0 rom
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。