IBM Support

netatalk on POWER8

Technical Blog Post


Abstract

netatalk on POWER8

Body

Macで作ったファイルを、作業している人同士で共有するときには、ファイル共有のためのプロトコルAFP(Apple Filing Protocol)に対応したファイルサーバーを使うことが出来ます。

Windowsでは、SMB/CIFS、LinuxではSambaがよく使われますが、Macの場合はこのAFPを使うことが多いと思います。

 

Linux on Powerでは、Sambaを利用できることに加えて、AFPも使えるため、MacのファイルサーバーをLinux on Powerで作ることができるのです。

(AFPはこちら: http://ja.wikipedia.org/wiki/Apple_Filing_Protocol )

今回AFPサーバー機能を実現するnetatalkというソフトウェアを Linux on Powerで動作検証しました。

 

実は、Linux on Powerでファイルサーバーをつくると、止まりにくいファイルサーバーを作れます。

POWER8を搭載したサーバーには、FFDC(First Failure Data Capter)という、”ハードウェアエラー発生時にデータをキャプチャーして原因特定を早める”アーキテクチャーが実装されており、更にキャプチャーしたエラーデータを解析して、サービスプロセッサーという管理用のCPUが対処してくれるのです。

 

もうすこし深くご説明しましょう。

Linux on Power サーバーには、Chekerという、ハードウェアのエラーを検知する機能が大量に搭載されています。どれくらい大量かというと、ローエンドモデルでもIntel搭載サーバーの約6倍の3万個、ハイエンドモデルになるとなんと約59万個ものCheckerが入っているのです。
Checkerは、エラー状態を識別して、それをキャプチャーする機能をもつもので、プロセッサーの中の演算ユニットの入出力や、L1,2,3キャッシュの入出力、メモリーの入出力、ディスクI/Oアダプターの入出力など、マザーボード上のあらゆるところに配備されているのです。

そして更にCheckerでエラーを検知するだけに留まらず、「障害分離レジスター」とよばれる、障害対応用の特別なレジスターで、Chekerがキャプチャーした障害に関連するエラー・データを格納しています。ローエンドモデルからハイエンドモデルの全てに搭載され、さらにハイエンドモデルでは、このレジスターのビット数が多くなるため、より多くのエラー・データを格納できるのです。

そして管理プロセッサーが、FIRを読み取り、障害の事象に応じてリカバリー処理、自己修復機能の有効化、リソースの割当解除、仮想マシン(LPAR)もしくはシステムの単位でのリカバリー処理を実施してくれます。このレベルになると、もはやIntelプロセッサー搭載サーバーでは対処が難しいエリアです。

もっと詳しく知りたい!という方はこちらをご覧ください。ご要望がございましたら、追加してご案内したいと思います。

https://www.ibm.com/developerworks/community/blogs/PowerSystemsRedbooks/entry/power_systems_reliability_availability_and_serviceability_capabilities_by_operating_system?lang=ja_jp

 

ということで、ファイルサーバーをつくるなら、信頼性の高いPOWERにすると安心!、とご理解いただけましたでしょうか。

 

ちなみにnetatalkのインストールは至って簡単ですが、ご参考までにこちらでご紹介します。

Linux on Power にインストールして ファイルサーバーを作ってみてください。

 

1.RHEL7 for POWERをインストール

RHELはどのバージョンでもよいのですが、今回はPOWER8の機能をフル活用できるRHEL7をインストールします。

ここではRHEL7そのもののインストール方法は割愛しますが、またご紹介したいと思います。

インストールがおわったら、今回は稼働検証のために、SELinuxとFirewallを停止しておきます。

# setenforce 0

といったコマンドで、SELinuxをPermissive モードにします。リブートしても無効化しておきたい場合は、/etc/selinux/config ファイルを編集しましょう。

Firewallの停止は、RHEL7から手順が変わりました。

# systemctl stop firewalld.service

といったコマンドで、サービスの停止ができます。リブートしても無効化しておきたい場合は、systemctl disableや、systemctl mask などを使いましょう。

 

2.netatalkのインストール

ここからは更に簡単です。このガイドの手順に従うだけでインストールできます。

http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.6_SRPMs_for_Fedora/RHEL/Scientific_Linux/CentOS

今回は、検証時点で最新のバージョン netatalk-3.1.6-0.0.1.fc20.src.rpm をダウンロードして利用しました。

あとはもうひたすら手順に従うだけですが、rootユーザーで次のように実施しました。

まずsrc rpm をインストールします。これはソースコードがインストールされるだけですね。

# rpm -ivh netatalk-3.1.6-0.0.1.fc20.src.rpm

そして一旦バイナリーのRPMを生成しますので、そのために必要なrpm-buildパッケージを入れます。

# yum install rpm-build

そしてビルドします。

# cd /root/rpmbuild/SPECS/

# rpmbuild -bb netatalk.spec

ここで、パッケージが不足しているとエラーが出ますので、表示された、足りないパッケージを、適宜yumコマンドで追加導入します。

yumレポジトリーは、インターネット経由でRed Hat Networkを利用してもよいですし、RHELのインストールメディアで作成してもよいです。

# yum install glib2-devel cracklib-devel openssl-devel quota-devel libdb-devel pam-devel tcp_wrappers-devel libgcrypt-devel avahi-devel libacl-devel openldap-devel libevent-devel dbus-devel dbus-glib-devel systemtap-sdt-devel libtdb-devel tracker-devel mariadb-devel
 

そして気を取り直してビルドを再度試します。

# rpmbuild -bb netatalk.spec

あとは待つだけで、コンパイルしてバイナリーパッケージを作ってくれます。

 

終わると /root/rpmbuild/RPMS/ ディレクトリにバイナリーパッケージができているはずです。

# cd /root/rpmbuild/RPMS/

# ls
netatalk-3.1.6-0.0.1.el7.ppc64.rpm
netatalk-debuginfo-3.1.6-0.0.1.el7.ppc64.rpm
netatalk-devel-3.1.6-0.0.1.el7.ppc64.rpm

そしていよいよインストールですね。

# rpm -ivh netatalk-3.1.6-0.0.1.el7.ppc64.rpm

インストールがおわったら、バージョンを確認してみます。「3.1.6」と表示されていますね。

# /usr/sbin/afpd  -V
afpd 3.1.6 - Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

          AFP versions:    2.2 3.0 3.1 3.2 3.3 3.4
         CNID backends:    dbd last tdb mysql
      Zeroconf support:    Avahi
  TCP wrappers support:    Yes
         Quota support:    Yes
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    Yes
            EA support:    ad | sys
           ACL support:    Yes
          LDAP support:    Yes
         D-Bus support:    Yes
     Spotlight support:    Yes
         DTrace probes:    Yes

              afp.conf:    /etc/afp.conf
           extmap.conf:    /etc/extmap.conf
       state directory:    /var/netatalk/
    afp_signature.conf:    /var/netatalk/afp_signature.conf
      afp_voluuid.conf:    /var/netatalk/afp_voluuid.conf
       UAM search path:    /usr/lib64/netatalk//
  Server messages path:    /var/netatalk/msg/

 

3.設定

あとは設定ファイルを編集して、Macに公開するLinuxのディレクトリーなどを指定します。

# vi /etc/afp.conf

設定ファイルの書き方は、ガイドのURLなどをご覧ください。

これでMacのFinderの「移動」メニューから「サーバへ接続」を選ぶなどして、Linuxサーバーに接続します。

接続先の書き方は「afp://x.x.x.x」ですね。「x.x.x.x」はIPアドレスか、もしくはホスト名など、Linuxサーバーを指定するだけです。

 

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"HW1A1","label":"IBM Power Systems"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm16169785