ホームページ  >  記事  >  運用・保守  >  Linux におけるディスクのホットプラグとは何を意味しますか?

Linux におけるディスクのホットプラグとは何を意味しますか?

零下一度
零下一度オリジナル
2017-06-23 11:19:123790ブラウズ

まず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

一部のオペレーティング システムには lsscsi コマンドがありません。次の方法を使用して 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

次に、/proc/scsi/scsi ファイルをチェックして、対応する 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

ここには、2 つの直接アクセス SCSI ディスクと 1 つの光ディスクが光学ドライブ CD-ROM を介して接続されています。ここでは SCSI ディスクのみを考慮するため、SCSI 内のこれら 2 つのディスクのロケーターは 2:0:0:0 と 2:0:1:0 になります。 ディスクの挿入を続ける場合、SCSI 内の新しいディスクのロケーターは 2:0:2:0 になります この値文字列は非常に重要です。

1.1 ホットプラグ

ディスクをコンピュータに挿入した後、カーネルはディスクを認識できないため、イベント通知を生成しません。そのため、/sys ディレクトリにファイルは生成されず、ツールはそれを読み取ることができません。システムを再起動すれば確実に問題は解決しますが、Linux はホットプラグをサポートしています。

新しいディスクをホットプラグする方法は、新しい SCSI デバイス情報を /proc/scsi/scsi に書き込むことです。メソッドは次のとおりです:

echo "scsi add-single-device a b c d" >/proc/scsi/scsi

ここで:

a == ホストアダプター ID (最初のものは 0)

b == ホストアダプターの SCSI チャネル (最初のものは 0)

c == ID

d = = LUN (最初の 1 つは 0)

たとえば、上記の例では、次の情報を追加する必要があります:

[root@server2 ~]# echo "scsi add-single-device 2:0:2:0" >/proc/scsi/scsi

もちろん、SCSI バスを再スキャンすることでホットプラグを実装することもできます。上記の例では、scsi ホスト ID が 2 (つまり host2) であるため、host2 がスキャンされ、scsi host2 上のすべてのデバイスが再スキャンされます。

[root@server2 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

どのホストをスキャンするかわからない場合は、ループを使用してすべてのホストをスキャンしてください。

[root@xuexi ~]# for i in `ls /sys/class/scsi_host/`;do echo "- - -" >/sys/class/scsi_host/$i/scan;done

ホットプラグ後、fdisk -l などのコマンドでディスクを認識できるようになります。

1.2 ホットプラグ

ディスクのホットプラグとは、/proc/scsi/scsi 内の対応する SCSI デバイスの情報を削除することです。方法は次のとおりです。

echo "scsi remove-single-device a b c d" >/proc/scsi/scsi

たとえば、ディスク 2:0:2:0 を削除します。

[root@server2 ~]# echo "scsi remove-single-device 2 0 2 0" >/proc/scsi/scsi

削除対象のデバイスはすでに存在し、その完全な情報がすでに /sys にあるため、それ自体のデバイスからも削除されます。

まず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

たとえば、/dev/sdb を削除する場合、それは 2:0:1:0 です。まずはファイル情報を見てみましょう。

[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

その中には、削除、再スキャン、状態の 3 つのファイルがあります。状態は、デバイスが実行されているかどうかを記録します。削除ファイルと再スキャン ファイルは、デバイスの削除と再スキャンに使用されます。

たとえば、デバイスを取り外します (ホットスワップなど)。

りー

以上がLinux におけるディスクのホットプラグとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。