サーバを再起動したら ZFS が起動しなくなった。

はじまり

台風が来たので、昨夜サーバを停止し、
今朝(昼)サーバを起動したらファイルサーバが正常に動いていません。
といっても、シンプルなディスク構成の部分は動いていて、zfsプールの箇所だけ動いてないという、本気で嫌なやつ。

調査

調べてみると、zfsの起動ができていない。

[root@xfs ~]# zfs --version
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
[root@xfs ~]# /sbin/modprobe zfs
modprobe: ERROR: could not insert 'zfs': Invalid argument
[root@xfs ~]# dkms --version
dkms:2.6

dmesg

[    3.756206] zfs: disagrees about version of symbol vn_getattr
[    3.756210] zfs: Unknown symbol vn_getattr (err -22)
[    3.758575] zfs: disagrees about version of symbol vn_getattr
[    3.758577] zfs: Unknown symbol vn_getattr (err -22)
[    3.760831] zfs: disagrees about version of symbol vn_getattr
[    3.760835] zfs: Unknown symbol vn_getattr (err -22)
[    3.763547] zfs: disagrees about version of symbol vn_getattr
[    3.763550] zfs: Unknown symbol vn_getattr (err -22)
[    3.765624] zfs: disagrees about version of symbol vn_getattr
[    3.765627] zfs: Unknown symbol vn_getattr (err -22)
[    4.176160] zfs: disagrees about version of symbol vn_getattr
[    4.176163] zfs: Unknown symbol vn_getattr (err -22)

調べると、モジュールのバージョンがかみ合ってないとか情報が。。

対応

最終的にはこちらを実行
https://github.com/zfsonlinux/zfs/issues/3986

[root@xfs ~]# yum erase zfs zfs-dkms libzfs2 spl spl-dkms
[root@xfs ~]# yum install zfs
[root@xfs ~]# reboot

ちなみに

reboot前に

/sbin/modprobe zfs
zpool status

をしたところ、プールが存在しなくて変な汗が出ましたが、
再起動したらプールが存在していました。

変な汗をかくのは嫌なので、もうちょっと知識を付けたいところ。
公式GitHubに書いてあるとおり、DKMS style はアップグレード毎にbuildが必要ってことみたいです。
普通は kABI-tracking kmod でインストールしろとのこと。

Raspberry pi 3 と PIFI Digi DAC+HIFI DAC で Volumio を楽しんでみた

今回用意したのは、
ギアべで安かった PIFI Digi DAC+HIFI DAC

まずは無心でVolumio のダウンロード
https://volumio.org/get-started/

続いていつものように解凍。

Mac で microSD にイメージ焼き。
参考:Raspberry Pi 2 + Volumio + DAC でネットワークオーディオに挑戦(その2)

My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100724872 381504880    21% 1085195 9223372036853690612    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381504880     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2128  30258208     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100723464 381506288    21% 1085152 9223372036853690655    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381506288     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2144  30258192     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ df
Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   489825072 100737080 381492672    21% 1085163 9223372036853690644    0%   /
devfs                378       378         0   100%     656                   0  100%   /dev
/dev/disk1s4   489825072   6291496 381492672     2%       3 9223372036854775804    0%   /private/var/vm
map -hosts             0         0         0   100%       0                   0  100%   /net
map auto_home          0         0         0   100%       0                   0  100%   /home
/dev/disk2s2    30260336      2480  30257856     1%       0                   0  100%   /Volumes/RPI
My-Mac:~ owners-name$ sudo diskutil unmount /dev/disk2s2
Password:
Volume RPI on disk2s2 unmounted
My-Mac:~ owners-name$ sudo dd bs=1m if=~/volumio-2.362-2018-02-12-pi.img of=/dev/rdisk2
2800+0 records in
2800+0 records out
2936012800 bytes transferred in 399.316915 secs (7352588 bytes/sec)
My-Mac:~ owners-name$ exit

