まだプログラマーですが何か?

プログラマーネタ中心。たまに作成したウェブサービス関連の話も https://twitter.com/dotnsf

タグ:power

IDCフロンティア様主催の MariaDB ミートアップに参加してきました。

MariaDB は MySQL 互換の RDB です。自分自身が作って運営しているマンホールマップねっぴツイートマッパーなど多くのサービスで MariaDB を採用しています。

このミートアップの中で現 Chief Evangelist の Colin さんから「MariaDB は IBM の Power8 プラットフォーム上で非常に高いパフォーマンスを発揮している」という紹介がありました。おそらくこの記事で紹介されていることだと思います:

MariaDB on Power8

ほー、そうなのか(知らなかったw)。ただ、実は以前に自分もこのようなブログエントリを書いたことがありました:
Power Linux 上で MariaDB をビルドして使う

これを書いた頃はまだ(後述の)PDP 環境で提供される RedHat のバージョンが 6 でした。RHEL 6 では標準 RDB が MySQL でしたが、RHEL 7 になって標準 RDB は MariaDB に変更になっているはずです。つまり「もうわざわざビルドしなくても Power Linux 上で MariaDB が使えるようになっているはず」です。

さっそく試してみます。環境としては IBM がビジネスパートナー様向けに無料で提供しているクラウドの Power 環境である PDP を使って Power8 + RedHat 7 環境を予約して使います。この辺りの詳しい手順はこちらを参照ください:
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(1/2)
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(2/2)


上記の (1/2) の手順でマシンリソースの予約を行い、(2/2) の手順で SSH でリモートアクセスして Power8 のリモート環境にログインします:
2015060907


念のため環境を確認します。まごうことなき Power 8 アーキテクチャ上の RedHat Enterprise Linux 7.1 です。:
2015060909


ではさっそくというか、いきなり MariaDB のインストールにとりかかります。リポジトリなどの準備なしでいきなり yum install を実行すると・・・
[root@sys-74413 ~]# yum install mariadb-server mariadb-client mariadb-devel
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
No package mariadb-client available.
Resolving Dependencies
--> Running transaction check
---> Package mariadb-devel.ppc64le 1:5.5.41-2.ael7b will be installed
--> Processing Dependency: openssl-devel(ppc-64) for package: 1:mariadb-devel-5.5.41-2.ael7b.ppc64le
---> Package mariadb-server.ppc64le 1:5.5.41-2.ael7b will be installed
--> Processing Dependency: mariadb(ppc-64) = 1:5.5.41-2.ael7b for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Processing Dependency: libaio.so.1()(64bit) for package: 1:mariadb-server-5.5.41-2.ael7b.ppc64le
--> Running transaction check
---> Package libaio.ppc64le 0:0.3.109-12.ael7b will be installed
---> Package mariadb.ppc64le 1:5.5.41-2.ael7b will be installed
---> Package openssl-devel.ppc64le 1:1.0.1e-42.ael7b will be installed
--> Processing Dependency: zlib-devel(ppc-64) for package: 1:openssl-devel-1.0.1e-42.ael7b.ppc64le
--> Processing Dependency: krb5-devel(ppc-64) for package: 1:openssl-devel-1.0.1e-42.ael7b.ppc64le
---> Package perl-DBD-MySQL.ppc64le 0:4.023-5.ael7b will be installed
---> Package perl-DBI.ppc64le 0:1.627-4.ael7b will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.ael7b.ppc64le
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.ael7b.ppc64le
--> Running transaction check
---> Package krb5-devel.ppc64le 0:1.12.2-14.ael7b will be installed
--> Processing Dependency: libverto-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.12.2-14.ael7b.ppc64le
---> Package perl-PlRPC.noarch 0:0.2020-14.ael7b will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.ael7b.noarch
--> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.ael7b.noarch
---> Package zlib-devel.ppc64le 0:1.2.7-14.ael7b will be installed
--> Running transaction check
---> Package keyutils-libs-devel.ppc64le 0:1.5.8-3.ael7b will be installed
---> Package libcom_err-devel.ppc64le 0:1.42.9-7.ael7b will be installed
---> Package libselinux-devel.ppc64le 0:2.2.2-6.ael7b will be installed
--> Processing Dependency: libsepol-devel >= 2.1.9-1 for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
--> Processing Dependency: pkgconfig(libpcre) for package: libselinux-devel-2.2.2-6.ael7b.ppc64le
---> Package libverto-devel.ppc64le 0:0.2.5-4.ael7b will be installed
---> Package perl-IO-Compress.noarch 0:2.061-2.ael7b will be installed
--> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.ael7b.noarch
--> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.ael7b.noarch
---> Package perl-Net-Daemon.noarch 0:0.48-5.ael7b will be installed
--> Running transaction check
---> Package libsepol-devel.ppc64le 0:2.1.9-3.ael7b will be installed
---> Package pcre-devel.ppc64le 0:8.32-14.ael7b will be installed
---> Package perl-Compress-Raw-Bzip2.ppc64le 0:2.061-3.ael7b will be installed
---> Package perl-Compress-Raw-Zlib.ppc64le 1:2.061-4.ael7b will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                     Arch        Version               Repository  Size
================================================================================
Installing:
 mariadb-devel               ppc64le     1:5.5.41-2.ael7b      server     747 k
 mariadb-server              ppc64le     1:5.5.41-2.ael7b      server      11 M
