【tektek】linux on domino 20140620

Post on 29-Jun-2015

321 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

テクてく Lotus 技術者夜会

Linux on Dominoの実力は?

Linux版のDominoってなんか面倒じゃねぇ?

Linux版のDominoって業務で使えるの??

なんて思っている管理者の諸君!

今回は、それを払拭するような内容(???)を

紹介できればと思っています。

2014/06/20(Fri)ネオアクシス(株)佐藤正彦

まずは、自己紹介から

氏名 :佐藤正彦(4x歳)

会社名 :ネオアクシス株式会社

職種 :2014年4月より営業へコンバート

それまでは、10数年インフラ技術者兼

Notes/Dominoインフラ技術者

現在 :ユーザ企業で、セールスエンジニアとして就業し、

自社では営業マンとして在籍している2重生活を送る現在。。

2008年からの常駐が長かったので、Notes/Domino以外の技術がめっぽう強くなってしまった。。(xx365とか、A○Sとか)

が、Notes/Dominoを捨てることができず

営業就任とともに、復活の道を模索中

Facebook :/masa.rosinante

Twitter :@masa.rosinante

Mail :sato_masahiko@neoaxis.co.jp

2

会社情報を少し。。

ネオアクシス株式会社とは、・Notes/Dominoを生業としてきたtsb・AS/400を生業としてきたエスイーラボともに「IBM」というキーワードだけでくっついた会社詳しくは、HP見てくださいhttp://www.neoaxis.co.jp

現在は、両会社の得意技を生かすべく、シナジー効果(古い言葉だ。。。)を発揮し、お客様からの信頼を得るべく活動中

結果は、合併(ではなく経営統合というらしい)し5年経過し、やっとこ軌道に乗ってきたのかな???????

3

今日のお題

Linuxon

Domino!

皆様へまずは質問です

UNIX系サーバでDominoサーバを

利用している人いますかー????

実業務で、

検証用で、

自分の趣味で、

いやいや、なんとなく。。。。

5

Linux On Dominoってやってみると意外とね!

ってことがあったりします

もしかすると、Windowsより優秀だったりして?

逆に、やっぱWindowsでしょう?

ってことかも

結論は最後まで見ていただいて皆様でご判断ください

(^_-)-☆

6

Linuxon

Domino

導入編COPYRIGHT

Dominoインストール

• Linuxの場合、tarファイルを解凍して実行するのみWindows版での「setup.exe」は、Linux版だと「install」へ実際には。。。。# tar –xvf DOMINO_9.0.1_64_BIT_LN_XS_EN.tar# cd /root/Downloads# ./installとなります。インストールが開始されます。(実際の画面は以下)

8

今回はGUI版

インストール終了後

• インストールが終わると次はセットアップ!このセットアップ方法は、2種類存在します

A)OSがGUIの場合には、GUIモードでセットアップ可能

B)OSがCUIの場合には、リモートサーバセットアップのみ可能管理クライアントを導入する際のオプションとして選択可能なツールよりDominoサーバのセットアップを実施可能となるこちらの場合には、/opt/ibm/domino/bin/server –listenを実行

9

リモートサーバセットアップ

• リモートサーバセットアップ時には以下のコンソールが表示される

10

Langage Pack導入の注意点(64bit版のみ)

• Langage Packを導入する前に、以下のOSモジュールが必須

– glibc

– libgcc

– libstdc++

– libXp

その理由は。。。。

LangagePackが、32bit版しか提供されておらず、64bit版の場合には上記モジュールを導入しないと、インストールがされない(らしい)

By ロータスカスタマーサポートのiさん情報(嘘です。。)

11

構築時の注意点①

Domino起動用ユーザ(及びグループ)の作成Dominoを起動するための、専用ユーザ及びグループを事前に作成# groupadd notes# useradd –g notes notes※GUIだと以下の画面で簡単に追加可能(コマンドの方が楽チン♪)

※よい子は、パスワードを設定しちゃだめだよ!

12

構築時の注意点②

