それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

SATAの物理HDDをホットリリース(取り外し可能)にするホットプラグで抜き差し対応

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://serverfault.com/questions/5336/how-do-i-make-linux-recognize-a-new-sata-dev-sda-drive-i-hot-swapped-in-without

http://blog.jojo.jp/?eid=1173131

https://blogs.it.ox.ac.uk/oxcloud/2013/03/25/rescanning-your-scsi-bus-to-see-new-storage/