Installing for dependencies:
 keyutils-libs-devel         ppc64le     1.5.8-3.ael7b         server      37 k
 krb5-devel                  ppc64le     1.12.2-14.ael7b       server     640 k
 libaio                      ppc64le     0.3.109-12.ael7b      server      24 k
 libcom_err-devel            ppc64le     1.42.9-7.ael7b        server      30 k
 libselinux-devel            ppc64le     2.2.2-6.ael7b         server     174 k
 libsepol-devel              ppc64le     2.1.9-3.ael7b         server      71 k
 libverto-devel              ppc64le     0.2.5-4.ael7b         server      12 k
 mariadb                     ppc64le     1:5.5.41-2.ael7b      server     9.1 M
 openssl-devel               ppc64le     1:1.0.1e-42.ael7b     server     1.2 M
 pcre-devel                  ppc64le     8.32-14.ael7b         server     477 k
 perl-Compress-Raw-Bzip2     ppc64le     2.061-3.ael7b         server      33 k
 perl-Compress-Raw-Zlib      ppc64le     1:2.061-4.ael7b       server      58 k
 perl-DBD-MySQL              ppc64le     4.023-5.ael7b         server     140 k
 perl-DBI                    ppc64le     1.627-4.ael7b         server     802 k
 perl-IO-Compress            noarch      2.061-2.ael7b         server     260 k
 perl-Net-Daemon             noarch      0.48-5.ael7b          server      51 k
 perl-PlRPC                  noarch      0.2020-14.ael7b       server      36 k
 zlib-devel                  ppc64le     1.2.7-14.ael7b        server      50 k

Transaction Summary
================================================================================
Install  2 Packages (+18 Dependent packages)

Total download size: 24 M
Installed size: 124 M
Is this ok [y/d/N]: 

Power 用の RHEL7 でも、ちゃんと MariaDB が標準で使えるようになってました。これで "y" を指定すればインストールできちゃいます。

ただし、このコマンドで導入できるのは MariaDB 5.5 のようですね。MariaDB 10.x を使いたい場合はまだソースからビルドする必要がありそうです。その手順はこちらのエントリを参照してください:
Power Linux 上で MariaDB をビルドして使う

 

このブログエントリを書こうと思ったキッカケはこの技術記事でした:
MySQL / MariaDB 5.7 on POWER8 パフォーマンス情報

MariaDB を Power8 搭載サーバー(の Linux)上で動かすと非常に高いパフォーマンスを発揮させることができる、という内容です。

現在、Power サーバー上で動く RHEL(RedHat Enterprise Linux) 6.6 では、普通に yum で MySQL をインストールすることはできます。ただ標準リポジトリに用意されている MySQL のバージョンは低く、上記記事で書かれたパフォーマンス改善パッチが適用されたものではありません。 また MariaDB のバイナリはまだ Power Linux 向けには提供されておらず、厳密には正式な稼働プラットフォームでもありません。 というわけで、Power Linux 上で MariaDB をソースコードからビルドして動かすまでの手順を紹介します。