OSチューニング!!!!!①ファイルハンドル制限の増加/etc/security/limits.confファイルに以下の2行を追加・notes soft nofile 20000・notes hard nofile 65535

②上記を有効にする為に/etc/pam.dにあるいくつかのファイル(※1)に以下の内容を追加する・session required pam_limits.so64bitOSの場合には以下となる・session required /lib64/security/pam_limits.so

※1/etc/pam.d/login、/etc/pam.d/rlogin、/etc/pam.d/ssh

詳しくは以下のURLを参照

http://www-01.ibm.com/support/docview.wss?uid=swg21619936

※pamとはアプリケーションごとの認証方式の一括管理とのこと

13

構築時の注意点③

OSチューニング不要なサービスを停止する。主に以下の4つは必ずチェック!1)iptables(FW機能)service iptables stopchkconfig iptables off

2)postfix (Mail機能)service postfix stopchkconfig postfix off

3)Apache(Web機能、起動してないことが多い)service httpd stopchkconfig httpd off

4)SELinux(セキュリティ管理機能)# setenforce 0# vi /etc/sysconfig/selinux

→ disabled設定をして保存

14

Linux on Domino運用編

COPYRIGHT

運用①

• 自動/停止スクリプト本資料の末尾にサンプルスクリプト(domino)を記載Google先生で検索するとそれなりに出てくるですよ。

• OS起動時の自動起動方法上記スクリプト(domino)を利用して以下の設定を行う1)スクリプトを/etc/init.d配下に保存2)コマンドを実行# /sbin/chkconfig –level 2345 /etc/init.d/domino onこれで再起動するとDominoが自動起動するまた、OSシャットダウン時にもDominoが停止する

16

運用②

• Notes.iniのチューニング1)以下の3つは、実施しておいて損の無い設定かと・Console_Log_Max_Kbytes=0

→ 自動起動スクリプトでログ取得しているので、不要・Log_Sessions=0

→ クラスタ環境の場合、この値が0以外だとユーザがセッションを張るとログが出力され汚くなるので

・NSF_Buffer_Pool_Size_MB=512→ 32bit環境だと自動設定が聞いていない感じ?→ 64bit環境だと、不要

17

運用④

• Unixコマンドでよく使うもの1)Notesプロセスの表示# ps –ef|grep notes

プロセス一覧から「notes」という名前が入っているものの一覧を表示する

2)コンソールログの表示tail –f /local/notesdata/IBM_TECHNICAL_SUPPOER/console.log

コンソールログを最新のものから連続して表示し続けるコンソールの監視に利用することが多い

18

運用③

• Unixコマンドでよく使うもの3)ログの検索(特定文字)# cat

/local/notesdata/IBM_TECHNICAL_SUPPOER/console.log | grep <検索したい文字列>特定の文字列を含むログを一覧表示する

4)netstat –natpネットワークポートとアプリの対応を調査不明なポートとプロセスの関連を見るときに便利

5)お勧めしないが。。プロセスの動的一覧toptopコマンド自体、メモリを大量に消費するので連発はしないように

19

運用④

• Unixコマンドでよく使うもの3)ログの検索(特定文字)# cat

/local/notesdata/IBM_TECHNICAL_SUPPOER/console.log | grep <検索したい文字列>特定の文字列を含むログを一覧表示する

4)netstat –natpネットワークポートとアプリの対応を調査不明なポートとプロセスの関連を見るときに便利

5)お勧めしないが。。プロセスの動的一覧toptopコマンド自体、メモリを大量に消費するので連発はしないように

20

21

パフォーマンス対決

ベンチマーク環境①

目的Linux/Windowsのプラットフォームの違いを大規模環境で検証し、Linuxの実用性を検証する

検証環境以下の検証環境を構築

22

Linux/Windows(ND8.5.x)

ギガビットスイッチ負荷用クライアント

レスポンスタイム測定用(Notes8.5.x)

WindowsPCs(Server.load)

ベンチマーク環境②

サーバ設定

23

設定箇所 設定内容

