不重启Linux主机来识别新加的硬盘

生产系统在没有计划重启的情况下,不是随时都可以重启,Linux主机在扩容添加lun存储或者磁盘时,通常需要进行重启系统才能识别新添加的lun,本测试通过重置存储缓冲值的方式来发现新添加的存储,达到不重启系统也能发现新添加的磁盘存储的目的

1.当前操作系统环境实验环境

#cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.7 (Santiago)

#uname  -ar
Linux ASMdb01 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

#dmidecode | grep -i vmware
        Manufacturer: VMware, Inc.
        Product Name: VMware Virtual Platform
        Serial Number: VMware-56 4d 8a c5 73 b5 c7 b6-22 cc 7c 33 8e 12 c8 38
        Description: VMware SVGA II

2.添加磁盘

新添加5块磁盘,一块50GB,4块30GB后

利用fdisk -l 查看当前磁盘状态,新添加磁盘并没有被识别出来

#fdisk -l 

Disk /dev/sda: 26.8 GB, 26843545600 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        3264    26008576   8e  Linux LVM

Disk /dev/mapper/VolGroup-LogVol01: 24.5 GB, 24482152448 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-LogVol00: 2147 MB, 2147483648 bytes
Disk identifier: 0x00000000

(注:此处省略fdisk -l 部分详细信息)

3.进入/sys/class/scsi_host目录,在/sys/class/scsi_host下找到符合指向本机iscsi设备主机符号链接表

# ls -al  /sys/class/scsi_host
total 0
drwxr-xr-x.  2 root root 0 Nov 12 15:31 .
drwxr-xr-x. 45 root root 0 Nov 12 15:31 ..
lrwxrwxrwx.  1 root root 0 Nov 12 15:31 host0 -> ../../devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0
lrwxrwxrwx.  1 root root 0 Nov 12 15:31 host1 -> ../../devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1
lrwxrwxrwx.  1 root root 0 Nov 12 15:31 host2 -> ../../devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2

本目录下有三个host,分别是host0,host1,host2,在这三个host中,需要确定本机是host0,host1还是host2,在确定host号后,通过重置相应的host存储缓存值就可以发现新添加的硬件了

4.确定需要重置的host号

利用grep命令,通过过滤smpspi模块的输出值来确定哪个host链接需要重置,分别查看host0,host1,host2,有mptspi模块值输出的,就是本机需要进行重置的host

# grep mpt /sys/class/scsi_host/host0/proc_name

# grep mpt /sys/class/scsi_host/host1/proc_name

host2的输出值是mptspi,最终确定host2是需要重置存储缓冲值的host

# grep mpt /sys/class/scsi_host/host2/proc_name

mptspi

5.确定host后,重置host2的存储缓存值

注:echo "- - -" > /sys/class/scsi_host/host2/scan  “ - - - ”定义了存储在host2中扫描内的三个值,本别是,通道号、SCSI目标ID、LUN值,该命令用通配符替换值,以便它可以检测附加到Linux主机上的新变化。

# echo "- - -" > /sys/class/scsi_host/host2/scan

6.再次查看fdisk,发现系统已经发现新添加的磁盘了,实验完成。

# fdisk -l 

Disk /dev/sda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00066506

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        3264    26008576   8e  Linux LVM

Disk /dev/mapper/VolGroup-LogVol01: 24.5 GB, 24482152448 bytes
 
Disk /dev/mapper/VolGroup-LogVol00: 2147 MB, 2147483648 bytes
 

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
 

Disk /dev/sdc: 32.2 GB, 32212254720 bytes
 

Disk /dev/sdd: 32.2 GB, 32212254720 bytes
 

Disk /dev/sde: 32.2 GB, 32212254720 bytes
 

Disk /dev/sdf: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
注:此处省略fdisk -l 详细输出信息



