IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    

developerWorks Japan   >   developerWorks Japan Blogs >

developerWorks blogs

developerWorks

author 待てばオープンソースの日和あり

OSS と戯れる IBM エンジニアが、IBM 製品と組み合わせて(組み合わせなくても!)OSS を活用する際のもろもろ Hint & Tips をご紹介していきます。



2009年 7月 04日 (土曜日)

Zabbix と IBM Systems Director を連携してみました。

OSS の統合システム監視ツール Zabbix は、監視項目のカスタマイズが柔軟にできるので便利なのですが、サーバーのハードウェア障害の検知が悩みどころです。

一方で、System x/BladeCenter では、IBM Systems Director を利用すれば、PFA(ハードウェア障害を事前に予知する機能)を含めて、ハードウェア障害情報を完全に把握することができます。

というわけで、IBM Systems Director で検知した障害情報を Zabbix のイベントして通知する方法考えてみました。

詳細はこちらをどうぞ・・・。

ついでに、Zabbix を導入した時の手順は こちらです。

Zabbix の監視設定の流れは、大きくは、こんな感じなのですが、

  • アイテムを定義して、監視対象サーバーに関する何らかのデータ収集を開始する。
  • アイテムに対するしきい値を設定してトリガーを定義する。
  • トリガーが発動された際のアクションを定義する。
アイテムの定義方法が非常に柔軟なのが Zabbix の特徴で、監視対象サーバー上にインストールした Zabbix Agent にデータを収集させる方法の他に、Zabbix サーバーからネットワーク経由でデータを取ったり、Zabbix 上でカスタムスクリプトを実行してデータを取得するなどが利用可能です。

今回の IBM Systems Director との連携では、カスタムスクリプトを利用して、IBM Systems Director サーバーが出力した障害イベント情報を IBM Systems Director サーバー(兼 Zabbix サーバー)上で直接収集しています。

カテゴリー : [   Director  |  Linux  |  Zabbix  ]

2009年 7月 04日 , 00:00:00 JST




2009年 2月 25日 (水曜日)

なんちゃって仮想デスクトップ予約システム

引き続き Linux デスクトップネタです。

LTSP は、物理サーバー上の Linux Desktop をマルチユーザーで共有するタイプですが、もう一つ、VMware/Xen などの仮想マシン上に Linux を導入して、1 ユーザー・1 仮想マシンで、占有使用するパターンも考えられます。

Windows デスクトップに関しては、Citrix XenDesktop / VMware 仮想デスクトップインフラストラクチャ(VDI)などの商用製品ソリューションがあるのですが、Linux デスクトップにはまだ対応していません。仮想マシンのゲスト OS に Linux を導入するのは簡単ですが、Desktop のユーザーへの動的な割りあてなどの管理機能(いわゆる Connection Broaker ですね)が、Linux ゲストに対応していないのが理由です。(海外物では、Virtual Bridges などの製品があるのですが、日本では販売していませんね・・・。)

誰か OSS で作ってないかと思って探したのですが、見付かっていません。ご存じの方、ぜひ、教えてください。

とは言え、ぶっちゃけ、Linux 環境であれば、Web アプリケーションで手作りするのも難しくはない気がします。

というわけで、日曜大工しました。。。。(あくまで日曜大工です。お約束通りエラーハンドリングしていません。足りない機能はいっぱいあります。)

作り方


1.サーバー環境の用意

IBM BladeCenter のブレード 3 枚を用意して、2 枚に SLES10SP1 の Xen 環境、1 枚に SLES10SP1 を導入します。構成はこんな感じ。

・仮想デスクトップサーバー1 10.7.7.202 SLES10SP1 + Xen
  +仮想マシン(nakai 専用デスクトップ) nakai00 10.7.7.101

・仮想デスクトップサーバー2 10.7.7.203 SLES10SP1 + Xen
  +仮想マシン(students 共用デスクトップ1) student00 10.7.7.102
  +仮想マシン(students 共用デスクトップ2) sutdent01 10.7.7.103