Domino MailBox数を4つメールテンプレートは標準、メールDB数は1万Notes.iniに以下を設定・ServerTasks=AdminP,CalCon,Router,Replica,Sch,RnRMgr,Collect,Update・Server_Max_Concurrent_Trans=1000・Server_Thread_Pools=100・Debug_Capture_Timeout=1・Debug_Show_TimeOut=1・Debug_ThreadID=1

Windows 1.バッググラウンドプロセスの優先度アプリケーションサービス優先

2.Windowsファイアーウォール無効

3.サービスIIS、DNS等を無効

Linux 1./etc/security/limits.confを変更notesuser soft nofile 20000notesuser hard nofile 49152

2.その他SElinux無効

ベンチマーク環境③

クライアント設定

24

設定箇所 設定内容

Notes 1.セッション上限設定MAX_NETWORK_SESSIONS=2047

ベンチマーク環境④

測定方法Server.loadの「R8Mail Workload」を利用

上記ワークロード1周分の負荷(3,000アクセスで約40分前後、10,000アクセスで1時間前後)を基準として、Domino内部、サーバ内部、レスポンスタイムを総合的に分析してWindows環境とLinux環境において、有意な差がでるかを検討するものとする

25

シナリオ 内容

R8Mail Workload

①メールボックスOpen/8~12分②受信ビューのリフレッシュ/5~15秒③5文書開く 開いたら最初のメッセージに返信/20~50秒④メッセージ送信(1通を1名に送信)/1~2分⑤2通のメールを3名に送信/1~2分⑥スケジュール予約/20~40秒⑦会議招集/20~40秒⑧NotesBenchフォルダに文書移動/90~180秒⑨会議招集に返答/45~75秒⑩2文書削除⑪5~9分 Wait

ベンチマーク環境⑤

評価指標

26

比較内容

測定項目 測定値 Windowsパフォーマンスモニタ

測定値 Linux(vmstat)

内容

- 接続ユーザ数 Domino Serverにより計測 Domino Serverにより計測 サーバに接続したユーザ数

ドミノ トランザクション数 Domino Serverにより計測 Domino Serverにより計測 TPM(Transaction Per Minute)

サーバ 1分あたりのトランザクション数

レスポンスタイム 手動で計測 手動で計測 操作辺りの応答時間

3回の平均値 3回の平均値CPU CPU利用率 \Processor(_Total)\% User Time vmstat / us CPUがユーザーサービス

ユーザーモード で利用された率

CPU利用率 \Processor(_Total)\% Privileged Timevmstat / wa CPUがユーザーサービス以外ユーザー以外 \Processor(_Total)\% Interrupt Time で利用された率

の合計値タスク切り替え数 \System\Context Switches/sec vmstat / cs タスクの1秒間の切替え数

メモリ 割り当てメモリ Domino Serverにより計測 Domino Serverにより計測 メモリの割り当て量

ディスク ディスク読み込み \LogicalDisk(C:) 該当項目無し ディスク読み書きバイト数

バイト数 \Avg. Disk Bytes/Read (linux 1分のトータル)

該当項目無し vmstat / bo (Win 1分の平均)

4096ブロックで換算ディスク書き込み \LogicalDisk(C:) 該当項目無し ※プラットフォーム間で

バイト数 \Avg. Disk Bytes/Write 単純比較できないため

該当項目無し vmstat / bo 3000負荷と10000負荷で

4096ブロックで換算 ボトルネックにならないか検証

ベンチマーク環境⑥

レスポンス測定

27

No 実施内容

R1 DBアクセス NABを開く ビューが表示される

R2 メールDBアクセス メールDBを開く 受信文書が表示される

R3 メール新規作成 新規メール画面が表示される

R4 宛先選択 一覧画面が表示される

R5 メール送信 送信し受信ビューに戻る

R6 保守タスク 1GDBのfixup 3万文書DBのfixup -F

R7 1GDBのCompact 3万文書DBのCompact -C

ベンチマーク結果①

トランザクション数

28

トランザクション数比較 3000 User

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

1分 3分 5分 7分 9分 11分

13分

15分

17分

19分

21分

23分

25分

27分

