在CentOS服务器中更换SCSI(Small Computer System Interface)卡是一项涉及硬件和软件双重层面的关键操作,无论是因硬件故障升级,还是为了提升存储性能,整个过程都需要周密的准备和严谨的执行,本文将详细介绍在CentOS环境下更换SCSI卡的完整流程,涵盖从前期准备到后期配置验证的每一个环节,确保操作平稳、数据安全。

更换前的准备工作
充分的准备工作是成功更换硬件的基石,可以有效避免操作中断或数据丢失的风险。
数据备份与配置记录
在任何硬件变更之前,首要任务是对所有重要数据进行完整备份,详细记录当前的系统配置信息,这将为后续的故障排查提供重要依据,建议执行以下命令并保存输出结果:
lspci | grep -i scsi:查看当前SCSI控制器的详细信息。lsscsi:列出所有SCSI设备及其挂载点。cat /proc/scsi/scsi:获取内核识别到的SCSI设备列表。lsmod | grep -i scsi:查看当前加载的SCSI相关驱动模块。fdisk -l或lsblk:记录磁盘分区和设备名称(如 /dev/sdb, /dev/sdc)。
硬件与驱动准备
确保新的SCSI卡与服务器主板插槽(如PCIe)物理兼容,访问新SCSI卡制造商的官方网站,确认其驱动程序是否已集成在当前CentOS版本的内核中,如果需要,请提前下载适用于您CentOS版本和内核版本的驱动程序包或源码。
物理更换流程
物理操作相对直接,但需时刻注意静电防护。
- 安全关机:执行
shutdown -h now命令,确保系统完全关闭。 - 断开电源:拔掉服务器电源线,确保操作安全。
- 打开机箱:卸下服务器机箱盖,找到旧的SCSI卡。
- 移除旧卡:佩戴防静电腕带,小心拔下连接在旧SCSI卡上的所有数据线和电源线,然后拧开固定螺丝,将卡从插槽中平稳拔出。
- 安装新卡:将新的SCSI卡对准相同的插槽(或更高速的兼容插槽),均匀用力插入,直至完全就位,拧紧螺丝,并重新连接所有数据线和电源线。
- 恢复与启动:装回机箱盖,接通电源,启动服务器。
系统软件层面的配置与验证
物理更换完成后,CentOS系统需要进行一系列软件层面的配置才能正确识别和使用新的SCSI设备。
硬件识别确认
系统启动后,登录系统,再次执行准备阶段的命令,验证新卡是否被内核正确识别。
| 命令 | 预期变化 |
|---|---|
lspci | grep -i scsi | 输出中应显示新的SCSI控制器型号和厂商信息,与旧卡不同。 |
lsscsi | SCSI设备列表可能会重新排序,设备名称(如[0:0:0:0])可能发生变化。 |
dmesg | grep -i scsi | 内核环形缓冲区中应包含新SCSI控制器的初始化信息和所连接设备的检测日志。 |
驱动程序加载
大多数现代SCSI卡会被CentOS内核自动识别并加载相应驱动,若未被识别,则需要手动加载,首先确认驱动模块文件(通常在 /lib/modules/$(uname -r)/kernel/drivers/scsi/ 目录下)是否存在,然后使用 modprobe <驱动模块名> 命令手动加载,为使其开机自动加载,可在 /etc/modprobe.d/ 目录下创建一个 .conf 文件,如 new-scsi.conf为 alias scsi_hostadapter <驱动模块名>。

更新挂载点与fstab
这是最关键的一步,更换SCSI卡可能导致磁盘设备的逻辑名称发生变化,例如原来的 /dev/sdb 可能变成了 /dev/sdc,如果直接使用设备名挂载,系统将无法正常挂载文件系统。
最佳实践是使用文件系统的UUID(Universally Unique Identifier)进行挂载,因为它在硬件变更后保持不变。
使用
blkid命令查看所有分区的UUID。# blkid /dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="ext4"编辑
/etc/fstab文件,将旧的设备名(如/dev/sdb1)替换为其对应的UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef"。# 修改前 /dev/sdb1 /data ext4 defaults 0 0 # 修改后 UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" /data ext4 defaults 0 0保存文件后,执行
mount -a命令测试所有配置是否正确,若无错误输出则说明配置成功。
服务验证
检查依赖这些存储设备的应用程序或服务(如数据库、文件共享服务)是否运行正常,确保数据读写无误。
相关问答FAQs
问题1:更换SCSI卡后,系统无法启动,进入紧急模式或提示找不到根文件系统怎么办?

解答: 这通常是因为启动分区(/boot)或根分区(/)的设备路径发生了变化,而引导加载程序(GRUB)和 fstab 中仍在使用旧的设备名,解决步骤如下:
- 使用CentOS安装光盘或U盘启动,进入“Rescue Mode”(救援模式)。
- 根据提示,将系统的根目录挂载到
/mnt/sysimage目录下,并执行chroot /mnt/sysimage切换到原系统环境。 - 运行
blkid命令,找到根分区和启动分区的正确UUID。 - 编辑
/etc/fstab文件,将根分区和启动分区的挂载条目更新为新的UUID。 - 编辑GRUB配置文件,对于BIOS启动,是
/boot/grub2/grub.cfg;对于UEFI启动,是/boot/efi/EFI/centos/grub.cfg,找到linux或linux16或linuxefi开头的行,将root=UUID=...参数更新为正确的根分区UUID。 - 退出chroot环境,重启系统,系统应能正常启动。
问题2:新SCSI卡不被当前CentOS内核支持,需要手动安装驱动,该如何操作?
解答: 如果内核没有内置驱动,需要手动安装,具体步骤取决于驱动提供形式:
- RPM包: 如果厂商提供了适用于您系统版本的RPM包,直接使用
yum localinstall <package_name>.rpm或rpm -ivh <package_name>.rpm安装即可,通常安装后会自动配置。 - 源码包: 这是更常见的情况,确保已安装内核开发工具包:
yum install kernel-devel-$(uname -r) gcc make,然后解压驱动源码,进入其目录,通常执行以下命令编译和安装:make make install
安装完成后,驱动模块(
.ko文件)会被复制到内核模块目录,接着运行depmod -a更新模块依赖关系,最后使用modprobe <模块名>加载驱动,为了使其开机自启,同样需要在/etc/modprobe.d/中创建配置文件或将其加入/etc/modules-load.d/配置中。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复