まずは環境の用意です。ほとんどの人は Power チップ搭載サーバーを使える環境は手元にないと思いますが、IBM のビジネスパートナーであれば、ビジネスパートナー向けに無償で(クラウド経由で)提供されている IBM PDP(Power Development Platform) を使うことも可能です。IBM PDP の説明や RHEL on Power の利用手順についてはこちらを参照ください:
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(1/2)
Power 版 RHEL(RedHat Enterprise Linux) を無料で2週間借りる(2/2)
IBM PDP で Power Linux をすぐに使えるように予約する


今回、MariaDB をソースコードからコンパイルしてインストールします。その場合、RHEL の導入時に "Development Tools" を導入しておく必要があります:
# yum groupinstall "Development Tools"

また、libaio-devel パッケージが必要です:
# yum install libaio-devel

更に、MariaDB をソースファイルからコンパイルする際のビルドツールには configure ではなく cmake を使います。というわけで cmake を事前に導入しておきます:
# yum install cmake


事前準備ができたら早速 MariaDB のソースコードを公式サイトからダウンロードします。このブログエントリを書いている時点での最新安定バージョンは 10.0.15 だったので、これを使います(上記記事のパフォーマンス改善パッチが適用後のバージョンです)。

ダウンロードサイトから "Source" と書かれた mariadb-X.X.X.tar.gz(X.X.X はバージョンなので、今回であれば 10.0.5)のリンクをクリックして、このファイルをダウンロードします:
2014122901


ダウンロードできたら /usr/local/src 以下に展開します:
# cd /usr/local/src
# tar xzvf ~/mariadb-10.0.15.tar.gz

ここからが Power Linux 用の特殊な部分です。最初に cmake で Makefile を作りますが、以下のオプションを付けて cmake を実行します:
# cd mariadb-10.0.15
# cmake . -DLDLIBS=-lpthread -DCMAKE_C_FLAGS=-mminimal-toc -DCMAKE_CXX_FLAGS=-mminimal-toc -DBUILD_CONFIG=mysql_release

cmake コマンドが正常終了したら make でビルドして、インストールします:
# make
# make install

これで Power Linux の /usr/local/mysql 以下に MariaDB が導入されます。



 

IBM PDP(Power Development Platform) は IBM がビジネスパートナー向けに無料で Power チップのサーバーをクラウド経由で貸し出すサービスです。この利用方法やセットアップ手順については以前のブログで記述しているのでそちらを参照ください:


この予約手順の中で、1つ不満というか、仕様が???な箇所がありました。それはアメリカとの時差の関係で、申し込みから最短でも18時間ほど待つことになる、ということです。まあ18時間待てばいいとも言えるのですが、「それすらも待てん!」というタイム・イズ・マネーなあなたに贈る裏ワザです。

まず現象を確認してみましょう。実際の PDP でのサーバー予約画面がこちらです:
2014122601


いくつかの必須入力項目がありますが一旦無視します。そして Project Dates(利用期間)欄に注目です。ローカルタイムとして 2014/12/26 12:43PM と出ています。これは日本時間です。利用時間は米国東海岸時間で指定する必要があります。また利用開始は現在から2時間以上先の時刻を指定する必要があります。

この現在時刻は米国東海岸時間では 2014/12/25 10:43PM なので、計算上では 2014/12/26 00:43AM 以降を指定すればいいということになります。 というわけで念のため 12 時間ほど余裕を持たせて 2014/12/26 01:00PM を指定してみました。で、 "Add resources to project" ボタンをクリックします:
2014122602


ところがエラーです。"The start date and time should be more than 2 hours ahead of the current date and time." つまり「現在よりも2時間以上先じゃないとダメよ」というエラーメッセージですが、それは分かっていたつもりでした:
2014122603



どうやら「現在のローカル時間で2時間以上先の時刻を指定する。ただしその指定時刻は米国東海岸時刻と解釈されて予約される」という困った(?)挙動になっているようなのでした。

