自宅鯖をCentOS6.10からUbuntu18.04LTSに置き換えました

自宅鯖をCentOS6.10から、サポート期間が長いUbuntu18.04LTSに置き換えました。 Ubuntuは基本rootで操作できず、sudoで行うので結構戸惑いましたが、随分慣れました。 多少ディレクトリ構成も変更しつつ、cronで実行するシェルなんかも見直して、 HDDが壊れた時でもデータのリカバリがし易い構成にしました。

自宅鯖を更新中

現在CentOS6.10で動かしてる自宅鯖はWordPressを動かすために通常のCentOS6.10標準のパッケージから外れて、PHP7.2、mysql5.7を入れたりして何とか凌いでいますが、 久しぶりにBuildroot環境を構築してみようと思ったら、最新のBUildrootはどうやらPython2.7以上が必要との事で、 流石にCentOS6.10から置換を計画中で、パッチ提供サポート期間が10年に延びたUbuntu18.04LTSに変更しようと考えています。 ubuntu18.04LTSのserver版を入れてから、不足するパッケージをaptでその都度追加していますが、 ubuntu18.04LTSのserver版、最初はcpuinfoすら動いていないので、FANが常に最高速で回っていました。 apacheも2.2系列から2.4系列だとconfファイルの構成と文法が幾つか変更になって、これはこれでかなり面倒だったりします。

PHPとMySQLをアップグレード

CentOS6.10で通常インストールされるPHP5.3.3ではWordPressのプラグインで問題が出てきたので、 remiレポジトリを追加してPHP 7.1.20にアップグレードしました。 PHPをアップグレードすると、大抵は連携しているMySQLもアップグレードする必要があるので、 MySQLも5.7にアップグレードしました。 本当は、CentOS自体を6から7にアップグレードした方が良く、 途中まではIntelのNUCのNUC5CPYHにCentOS7を入れて、移行環境を作っていたのですが、 現在ブログを動作させている、DN2820FYKHのCentOS6.10でPHPとMySQLをアップグレードしてから、 何処かのタイミングで置き換えた方がリスクが少なく出来ると考えて、PHPとMySQLのアップグレードに留めました。

ようやくorange pi pc2にOSを入れた

TrancendのULTIMATE600xシリーズの16GBのMicroSDHCのR/W性能の確認が終わったので、 先日中国のAliExpressで買った「orange pi pc2」にOSを入れてみた。 インストールしたのは、「Ubuntu_Desktop_Xenial_xfce4_PC2_V1_0_0.img」と言うイメージ。 ここからダウンロードします。 xzで圧縮されているので、Windowsで作る場合は、7zip等で解凍する必要があります。 解凍した後は、imgファイルをWin32DiskImager等を使用してMicroSDHCに展開してあげます。 作った後は、「orange pi pc2」のMicroSDスロットに挿して、起動しますが、 そのままだとファイルシステムが4GBしか使っていないので、 16GBまで拡張してあげます。 ファイルシステムのサイズを変更し、日本語環境にしました。 ここまでの手順を残した方が良いと思いましたが、 何せ試行錯誤したので、もう一回やらないとダメかもw あとは幾らMLC NANDのMicroSDHCとはいえ、 ログファイルを頻繁に書き込まれるとフラッシュメモリの劣化が怖いので、 ログの出力先をtmpfsに変更する必要があります。 CORETEX-A53のクアッドコアなので、サクサク動く感じです。 ただ、動画再生はこのままでは厳しいようで、 YOUTUBEとか開くとカクカクします。 詳しく原因を追ってませんが、ダウンクロックしているのかな? こんな環境がたった2500円程度(全て込でも5000円程度)で実現できているのが驚きです。

多分、サーバのディスクがトンだ

今日どうもサーバにアクセスできなくて、 色々調査してみたのだが、どうやらサーバに使用している、 NUCのDN2820FYKH2に搭載した、ディスクがトンだっぽい。 以前から、MicroSDHCにバックアップするシェルを書いて、 cronで動作させる仕組みを構築していたのだが、 どうもUSBに負荷を掛けると、Linuxからデバイスが認識されなくなって、 途中で頓挫していたのだが、そのまま放置プレイしていた矢先でした。 今は実家のDN2820FYKH2ではなく、現在住んでいる所のDN2820FYKH2で 動かしているが、かなりデータリカバリが大変になりそうな感じ。 まぁトンだと思われる原因は、ウェスタンデジタルのIntelliPeakだと思われ、 現にこっちのハードディスクのS.M.A.R.Tの「Load Cycle Count」も22万回を超えていたので、 慌ててIntelliPeakを無効にしましたが、何も考え無しに、ノート用のハードディスクを サーバ用途で使うのは危険という事ですね。 という事で、バックアップは大事だよと言うお話しでしたw

USBメモリにバックアップするシェルを書いたわけだが