29分

31分

33分

経過時間

トラ

ンザ

クシ

ョン

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

接続

ユー

ザー

Linux接続ユーザー数

Linuxトランザクション数

Windows接続ユーザー数

Windowsトランザクション数

トランザクション数はほぼ同等だが、若干Linuxのほうがピーク時のトランザクション数は高い

トランザクション数比較 10000 User

0

5000

10000

15000

20000

25000

1分 3分 5分 7分 9分 11分

13分

15分

17分

19分

21分

23分

25分

27分

29分

31分

33分

35分

37分

39分

41分

43分

経過時間

トラ

ンザ

クシ

ョン

0

5000

10000

15000

20000

25000

接続

ユー

ザー

Linux接続ユーザー数

Linuxトランザクション数

Windows接続ユーザー数

Windowsトランザクション数

ユーザーセッション数にくらべてトランザクション数はさほどあがらないが、ピーク時はLinuxのほうが高い

セッションがきれない現象が両方のサーバで確認できた。おそらく負荷用のクライアントの限界と思われる。

ベンチマーク結果②

CPU利用率

29

ベンチマーク結果③

コンテキストスイッチ比較(CPU切替比較)

30

ベンチマーク結果④

メモリ割り当て

31

ベンチマーク結果⑤

ディスク利用状況(Windows)

32

ベンチマーク結果⑥

ディスク利用状況(Linux)

33

ベンチマーク結果⑦

レスポンスタイム

34

Linuxレスポンス Windowsレスポンス

評価項目 3000 User 10000 User 3000 User 10000 User

R1 1.9 1.8 1.5 1.6R2 4.2 4.8 3.5 2.2R3 1.3 1.1 1.4 1.5R4 2.6 1.4 1.3 1.4R5 1.5 1.9 1.0 1.2R6 4.5 10.9 5.6 81.0R7 19.0 24.3 21.7 52.0

No 実施内容

R1 DBアクセス NABを開く ビューが表示される

R2 メールDBアクセス

メールDBを開く 受信文書が表示される

R3 メール新規作成 新規メール画面が表示される

R4 宛先選択 一覧画面が表示される

R5 メール送信 送信し受信ビューに戻る

R6 保守タスク 1GDBのfixup 3万文書DBのfixup -F

R7 1GDBのCompact 3万文書DBのCompact -C

ベンチマークを終えて

総評(私見として)プラットフォームをWindows、Linuxのどちらを選択したとしても、Dominoのパフォーマンスは良好でありLinuxがWindowsに引けを取らない事が理解できた。

一部のベンチマークにおいては、LinuxがWindowsを上回る結果が出ているものもある主に、ディスクアクセスに関する部分は、Linuxに分があると思う。これは、ディスクフォーマットの差がでたと考えてよいかと。※WindowsのNTFSはディスクアクセスが遅いという一般的な見解が多いので

35

ベンチマークを終えて

総評(私見として)こう見ると、CPU/メモリに双方の差はあまりなく、ディスクの性能こそがDominoのパフォーマンスに大きく影響があることが、別の側面からわかる

IDE→SCSI→SATA→SAS→SSD→iodrive

と、ディスク性能は上がってきているので、それに引っ張られるようにDominoもパフォーマンスを上げることが十分可能と思われる

36

Linux on Dominoって結局どうなの?

メリット/デメリット

Linuxを利用するメリットとは○OSのライセンス費用がめっちゃ安い!Windowsに比べると、半分程度、もしかすると「0円」ってことも可能

○ハードウェアのスペックを押えることが可能Windowsに比べると、2/3程度のCPU/メモリー容量で十分すぎる但し、Dominoのシステム要件は忘れずに!上記はあくまでも「OS部分」とに限って。。。ということで

○意外とセキュア環境を作れる(かも)ウイルス感染が意外と低いので、対策ソフト等はDomino上のみで十分

○OSのハングアップは無い!(いや、嘘かも。。。。)とはいえ、Windowsの様にアプリに引きずられてOS再起動の必要性は無いかと。

38

メリット/デメリット