・管理サーバー 10.7.7.201 SLES10SP1
  ⇒ LDAP, NFS, MySQL, Apache CGI 環境(mysql-dbd) を用意

  • 仮想マシンは好みの Linux Desktop をご利用ください。
  • 各仮想マシンの /home は、管理サーバーの NFS の共有領域をマウントします。
  • 各仮想マシンのユーザー認証は管理サーバーの LDAP を使用します。
  • 各ユーザーの vnc 接続パスワードを設定しておきます。
  • 各仮想マシンは、vncserver コマンドでデスクトップ環境(gnome/kde など)が起動するように設定しておきます。
# cat /home/nakai/.vnc/xstartup
#!/bin/sh

xrdb $HOME/.Xresources
export GTK_IM_MODULE=scim
exec gnome-session &
2.管理サーバーの準備

・MySQL DB (DB 名 vmadm)にユーザー情報と仮想マシン情報のテーブルを作成

mysql> select * from users;
+-------+---------+
| user  | vmgroup |
+-------+---------+
| nakai | nakai   |
| nakai | student |
| ataro | student |
+-------+---------+
↑ユーザー名と利用を許可するデスクトップグループを登録

mysql> select * from vm;
+-----------+------------+---------+------+
| vmname    | ip         | vmgroup | user |
+-----------+------------+---------+------+
| nakai00   | 10.7.7.101 | nakai   | NULL |
| student00 | 10.7.7.102 | student | NULL |
| student01 | 10.7.7.103 | student | NULL |
+-----------+------------+---------+------+
↑デスクトップ名、IP、デスクトップグループ、予約中ユーザーを登録

複数のユーザーに許可されたデスクトップは共用で、特定のユーザーだけに許可されたデスクトップは個人用ということになります。

・Apache CGI 実行ユーザーから各仮想マシンの各ユーザーに対して、パスワード無しの SSH 接続ができるように公開鍵を登録
(/home を NFS 共有しているので、公開鍵登録は 1 つの仮想マシン上で各ユーザーに行えばよいです。)

・ CGI スクリプト vdesk.cgi を Apache から実行できるように設定

使い方

ブラウザーから管理サーバーの vdesk.cgi を実行します。

ユーザー名を入力してログインします。(図1)

ログインしたユーザーが利用を許可されたグループのデスクトップの空きが表示されるので、利用したいものを Reserve ボタンで予約します。(図2)

リザーブされたデスクトップと IP が表示されます。(図3)このとき、該当のデスクトップで該当ユーザーの vncserver が起動されているますので、"[IP Address]:1" に VNC クライアントから接続するとデスクトップが使用できます。事前に設定した vnc 接続パスワードの入力が必要なので、他人が勝手に接続することはできません。

使用が終わったら、Release ボタンで予約を解除します。このとき、該当のデスクトップの vncserver も停止するので、実際に vnc 接続もできなくなります。複数のデスクトップを同時に予約することも可能です。

・・・Perl CGI の練習問題みたいになっちゃいました。まじめにやるなら Java でしょうが、RAILS でもお手軽にできそうなパターンですね。

これに、仮想マシンの自動プロビジョニングまで組み合わせると、仮想コンピューティング・ラボになるわけですね。

カテゴリー : [   desktop  |  linux  |  xen  ]

2009年 2月 25日 , 12:34:00 JST




2009年 2月 08日 (日曜日)

LTSP で Linux デスクトップのシンクライアント化

データ流出事故の防止や管理コスト削減のために、Windows PC をシンクライアントに置き換えるクライアント統合が流行っていますが、業務専用のデスクトップであれば、ぶっちゃけ、OS は何でもでいいですよね。Firefox と Lotus Symphony (もちろん Lotus Notes も)で必要十分な業務環境であれば、Linux デスクトップを統合して、シンクライアントから使えるようにすれば、もろもろコスト削減にもなるでしょう。