<think>嗯,用户的问题是Proxmox VE无法检测到插入的硬盘,需要解决方案。首先,我得回想一下Linux系统下硬盘识别的一般流程。当硬盘插入服务器后,通常需要检查硬件连接是否正常,然后让系统描SCSI总线或者让内核识别设备。可能用户没正确硬盘,或者分区没刷。 根据引用[1]提到的添50G硬盘进行扩容,用户可能已经插入了硬盘但系统没反应。第一步应该检查物理连接,比如硬盘是否插牢,电源和数据线是否正常。然后查看dmesg日志,看看内核有没有识别设备。如果内核日志里没有,可能是硬件问题,或者需要描SCSI总线。 接下来,可能需要执行echo命令到/sys/class/scsi_host/hostX/scan触发描。用户可能知道这个步骤,所以需要指导他们如何描。另外,lsblk和fdisk -l命令可以查看是否识别硬盘,如果没显示,可能是描没成功或者硬件问题。 如果描后硬盘出现,但Proxmox VE管理界面还是看到,可能需要检查LVM配置,或者手动创建PV、VG、LV,然后挂载。引用[3]中提到使用NFS挂载,但这里的情况是本地硬盘,可能需要使用LVM或直接分区格式化。 还有可能用户没有更Proxmox的存储配置,需要在Datacenter -> Storage中添的存储。或者权限问题,比如没有正确的访问权限。另外,如果是虚拟机无法识别,可能需要检查PCI直通或者虚拟磁盘的配置。 总之,步骤大致是:检查硬件连接,描SCSI设备,检查系统是否识别,配置LVM或分区,最后在Proxmox中添存储。需要一步步引导用户操作,并注意命令的正确性,避免数据丢失。</think>### Proxmox VE无法检测硬盘的解决方案 --- #### **一、检查硬件识别状态** 1. **查看系统日志** 使用命令`dmesg | grep -i scsi`查看内核是否检测到硬盘。若出现类似`sdX: sda 512-byte logical blocks`的日志,说明硬盘已被识别[^1]。 2. **刷SCSI总线** 若未检测到,手动触发SCSI总线描: ```bash echo "- - -" > /sys/class/scsi_host/host0/scan # 替换host0为实际主机号 ``` 或使用全局描命令: ```bash for host in /sys/class/scsi_host/host*/scan; do echo "- - -" > $host; done ``` --- #### **二、验证硬盘是否挂载到系统** 1. **列出块设备** 执行`lsblk`或`fdisk -l`查看硬盘是否显示。例如: ```bash fdisk -l | grep /dev/sd ``` 若硬盘(如`/dev/sdb`)未出现,需检查硬件连接或更换接口[^3]。 --- #### **三、配置存储到Proxmox VE** 1. **创建物理卷(PV)和卷组(VG)** 若使用LVM: ```bash pvcreate /dev/sdb # 创建物理卷 vgcreate pve-data /dev/sdb # 创建卷组(名称可自定义) ``` 2. **在Web界面添存储** - 登录Proxmox管理界面,进入`Datacenter -> Storage -> Add -> LVM`。 - 输入卷组名称(如`pve-data`),选择内容类型(如`磁盘映像、容器`)。 --- #### **四、直接挂载为目录** 1. **格式化和挂载** ```bash mkfs.ext4 /dev/sdb1 # 格式化分区 mkdir /mnt/new_disk mount /dev/sdb1 /mnt/new_disk # 临时挂载 ``` 永久挂载需编辑`/etc/fstab`: ```bash echo "/dev/sdb1 /mnt/new_disk ext4 defaults 0 0" >> /etc/fstab ``` 2. **添目录存储** 在Proxmox界面选择`Datacenter -> Storage -> Add -> Directory`,填写挂载路径。 --- #### **五、常见问题排查** - **硬盘未格式化**:需使用`fdisk`或`parted`创建分区。 - **权限问题**:确保Proxmox用户(如`www-data`)有访问权限。 - **缓存未更**:重启`pve-cluster`服务: ```bash systemctl restart pve-cluster ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值