CentOS 7 挂载 IP SAN

环境描述

IP SAN为Dell EQL PS4100,创建卷名称ODB01,分别设置指定IP允许访问和CHAP账户访问。

IP SAN对外服务IP:10.3.6.10

CentOS 1908 7.7:10.3.5.121

1. 安装iSCSI initiator和iscsiadm

iscsiadm是基于命令行的iscsi管理工具,提供了对iscsi节点、会话、连接以及发现记录的操作。

yum install -y iscsi-initiator-utils
cat /etc/iscsi/initiatorname.iscsi  #配置文件
systemctl enable iscsi
systemctl start iscsi
systemctl status iscsi
ss -tnl
iscsiadm是个模式化的工具,其模式可通过-m或--mode选项指定,常见的模式有discovery、node、fw、session、host、iface几个,
如果没有额外指定其它选项,则discovery和node会显示其相关的所有记录;session用于显示所有的活动会话和连接,fw显示所有的启动固件值,
host显示所有的iSCSI主机,iface显示/var/lib/iscsi/ifaces目录中的所有ifaces设定。

iscsiadm命令参数如下:
iscsiadm -m discovery [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ]
iscsiadm -m node [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ [ -T tar-getname -p ip:port -I iface ] [ -l | -u | -R | -s] ] [ [ -o operation ]


-d, --debug=debug_level   显示debug信息,级别为0-8;
-l, --login
-t, --type=type  这里可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSI target发送一个可用target列表给initiator;
-p, --portal=ip[:port]  指定target服务的IP和端口;
-m, --mode op  可用的mode有discovery, node, fw, host iface 和 session
-T, --targetname=targetname  用于指定target的名字
-u, --logout
-o, --op=OPEARTION:指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一;
-I, --interface=[iface]:指定执行操作的iSCSI接口,这些接口定义在/var/lib/iscsi/ifaces中;

2.发现目标

默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是10.3.6.10,运行下列命令:

iscsiadm -m discovery -t sendtargets -p 10.3.6.10:3260  #省略如下
iscsiadm -m discovery -t st -p 10.3.6.10
#这里发现两个卷,分别是EQL上定义的odb01和odb02
10.3.6.10:3260,1 iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01
10.3.6.10:3260,1 iqn.2001-05.com.equallogic:4-771816-f4c8bdc2b-db40053bc665dd3a-odb02

3. 登入节点

以上面被发现的目标为例

iscsiadm -m node –T iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01 -p 10.3.6.10:3260 -l
# 其中iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01是目标名

Logging in to [iface: default, target: iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01, portal: 10.3.6.10,3260] (multiple)
Logging in to [iface: default, target: iqn.2001-05.com.equallogic:4-771816-f4c8bdc2b-db40053bc665dd3a-odb02, portal: 10.3.6.10,3260] (multiple)
Login to [iface: default, target: iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01, portal: 10.3.6.10,3260] successful.
Login to [iface: default, target: iqn.2001-05.com.equallogic:4-771816-f4c8bdc2b-db40053bc665dd3a-odb02, portal: 10.3.6.10,3260] successful.

如果要在系统启动时自动登入

iscsiadm -m node –T iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01 -p 10.3.6.10:3260 --op update -n node.startup -v automatic
退出target会话或卸载iscsi设备(例如退出ipsan-node01节点的target会话):
# iscsiadm -m node -T node -T iqn.2018-02.com.node01.san:1 -p 192.168.10.17 -u

删除target条目的记录(例如退出ipsan-node01节点的target条目的记录):
# iscsiadm -m node -T node -T iqn.2018-02.com.node01.san:1 -p 192.168.10.17 -o delete

特别注意:
在客户端删除了之前discovery发现的可用的target条目,则重启或重启服务后将不会自动进行重连接。
# ls /var/lib/iscsi/send_targets/
# ls /var/lib/iscsi/
# rm -rf /var/lib/iscsi/*
# ls /var/lib/iscsi/

登入需验证码的节点:

(1)开启认证
iscsiadm -m node -T [iSCSI目标名称] -o update --name node.session.auth.authmethod --value=CHAP
#使用-等于--op
#[iSCSI目标名称]即iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01
(2)添加用户
iscsiadm -m node -T [iSCSI目标名称] --op update --name node.session.auth.username --value=[用户名]
(3)添加密码
iscsiadm –m node –T [iSCSI目标名称] –op update –name node.session.auth.password –value=[密码]

4. 查看分区

fdisk -l /dev/sd[a-z] //或者直接使用命令"fdisk -l"

Disk /dev/sdb: 107.4 GB, 107379425280 bytes, 209725440 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 107.4 GB, 107379425280 bytes, 209725440 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

5. 格式化设备

mkfs.xfs /dev/sdb

如欲将设备格式化为ext4文件系统,运行

mkfs.ext4 /dev/sdb

使用LVM分区

参看其他文章

6. 挂接设备

这里挂载为/opt目录

mkdir /opt

运行mount命令:

mount /dev/sdb /opt

针对iscsi设备的特殊mount选项

运行df –h可以看到:

/dev/sdb                 100G   33M  100G   1% /opt

iscsi设备被成功挂接,可以当作常规存储设备使用了。

如果要在系统启动时自动挂接

编辑/etc/fstab

加入一行:

/dev/sdb /opt                    xfs    defaults        0 0

重启测试无效!

创建自己的systemd服务

Step1:编写属于自己的unit文件,命令为mount-fs.service,整个文件如下:

echo '
[Unit]
Description=mount-fs Service
#等待网络启动,等待iscsi服务启动
After=network.target network.service NetworkManager.service iscsi.service

[Service]
Type=oneshot
ExecStart=/bin/bash /root/mount-fs.sh
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target
' > /usr/lib/systemd/system/mount-fs.service

Step2:将上述的文件拷贝到RHEL 7系统中/usr/lib/systemd/system/*目录下

Step3:编写unit文件中ExecStart=/bin/bash /root/mount-fs.sh所定义的mount-fs.sh文件,将其放在定义的目录当中,此文件是服务的执行主体。文件内容如下:

echo '
#!/bin/bash
mount /dev/sdb /opt
' > /root/mount-fs.sh

Step4:将mount-fs.service注册到系统当中执行命令:

systemctl enable mount-fs.service

输出:

Created symlink from /etc/systemd/system/multi-user.target.wants/mount-fs.service to /usr/lib/systemd/system/mount-fs.service.

输出表明,注册的过程实际上就是将服务链接到/etc/systemd/system/目录下。

取消服务

systemctl disable mount-fs.service
rm -f /usr/lib/systemd/system/mount-fs.service
rm -f /root/mount-fs.sh
如果磁盘之前有过扩容,想让扩容后的磁盘生效,则需要先重启服务器,umount掉挂载的文件夹(umount dir_name),执行

e2fsck -f /dev/sdb   # 诊治数据磁盘,返回磁盘信息
resize2fs /dev/sdb   # 重置数据磁盘大小

之后再重新进行上述的mount,不用担心,重新mount 数据不会丢失

7. 登出节点

首先解除挂接

umount /opt

登出

iscsiadm -m node –T iqn.2001-05.com.equallogic:4-771816-cd88bdc2b-49e0053bc635dd3a-odb01 -p 10.3.6.10:3260 –u