US IBM では、Virtual Bridges 社の仮想化ソフトウェアを利用したソリューションを提供していますが、もうちょっと、手軽な OSS ソリューションということで、LTSP(Linux Terminal Server Project) を紹介します。

基本的な仕組みはこんな感じで、

昔々の「Unix Workstation & X 端末」使いには説明不要なのですが、あえて今風な言葉で説明すると、こんな感じでしょうかね。

  • ディスクレス PC をネットワークブートすると LTSP サーバーから X 端末機能が配信(!)されます。
  • ディスクレス PC は配信された X 端末機能を利用して Linux デスクトップにログインした後、デスクトップ画面を転送します。
  • Linux のマルチユーザーセッション機能を利用することで、複数のユーザーが独立したデスクトップを同時に使用することが可能です。

この LTSP 自体は独立した OSS として開発されているのですが、いろいろな Linux ディストリビューションに標準でとりこまれつつあって、例えば、Ubuntu Linux の場合、Alternate CD を使うと、普通にインストールするだけで何の設定もせずに使えたりします。(こちらでは、公立高校の先生が独自に実験をしていらっしゃるようですね。)

一つ課題をあげると、X 端末機能の配信が PXE Boot なので、LTSP サーバーと端末の間を専用の LAN で直結する必要がある点です。教卓の下のサーバーを教室内の PC から共有するなどにはぴったりなのですが(昔々のホストとダム端末の関係っぽいですね)、 企業で採用するのであれば、例えば、データセンターの LTPS サーバーを複数の事業所から共有で使うなど、WAN 経由での接続が望まれると思います。

で、Ubuntu LTSP を使って実験してみたところ、こういう使い方

は、できそうでした。PXE Boot (X 端末の配信)はローカルで行って、実際の Linux デスクトップの接続先は、WAN の向こうの別のサーバーを指定する、という形ですね。一応、設定方法は、こんな感じです。

DHCP を提供するインターフェースの制限(これは必要に応じて設定してください。)

$ sudo su -
# vi /etc/default/dhcp3-server

INTERFACES="eth1"

XDM 接続するサーバーの指定(ここで、WAN の向こうのサーバーを指定します。)

$ sudo su -
# vi /var/lib/tftpboot/ltsp/i386/lts.conf

[default]
SERVER=XXX.XXX.XXX.XXX

SSH host key の受け入れ

$ sudo su -
# ssh root@XXX.XXX.XXX.XXX

yes で host key を受け入れた後、Ctrl+C で終了

# cp -a /root/.ssh /opt/ltsp/i368/root/
# ltsp-update-image

最後の host key の受け入れがちょっとはまりどころです。XDM でログインする際に SSH 接続を行うのですが、host key の受け入れが先に完了していないと、受け入れの確認プロンプトでバックグラウンドでの処理が中断して接続タイムアウトになってしまいます。ここでは、host key を受け入れた状態のクライアント配信イメージを再作成することで問題を回避しています。

いっその事、PXE Boot はやめて、X 端末だけが起動する軽量 Linux の USB Boot イメージを作った方がすっきりするかも知れませんね。SUSE 系のディストリビューションでも LTSP は取り込まれている様ですので、Ubuntu 以外での LTSP も機会があれば試してみます。

カテゴリー : [   linux  |  ltsp  |  クライアント統合  ]

2009年 2月 08日 , 12:30:00 JST




2009年 2月 02日 (月曜日)

Linux for Power で netatalk

Linux for Power で netatalk が使いたいというご要望があったので、やりました。

