在Linux系统中,iSCSI(Internet Small Computer System Interface)是一种基于IP存储的网络存储技术,允许用户通过网络将存储设备挂载到本地系统,CentOS作为广泛使用的服务器操作系统,其iSCSI Initiator(启动器)配置过程相对简单,本文将详细介绍如何在CentOS系统中通过iSCSI挂载存储设备,涵盖环境准备、目标发现、认证配置、挂载设置及故障排查等关键步骤。

环境准备与软件安装
在开始配置前,需确保CentOS系统已正确安装并运行,推荐使用CentOS 7或更高版本,以获得更好的兼容性和稳定性,检查系统是否已安装iSCSI Initiator软件包,通过终端执行命令iscsiadm -m discovery,若提示“command not found”,则需安装iscsi-initiator-utils包,使用yum install iscsi-initiator-utils -y命令完成安装,安装后可通过systemctl enable iscsid和systemctl start iscsid确保服务开机自启并运行,确认网络连通性是必要条件,使用ping命令测试与iSCSI目标服务器(Target)的通信状态,确保防火墙未阻止TCP端口3260(iSCSI默认端口)。
发现iSCSI目标服务器
安装完成后,下一步是发现系统中可用的iSCSI目标,iSCSI目标通常由存储管理员预先配置,提供存储设备的IP地址和门户信息,使用iscsiadm -m discovery -t st -p [目标IP地址]命令进行发现,其中-t st表示静态发现,-p后接目标服务器的IP地址,执行成功后,系统会列出可用的目标名称(IQN),例如iqn.2001-04.com.example:storage.disk1,若目标服务器配置了CHAP认证(Challenge-Handshake Authentication Protocol),需在发现阶段或后续阶段配置用户名和密码,以确保连接安全性,发现的目标信息会保存在/var/lib/iscsi/nodes目录下,供后续会话使用。
配置CHAP认证(可选)
若iSCSI目标服务器要求CHAP认证,需在本地系统中配置对应的用户名和密码,使用iscsiadm -m node -T [目标IQN] -p [目标IP地址] --op=update -n node.session.auth.authmethod -v CHAP命令启用CHAP认证,随后分别设置用户名和密码:
iscsiadm -m node -T [目标IQN] -p [目标IP地址] --op=update -n node.session.auth.username -v [用户名]
iscsiadm -m node -T [目标IQN] -p [目标IP地址] --op=update -n node.session.auth.password -v [密码]
若目标服务器配置双向CHAP认证,还需设置反向CHAP的用户名和密码,配置完成后,可通过iscsiadm -m node -T [目标IQN] -p [目标IP地址] -l命令登录目标,测试认证是否成功。

建立iSCSI会话与挂载存储设备
完成目标发现和认证配置后,使用iscsiadm -m node -T [目标IQN] -p [目标IP地址] -l命令建立iSCSI会话,登录成功后,系统会自动将存储设备映射到本地,通过lsblk或fdisk -l命令查看新识别的存储设备,通常显示为/dev/sdb、/dev/sdc等,若存储设备未自动分区,需使用fdisk或parted工具进行分区操作,例如执行fdisk /dev/sdb后,按n创建新分区,w保存并退出,使用mkfs.xfs /dev/sdb1(或mkfs.ext4)格式化分区,最后创建挂载点(如mkdir /mnt/iscsi_storage),并通过mount /dev/sdb1 /mnt/iscsi_storage命令挂载设备,为实现开机自动挂载,需编辑/etc/fstab文件,添加类似/dev/sdb1 /mnt/iscsi_storage xfs defaults 0 0的条目。
故障排查与维护
在iSCSI挂载过程中,可能会遇到连接失败、设备无法识别或性能问题,常见排查步骤包括:检查网络连通性(telnet [目标IP] 3260)、确认防火墙和SELinux设置(semanage permissive -a iscd临时关闭SELinux限制)、查看iSCSI日志(journalctl -u iscsid)及存储设备状态(iscsiadm -m session -P 3),若需断开连接,使用iscsiadm -m node -T [目标IQN] -p [目标IP地址] -u命令注销会话,并可通过iscsiadm -m node -T [目标IQN] -p [目标IP地址] -o delete删除目标记录,定期检查存储健康状态(如smartctl -a /dev/sdb)有助于提前发现潜在问题。
相关问答FAQs
Q1: 如何确认iSCSI会话是否成功建立?
A1: 可通过执行iscsiadm -m session命令查看当前活跃的iSCSI会话,若显示目标IQN和IP地址,则表示会话已建立,使用lsblk命令检查是否出现新的存储设备,或查看/proc/scsi/iscsi目录下的会话信息也可确认状态。

Q2: iSCSI挂载后系统重启无法自动挂载,如何解决?
A2: 首先检查/etc/fstab中的设备标识是否正确(建议使用UUID代替设备名,可通过blkid /dev/sdb1获取UUID),并确保挂载参数(如defaults)正确,确认iscsid服务已设置为开机自启(systemctl enable iscsid),且iSCSI目标配置未丢失,若问题依旧,可手动执行mount -a测试fstab语法是否正确。