コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home AssistantでDIY Smart Home】サーバーのSSD化

【Home Assistant(Hass.io)】
今更ながらサーバをSSD起動で動かしました

「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。

 GW中に書きかけを払い出す計画第2弾。昨年末におこなったサーバ群(と言っても2つ)のSDカードからSSDへの移行です。細かいファイルを読み書きするHome AssistantサーバをSDカードで運用するのは寿命の面でやはり心配なのと、スピードの面でSSDからのブートに変更したいと思います。

 しかし、変更してから半年(InfluxDB用のポータブルSSDを買って机の上に置き去りにしてから数えると2年ほど)も記事にせず放置。まあ、特に何が変わったわけでないので、備忘録的にもイマイチ。

この記事の前提条件
Home Assistant 2022.12.0
Supervisor 2022.11.2
Operating System 9.3
Server Raspberry Pi 4(4GB)/64bit

 上記バージョン(の頃)を前提とした手順です。

1. 準備

1.1. Home Assistantサーバー

Raspberry Pi4 ModleB/4GB
ファン付アルミヒートシンク仕様、写真は4B(4GB)のHome Assistant用のもの。2022年は需給がまったく合致していなくてRaspi4Bは入手困難でしたね。フリマサイトで購入。
SSD (M2. NVMe PCIe, 128GB)
高速化を狙うと言っても所詮はRasPiなので安いやつを選びました。2000円ぐらい。
Logitec M.2 NVMe SSDケース
冷えそう、というイメージから放熱シート付のものを(騙されやすい?…)。SSDよりこっちの方が高い、2500円ぐらい。

1.2. InfluxDBサーバー

Raspberry Pi 4B
ファン付アルミヒートシンク仕様、写真は4B(2GB)のInfluxDB用のもの。Home Assisstant用を横流し
Buffalo ポータブルSSD 250GB
SSD-PG250U3-BC。2021年ごろにInfluxDBで全データバックアップを狙い購入するも放置。7000円ぐらいだったか。

2. ラック(?ケース?)を作る

 最初は元々RasPiサーバーsを置いていた百均のミニラックにSSDケースもポイっと置いていました。放熱面は万全なのですが、ただUSBケーブルのすわりも良くないし、ちょっと雑然とした感じに(写真が無くてすみません)。
 せっかくなので、ぴったりフィットのミニ収納ラックを3Dプリントしてみました。下の写真が印刷したパーツです。真ん中がRasPi4Bを置く部分。左右が足、上のパーツがSSDを取りつける延長ガイド(SSDケースよりRasPi4Bを置く台が大きいので)。

 組み立てるとこんな感じです。

 RasPi4Bを置く上の段には横のコネクタ(電源、MicroHDMI)がグラグラしないようなガイドと後ろのネットワークなどもぷらぷらしないようなスペースを設計。この写真は後ろから見たの写真。前後の枠はパチンと嵌める設計。ガイド付き取付延長パネルは両面テープで枠に貼り付けます。

 RasPi4Bを載せるとこんな感じです。下がBuffaloのSSDですね。

使う人がいるかどうかわかりませんが、一応データはThingiverseに置いておきますね。
(組み合わせのすり合わせはFLASHFORGE社Adventurer4で行いました)
www.thingiverse.com

3. Home AssistantサーバのSSD

3.1. USB Boot可能に

 と、言いながらRasPi4BでUSBブートが出来なかったのは、リリース当初(2020年中ごろだったかと)なので、最近のヤツ大丈夫。2022に入手したものは大丈夫でした。

3.2. Home Assistantイメージの書き込み

 Home AssistantのインストールもRaspberry Pi Imager(もしRaspberry Pi Imagerをインストールしていなければ、ココからダウンロードしてインストールしておく)で出来るようになってます。
 "Other specific-purpose OS" > "Home assistants and home automation" > "Home Assistant (RPi4)"と進んで、PC接続したUSBスト―レージ(SSD (M2. NVMe PCIe, 128GB))を指定して書き込みます。

3.3. Home Assistantインストール&復元

 HAを書き込んだUSBストレージをRasPi4Bにつないで電源を入れてインストール。
 インストール後のバックアップからの復元は下記の記事と同じ。 maky-ba.hatenablog.com

4. InfluxDBサーバのSSD

 これを機にInfluxDB 2.xへアップグレードだ、と息巻いて試しましたが、どうもうまくデータ移行が出来ず、InfluxDB 1.x用に作られている各種スクリプトも変更が上手くいかず、なので結局InfluxDB 1.8のまま…。

4.1. USB Boot可能に

 しばらくHome Assistantサーバに使っていたこのRasPi4Bはブートローダーが古かったので、次の手順でブートローダーを最新化しました。
 まずMicroUSBをWindows PCに挿して、Raspberry Pi Imagerを起動する。OSイメージとして、Misc utility images > Bootloader > USB bootを指定します。ここで作ったMicroUSBを一度RaspPi4Bに挿して立ち上げると、ブートローダーを最新化してくれます。
 この変更は恒久的なのでいったん変更すればUSBストレージを接続している限りそちらからブートしようとします。よしよし。

4.2. OSインストール

 USBブートできるようになったら、あとは下記記事を読み替えてゆけばOKです。
maky-ba.hatenablog.com

  • 1.1 HDD起動可能かの確認
     ⇒ 上記「4.1」でUSBストレージから起動できるようにブートローダーを変更しているので【OK】
  • 1.2 USB HDDの準備
     ⇒記載の通り素のポータブルSSD (250GB)をPCにつなげば【OK】
  • 1.3 USB HDDにRaspberry Pi OS(32bit) Liteイメージを焼く
     ⇒「balenaEtcher」ではなく純正の「Raspberry Pi Imager」を使う。RasPi4Bなので「Raspberry Pi OS Lite(64bit)」("Raspberry Pi OS (Other)"の下だったかな)を指定、設定で「SSH(パスワード認証)」「パスワード設定」をすればssh空ファイルとか設定しないで【OK】
  • 1.4 Rasbperry Piに接続して起動
     ⇒ "sudo raspi-config"で設定することの大半は、Rasberry Pi Imagerでの設定で出来てしまう気が…。

4.3. InfluxDBインストール

 これも上記の記事で大丈夫なはず。

  • InfluxDBインストール
     上記記事の「2. InfluxDBを導入する」の記載を参考に
  • InfluxDBの設定関連
     上記記事の「3. データベースの設定」の記載を参考に
  • InfluxDBのデータのリカバリ
     上記記事の「4. InfluxDB覚書」の記載を参考に

5. おわりに

 タイトルでは「・・・動かしました」と過去形チックに書きましたが、まあ現在完了進行形ですね。今も元気に動いています。SSDもそれほどホットにならずに。でも夏はこれから…。

maky-ba.hatenablog.com