アーカイブ:  « 2006年6月 | メイン | 2006年8月 »

2006年7月30日

SANとNAS

SAN(Storage Area Network)とNAS(Network Attached Storage)は同じようなことを言っている(ストレージをネットワーク上に配置して仮想化して位置透過性を実現して利用する)ということなのだが、SANはネットワークそのもの、NASはハードウエアを示している。
SAN: http://e-words.jp/w/SAN.html
NAS: http://e-words.jp/w/NAS.html
ただ、具体的な違いは、ファイルシステム(NASはストレージ自身で持っているが、SANはサーバー側に持つので、互換性のないOSが同じ領域を読み込むと破壊が起こるがSANの方がオーバーヘッドは小さい)ストレージとの接続方法にあるようだ。
http://www.atmarkit.co.jp/fsys/keyword/007san_nas/007san_nas.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060407/234778/?ST=start4

最近はJ-SOX(日本版SOX法)対応や地震などのサービスを継続しがたい状態になった場合でも他のスタンバイサーバーで最新データにて運用を継続するなど冗長化への利用も増えているようだ。

Apacheの設定「KeepAliveTimeout」編

M/M/1待ち行列モデルからKeepAliveTimeoutの有効性についてうまく説明してある。うーん確かに、タイムアウトを延ばせばサービス時間が延びて待ち行列ができやすくなるわけですね。
http://akalabo.net/archives/2005/09/apachekeepalive.html

2006年7月28日

レーベンシュタイン距離

http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2
http://jp.php.net/manual/ja/function.levenshtein.php

2006年7月25日

snmpとMRTG

○CPUのLoad Averageをグラフに描画する
snmp.confでの設定は特に不要

Target[192.168.0.1_cpu]: 1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:
public@192.168.0.1 (※改行されていますが、1行です)
MaxBytes[192.168.0.1_cpu]: 300
YLegend[192.168.0.1_cpu]: Load Average
LegendI[192.168.0.1_cpu]: 1min
LegendO[192.168.0.1_cpu]: 5min
ShortLegend[192.168.0.1_cpu]: %
Unscaled[192.168.0.1_cpu]: dwmy
Title[192.168.0.1_cpu]: Load Average for www.hogehoge.com
PageTop[192.168.0.1_cpu]: <H1>Load Average for www.hogehoge.com</H1>
Options[192.168.0.1_cpu]: gauge,growright
ThreshMaxI[192.168.0.1_cpu]: 50


○httpd(inetd)のプロセス数をグラフに描画する
snmp.confに以下の行を設定する
proc httpd
proc指定は.1.3.6.1.4.1.2021.2のMIBで取得可能なので、MRTGでは

