Linuxでは、ディスクを再スキャンせずにディスクサイズが変更されたかどうかを知ることができますか?

Linuxでは、ディスクを再スキャンせずにディスクサイズが変更されたかどうかを知ることができますか?

VMwareでディスクサイズを変更した後(たとえば、10 GBを増やす)、次の手順はLinuxでディスクサイズを再スキャンしてカーネルにこのサイズ変更を認識させることです。

これを行うには、次のコマンドを使用します。

echo 1>/sys/class/block/sda/device/rescan

スクリプトでは、cron数分ごとにジョブを再スキャンして、関連するディスクのサイズを変更する必要があるかどうかを確認します。

再スキャンせずにディスクサイズが変更されたかどうかを確認し、実際にディスクサイズが変更された場合にのみ再スキャンする方法があるかどうか疑問に思います。

これまでは、再検査なしでディスクサイズが変更されたかどうかを確認する方法が見つかりませんでしたが、ここでその答えが得られることを願っています。

私がこの質問をする理由は、この活動に危険がないにもかかわらず、数分ごとに再検索するのが不便だからです。

引用:https://kerneltalks.com/disk-management/how-to-rescan-disk-in-linux-after-extending-vmware-disk/

答え1

ブロックデバイスのサイズが変更されたかどうかを確認する方法は、デバイスを再スキャンすることです。それはすべてです。再検索するかどうかを決定するために、ブロックデバイスを再検索する他の方法を見つける必要はない。

仮想化環境では、2分ごとに実行するのが安全です。再検索が実行されるたびに、再検索は割り込みロックを取得するため、パフォーマンスにわずかな影響がありますが、仮想ブロックデバイスの再検索は非常に高速です。 2分ごとに再検索するのが不便な場合は、頻度を減らすことができます。実際に2分でディスクのサイズ変更に反応する必要がありますか?

(一部の半仮想化ストレージドライバは、ゲストが表示するサイズを自動的に更新するため、再スキャンは不要です。いいえVMwareの場合も同様です。 )

一度見てみたいかもしれませんopen-vm-toolsおそらく、これによりホストのゲスト内でワークロードがトリガーされる可能性があります。これにより、外部からディスクのサイズを変更し、ゲスト内でタスクをトリガーしてボリュームを再スキャンし、サイズを変更できます。私はこのようなことをしたことがないので、実際に可能かどうかはわかりません。

関連情報