Maison >Opération et maintenance >exploitation et maintenance Linux >Que signifie le branchement à chaud d'un disque sous Linux ?
Obtenez d’abord les informations sur le périphérique scsi.
[root@server2 ~]# lsscsi [2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda [4:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
Certains systèmes d'exploitation n'ont pas la commande lsscsi, vous pouvez utiliser la méthode suivante pour obtenir des informations sur le périphérique scsi.
[root@server2 ~]# ll /sys/bus/scsi/drivers/sd/total 0lrwxrwxrwx 1 root root 0 Jun 22 17:29 2:0:0:0 -> ../../../../devices/pci0000:00/0000:00:10.0/host2/target2:0:0/2:0:0:0--w------- 1 root root 4096 Jun 22 17:29 bind--w------- 1 root root 4096 Jun 22 2017 uevent--w------- 1 root root 4096 Jun 22 17:29 unbind
[root@server2 ~]# ll /sys/bus/scsi/drivers/sd/2\:0\:0\:0/block/total 0drwxr-xr-x 10 root root 0 Jun 22 2017 sda
Vérifiez ensuite le fichier /proc/scsi/scsi pour obtenir le fichier correspondant détails du périphérique scsi.
[root@server2 ~]# cat /proc/scsi/scsi Attached devices:Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: VMware, Model: VMware Virtual S Rev: 1.0 Type: Direct-Access ANSI SCSI revision: 02Host: scsi4 Channel: 00 Id: 00 Lun: 00 Vendor: NECVMWar Model: VMware SATA CD01 Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 05Host: scsi2 Channel: 00 Id: 01 Lun: 00 Vendor: VMware, Model: VMware Virtual S Rev: 1.0 Type: Direct-Access ANSI SCSI revision: 02
Ici, il y a deux disques scsi à accès direct et un disque optique connecté via le lecteur optique cd-rom. Nous ne considérons que les disques scsi, donc les localisateurs de ces deux disques en scsi sont 2:0:0:0 et 2:0:1:0. Si vous continuez à insérer un disque, le localisateur du nouveau disque dans scsi est 2:0:2:0 Cette chaîne de valeur est très importante.
Après avoir inséré un disque dans l'ordinateur, le noyau ne générera aucune notification d'événement car il ne peut pas le reconnaître, donc aucun fichier ne sera généré dans le répertoire /sys. l'outil ne peut pas le lire. Le redémarrage du système peut certainement résoudre le problème, mais Linux prend en charge le branchement à chaud.
La façon de brancher à chaud un nouveau disque consiste à écrire les informations du nouveau périphérique scsi dans /proc/scsi/scsi. La méthode est la suivante :
echo "scsi add-single-device a b c d" >/proc/scsi/scsi
où :
a == identifiant de l'adaptateur hôte (le premier étant 0)
b == Canal SCSI sur l'adaptateur hôte (le premier étant 0)
c == ID
d == LUN (le premier étant 0)
Par exemple, dans l'exemple ci-dessus, il doit ajouter les informations suivantes :
[root@server2 ~]# echo "scsi add-single-device 2:0:2:0" >/proc/scsi/scsi
Bien sûr, la nouvelle analyse du bus scsi peut également implémenter un branchement à chaud. Étant donné que dans l'exemple ci-dessus, l'ID d'hôte scsi est 2 (c'est-à-dire hôte2), l'hôte2 est analysé, donc tous les périphériques sur l'hôte scsi2 seront réanalysés.
[root@server2 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
Si vous ne savez pas quel hôte analyser, utilisez simplement une boucle pour tous les analyser.
[root@xuexi ~]# for i in `ls /sys/class/scsi_host/`;do echo "- - -" >/sys/class/scsi_host/$i/scan;done
Après le branchement à chaud, des commandes telles que fdisk -l peuvent reconnaître le disque.
Le branchement à chaud d'un disque consiste à supprimer les informations du périphérique scsi correspondant dans /proc/scsi/scsi. La méthode est la suivante :
echo "scsi remove-single-device a b c d" >/proc/scsi/scsi
Par exemple, supprimez le disque 2:0:2:0.
[root@server2 ~]# echo "scsi remove-single-device 2 0 2 0" >/proc/scsi/scsi
Étant donné que l'appareil à supprimer existe déjà et que ses informations complètes se trouvent déjà dans /sys, il est également supprimé de son propre appareil.
Vérifiez d'abord les informations sur le périphérique scsi.
[root@server2 ~]# lsscsi [2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda [2:0:1:0] disk VMware, VMware Virtual S 1.0 /dev/sdb [4:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
Par exemple, si vous souhaitez supprimer /dev/sdb, c'est 2:0:1:0. Jetons d'abord un coup d'œil aux informations de son fichier.
[root@server2 ~]# ls /sys/bus/scsi/drivers/sd/2\:0\:1\:0/block/ evt_lun_change_reported model scsi_level bsg/ evt_media_change power/ statedelete evt_mode_parameter_change_reported queue_depth subsystem/device_blocked evt_soft_threshold_reached queue_ramp_up_period timeout device_busy generic/ queue_type type dh_state iocounterbits rescan uevent driver/ iodone_cnt rev unpriv_sgio eh_timeout ioerr_cnt scsi_device/ vendor evt_capacity_change_reported iorequest_cnt scsi_disk/ vpd_pg80 evt_inquiry_change_reported modalias scsi_generic/ vpd_pg83
Il contient 3 fichiers : supprimer, réanalyser et état. L'état enregistre si l'appareil est en cours d'exécution. Les fichiers de suppression et de nouvelle analyse sont utilisés pour supprimer et réanalyser l'appareil.
Par exemple, supprimez l'appareil, c'est-à-dire échange à chaud.
[root@server2 ~]# echo 1 > /sys/bus/scsi/drivers/sd/2\:0\:1\:0/delete
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!