Slackware ARMのサーバーのハードウェアを交換する際の,修正箇所です.
- ルーターのstatic IPの設定
- サーバーのnamed/pz内のファイルのIPv6ローカルリンクアドレス
- サーバーのudevの設定(内蔵ポートがeth0になるよう)
- Dynamic DNSのデータ更新
いずれも,内蔵ネットワークポートのMACアドレスが変更になることに関連してます.
この3番目に気がつかず(eth1になっていた),LAN内で接続できずに,困り果てていました^^;
横断歩道での一時停止は善意ではなく義務 (Powered by WordPress)
Slackware ARMのサーバーのハードウェアを交換する際の,修正箇所です.
いずれも,内蔵ネットワークポートのMACアドレスが変更になることに関連してます.
この3番目に気がつかず(eth1になっていた),LAN内で接続できずに,困り果てていました^^;
昨年の4月に,当サーバーのハードウェアを,Raspberry Pi 3 Model B (RPi3)から,Raspberry Pi Model B+ (RPi3+)に切り替えました.
今朝,rpi-updateをかけたら,新しいkernelがあったのですが,updateのファイルを受信したところで,スタックしてしまいました.
以前もこんなタイミングでハングして,ブート用のSDカードの内容が破損したことがあるので,同じようにブート用のSDカードを初期化し,バックアップから内容を書き込み,再起動してみたところ,いきなり電源容量不足のマークが出てブートしてくれません.
電源アダプターの故障や,つないでいるUSB3.0 HUBの故障の可能性もあるので,それぞれ取り替えてみましたが,電源容量不足の表示が出てブートしない状況のままです.
さらに原因を探るために,サーバーの再起動を遅らせるのも嫌なので,現役を引退したRPi3につなぎ替えて,再起動しました.
必要だったのは,ローカルなIPアドレスの変更(DHCPによる静的割り振り),それにともなうルーターの再起動です.これで良いかと思いましたが,外からサーバーにアクセスできません.ルーターの再起動で外向きのIPアドレスが変わり,ダイナミックDNS情報の更新が必要でした.
これでなんとか,RPi3により原状復帰しました.
このRPi3も故障する可能性がありますので,RPi3+の発注もしました.
自分宛の注意事項です.
Raspberry Piは,バッテリーで駆動される時計を持っていませんから,起動時は1970年1月1日になってしまいます.
Slackware ARMは他のdistroと違って,起動スクリプトにこれをなんとかする仕組みがないので,ntpdが同期して最初に内蔵時計を更新するまで,1970年1月1日のままで,いろいろ不都合が起きます.
そこで,rc.ntpdのstart()内に,ntpdateを使ってとりあえずどこかの時間サーバーから時刻をもらってくるコマンドを書き加えています.
しかし,ntpのパッケージをupdateすると,オリジナルのntpdateコマンドの入ってないスクリプトに上書きされて,この機能が失われてしまいます.
ということで,リブートしたとき1970年1月1日になるようだったら,rc.ntpd-has-ntpdateとして保存しているスクリプトをrc.ntpdに上書きコピーすること(念のため当該スクリプトが更新されていないかも確認する).
以前,Raspberry PiのKernelが4.14系列から4.19系列になったときupdateしたら,rsyncを使う自作バックアップスクリプトを実行すると,rsync実行中にシステムが無応答になったので,しばらくKernelを4.14系列の最終の4.14.98-v7+にとどめていました(「Kernel 4.19.xはRasPiにNGか」).
昨日,久しぶりに,4.19へのupgradeを敢行してみました(4.19.36-v7+)ところ,1度目のバックアップスクリプト実行は,トラブルなく終わりました.
まだ,1度だけですが,以前は1度で確実にトラブりましたので,改善された可能性が高いです.しばらくこのまま様子を見ます.
よく理解しているわけではありませんが,rsyncによるバックアップ中slabtopで観察していると,4.19.23, 25のときは,ext4_inode_cacheのcache sizeは増える一方で制御が効いていないようでしたが,4.19.36では,増えたり減ったりしています(「アンダーコントロール」の状況^^; ).
SLAB関係のbugというよりは,ext4関係のbugなのかもしれません.動きゃいいのでこれ以上調べませんが^^;
当サイトはRaspberry Pi 3 Model B+上で運用されています.前のマシン,Raspberry Pi 3 Model Bは,2017年9月から稼働してまして,通算して1年半ほど大きなトラブルもなく,運用してきました.
ところが,本日,いつものように,rsyncによるバックアップを実行したところ,バックアップスクリプトが途中で止まってしまったばかりでなく,システムが無応答になってしまいました.
前日までとの大きな違いは,rpi-updateによって,これまでの4.14.x系列のkernelが,4.19.x系列(4.19.23)に変更されたところです.
再起動してログをざっと見てみたら,ハングアップする直前に,SLAB関係のメッセージが出ているようです^^;
slabtopコマンドを実行して監視しながらバックアップスクリプトを実行すると,ext4_inode_cacheのCACHE SIZEが増え続け,最後にコンソールが無応答になります.
とりあえず,4.14.x系列(4.14.98)に戻し,同じバックアップスクリプトを実行してみましたが,問題なしです.
2019年2月21日
2019/02/26現在最新のRaspberry Pi 用Kernel 4.19.25で確認したところ,やはり,rsyncによるバックアップ中に,ハングアップします.
2019年2月26日
4.19.36で試したところ,今のところ大丈夫です.しばらく様子を見ます.
2019年4月29日
Kernel 4.19 4.19.x 4.19.y broken kernel Raspberry Pi 3 Model B+