zram (3) 〜zramの話ではない〜

zramをswapに使えば,SDカードで動かしているRaspberry Pi 4 Model B (RPi4) の挙動は少しは改善するかという試みですが,その答えはNOでした.遅さはswapだけの問題ではないです.

で,それを検証するのに四苦八苦しました.これまでRPi4にLinux distroをインストールする場合,インストール用イメージをSDカードに焼いて起動して,必要最低限の設定を終えたら,SDカードの中身をSSDにコピーして,多少のおまじないをしてからSSDから起動するということでうまくいってきました.

Raspberry Pi 3 Model B(+)の場合も,ルートディスクの中身をSSDにコピーしてSDカードのvfat内のcmdline.txtを書き換えてOKでした

当然,SSDで動いていれば,適切にその内容をSDカードにコピーすれば,SDカードのみで使える様になるはずです.それがなかなかうまくいきませんでした.

SDカードは,Toshibaのmicro SDカード64GBです.

過程を思い出すのがめんどうなので,結果だけ書きますと,比較のために使用した1TBのHDDはもともとgptで成功.64GB SDカードはUSBアダプターを使ってテストして,dosではだめで,これもgptにしたら成功.成功したところで,RPi4のSDカードスロットに差しても起動するようになった,といったところでしょうか.

なぜSDカードからの起動がdosパーティションではだめで,gptならうまくいくのかは調べません.64GBだからか,Toshiba製だからなのか,解りません.

将来,また今回のことを忘れで試行錯誤する自分宛のメモですが,「cmdline.txtやfstabの記述は,UUIDを使うこと」,です.具体的なディバイス名は,複数のUSBディバイスを使う時や,RPi4本体のSDカードスロットに差し込む時に変わるからです.

もうひとつ,SSD/HDDからSDカードへのrsyncによるコピーは,一晩以上かかります.

CD/DVDはともかくSDカードも「焼く」で良いかの議論はめんどうなので割愛します.
この場合は,RPi4と違って,起動用のSDカードは必要です.なんかちょっと難しいまじないをすればSDカードが要らなくなるようですが,そこまでは追求しません😓

今日は何一つうまくいかない

zram, がSDカードをルートドライブとしているRaspberry Pi 4 Mobel Bにどれくらいパフォーマンスの向上をもたらすか試したくて,SSDで動いているManjaro ARMのそのSSDの内容をまるまるSDカードにコピーして,ブートさせようとしましたが,全くうまくいきません.

SDカードからSSDにコピーするのはほとんど成功しているのに,その逆がうまくいかない訳はありません.

この時期,まだ気温は真夏より低いですが,蒸してきて,個人的には1年で一番体調管理が難しい時期です.ここのところの睡眠不足も影響してか,頭が回りません.

もう一度,公式インストールイメージをSDカードにコピーしてやり直すのが早道,というか回らない頭を使わないで済むと思います.

この他,午前中畑の草取りをしましたが,予定のエリアを完了できませんでした.

他は特に何もしてません😓

zram (2)

結局,SlackwareARMのサーバー,古いCore i7の第2 ワークステーションの第1 OSであるManjaro AMD64, 第2 OSであるDebian AMD64,全部zramをswapに使うようにして,ディスクのswapパーティションを使うのをやめました.

あとは仮想マシンが残っていますが,緊急性はないのでぼちぼちやっていきます

しばらく様子を見たいと思います.

zramをswapにすることはできましたが,思ったような設定はできていません.
Bullseyeでは,zram-toolsをインストールするだけで一番簡単でした.
実験的な意味はあるので気力がみなぎっているときにやってみるつもりです.

zram

Debianのサーバーを立ち上げましたが,久しぶりにLinuxいじりの気分になって,Manjaro ARMを復活させたりして遊んできました.

その中で気がついたのは,旧来,swap専用パーティションやルートディバイス上のファイルをswapに使ってきましたが,最近のdistroではzramというディバイスをswapに使っていることです.

zramについては,ネットで調べればいろいろ詳しく書いてあると思いますが,主記憶の一部を仮想的なディスクに使うものです.同じく主記憶を使うtmpfsとの違いは,保存するデータを圧縮する点のようです.

もちろん,旧来のディスク(実ディスク)のswapも併用可能ですが,zramにうんと高いプライオリティーが与えられて,実ディスクの方に書き込まれることはほとんどないようです.

この方法,Raspberry Piなどディスクとして書き込みが低速なSDカードを使っている場合特に効果的なのはいうまでもありません.

残念ながらSlackwareARM 15.0ではデフォルトではzramが使われませんが,ネットの情報を参考にして設定したら,うまく動くようになりました.

$ swapon
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -2
/dev/zram0 partition 4G 0B 100

こんな感じです.

下記のページを参考にしました.元記事ではzram0〜3までの4つ,それぞれのサイズを512MBにしていますが,筆者の場合は,zram0ひとつだけ作って,その代わりサイズを4GBにしました(RAM 8GBのマシンです).

100など.

お手軽簡単な仕組みははまると超難解

とあるDebianのサーバーですが,MariaDBの移植は予想外に簡単にできました.昔のx86 32bitマシンで使っていたデータベースのネイティブなデータを新しいx86 64bitのデータのディレクトリーに展開しただけです.

続いて,phpMyAdminをインストールしようと調べてみると,Debianにはパッケージがあって,apt install phpmyadmin で基本的にはうまく行くようになっています.

ところがどっこい,このパッケージに付属しているインストールスクリプトは,まだMariaDBなりMySQLがインストールはしてあるが使ったことがない状態を前提としています.

rootのパスワードを設定するところでエラーが出て,提示された次善の策3〜4の選択肢のうち, “Ignore” を選びましたが,そのあとの経過は芳しくありません😓

いろいろ調べたり,自分で考えたりして,2時間ほど試行錯誤しましたが,結局あきらめて, apt remove phpmyadmin をしました.

たぶん,MariaDBのuser databaseから,rootを削除して,もう一度, apt install phpmyadmin を実行すればいいんじゃないかと思います.あるいは,普通にphpmyadminのサイトから公式のパッケージをダウンロードして,自分で展開した方が楽かもしれません.

いずれにせよ,また次回にします.

そりゃまあ既にrootのパスワードは設定してあるから.