ラズパイに microSD を挿す
ラズパイに オーディオボードを挿す

で、電源つなぐ(起動)

暫く待つと、 http://volumio.local で接続が可能になり、
ブラウザ上でセットアップが可能。

※I2Sデバイスの選択では、 Hifibetty DAC Plus を選ぶと良いらしい。
参考:Configure Volumio with PiFi DIGI DAC+

で、セットアップが完了したら動作確認へ。

DLNAからの再生もUSBメモリからの再生も問題なし。

ステレオミニ、RCAどちらも再生できました。

CentOS 6.7 に ReadyMedia (MiniDLNA) をインストールした

Mediatombがあまりにも更新されないので、
新しいDLNAサーバを入れてみることに。

調べてみると、ReadyMedia(旧miniDLNA)がよさげ。
早速入れてみた。

ReadyMedia(miniDLNA) on CentOS7
これをみて進めたらスクリプトのとこで 環境(CentOS 7) の差異が…

ってことで、
ReadyMedia (MiniDLNA) のインストール方法
CentOS6.0 に minidlna インストール
このあたりを参考に完了

PC上で Honeycomb の開発環境を整える

以下2点のセットアップ方法のメモ書き
・Android SDK
・eclipse with ADT(Android Development Tools) Plugin

なお、基本的にはAndroid Developers Siteからの引用となります。

  1. 事前確認
  2. java(開発キット)がインストールされていること。
    されていない場合はインストールすること。
    ここでは割愛させて頂きます。
    ※開発しないのであれば開発キットでなくてもokかもです。

  3. Android SDKのダウンロード
  4. 使用しているOSに適合するSDKをダウンロードします。
    http://developer.android.com/sdk/index.html

  5. Eclipseのダウンロード
  6. 執筆時点では、
    Eclipse Classic (クラシック版) の3.5以上(3.6.1が最新) が推奨されています。
    http://www.eclipse.org/downloads/

  7. 設置
  8. 上記2点を解凍し適当なディレクトリに設置します。
    ex. C\Android\eclipse
    ex. C\Android\android-sdk-windows

  9. Pathを通す(任意)
  10. sdkのtoolフォルダにパスを通すと、
    コマンドラインから各種ツールの起動が可能となります。
    なお、筆者は現時点では通してません。

  11. Eclipse用ADT Plugin のインストール
  12. 1. eclipseを起動。
    2. ワークスペースの配置は任意で設定。
    「./workspace」と設定すると、eclipse配下に設定される。
    3. 上部メニューより[Help] – [Install New Software]を選択。
    4. ダイアログが開いたら、右上のaddボタンを押下。
    5. さらに小窓が開くので、入力エリアに下記の要領で入力。
    Name(任意名称)は「Android Plugin」
    locationは「https://dl-ssl.google.com/android/eclipse/」
    okボタンを押下。
    ※後の工程でダウンロードエラーが発生する場合は、
    「http://dl-ssl.google.com/android/eclipse/」に変更すること。
    6. ダイアログ画面に戻り、しばらくすると、リスト内に「Developer Tools」が表示される。
    左のチェックボックスにチェックを入れ、okを押下。
    この選択により、3点のツールがインストールされる。
    7. 画面が切り替わりインストールの確認などはokで進む。
    8. ライセンスは”しっかり”と読みacceptし、okで進む。
    9. 自動でダウンロードされ、インストールが行われる。
    10. eclipseの再始動が強く推奨されるので、okにて再起動。
    11. 再起動が完了したら、SDKのロケーションを設定する。
    上部メニューより[Window] – [Preferences]を選択。
    12. ダイアログが表示されたら、左メニューより[Android]を選択。
    13. SDKのロケートが行われていないためエラーダイアログが表示される。
    Blowseボタンを押し、SDKの設置ディレクトリを指定。
    以上でpluginのインストール終了。

  13. SDKのセットアップ
  14. SDKのデイレクトリ直下に「SDK Setup.exe」が存在する。
    コレを起動すると、各種設定と必要なファイルをサーバよりダウンロードすることができる。
    Android SDK and AVD Managerが接続に失敗する場合は、[Setting]の設定を変更すると接続できる場合が多い。
    ダウンロード対象の中にHoneycombのプレビュー版が含まれているので、
    これをダウンロード。

  15. ヴァーチャルマシンの作成
  16. Android SDK and AVD Managerより、
    Virtual devices – newボタン押下。
    Create画面が開くので、
    Nameは適当[honeycomb]など
    Targetは最下にあるハニカムを選択
    あとは適当に入力し、Create AVDボタンを押下。

  17. ヴァーチャルマシンの起動
  18. Android SDK and AVD Managerより、
    Virtual devices – マシンをリストより選択し、startボタン押下。
    暫くしたら起動

