Maison  >  Article  >  Opération et maintenance  >  Que signifie le branchement à chaud d'un disque sous Linux ?

Que signifie le branchement à chaud d'un disque sous Linux ?

零下一度
零下一度original
2017-06-23 11:19:123792parcourir

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.

1.1 Hot Plug

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.

1.2 Branchement à chaud

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn