【One Mix 3】Ubuntu 20.04 ssd用設定

Windows 10 だとそれなりにSSDに配慮した設定になっているとは思うが、LinuxはSSDに配慮されていないので、ちゃんと防護策を講じておく必要がある。

ネタ的には拙ブログ次の記事の応用

raspberry pi3 ログをramdisk化

監視カメラとして24時間稼働で、SDカードで運用していた raspberry pi3 は 2年位でSDカードが壊れた。/var/log/syslog とか頻繁に書き込むから、1年365日動かしていれば、2年位で万単位の書き込みになるだろう。

OneMix3 はサーバー運用しないから、そんなに神経質になる必要も無いのだろうが、やるだけはやっておこうという事で、その時に使ったramdisklog というスクリプトを入れる。

だが、困った事に Ubuntu 20.04 では、SysVInit から systemd への移行が進んでいるのか、既に insserv が存在しない。

systemd の作法に基づいて、サービス化してみたのだが、起動途中で止まる。
[/etc/systemd/system/ramdisklog.service] ×ダメな例

プログラムの性質上、ramdisk OK → /var/log /var/tmp /tmpをramdisk化→rsyslogd 起動 の様になっているので、エラーがログに記録されておらず、何で躓いているのかさっぱり分からん。

grub の設定で起動時の quiet を止めたら見えるかもしれないが、(‘A`)マンドクセ
そもそも、わしは「さあ、Ubuntuを無事起動することができるのか!?」ってゲームやってんじゃなくて、ramdisk化したいだけなんだよ!

/etc/init.d/ramdisklog と配置して、
# update-rc.d ramdisklog defaults

再起動して df -h してみると、

無事イケましたな 🙂

他には、ファイルシステムに noatime 追加

[/etc/fstab]

SSDは、trim がどーたらという話を聞いた事があるが、

こんな有様なので、そしーてぼくは途方に暮れる〜♪

“hdparm -I /dev/nvme0” で検索したら、
NVMe ストレージの揮発性内部キャッシュ – 誰かの役に立てばいいブログ」を発見。

NVMe というのは PCIe バスに直接つないでデータを保存できるストレージの共通規格で、nvmexpress.org で仕様が公開されています。最新の仕様は rev. 1.3です。

HDD や SSD のようなものではあるんですが、hdparm コマンドで設定することはできず、ベンダが提供するツールか、NVMe 仕様に基づいてコントロールする OSS の github.com/linux-nvme/nvme-cli を使って設定します。この記事では OSS の nvme-cli を使っています。

なるほど PCIe接続だから、hdparmでは情報が取れんのか。
“nvme-cli” というキーワードを得たので、

ありましたな 🙂

しかし、インストールしてもコマンドが存在せぬ???
dpkg -L nvme-cli でファイル見たら、マニュアルとかサービスとかのファイルだけで、コマンドが無い。

うーん…。大元の github に色々書いてあるので、読んでみるか。