つまり上記例だと現在が日本時間で 2014/12/26 12:43PM なので、2014/12/26 02:43PM 以降の時刻でないと受け付けない、というエラーが出ていることになります。そしてここに 2014/12/26 03:00PM と指定すると、予約はできるのですが、米国東海岸時刻での 2014/12/26 03:00PM(日本時間 2014/26/27 07:00AM)から使えるようになる、という予約をしたことになるのでした。上記で「18時間待つ」と書いたのはこういう背景があるのでした(2時間+時差16時間)。うーむ、なるほど・・・ (^^;;

まあ使える期間が変わるわけではないし、そこまで急ぐ必要がなければこれで逆算しながら予約してもいいのですが、どうしても2時間後から使いたい、という場合は以下の手順を実行してください。


まずロケールを変更します。 Windows であればコントロールパネルから「日付と時刻」をクリックし、「タイムゾーンの変更」ボタンをクリックします:
2014122604


タイムゾーンを米国東部標準時に変更して、OKをクリックします:
2014122605


これでこの PC は米国東海岸時間で動いていることになります:
2014122606


改めて PDP のサーバーリソース予約画面を開いて利用期間を指定します。今度はローカルタイムが先程変更したように米国東海岸時間(2014/12/25 10:45PM)になっていることを確認して、その2時間ちょっと先である 2014/12/26 01:00AM からの利用を指定します。併せてプロジェクト名など他の必須入力項目も埋めておきます。最後に "Add resources to project" ボタンをクリック:
2014122607


今度は成功しました! エラーメッセージもなく、Resources 欄に指定のマシンリソースが追加されたはずです。最後に "Create project and resavation" ボタンでサーバーリソースの予約を完了すれば、約2時間後から利用できるリソースが予約できます:
2014122608


なお、タイトルでは Linux を借りる場合という書き方としていますが、AIX や IBM i を借りる場合も同様です。

予約後はまたロケールを元に戻しておくことをお忘れなく。


(2014/Dec/27 追記)
上記で「米国東海岸時間」と書いていますが、自信なくなってきました。もしかすると「米国山岳時間」にするのが正解かもしれない・・・



 

謎だった Power 版 RHEL(RedHat Enterprise Linux) での MongoDB の動かし方が分かりました!

これまでは「CPU のエンディアンの違いにより MongoDB が動かなかった」と思っていたのですが、IBM のダウンロードサイトで Power 版 RHEL 向けビルド済み rpm パッケージの存在を確認しました。これを使います。


まず準備段階として Power 版 RHEL 環境を用意します。・・・といっても普通の人はそんな環境持ってないですよね(苦笑)。 2週間のお試し程度であれば、開発者向けサービスである IBM Power Development Cloud を利用して環境を構築することも可能です。 その場合の手順はこちらのブログエントリを参照ください:


Power 版 RHEL の準備ができたら早速 MongoDB を導入しましょう。といっても特別な作業ではなく、必要な rpm パッケージを IBM からダウンロードしてインストールするだけです。Intel 版 RHEL と異なるのはファイル名のアーキテクチャ部分が i686 とか x86_64 とかではなく、ppc64 になっていることくらいです。あと現在用意されている MongoDB はバージョン 2.4.9(RC0) のようです:
# cd /tmp
# yum install wget boost-devel
# wget ftp://ftp.software.ibm.com/linux/rpms/redhat/6.5/v8-3.14.5.10-2.el6.ppc64.rpm
# wget ftp://ftp.software.ibm.com/linux/rpms/redhat/6.5/libmongodb-2.4.9-1.el6.ppc64.rpm
# wget ftp://ftp.software.ibm.com/linux/rpms/redhat/6.5/mongodb-server-2.4.9-1.el6.ppc64.rpm
# wget ftp://ftp.software.ibm.com/linux/rpms/redhat/6.5/mongodb-2.4.9-1.el6.ppc64.rpm
# rpm -ivh v8-3.14.5.10-2.el6.ppc64.rpm
# rpm -ivh libmongodb-2.4.9-1.el6.ppc64.rpm
# rpm -ivh mongodb-server-2.4.9-1.el6.ppc64.rpm
# rpm -ivh mongodb-2.4.9-1.el6.ppc64.rpm

これで MongoDB のインストールは完了です。念のため、導入先を確認しておきましょう:
# which mongod
/usr/bin/mongod
# which mongo
/usr/bin/mongo

MongoDB の起動はコマンドラインから、以下の内容を実行します:
# mongod --dbpath /var/lib/mongodb

実行するとサーバーコンソールのようにメッセージがずらずらと・・・出てくればサービスの起動成功です。ちなみにサービスの終了は CTRL + C です。
2014121001


Mongo クライアントは何の違いも感じずに使えます:
2014121002


この Power 版 RHEL 向け MongoDB はいつから用意されてたんだろう? ともあれ、これで Power 版の RHEL でも MongoDB が動くことが確認できました。本当に Intel 版との違いがなくなりつつあることを実感します。


そして、これはつまり MongoDB に対応したフレームワーク(cakePHPとか)を Power 版 RHEL で動かすことができるようになったのかな?? とも思っているのですが、実際 cakePHP で使ってみると Intel 版では見たことのないエラーメッセージに遭遇したりして、まだもう少し待った方がいいのかな、とも思ってたりします。要はちゃんと動かして調べましょう、ということで。


最後に、自分が業務で開発に携わっている公開済みサービスがこの Power 版 RHEL 環境でもある程度動いたので記念アップ!
2014121003

 

前回からの続きです。

 IBM Power Development Platform で Power 版 RedHat Enterprise Linux サーバーのリソース予約が完了し、サーバーが Active になりました。その後の接続方法について紹介します。
2014030502


 このサーバーに接続するには VPN を使います。その詳しい内容は予約確認ページの真ん中辺りにある "Download Connection User Guide" ボタンをクリックしてダウンロードできる PDF に(英語で)記載されています:
2014030104

以下、その内容を簡単にかいつまんで日本語で紹介します。まずこのボタンの上部に書かれている "VPN appliance IP address", "User ID", "Initial / last reset VPN password" の3つの内容をメモしておきます。これが VPN 接続時に必要な入力項目になります。
2014030601


次に VPN 接続をするクライアント PC からブラウザを起動して、https://vlpvpn.centers.ihost.com/ を参照します。僕の場合は CentOS のマシンから行っているため CentOS でのスクリーンショットを紹介しますが、Windows や Mac からも同様の内容になると思います。

ログインフォームが表示されるので、先程メモした VPN 用 User ID とパスワードを入力します:
2014030602


"Welcome" メッセージが表示されたらログインは成功です。Continue ボタンで先に進みます:
2014030603

この後、ウィザード形式で接続する手続きが始まります。OS の種類が自動認識されていると思いますので、リンク(以下の例であれば "Linux_x86_64" と書かれた箇所)をクリックして処理を進めていきます:
2014030604

おそらくですが、ここから先は OS ごとに手続きが異なるはずです。種類によってはこのまま自動認識が成功して、ウィザード処理を進めていくだけでこのまま VPN までが完了することもあると思います。以下は僕の試した CentOS 環境での場合の説明です、参考程度に参照ください。

リンクをクリックすると、VPN クライアントをセットアップするためのスクリプトのダウンロードが始ります:
2014030604


ダウンロードが完了したら、そのファイルをシェルから実行してインストールします:
# sh vpnsetup.sh

インストールが完了したら、アプリケーションメニューから VPN クライアントを起動します:
2014030605


VPN クライアントが起動します。まず最初の1回目に必要な設定があるので、設定項目を開きます:
2014030606


デフォルト状態では VPN クライアントのセキュリティが強めに設定されています。このままだとこの環境での VPN サーバーに接続できないため、"Block connections to untrusted servers" についているチェックを外します。その上で Close ボタンでこの画面をクローズします:
2014030607


1つ前の画面に戻ります。改めて最初にメモした VPN サーバーの IP アドレス(おそらく 32.97.184.40 で固定)を入力して Connect ボタンをクリックします:
2014030608


先ほどチェックを外した設定に関する確認ダイアログが表示されます(チェックを外さないとこの画面も出ないはずです)。Untrusted なサーバーに対する接続を行うか? という確認です。 今回だけは接続するのであれば "Connect Anyway" を(次回も確認ダイアログがでます)、このサーバーを信頼するのであれば "Always Connect" を(次回からは確認ダイアログがでません)、このどちらかをクリックして接続します。"Keep Me Safe" を選択すると接続しません:
2014030609


ユーザー名とパスワードを聞かれるので、これも上でメモした VPN 用の User ID と Password を入力し、最後に Connect ボタンをクリックします:
2014030610


確認画面が表示されたら、Accept をクリックします。環境や設定によってはこの後に再度 Untrusted サーバーへの接続に関するダイアログが表示されるので "Connect Anyway" か "Always Connect" を選択します:
2014030611


VPN サーバーに正しく接続できると、画面内に VPN が接続できているようなマークが表示されます(以下は CentOS での例):
2014030612



これで VPN 環境が整って、IBM の仮想プライベートネットワークに接続できました。では稼働中の Power 版 RedHat Linux Enterprise サーバーへ接続してみます。

改めて PDP の Virtual Server Access 環境画面を参照して、予約したサーバー環境の IP アドレス、ユーザー名、パスワード、root パスワードを確認してメモしておきます(※上記で説明した VPN 用の ID & パスワードとは異なります。ID だけは同じかもしれません)。
2014030613


確認した IP アドレスに(指定されている)ユーザー名とパスワードで SSH で接続します。Windows であれば PuTTY などの SSH クライアントから接続します。Mac や Linux であれば以下のコマンドとパスワードで:
# ssh u00NNNNN(UserID)@172.29.XXX.XXX(IPアドレス)

ログインできると画面に IBM ロゴが表示されるようです。とうとう Power サーバー環境にログインできました!:
2014030614



で、実際にこのサーバーを使うために色々なセットアップが必要になりますが、このままでは何もできないので、まずは root になりましょう。su コマンドを実行して、メモしておいた root パスワードを指定します:
[u00NNNNN@172-29-XXX-XXX ~]$ su -
パスワード: (rootパスワードを入力)
[root@172-29-XXX-XXX ~]#

ここからはもうご自由に。でも一応最低限のセットアップの紹介をしておきます。

何はともあれ root パスワードを変更します:
[root@172-29-XXX-XXX ~]# passwd
Changing password for user root.
New password:(新しいパスワードを入力)
Retype new password:(同じパスワードを再入力)
passwd: all authentication tokens updated successfully.
本当に Power サーバーかどうか(笑)を確認してみました。本物だ、仮想CPU×4構成:
[root@172-29-XXX-XXX ~]# cat /proc/cpuinfo
processor      : 0
cpu            : POWER7 (architected), altivec supported
clock          : 3864.000000MHz
revision       : 2.1 (pvr 003f 0201)

processor      : 1
  :
  :

timebase       : 512000000
platform       : pSeries
model          : IBM,9179-MHB
machine        : CHRP IBM,9179-MHB

ちなみにセットアップは普通に yum が使えます。MySQL とか PHP とか Apache HTTPD とかについては、x86 版と違いを感じないほど普通に導入できます。

加えて、IBM 製のミドルウェアに関しては、DB2 や WAS(WebSphere Application Server), C/C++ コンパイラなど、いくつかのものは最初から /stage/middleware 以下にインストールメディアがマウントされて使えるようになっています。検証などで必要であれば、ここからインストールして使えるようです:
[root@172-29-XXX-XXX ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda4              29G  3.0G   24G  11% /
tmpfs                1003M     0 1003M   0% /dev/shm
/dev/sda2             463M   46M  394M  11% /boot
nfs.dal-ebis.ihost.com:/var/nfs/LINUX
                       25G   19G  5.1G  79% /stage/middleware

[root@172-29-XXX-XXX ~]# ls /stage/middleware
DB2   IDS       ParallelEnvironment  Rational  TDS  XL_C_C++
ESSL  netbeans  PESSL                SAAS      WAS  XL_Fortran

なお最初にセットアップされている Power 版 RHEL ですが、どうやらフルセットに近いものが用意されているようです。X Window(GNOME) も、日本語環境も、VNC サーバーまでも最初から含まれているようです。ただ VNC サーバーはインストールまではされていますが起動はしていません。最後にその設定および起動方法だけ紹介しておきます(ま、これも x86 版と比べて特に違いはないですけど・・)。

まず、これは必須ではありませんが、せっかく X Window 環境を使うので日本語設定にしておきましょう。/etc/sysconfig/i18n をエディタで開いて、1行目を
[root@172-29-XXX-XXX ~]LANG="ja_JP.UTF-8"

と変更しておきます。

次に /etc/sysconfig/vncservers を編集して、root ユーザーで 5901 番ポートにアクセスするような設定にしておきます:
  :
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"
  :

また VNC 接続用のパスワードを設定しておきます:
# vncpasswd
Password:(入力内容は画面に表示されません)
Verify: (同じパスワードを入力)

この段階で一度 VNC サーバーを起動して、設定ファイルのひな型(~/.vnc/xstartup)を作っておきます:
# /etc/init.d/vncserver start

直前のコマンドで xstartup が作成されているはずなので、このファイルを編集します。環境変数 LANG を設定して、GNOME のセッションをそのまま VNC 環境でも使えるようにします:

# vi ~/.vnc/xstartup
#!/bin/sh

export LANG="ja_JP.UTF-8"(この一行を最初に挿入)
  :
  :
(最後の部分を編集)
# xterm -geometory 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & (コメントアウト)
# twm & (コメントアウト)
gnome-session & (この一行を追加)

改めて新しい設定で VNC サーバーを再起動し、またシステム起動と同時に実行されるようにしておきます:

# /etc/init.d/vncserver restart
# chkconfig vncserver on

これで VNC サーバーの準備と起動ができました。 実際に X Window(GNOME) 環境にアクセスしてみます。VPN 接続をしたクライアントの環境に戻り、VNC Viewer などの VNC クライアントを実行します。アクセス先には Linux サーバーの IP アドレスと、最後に 5901 番ポートで接続するための :1 を付けてアクセスします:
2014030615


パスワードを聞かれたら VNC 用に設定したパスワードを入力します:
2014030616


Power 版 RHEL の GNOME 環境にアクセスできました! 普段 CentOS を使っていると RHEL のロゴに少し緊張します(笑)。 といっても、x86 版と比べてほとんど違いはなさそうですけどね・・・
2014030617

実際試してみると分かりますが、普通に日本語も使えます。FireFox まで導入済みなので、すぐにウェブ利用も可能になっています。

この環境が2週間無料で使えるのはいいですね。加えて Power 版 RHEL の出来がいいというか、ほとんど x86 版との違いを感じずに使えるのでストレスもほとんどありません。 仮想環境とはいえ Power CPU × 4 環境のマシンを使えるので、ビットコインの発掘とか x86 用に作ったウェブアプリケーションの Power 環境での動作検証とか、いろいろ使えそうです。


最後にこの環境の終了手順を紹介します。この環境は放っておいても2週間後には使えなくなってしまうのですが、その前にある時点の環境をスナップショットとして保存しておくと、次回の予約時に(Standard Image からではなく)そのスナップショットのイメージから再作成してもらう、ということもできるようです。そのスナップショットの取得方法を紹介します。

PDP の予約画面に戻ります。ここで Virtual Server Access を展開し、スナップショットを取得したいサーバーの予約番号部分を右クリックし、"Save Image" を選択します:
2014030618


すると以下のような画面が出てくるので、"Save image now"(今の状態で保存する)か、"Save image when reservation ends"(利用期間終了時に保存する)かを選びます。またその保存イメージの名前と、説明を記入し、最後に "Save image" ボタンをクリック、です:
2014030619

この方法で取得したイメージは、次回リソース予約時に "Standard image" ではなく "Saved Image" から作成するよう指定することで再利用が可能になっています。この方法で事実上2週間以上必要な検証作業についても(一時的な切断と、IPアドレス等の変更はありますが)作業を継続して行うことができるようです。


IBM PartnerWorld への企業契約が前提になるとはいえ、この環境が無料で使えるのって、かなりお得な気がするなー。

僕自身は AIX や IBM i(AS/400) にはあまり興味ないんですが、最初にダウンロードした PDF のガイドにはこれらの環境での VPN の利用方法なども書かれています。興味あるかたは是非挑戦してみてください。



 

このページのトップヘ