豆知識

  • Net + AppleTalk = netatalk なので(たぶん)、『ネット・エイ・トーク』と発音していたのですが、英語圏の人々は『ネラトーク』らしいです。関西風には、『ネタトーク』?
  • AppleTalk と言えば、Apple File Sharing のイメージが強いですが、正確には、AppleTalk は TCP/IP に相当するローレベルの通信プロトコルで、Apple File Sharing は、その上に実装されたファイル共有のプロトコルです。しかも、最近は、AppleTalk は TCP/IP の取って代わられたので、Apple File Sharing と言っても、TCP/IP の上に実装された Apple File Sharing である AFP over TCP (Apple File sharing Protocol over TCP) を使うことがほとんどです。(NetBIOS over TCP か NetBIOS over NetBEUI か、みたいなもんですね。)もろもろの文献では、Linux で AppleTalk を使うにはカーネルオプションが云々とあるので、おもむろに .config をのぞいたりしたくなりますが、MAC OS 用のファイルサーバーを作りたいだけなら、気にしなくて大丈夫です。(必要なのは、AFP over TCP であって、AppleTalk は使わないので。)
  • SLES10 はディストリビューションに netatalk パッケージが含まれていて、AppleTalk / AFP over TCP の両方が利用可能です。

というわけで、下記は、RHEL5.2/PPC で netatalk を利用して、AFP over TCP を利用する手順です。(x86 でもたぶん同じだと思います。)

環境

# uname -a
Linux RH5201 2.6.18-92.el5 #1 SMP Tue Apr 29 13:21:29 EDT 2008 ppc64 ppc64 ppc64 GNU/Linux
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.2 (Tikanga)

Assume the following sources are downloaded under /root/work/.

db-4.2.52.tar.gz
netatalk-2.0.3.tar.gz
netatalk-2.0.3-cjk-2.patch.gz

BDB included in RHEL5.2 requires pthread, but netatalk doesn't work with pthread. Hence, you need to build another BDB without pthread.

cf.) http://netatalk.sourceforge.net/2.0/htmldocs/installation.html#id2837727

# cd /root/work
# tar -xvzf db-4.2.52.tar.gz
# cd db-4.2.52/build_unix
# ../dist/configure --with-mutex="PPC/gcc-assembly" --disable-shared
# make
# make install
Then make netatalk-2.0.3 with CJK patch.
# cd /root/work
# tar -xvzf netatalk-2.0.3.tar.gz
# cd netatalk-2.0.3
# zcat ../netatalk-2.0.3-cjk-2.patch.gz | patch -p1
# ./configure --enable-redhat --with-bdb=/usr/local/BerkeleyDB.4.2 --disable-cups
# make
# make install
Some configurations...
# vi /usr/local/etc/netatalk/netatalk.conf

ATALKD_RUN=no
export ATALK_MAC_CHARSET='MAC_JAPANESE'
export ATALK_UNIX_CHARSET='UTF8'

# vi /usr/local/etc/netatalk/afpd.conf

- -uamlist uams_clrtxt.so,uams_dhx.so -nosavepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8

# vi /usr/local/etc/netatalk/AppleVolumes.default

#~
/shared "Shared" options:usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 veto:/lost+found/

Now start the daemon.

# service atalk start


カテゴリー : [   linux  |  netatalk  |  power  ]

2009年 2月 02日 , 12:45:00 JST



2009年 1月 30日 (金曜日)

AIX で make したら負けかなと思って・・・ないですよね。

AIX マニアな訳ではないのですが、最近 AIX で make する機会が多いので、AIX で OSS をソースコードからコンパイルする際のポイントをまとめておきます。これから AIX で make にチャレンジする方の参考程度まで。

アプリケーション開発ファイルセットを導入してください。少なくとも下記のファイルセットは必須です。

# lslpp -L | grep bos.adt
bos.adt.base 6.1.1.0 C F Base Application Development
bos.adt.include 6.1.1.1 C F Base Application Development
bos.adt.lib 6.1.0.0 C F Base Application Development
bos.adt.libm 6.1.1.0 C F Base Application Development

