SATA って昔からホットプラグ可能なんですよね。
マシンの電源を入れたまま、SATAのHDDをアンプラグしたり、プラグインしたり。
もともとSATAってホットプラグ対応なはず。eSATA とかもその流れだったような。
Linuxで抜き差しするときどうするのかな。
Windowsなら安全な取り外しとかで実現できそうな気もするのだけれど。それLinux だったらどうするのか。
ディスク書き込みキャッシュの待ち時間とか、ファイルをOpenしてて持ってるかもしれない。
SATAディスクの取り外し
可能なら先に、アンマウントしておくべき
# echo 1 > /sys/block/sdX/device/delete
これで、取り外しが可能になる。
SATA ディスクを取り付け後の再認識
今度は、逆に、ディスクを取り付けたときにどう認識するのか。
# echo "- - -" > /sys/class/scsi_host/hostNN/scan
実際にやってみた
ケーブルこそ取り外さないものの、Linuxは認識しなくなることを確認した
root@acid:/home/takuya# cd root@acid:~# echo 1 > /sys/block/sdc/device/delete root@acid:~# sudo ls /dev/sdc ls: /dev/sdc にアクセスできません: そのようなファイルやディレクトリはありません
消えたときのログを見ておく
root@acid:~# grep sdc /var/log/messages Dec 19 20:51:47 acid kernel: [66383.251640] sd 2:0:0:0: [sdc] Synchronizing SCSI cache Dec 19 20:51:47 acid kernel: [66383.251790] sd 2:0:0:0: [sdc] Stopping disk
たしかに取り外されたことがわかる。
こんどは再度認識させておく。
sdc なので 0,1,2 の番号2です。これは、log を grep した 2:0:0:0 からもSATAの番号でわかる。
echo "- - -" > /sys/class/scsi_host/host2/scan
接続したことを確認する。
root@acid:~# echo "- - -" > /sys/class/scsi_host/host2/scan root@acid:~# ls /sys/block/sdc alignment_offset capability device events events_poll_msecs holders power range ro sdc2 sdc4 size stat trace bdi dev discard_alignment events_async ext_range inflight queue removable sdc1 sdc3 sdc5 slaves subsystem uevent
接続したときのログを確認しておく
root@acid:~# grep sdc /var/log/messages Dec 19 20:52:02 acid kernel: [66398.217231] sd 2:0:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB) Dec 19 20:52:02 acid kernel: [66398.217439] sd 2:0:0:0: [sdc] Write Protect is off Dec 19 20:52:02 acid kernel: [66398.217495] sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Dec 19 20:52:10 acid kernel: [66405.726756] sdc: sdc1 sdc2 sdc3 sdc4 sdc5 Dec 19 20:52:10 acid kernel: [66405.728171] sd 2:0:0:0: [sdc] Attached SCSI disk
2017-02-01追記
LVM 管理のディスクだとうまくいかない
参考資料
http://d.hatena.ne.jp/indication/20150701/1435764413
http://piro791.blog.so-net.ne.jp/2010-08-20
http://blog.jojo.jp/?eid=1173131
https://blogs.it.ox.ac.uk/oxcloud/2013/03/25/rescanning-your-scsi-bus-to-see-new-storage/