Top Banner

Click here to load reader

44
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 【Tektek】linux on domino 20140620

テクてく Lotus 技術者夜会

Linux on Dominoの実力は?

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

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

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

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

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

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

Page 2: 【Tektek】linux on domino 20140620

まずは、自己紹介から

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

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

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

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

Notes/Dominoインフラ技術者

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

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

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

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

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

Facebook :/masa.rosinante

Twitter :@masa.rosinante

Mail :[email protected]

2

Page 3: 【Tektek】linux on domino 20140620

会社情報を少し。。

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

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

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

3

Page 4: 【Tektek】linux on domino 20140620

今日のお題

Linuxon

Domino!

Page 5: 【Tektek】linux on domino 20140620

皆様へまずは質問です

UNIX系サーバでDominoサーバを

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

実業務で、

検証用で、

自分の趣味で、

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

5

Page 6: 【Tektek】linux on domino 20140620

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

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

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

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

ってことかも

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

(^_-)-☆

6

Page 7: 【Tektek】linux on domino 20140620

Linuxon

Domino

導入編COPYRIGHT

Page 8: 【Tektek】linux on domino 20140620

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版

Page 9: 【Tektek】linux on domino 20140620

インストール終了後

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

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

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

9

Page 10: 【Tektek】linux on domino 20140620

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

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

10

Page 11: 【Tektek】linux on domino 20140620

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

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

– glibc

– libgcc

– libstdc++

– libXp

その理由は。。。。

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

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

11

Page 12: 【Tektek】linux on domino 20140620

構築時の注意点①

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

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

12

Page 13: 【Tektek】linux on domino 20140620

構築時の注意点②

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

Page 14: 【Tektek】linux on domino 20140620

構築時の注意点③

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

Page 15: 【Tektek】linux on domino 20140620

Linux on Domino運用編

COPYRIGHT

Page 16: 【Tektek】linux on domino 20140620

運用①

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

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

16

Page 17: 【Tektek】linux on domino 20140620

運用②

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

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

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

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

17

Page 18: 【Tektek】linux on domino 20140620

運用④

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

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

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

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

18

Page 19: 【Tektek】linux on domino 20140620

運用③

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

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

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

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

19

Page 20: 【Tektek】linux on domino 20140620

運用④

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

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

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

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

20

Page 21: 【Tektek】linux on domino 20140620

21

パフォーマンス対決

Page 22: 【Tektek】linux on domino 20140620

ベンチマーク環境①

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

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

22

Linux/Windows(ND8.5.x)

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

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

WindowsPCs(Server.load)

Page 23: 【Tektek】linux on domino 20140620

ベンチマーク環境②

サーバ設定

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無効

Page 24: 【Tektek】linux on domino 20140620

ベンチマーク環境③

クライアント設定

24

設定箇所 設定内容

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

Page 25: 【Tektek】linux on domino 20140620

ベンチマーク環境④

測定方法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

Page 26: 【Tektek】linux on domino 20140620

ベンチマーク環境⑤

評価指標

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ブロックで換算 ボトルネックにならないか検証

Page 27: 【Tektek】linux on domino 20140620

ベンチマーク環境⑥

レスポンス測定

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

Page 28: 【Tektek】linux on domino 20140620

ベンチマーク結果①

トランザクション数

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のほうが高い

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

Page 29: 【Tektek】linux on domino 20140620

ベンチマーク結果②

CPU利用率

29

Page 30: 【Tektek】linux on domino 20140620

ベンチマーク結果③

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

30

Page 31: 【Tektek】linux on domino 20140620

ベンチマーク結果④

メモリ割り当て

31

Page 32: 【Tektek】linux on domino 20140620

ベンチマーク結果⑤

ディスク利用状況(Windows)

32

Page 33: 【Tektek】linux on domino 20140620

ベンチマーク結果⑥

ディスク利用状況(Linux)

33

Page 34: 【Tektek】linux on domino 20140620

ベンチマーク結果⑦

レスポンスタイム

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

Page 35: 【Tektek】linux on domino 20140620

ベンチマークを終えて

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

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

35

Page 36: 【Tektek】linux on domino 20140620

ベンチマークを終えて

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

IDE→SCSI→SATA→SAS→SSD→iodrive

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

36

Page 37: 【Tektek】linux on domino 20140620

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

Page 38: 【Tektek】linux on domino 20140620

メリット/デメリット

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

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

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

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

38

Page 39: 【Tektek】linux on domino 20140620

メリット/デメリット

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

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

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

39

Page 40: 【Tektek】linux on domino 20140620

最後に..

• Linux on Dominoとして

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

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

40

Page 41: 【Tektek】linux on domino 20140620

(参考)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

Page 42: 【Tektek】linux on domino 20140620

(参考)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

Page 43: 【Tektek】linux on domino 20140620

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

*)

echo

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

echo

exit 1

;;

esac

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

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

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

で導入してください。

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

43

Page 44: 【Tektek】linux on domino 20140620

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