C コンパイラーは AIX Toolbox for Linux Applications で提供される最新の gcc を使用します。また、libgcc も同時に導入してください。

  • gcc と libgcc は、それぞれ AIX5.X 用と AIX6.1 用でパッケージが分かれているので注意してください。
  • 多くの OSS は、gcc でのコンパイルを前提に作成されていますので、xlc などでのコンパイルは失敗する可能性が高くなります。
  • xlc と gcc の両方が導入されている環境などでは、環境変数 CC で、gcc を指定してください。(export CC=gcc)

make コマンドは、AIX 標準の make コマンドでも問題ないことが多いですが、念のため、AIX Toolbox for Linux Applications で提供される GNU make を利用することをお勧めします。(make コマンドの代わりに gmake コマンドを使用します。)

configure コマンドで必要なライブラリーの不足を指摘される場合は、まずは、 AIX Toolbox for Linux Applications で提供されるライブラリーを利用して下さい。また、AIX Toolbox for Linux Applications に収録前のベータ版の AIX 用 RPM パッケージを入手することも可能です。

特に次の RPM パッケージは前提となることがよくあります。

  • readline, readline-develep: コマンドラインでの入力作業を行うアプリケーションでよく用いられます。(CUI クライアントなど)
  • flex, bison: 構文解析を必要とするアプリケーションでよく用いられます。(RDB など)

OpenSSL ライブラリーは、AIX Web Download Pack の最新版を使用します。古いバージョンでは、ヘッダーファイルのコメント行の書式に問題があり、gcc でのコンパイルに失敗する場合がありました。

古いバージョンの OSS は、AIX6.1 でのコンパイルに失敗する可能性が高いです。

こちらの記事も参考になります。 DeveloperWorks / Open Source with AIX

カテゴリー : [   AIX  |  gcc  ]

2009年 1月 30日 , 11:00:00 JST




2009年 1月 28日 (水曜日)

折り目正しい技術情報

Linux/OSS の折り目正しい技術情報はこの辺りで公開しています。

折り目正しくない技術情報は・・・この Blog で。




2009年 1月 28日 , 08:04:43 JST




2009年 1月 27日 (火曜日)

Samba3.2 for Solaris10 / AIX6 を製品化

OSSTech 社がSamba3.2 の AIX 版をサポート付き製品として発表していますね。

Power Systems で OSS を使うパターンと言うと、

  • もともと Power Systems を使っていて、OSS の Function が必要になった。(機能要件アプローチ)
  • もともと OSS を使っていて、Power Systems の信頼性が必要になった。(非機能要件アプローチ)

がありますが、OSSTech 社の事例(独立行政法人・国立病院機構様 IBM Power 520 x 182 台での Samba 採用)は、前者のパターンの様ですね。

ちなみに、OSSTech 社の製品版ではなくて、素の Samba を AIX6.1 で使う気合いのある方は、こちらをどうぞ。

---------------------------->8---------------------------- 
Note that Samba is available on AIX6.1 after 3.2.1, see the announcement note: [Samba] [ANNOUNCE] Samba 3.2.1 Available for Download

The followings are intended to use Samba as a simple file server, i.e. without LDAP nor AD nor Domain Controller related functions.

Environment

# oslevel -s
6100-00-04-0815

# rpm -qa
cdrecord-1.9-7
mkisofs-1.13-4
AIX-rpm-6.1.0.0-1
libgcc-4.2.0-3
zlib-1.2.3-4
bash-3.0-1
make-3.80-1
info-4.6-1
gcc-4.2.0-3

# lslpp -L | grep bos.adt
  bos.adt.base               6.1.1.0    C     F    Base Application Development
  bos.adt.include            6.1.1.1    C     F    Base Application Development
  bos.adt.lib                6.1.0.0    C     F    Base Application Development
  bos.adt.libm               6.1.1.0    C     F    Base Application Development
gcc, libgcc and bos.adt.* are likely essential.

Download samba-3.2.4.tar.gz


Do make and install.
# cd samba-3.2.4/source
# ./configure
# gmake
# gmake install