how to set up the Android SDK and Eclipse with ADT Plugin.

Honeycomb対応版はコチラ

以下の情報は古いです。

セットアップ方法のメモ書き
・Android SDK
・eclipse with ADT(Android Development Tools) Plugin

なお、基本的にはAndroid Developers Siteからの引用となります。

0.事前確認
javaの開発キットがインストールされていること。
されていない場合はインストールすること。
ここでは割愛させて頂きます。

1.SDKのダウンロード
使用しているOSに適合するSDKをダウンロードします。
http://developer.android.com/sdk/index.html

2.eclipseのダウンロード
執筆時点では、ver3.5/クラシック版が推奨されています。
ダウンロードページの一番下にあります(要確認)。
http://www.eclipse.org/

3.設置
上記2点を解凍し適当なディレクトリに設置します。
ex.C\Android\eclipse
ex.C\Android\android-sdk-windows

4.Pathを通す(任意)
sdkのtoolフォルダにパスを通すと、
コマンドラインから各種ツールの起動が可能となります。
なお、筆者は現時点では通してません。

5.Eclipse用ADT Plugin のインストール
1.eclipseを起動。
2.ワークスペースの配置は任意で設定。
「./workspace」と設定すると、eclipse配下に設定される。
3.上部メニューより[Help] – [Install New Software]を選択。
4.ダイアログが開いたら、右上のaddボタンを押下。
5.さらに小窓が開くので、入力エリアに下記の要領で入力。
Name(任意名称)は「Android Plugin」
locationは「https://dl-ssl.google.com/android/eclipse/」
okボタンを押下。
※後の工程でダウンロードエラーが発生する場合は、
「http://dl-ssl.google.com/android/eclipse/」に変更すること。
6.ダイアログ画面に戻り、しばらくすると、リスト内に「Developer Tools」が表示される。
左のチェックボックスにチェックを入れ、okを押下。
この選択により、以下の2点がインストールされる。
・Android DDMS
・Android Development Tools
7.画面が切り替わりインストールの確認などはokで進む。
8.ライセンスは”しっかり”と読みacceptし、okで進む。
9.自動でダウンロードされ、インストールが行われる。
10.eclipseの再始動が強く推奨されるので、okにて再起動。
11.再起動が完了したら、SDKのロケーションを設定する。
上部メニューより[Window] – [Preferences]を選択。
12.ダイアログが表示されたら、左メニューより[Android]を選択。
13.SDKのロケートが行われていないためエラーダイアログが表示される。
Blowseボタンを押し、SDKの設置ディレクトリを指定。
以上でpluginのインストール終了。

6.SDKのセットアップ
SDKのデイレクトリ直下に「SDK Setup.exe」が存在する。
コレを起動すると、各種設定と必要なファイルをサーバよりダウンロードすることができる。
Android SDK and AVD Managerが接続に失敗する場合は、[Setting]の設定を変更すると接続できる場合が多い。
なお、現時点ではAndroid ver1.6が開発向きだと思われる。

<編集中公開>