Target[192.168.0.1_httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.5.1:
public@192.168.0.1: (※改行されていますが、1行です)
MaxBytes[192.168.0.1_httpd]: 200
Title[192.168.0.1_httpd]: HTTPD Process for www.hogehoge.com
PageTop[192.168.0.1_httpd]: <H1>HTTPD Process for www.hogehoge.com</H1>
Options[192.168.0.1_httpd]: absolute,gauge,nopercent,integer
Unscaled[192.168.0.1_httpd]: dwmy
ShortLegend[192.168.0.1_httpd]: process
YLegend[192.168.0.1_httpd]: HTTPD Process


○PostgreSQLのコネクション数をグラフに描画する
まず、vi /home/postgres_process.shとして以下を記述する

---------------------------
#!/bin/sh

LANG=C
export LANG
POSTGRESQL=`ps -ef | grep -w postgres | grep -cv grep`
echo $POSTGRESQL
---------------------------
chmod oug+x /home/postgres_process.shとして実行できるようにする。
ためしに/home/postgres_process.shを実行して数値が帰ってくるか確認する。

snmp.confに以下の行を設定する
exec postgresql /home/postgres_process.sh
exec 指定は.1.3.6.1.4.1.2021.8のMIBで取得可能なので、MRTGでは

Target[192.168.0.1_postgresql]: .1.3.6.1.4.1.2021.8.1.100.1&.1.3.6.1.4.1.2021.8.1.100.1:
public@192.168.0.1: (※改行されていますが、1行です)
MaxBytes[192.168.0.1_postgresql]: 150
Title[192.168.0.1_postgresql]: PostgreSQL Process for www.hogehoge.com
PageTop[192.168.0.1_postgresql]: <H1>PostgreSQL Connection for www.hogehoge.com</H1>
Options[192.168.0.1_postgresql]: gauge,absolute,integer,unknaszero,nopercent
Unscaled[192.168.0.1_postgresql]: dwmy
ShortLegend[192.168.0.1_postgresql]: connections
YLegend[192.168.0.1_postgresql]: PostgreSQL Connection

を設定する。
ところで、デフォルトではグラフの向きが左向きになっているが、日本人の感覚では時系列は右向きであることが自然だ。そこで、全体にgrowrightを効かせる方法(オプションディテクティブ)があるので、これも使ってみると良い。
Options[^]: growright

追記:
MIB一覧
cpu .1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2
mem .1.3.6.1.4.1.2021.4.4.0&1.3.6.1.4.1.2021.4.6.0
disk .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2
exec .1.3.6.1.4.1.2021.8.1.100.1&.1.3.6.1.4.1.2021.8.1.100.1
httpd .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.5.1

2006年7月24日

再帰的に内容をチェックする

find /var/ -name '*' -exec grep -nH 'hogehoge' {} \;

/var 以下のファイルにhogehogeが含まれるファイル名とその行数を表示

2006年7月18日

md5sum

md5チェックサムの使い方

生成方法
md5sum (target_file) > (md5チェックサムファイル)

検証方法
md5sum --check (md5チェックサムファイル)

OKの場合
(target_files):OK
NGの場合
・・・エラー内容・・・
md5sum: WARNING: 1 of 1 listed file could not be read

ネットワークのいろは

通信方法
・ユニキャスト通信
ホストとホストが1対1で通信すること。
・マルチキャスト通信
特定のネットワーク全体に通信すること。
・ブロードキャスト通信
特定のネットワークに依存せず全ての端末と通信すること。DHCPサーバーを見つけるために問い合わせを行うときにも使われる。


その他
・オクテット
1byte=8bitとは限らないが、1オクテット=8bitである。

2006年7月13日

Apache2 + PHP + PostgreSQLインストール

Apache2 + PHP + PostgreSQLインストールの際のPHPインストールオプションメモ
./configure --with-pgsql=/usr/lib/pgsql --enable-magic-quotes --enable-sockets --enable-memory-limit --enable-calendar --enable-ftp --enable-mbstring --enable-mbstr-enc-trns --enable-mbregex --with-mime-magic --enable-mbstr-enc-trans --with-freetype --enable-gd-native-ttf --with-xml --with-apxs2=/usr/local/apache2/bin/apxs --with-gd --with-jpeg-dir --with-zlib --with-png --with-curl --with-openssls --with-config-file-path=/etc

make
make install

2006年7月10日

DMLとDDL

DML(Data Manipulation Language)
SELECT, INSERT, UPDATE, DELETEなどレコードの追加や変更、削除に使われるSQL言語

DDL(Data Definition Language)
CREATE, ALTER, DROPなどテーブルの追加や変更、削除に使われるSQL言語

2006年7月 6日

locale変更について

bashシェルにおける環境変数の変更はexportコマンドを利用する。
たとえば、localeを変更する場合には、
export LANG="ja_JP.eucJP"
とすればよい。
確認は、
export $LANG
とする。確か、cシェルの場合にはsetコマンドで変えられたはずだが。。。ちょっと調べてみたい。

2006年7月 4日

MD5とSHA-1

・MD5 RFC1321
1992年にRon Rivest氏が開発
メッセージダイジェスト:128bit

・SHA(Secure Hash Algrithm)1 RFC3174
メッセージダイジェスト:160bit

MD5, SHA-1のいずれにおいても衝突(ハッシュ値が同じになる平文が存在すること)が確認されている。

2006年7月 3日

いろんなソート

大学のときに勉強していたけれども、実際のところ上級言語においてはソートを実装することはまれである。でも最適なオーダーのアルゴリズムを身につけるうえでは非常に重要だと思うので復習。

・クイックソート(オーダー 平均:nlogn 最悪:n2)
・マージソート(オーダー 最悪:nlogn)
・ヒープソート/2分木ソート(オーダー nlogn)
・バブルソート(オーダー n2
※底が省略されているものは、eが底である。念のため・・・

その他で以下のものがあるようだ。
・バスケットソート
・基数ソート

2006年7月 2日

あの航空機事故はこうして起きた

あの航空機事故はこうして起きた

一見、ITとは関係のない本のようにも思えるが、技術ならびに運用面においては非常に参考になる一冊。

トラブルが発生した場合、多くの日本人はなぜトラブルが発生したのかではなく、誰がトラブルを起こしたのかということに注目する傾向がある。

人間は必ずエラーを起こすものであり、そのエラーが発生しないようにコンピューターシステムによってエラーを未然に防いだり、エラーが発生したとしても、安全な方向に制御するのが本来のシステム設計の考え方である。

しかしながらエラーが発生したときに犯人探しを行うようではそこに改善を行う余地がないことにこの本は警鐘を鳴らしている。