Prepare the conf file.
# cd .../examples
# cp smb.conf.default /usr/local/samba/lib/smb.conf
# ln -s /usr/local/samba/lib/smb.conf /etc/smb.conf

Edit /etc/smb.conf as you like...

Set environment variables.

Add the library path to /etc/environment
LD_LIBRARY_PATH=/usr/local/samba/lib
Add the command path to /.profile
PATH=$PATH:/usr/local/samba/bin
Register nmbd and smbd as subsystems and start them.
# mkssys -s nmbd -p /usr/local/samba/sbin/nmbd -a '-F -s /usr/local/samba/lib/smb.conf' -u 0 -S -n 15 -f 9 -R -G samba
# mkssys -s smbd -p /usr/local/samba/sbin/smbd -a '-F -s /usr/local/samba/lib/smb.conf' -u 0 -S -n 15 -f 9 -R -G samba

# startsrc -g samba
0513-059 The nmbd Subsystem has been started. Subsystem PID is 340022.
0513-059 The smbd Subsystem has been started. Subsystem PID is 315634.

# lssrc -g samba
Subsystem         Group            PID          Status
 nmbd             samba            340022       active
 smbd             samba            315634       active

# ps -ef | grep samba
    root 163980 315634   0 17:07:48      -  0:00 /usr/local/samba/sbin/smbd -F -s /usr/local/samba/lib/smb.conf
    root 315634 196720   0 17:07:47      -  0:00 /usr/local/samba/sbin/smbd -F -s /usr/local/samba/lib/smb.conf
    root 340022 196720   0 17:07:47      -  0:00 /usr/local/samba/sbin/nmbd -F -s /usr/local/samba/lib/smb.conf
Test connection.
Create user nakai from smitty.

# smbpasswd -a nakai
New SMB password:
Retype new SMB password:
Added user nakai.

# smbclient -L localhost -U nakai
Enter nakai's password:
Domain=[AIX61] OS=[Unix] Server=[Samba 3.2.4]

        Sharename       Type      Comment
        ---------       ----      -------
        myshare         Disk      Mary's and Fred's stuff
        IPC$            IPC       IPC Service (Samba Server)
        nakai           Disk      Home Directories
Domain=[AIX61] OS=[Unix] Server=[Samba 3.2.4]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        MYGROUP              AIX61

# smbclient //localhost/myshare -U nakai
Enter nakai's password:
Domain=[AIX61] OS=[Unix] Server=[Samba 3.2.4]
smb: \> ls
  .                                   D       0  Sat Oct 11 11:05:13 2008
  ..                                  D       0  Sat Oct 11 13:44:51 2008
  README                                    278  Sat Oct 11 11:05:13 2008

                40960 blocks of size 4096. 11031 blocks available
smb: \> exit




カテゴリー : [   AIX  |  samba  ]

2009年 1月 27日 , 09:47:36 JST

Previous month
  2009年 11月
1234567
891011121314
15161718192021
2223
24
25262728
2930     
       
今日

RSS for

RSS for

お気に入り

カテゴリー
AIX (2)
Director (1)
Linux (2)
OSS (1)
Symposium (1)
Zabbix (1)
desktop (1)
gcc (1)
linux (3)
ltsp (1)
netatalk (1)
power (1)
samba (1)
xen (1)
クライアント統合 (1)

最近のエントリー
Zabbix と IBM Systems Director を連...
なんちゃって仮想デスクトップ予約システム
LTSP で Linux デスクトップのシンクライアント化
Linux for Power で netatalk
AIX で make したら負けかなと思って・・・ないですよね。
折り目正しい技術情報
Samba3.2 for Solaris10 / AIX6 を製...

既読のブログ

関連サイト
新しいWeb2.0ツール WebSphere sMash
The Rational edge: @IT厳選の翻訳記事を紹介
DB2 Express-C:ライセンス無償のDB2
IBM Info 2.0: Mashup, Remix, Explore, Create


 
    日本IBMについて プライバシー お問い合わせ