
毎年この時期になると「去年もこんなに暑かったっけ?」と同じことを言っている気がするMittyです。皆様如何お過ごしでしょうか。
春先に「Mac mini(M4 256GB)購入&2TB SSDを増量してみた話」を書きました。あれから5ヶ月、Mac miniは会社で24時間動きっぱなしになっております。
で、その外付けSSDが夏になって3回も落ちました(汗。原因を追いかけて対策して、ようやく先週末に「これなら大丈夫っぽい」というところまで来たので、備忘録として残しておきます。
Mac miniを常時稼働にしてみた
前回、「社内サーバー兼開発機」と書きましたが、まさにその通りに使っています。会社に置きっぱなしで電源は入れっぱなし、そこでClaudeに開発をやらせておいて、私はMacBookから繋いで様子を見る、という形です。製造業での工程管理Webサーバーや各種メール処理などもClaudeで実施するようになりました。前回の記事でも「生成AIに開発をお願いする開発サーバー(?)」と書きましたが、まさにClaudeのためのMac miniになっている状況です。
色々と試した結果、ポイントはtmuxの中で動かすことでした。普通にターミナルで起動すると、窓を閉じた瞬間に中身も一緒に死にます。tmuxであれば画面共有でうっかり窓を閉じたりすることもないので、安心な上、各セッションの管理自体もClaudeにお願いする事で各種自動化が可能です。
ソースやビルドデータは前回増設した外付けの2TB SSDに置いてあります。内蔵は256GBしかないので、開発データは全部そちらへ逃がす前提です。ここが今回の話の伏線になります(汗。
連休に落ちた
最初は7月の3連休でした。休み中に仕事をお願いするためにリモートコントロールでつなぐと応答がなく、管理Claude君に確認すると外付けが丸ごと消えている状況とのこと。しかも「アンマウントされた」のではなく、diskutil list にすら出てこない。バスから存在ごと消えている状態でした。
作業ディレクトリが全部その中にあるので、繋いでも何もできません。人もいない、再起動もしていない、スリープも切ってある。それなのに勝手に消える。しばらく意味がわかりませんでした。
最初は「ドックが安物だったか」「ケーブルが抜けかけているのか」あたりを疑いました。バスパワーで動くタイプなので、給電が足りていないのかとも考えました。結果から言うとどれも外れです。
犯人はSSDだけだった
Claudeに調べさせたら、妙なことがわかりました。system_profiler で見ると、ドックのUSB4ブリッジ(ASMedia 246x)は40Gb/sで普通に繋がっているのです。ドックは生きている。その奥のNVMe SSDだけがリンクを落としてハングしていました。
つまり「ドックが外れた」のではなく「SSDが自分で止まった」わけです。となると熱があやしい。設置場所は直射日光の当たる黒い机の上。しかも連休で会社の空調は止まっている。犯人はこれでした。
復旧は簡単で、USB4ケーブルを抜いて20〜30秒待って挿し直すだけ。バスパワー駆動なのでドックごと電源が切れて、ハングしたSSDがリセットされて出てきます。Mac miniの再起動も要りません。ただ、これをやるには会社に行かないといけないんですけど(汗。
5分ごとに温度を測る
原因の見当がついたので、Claudeに監視を仕込んでもらいました。5分ごとにSSDの温度・健康状態・異常終了の回数を記録して、まずいときはメールを飛ばす、というやつです。私は「暑いのが原因っぽいから測っといて」と言っただけですが。
Claudeがメール送信用の認証情報を外付けの中に置いていたんです。お分かりでしょうか。外付けが消えたときに、通知に必要な設定も一緒に消えるという。一番通知してほしい瞬間に黙る仕組みが出来上がっていたわけです。慌てて内蔵ディスク側にコピーさせました。
あと、最初は同じ内容のメールを何度も送る作りだったので、43時間止まっていた回に換算すると516通届く計算でした。バンバンメールが来るのでClaudeに確認すると「テヘペロ」的な感じで修正してましたよ(汗。危ないところです。
置き場所を変えて6度下がった
対策の第一手は、タダで効く「置き場所」からです。窓際の机から、窓から離れた鉄棚の上へ移動しました。仕事中に触ると暑いなとは思っていたので、鉄の棚であれば放熱効果もありイケるのでは?という判断ですね。
結果はSSD 52度 → 46度、コントローラ 64度 → 58度。約6度下がりました。タダにしては上出来です。

ちなみに監視のしきい値もClaudeに見直させました。最初に決めた値だと、7月25日に落ちた回(SSD 63度・コントローラ 76度)で一度もアラートが鳴らなかったのです。測っていても鳴らなければ意味がない。しきい値を下げて計算し直したところ、同じデータでドロップの約2時間前に鳴る位置に収まりました。
61度で落ちた
ところが8月2日の日曜、外気36度の日にまた落ちました。14時37分です。
7月に落ちたときは63度だったのに、今回はそれより2度低い61度で落ちているのです。Claudeは7月のデータから「63度が限界ラインです」と言っていたのですが、1回ぶんの数字で決めつけていたわけですね。
あらためて全期間のログを洗い直させたところ、効いているのは瞬間の温度ではなく、60度を超えている時間の長さのようです。前日の土曜は60度が2時間以上続いても耐えましたが、日曜は60〜61度が2時間半続いて力尽きました。というわけで「実用上の上限は60度」と考えることにしました。
被害のほうは、幸いドライブ自体は無傷でした。メディアエラーはゼロ、予備領域も100%、健康診断もPASSED。データの損失もありません。ソースは全部GitHubに逃がしてあったので、そこは助かりました。
連休もスマホからリモートコントロールでClaudeに作業させているので、困るのは止まっている時間のほうです。土曜の昼に落ちて月曜の朝に出社して直す、というパターンなので、7月の回は43時間、8月の回は約18時間止まりました。抜き差しすれば1分で直るけど、そのために会社には行けない(汗。
あと、これは復旧してから気づいたのですが、外付けが消えても動いていた作業そのものは生き残っていました。ただし置き場所が消えているので中身は何もできない、という状態です。しかも外付けを挿し直しても、生き残ったほうは古い場所を掴んだままで復活しません。結局は全部停止して立て直すのが早い、というのが結論でした。中途半端に生きているのが一番タチが悪いですね。
扇風機が効きすぎた
で、翌日に打った手が小型のUSB扇風機です。鉄棚の上に置いて、Mac miniの背後から風を当てるだけ。

これが効きました。設置してから10分で、SSD 47度 → 42度、コントローラは65度 → 53度。コントローラに至っては12度も下がっています。ここまでとは思っていませんでした。
基準値の変遷を並べるとこんな感じです。

- 窓際の机:SSD 52度 / コントローラ 64度
- 鉄棚へ移動:46度 / 58度
- 鉄棚+扇風機:42度 / 53度
そして先週末に答え合わせです。8月8日〜9日の土日、空調オフ・無人・外気33度という、今までなら確実に落ちていた条件です。結果はピークでSSD 53度 / コントローラ 65度。上限とみている60度まで7度の余裕を残して通過しました。アラートもメールもゼロ。
おまけに8日と9日、朝7時以降8時間ぶんの最高値が完全に一致していました。同じ条件なら同じ結果が出る状態になった、ということですな。
ピークは15時台に来る
外気の最高気温は12時〜13時に来ます。それにつられて、昼過ぎの温度を見ては「今日は頭打ちなので大丈夫です」と報告してくるのですが、SSDのピークはそこから1.5〜2時間遅れて15時台に来るんですね。

8月2日に至っては「今日はかなり有利です」と報告してきた14分後に落ちました(汗。判断が早すぎますね。
雑感
外付けに開発データを逃がした構成そのものは、正解だったと思っています。内蔵256GBでは到底足りませんでしたし、速度の不満も特にありません。
バスパワーの小さいドックに2TBのNVMeを入れて、それを夏の無人の事務所に置きっぱなしにする、というのは思っていたより過酷な使い方だったようです。平日は空調が効いているので何ともないのに、無人の土日だけ落ちる。夏の暑さを感じる季節になってから落ちて気がつくとは。
効いた順に並べると、置き場所・扇風機・監視、でした。監視は温度を1度も下げてくれませんが、下がったかどうかを教えてくれるので、これが無いと対策の善し悪しが判断できません。今回は数字が残っていたおかげで、扇風機の効果もはっきりわかりました。
今後も気温は上がり続けると思うので、扇風機対応で足りなければまた別の方法を考えようと思います。もちろん考えるのはClaudeですけどw
あとはTime Machineですかね。今までコードや大切な情報はクラウドに上げていたので、Time Machine使ってなかったけど、Claudeが「やったほうがええで」とうるさいので外付けに逃がす形で開始しました(汗。



コメント