最近はフラッシュメモリの価格も安くなり、 自宅鯖のバックアップに丁度良いかなと思って、 小型のMicroSDXCカードリーダと64GBの格安Team製のMicroSDXCカードを購入して、 タブレットに64GBのMicroSDXCカードを挿して代わりにMicroSDHCの32GBのMicroSDHCカードを捻出し、 秋葉で購入してきた、MicroSDXCカードリーダに装着しました。 まぁ、そのように32GBのMicroSDHCを捻出したのはその程度の容量があれば何とかなりそうだったので、 64GB挿しておくのは勿体ないと思ったからですね。 それでもって、モニタの裏にコバンザメの如くVESAマウントで装着された、 DN2820FYKHのUSB端子に装着します。 えっと鋭い方はお気づきかと思いますが、当然の如くDN2820FYKHは 2台持っていたりしますw ちなみに、新型のBraswell搭載のNUC5CPYHの方はVGA端子あるんですが、 1世代古いDN2820FYKH方にはHDMI端子しか無いんですね。 使用しているモニタの入力端子はHDMIが2つ、DVI1つ、VGA1つですが、 HDMIとDVIは既に埋まってしまっているため、VGAからHDIMに変換するケーブルを調達して付けました。 テストサーバ用途なので、時々画面が見れれば良いような状況ですので、これで充分です。 それで、肝心の自宅鯖のバックアップですが、 以前書いたシェルを、継ぎ足し継ぎ足し使っている感じですが、 このシェルを書き換えて、USBカードリーダへファイルを転送する処理を追加したわけです。 ただ、汎用性も考えてVFATで使うので、splitコマンドで圧縮したバックアップファイルを分割するわけですが、 当初2048MBに設定したら、転送中にマウントがビジーな状態になって、プロセスをkillしないとダメになるので、 分割ファイルサイズを256MBにしてもやはり途中でビジーな状態となる。 こりゃ、USBカードリーダが微妙かなと思っているので、別のカードリーダでテストして、 問題無ければ、別のカードリーダを使う予定。

自宅鯖のデータバックアップを考える

自宅鯖のマシンをDN2820FYKにリプレースしたものの、 搭載しているハードディスクがノート用の2.5inchであるため、 通常の3.5inchのハードディスクよりも24H動作させる場合、故障し易い。 USB3.0が搭載されているので、外付けのハードディスクを接続するのも有りかと思ったが、 cronで定期的にデータを固めてUSBメモリや小さなMicroSDカードリーダーに退避させるのも良いかなと考えた。 最近のUSBメモリやMicroSDは低価格で大容量になったが、 SLCやMLCを使用していた頃よりも書込み可能回数が大幅に低下しているため、 可能な限りライトするデータ量を減らして、尚且つ全体の領域を平均的に使ってあげる必要がある。 CPUも以前のマシンよりかは速くなったので、 この際、高圧縮率なxz圧縮に変更して圧縮後のファイルを小さくするかな。 バックアップの方法も以下のような感じかな。 1回フルバックアップ取得後、毎日差分バックアップを取って行って、 容量が切迫したら全体を消去して、フルバックアップから再スタート。 まぁ、消去せずにSFTPで別のマシンにバックアップデータを転送するのも良いかな。

ここ最近は・・・

Linuxカーネルのハック的な事をやっていたりするけど、 対象のバージョンのカーネルがとあるデバイスに対応していない場合、 少し新し目のカーネル内のデバイスモジュールとdiffを取って、 patchあてて何とか認識するようにするんだけど、もっと新しいカーネルじゃないと対応していない時とかは、 殆どソースが変更になっていたり、そもそもカーネルの内部の関数が丸っきり違っていたりするので、 かなり苦労する。 3.0.XX辺りのLinuxカーネルとかは、全体で1000万ステップは余裕で越えているので、 全体を詳細まで把握するのは時間的に見ても不可能だしねぇ~。 逆に考えると、それだけ開発が活発で進化を遂げているOSと言う事なので、 実際、目の前に見えないけどあらゆる場所でLinuxが黒子として裏方で動作している。 10年前とは比べ物ならない程にね。

半年程動いていた鯖

もう一台の待機していた方の鯖構築が終わりましたので、 今日止めて中を開けてエアーダスターで清掃を行いました。 半年でこの程度ホコリが付着しています。 思ったほど面白く無かったですね(W コレが発熱が激しくガンガンファンを回している鯖で、 尚且つホコリの進入を防ぐような対策をとってなかったら半端無いんでしょうね。 別の角度から。 窓開けて一気にホコリを吹き飛ばしました。

サーバ切替え完了

結局、CentOSとSuSEを諦め、VineLinuxに変更しました。 なんかCentOSに比べて、体感出来るほどhttpdが軽いです。 ただしApache バージョン 1.3.33になってしまいました。 まぁ、特に2.0.XXは必要としていないのでこれで良いでしょう。

CentOSやSuSEでいろいろやってみましたが、大きなファイルを解凍したりFTPで 転送するだけで落ちてしまう程不安定でした。 元々C3はP5世代のCPUを無理矢理P6世代にのせたと言う噂も聞きますので、 新しいKernel2.6は不安定なのかもしれません。