Linuxを利用するデメリットとは×OSの知識はある程度ないとダメ(かも。。)Windowsの場合、クライアントOSと画面構成や設定箇所はほぼ同じだが、Linuxの場合には、使うシーンが極端に少ないので、覚えられない。。。。

×コマンドラインに慣れないと。。Windowsはめったに操作する事のないコマンドライン。。Linuxになることで、OS操作やDomino操作等では利用することになる。GUIだけでは、すべてをまかなう事は出来ない。。

×情報が少なすぎる仕方がないのかもしれませんが、利用数が少ないので、Web上にある情報もWindowsに比べるとすくなすぎ、解決策が簡単には見つからない(AIXはもっと少ない。。。、Windowsは無くてもなんとかなる)

39

最後に..

• Linux on Dominoとして

世間一般的にOSは「Windows」が」常識になってしまっている。なんのアプリであっても、OSは「Windows」と。。。。が、Dominoに限ると、別にOSはこだわる必要はないことが今回の検証でも良くわかったと思います。Linuxであったとしても、中規模~大規模ユーザで利用しても何ら問題は無いと。。チューニングさえできれば、Windowsよりもパフォーマンスは上になる可能性は十分あります。

なので、毛嫌いしないでまずは検証用からでもチャレンジしてみてください!ついでに、監視が必要な場合には「Zabbix」を採用してください!

40

(参考)Domino起動/停止スクリプト

#!/bin/sh

# chkconfig: 2345 99 00

# Startup script for Domino R5

#

# description: This script starts the Domino server in a screen session ¥

# And ensures a proper shutdown before the system goes down.

DESC="Domino R9.0.1"

SrvAcc="notes"

DominoDir="/local/notesdata"

DominoSrv="/opt/ibm/lotus/bin/server"

TimeOutKill=300

TasksToKill="server replica router update stats logasio adminpsched calconn event pop3 imap maps ldap http smtp mtc amgr"

tok=0

. /etc/rc.d/init.d/functions

getpid() {

pid=`/sbin/pidof -s server`

}

getpid

case "$1" in

start)

if [ "$pid" = "" ]; then

echo -n "Starting $DESC: "

su - $SrvAcc -c "cd $DominoDir && screen -m -d -S Domino $DominoSrv"

sleep 3

getpid

if [ "$pid" != "" ]; then

success

touch /var/lock/subsys/domino

else

failure

fi

echo

fi

;;

41

(参考)Domino起動/停止スクリプト

stop)

TimeOutKill=$[TimeOutKill/2]

echo -n "Shutting down $DESC: "

getpid

if [ "$pid" != "" ]; then

su - $SrvAcc -c "cd $DominoDir && $DominoSrv -quit" > /dev/null &

# Let's wait for the Domino to terminate

while [ "$pid" != "" ] && [ "$tok" != "$TimeOutKill" ] ; do

echo -n "..."

tok=$[tok+1]

sleep 2

getpid

done

echo ""

if [ "$tok" != "$TimeOutKill" ] ; then

success

else

failure

$0 kill

fi

else

failure

fi

echo

;;

kill)

echo -n "Killing $DESC: "

kill -9 ̀ /sbin/pidof -s $TasksToKill` > /dev/null

sleep 1

kill -9 `/sbin/pidof -s $TasksToKill` > /dev/null

sleep 1

tmp=`/sbin/pidof -s $TasksToKill`

if [ "$tmp" = "" ]; then

success

rm -f /var/lock/subsys/domino

else

failure

fi

echo

;;

status)

status server

;;

restart)

if [ "$pid" != "" ]; then

$0 stop

fi

$0 start

;;

42

(参考)Domino起動/停止スクリプト

*)

echo

echo "Usage: domino {start|stop|kill|restart|status}"

echo

exit 1

;;

esac

2ページ半のスクリプトをつなぎ合わせると利用できます。

それぞれの環境に合わせて変更してください。

Screenというコマンドをつかっているので# yum install screen

で導入してください。

実行パーミッションも忘れずに

43

ありがとうございましたm(__)m

top related