rsync を使った syslog のバックアップ

Web translate in English

※ 初出 autherized authorized の誤りです。

 ここでは SUSE Linux Enterprise Server (sles11)を rsync でパスワードなしでバックアップする方法について説明します。syslog サーバなど、あればいいけど容量を食うシステムの場合など便利です。

 rsync は --daemon オプションで起動する方法もありますが、パスワードをシークレットファイルにしなければならないということもあり、cron で自動実行させる方法を検討しました。

この文書を作成するにあたり、次の文書が役に立ちました。


SSH (Secure Shell) Tricks II

rsyncとsshで別のマシンにバックアップ

ここでは、バックアップ元サーバーを myserver バックアップ先を backupserver とします。また、ここでは全て root で作業することを前提として説明します。

-ポイント-
 1) 送信側で公開鍵を作り、受信側のリストに追加します。
 2) 受信側で ssh の設定を変更し、鍵交換による接続を許可します。
 3) 送信側で ssh でパスワードなしで受信側に接続できることを確認します。

-公開鍵の作成-

 バックアップ元のコンソールから次のコマンドを実行します。

myserver:~ # ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):[ENTER]
/root/.ssh/id_rsa already exists.[すでにあれば上書きします]
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):[空欄のままENTER]
Enter same passphrase again:[空欄のままENTER]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d0:34:5a:c5:ff:93:32:98:4f:df:7a:3a:a4:51:8a:3e root@myserver
The key's randomart image is:
+--[ RSA 2048]----+
| +o. |
| = .. |
| o . . |
| . . . |
| S + + . |
| + * = |
| . o B o |
| E o o o|
| . o= |
+-----------------+

myserver:~ # cd .ssh
myserver:~/.ssh # ls
autherized_keys id_rsa id_rsa.pub known_hosts
<---- /root/.ssh に公開鍵が作成されていることを確認します。

この id_rsa.pub を id_rsa.pub.myserver などの名前に変更し、 scp や usb メモリ、ネットワークの公開フォルダなどを通しbackupserverの /root/.ssh にコピーします。

-受け側の公開鍵の登録-

受け側(backupserver)の /root/.ssh の認証キーリストを一応バックアップします。

backupserver:~/.ssh # cp authorized_keys authorized_keys.old

認証キーリストに送信側の公開鍵を追加します。

backupserver:~/.ssh # cat id_rsa.pub.myserver >> authorized_keys


-sshd の設定とリスタート-

受け側の/etc/sshd/sshd_config を編集します。編集前に一応バックアップを取ってください。

backupserver:/etc/ssh # cp sshd_config sshd_config.old

backupserver:/etc/ssh # vi か gedit で sshd_config を編集します

次の例はコメントを抜いたところだけを示します。特に下線部分が重要なようです。

※操作は YaST でもできます。

-編集前-
backupserver:/etc/ssh # cat sshd_config

Host *
ForwardX11Trusted yes
Protocol 2
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL


-編集後-
backupserver:/etc/ssh # cat sshd_config

Host *
Protocol 2
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin yes
UsePAM no

X11Forwarding yes
Subsystem sftp /usr/lib64/ssh/sftp-server
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL


※ sshのセッション開始が遅い場合、特に ユーザ名とパスワードを送ってからのレスポンスが異常に遅い場合

UseDNS no

の行を加えてください。どうもIPアドレスから DNS に延々と逆引きをするため、タイムアウトを待っているようです。DNSにホスト名が登録されている場合や hosts が設定されていれば問題ないようです。

-sshdを再起動します-
backupserver:/etc/ssh # /etc/init.d/sshd restart
Shutting down SSH daemon done
Starting SSH daemon done

万が一動かない場合は sshd_config や authorized.keys を戻してください。

-ログイン確認-

送信側(myserver)からパスワードなしで backupserver にssh ログインできることを確認します-
myserver:~/.ssh # ssh backupserver
Last login: Mon May 24 14:15:16 2010
backupserver:~ #


同じく putty などの ssh クライアントからはパスワードを要求してログインできることを確認します。

backupserver からログイン

login as: root
root@backupserver's password:xxxxxxxx
Last login: Mon May 24 15:59:52 2010 from 192.168.1.10

backupserver:~ #


syslog サーバ(myserver) から rsync を使ってパスワードなしで backupserver にコピーできることを確認します。

myserver:~/Documents # ls
NewDocuments.ott NewSpreadsheets.ots <---- ファイルがある

myserver:~/Documents # rsync -avz -e ssh * backupserver:/tmp <--- コピーしてみる
sending incremental file list
NewDocuments.ott
NewSpreadsheets.ots

sent 9928 bytes received 50 bytes 376.53 bytes/sec <--- パスワードなしでコピーされた
total size is 13334 speedup is 1.34
myserver:~/Documents #

-cronによる自動実行-

次のテキストファイルを /sbin/syslogcopy.sh という名前で作成します。 backup-xxxx は必要に応じて変更してください。

 /usr/bin/rsync -avz -e ssh /backup-from-pash/* root@backupserver:/backup-to-path/

 実行フラグ(x) を root に与えます。
# chmod 700 /sbin/syslogcopy.sh

毎朝7時に実行するよう crontab に次の1行を追加します。
# crontab -e

0 7 * * * /sbin/syslogcopy.sh

セキュリティ上「不適切だね」というご意見があればコメントお待ちします。

-keyword-

Novell Suse Linux Enterprise Server 11, SLES11, rsync, ssh, backup, バックアップ, パスワードなし, nopassword, slow ssh login, windows, contos, ubuntu, xen, virtulization, 仮想化

visit MySite
[PR]
by islandcenter | 2010-05-25 03:36 | SUSE | Trackback | Comments(0)

仮想環境だけではなく、物理環境でも、w32tm /resync を実行すると

「時刻データが利用できなかったため、コンピュータは同期を取り直しませんでした。」

となる場合があります。これがドメインコントローラである場合は致命的です。
マイクロソフトの次のドキュメントを参考に

Windows Server 2003 で Windows 以外の NTP サーバーとの同期が成功しない
http://support.microsoft.com/default.aspx?scid=kb;ja;875424

ここから>>>>
デフォルトでは、Windows Server 2003 ドメイン コントローラはタイム サー
バーとして構成され、対称アクティブ モードを使用して同期要求を送信しま
す。Windows が実行されていない一部の NTP サーバーは、クライアント モード
を使用する要求以外には応答しません。

<<<ここまで

Windows が実行されていないNTPサーバ(通常の公開NTPサーバなどは「Windows が実行されていない」のが普通だと思います。UNIX/Linux やNTP内臓のLAN内のコアルータなどからは、Windows は時刻同期が取れない場合があるようです。

上のマイクロソフトドキュメントから次のバッチファイルを作り実行しました。

w32tm /config /manualpeerlist:NTP_server_IP_Address,0x8 
syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync

NTP_server の後ろにある 0x8 はクライアントモードを意味します。

デフォルトでは NTP_server は time.windows.com で、
0x1、「特別なポーリング間隔 SpecialInterval を使用」です。

ただし、0x8 を使用した場合は、クライアントモードとなるため、タイムサーバとしては利用できないことになります。

Windows NTP,SNTP は Windows ネットワーク内部(AD環境)で最適化されて利用されることを前提としているため、ドメインに参加しない Windows サーバは排他的に、他のプラットフォームとは実に相性が悪いよということになります。


-ntpd を使って対策-
オープンソースのWindows 用 NTPD(4.2.4p8) を導入してみました。

NTP Download
http://www.meinberg.de/english/sw/ntp.htm

プログラムは NetWork Time Protocol として自動スタートします。
Windows 標準の Windows Time は「無効」となります。
イベントビューワの「アプリケーション」に NTP というソースの
動作状況が確認できます。

Syncronized to 192.168.1.240 stratum2

とあれば、同期先との通信しています。
わざとローカルクロックをずらすと

time reset NUMxxxxxxx

が記録され、時刻を取り直します。

a0056607_13263244.gif


NTPDの場合、起動後にサービスが開始され、良くあるNTPサーバに同期を開始します。 xm destroy などの処理を行った直後に Windows はハイパーバイザーからハードウェアクロック(RTC)が取れない場合があるので、 w32tm のように「時刻が狂ったまま」になることは少ないようです。

C:\Program Files\NTP\etc に ntpd.conf が作成されます。

# NTP Network Time Protocol
# **** ATTENTION ****: *You have to restart the NTP service when you
change this file to activate the changes*
# PLEASE CHECK THIS FILE CAREFULLY AND MODIFY IT IF REQUIRED
# Configuration File created by Windows Binary Distribution Installer
Rev.: 1.26 mbg
# please check http://www.ntp.org for additional documentation and
background information
# Use drift file
driftfile "C:\Program Files\NTP\etc\ntp.drift"

# your local system clock, could be used as a backup
# (this is only useful if you need to distribute time no matter how
good or bad it is)
#server 127.127.1.0
# but it should operate at a high stratum level to let the clients
know and force them to
# use any other timesource they may have.
#fudge 127.127.1.0 stratum 12

# Use a NTP server from the ntp pool project (see http://www.pool.ntp.org)
# Please note that you need at least four different servers to be at
least protected against
# one falseticker. If you only rely on internet time, it is highly
recommended to add
# additional servers here.
# The 'iburst' keyword speeds up initial synchronization, please check
the documentation for more details!
server 192.168.1.240
server ntp.nict.jp

server 2.asia.pool.ntp.org iburst
server 0.us.pool.ntp.org iburst
server 1.us.pool.ntp.org iburst
server 2.us.pool.ntp.org iburst


# End of generated ntp.conf --- Please edit this to suite your needs


このように server に続けてLAN内の ntp サーバや公開サーバを指定します。公共サービスは公共のトラフィックのことも考えて、予備としておきます。なるべく地理的に近いサーバを指定することが重要です。間違っても地球の反対側のtime.windows.com などのNTPソースを参照すべきではないでしょう。ISP 指定のNTPや nict, mfeed などを指定することをお勧めします。ntp pool を利用する場合もなるべく asia のものを使うのが理想です。
http://www.pool.ntp.org/jp/

-Ping は飛べども同期が取れない?-

Ping は反応するのに port 123 番から反応が受けられない場合があります。なぜか、特定の Windows サーバには反応するのに、ドメインコントローラであれども、ntpd サーバであっても駄目という奇妙な現象です。直接アドレス指定しても駄目なので、どうも Windows の名前解決の問題のようなので、原因は全く不明です。おとなしく再インストールするしかないようです。ファイアウォールも開いているのに何故でしょうね。

あわせて読んでください。
仮想環境で仮想マシンの時刻のズレを修正する
http://islandcnt.exblog.jp/8952179/

-Key word-
Novell SUSE Linux, SLES11, Windows W32tim, 時刻同期,時刻が狂う, 仮想化, プライベートクラウド
問い合わせは
islandcenter.jp

[PR]
by islandcenter | 2010-05-24 10:44 | Trackback | Comments(4)

仮想化を支える3大ソフトウェア群


1)プロプラエタリ、クローズソフトウェア

 VMware, Hyper-V など

メリット
 - 顧客は高い金を払っているため文句が言える、当然トラブルに対する改善提案も受けられる。
 - いくら払ったかはっきりしているため、費用対効果が明確である。
デメリット
- サポート料込みだけどライセンス料が高い
- ライセンスリソースをプール化できない
- 不良資産、固定資産化しやすい

 大企業や大手SIベンダーがクラウドシステムを作るには適当なシステムだと思います。実績もある(ないのもあるけど)。一番問題なのは、本来、IT資産をプール化してスケールアウト、あるいはスケールダウンを試みる場合、高額なライセンス料金に縛られて、簡単に仮想マシンを構築できないところです。たとえサーバーが100台あって、これをハードウェアプール化しても、将来このハードウェアプールを50台に減らそうにも、余ったCPUソケットを増設してスケールアップしようとしてもライセンスのプールがない限り不可能なのですね。たとえ50台に減らしてもライセンス料は安くはならない。
しかも値段が高いから、利用企業としては、ハードウェアと一緒にリースしたり、固定資産化させなければならない。したがってサービスイン、サービスアウト(という言葉があるかどうかは?)が簡単にできないため、当然経営側もこれだけ巨額な出費に慎重になります。このシステム5年以上かけて人材育成から利用するというしっかりした計画が必要です。

 しかもライセンス上の「マル秘スイッチ」みたいなフラグがあるわけで、ライセンスコードを入れないとオンにならない機能なんてのがついている(と想像できる)何しろオープンソースではないので、そういった「ヒミツ」の機能はいくらでも仕込むことができるのです。

2)商用オープンソフトウェア

 SUSE, Citrix, OracleVM, RedHat などさまざまなオープンソースを商用サポートするメーカーの製品があります。

メリット
- 評価からサブスクリプション購入まで自由にできる
- ソースが公開されているため、ライセンスの制限に嘘が付けない。
- SUSE の場合、単年のサブスクリプションライセンスから3年のプレミアムサービスがあり、不良資産化しにくい
- 技術力のあるなしにかかわらず、さまざまな契約が行える。
- 何しろ安い(SLES11 の場合は最低4万円台からだ)しライセンスも柔軟

デメリット
- 何しろ SUSE の場合、1台32ソケットという現代社会ではあって無いようなライセンス体系なので、非常に自由に仮想システムが作れてしまう。ネットワークが仮想マシンだらけになってしまうことが最大の欠点。
- サブスクリプションやサービスが年間だったりスポットだったりするわけなので、IT予算が予算化しづらい。
- 管理ツールは期待できない

 ということで大手から中小まで使いやすいことは使いやすい。たとえプロジェクトが半年でポシャッてしまっても1年のサブスクリプションライセンスであれば、捨ててしまってもかまわない。しかもサブスクリプションを登録すれば、年間単位でパッチの提供も受けられるし、プレミアムサービスを購入すれば、天才と言われなくても、普通のレベルのサポートを期待できる。2年目以降ももしスケールアウトが必要になればサービスを継ぎ足して購入すればよい。その代わり、こういった商用オープンソースにはさまざまな中途半端な管理ツールがついてきて、ほとんど役に立たないのが現実です。だからあまり複雑な大規模システムにはむいていないという面もあるし、いいオープンソースの管理ツールが出てくれば、実装できるわけですから、期待はできるわけです。私のようなヘボな零細事業者がお客に提案できるのはこの程度のシステムしかありません。非IT関連のお客さんで、あまり「金がなさそうな」ところにプライベートクラウドを売り込むには実に優れていると思います。

3)非商用オープンソフトウェア

Ubuntu や CentOS, FreeBSD などフリーのソフトウェアを使った場合。

メリット
- 何しろライセンスがかからないのでライセンスというプールは無制限である。
- サービスイン、サービスアウトが容易
- ソフトウェアのライセンス、資産管理が不要

デメリット
- タダより高くつくことがある

 何しろ技術力が必要である。行き詰まって経営側から「何とかしろ」といわれた以上、自分で何とかしなければならない。情報もコミュニティ頼りだ。もし、「FreeBSD でやってくれ」と言われたら私としてはかなりのリスクを含めた価格を提示しなければならないでしょう。つまり、経営側からすると、システムの費用をほとんど人月で管理するわけで、ITにかけるコストを計るためのゲージがヒトの評価しかないことがネックになります。当然システムも属人化します。

 したがって非IT企業にはお勧めできない。自社で開発者を抱えたり、いかに安価でITサービスを提供するかが目的であれば最適な判断かもしれない。私には自信がないけど。ウワサによればYahooは FreeBSD, はてなは XEN を使っているらしいけど、そういった大規模なITサービスには無料のオープンソースを使いこなす技術、基盤があるということですね。リースが切れるからこの古い FreeBSD のシステムを何とかしてくれ、といわれた時ははっきり言ってお手上げでした。そういう残骸がたくさん残っているIT企業もたくさんあるんだろうなという気がします。

RedHat+KVM で比べた場合の SUSE+XEN のメリット

 私の公開している情報にはさまざまな条件でご訪問していただくリーダーさんがいます。 "XEN+USB, XEN+CDROM XEN+起動できない, XEN+接続できない”、まぁそういった検索条件です。
この XEN という文字を KVM に置き換えてぐぐってほしい。まず見つかるのはキーボード切替え装置(KVM)に関する情報である。KVMというオープンソース仮想化技術の最悪な点は「名前が悪い」のです。技術そのものは大変優れたものであるということは想像できるのだけれど、今のところ RedHat だけが標準で採用しているわけで、技術の蓄積や経験が不足している。おまけに KVM について調べようとすると、ほとんどがキーボード切り替えスイッチの情報しか見当たらない。

KVMは名前で損している。このまままでは仮想化システムの本筋になれるとは思っていません。XENを捨てた RedHat は名前を変えることが大事だと思いますよ。


コンピュータはクロック以上の性能は出ない

 いくらコア数が多くても、コンピュータはクロック以上の性能は出ません。まして、コンパイラやミドルウェアが数年前に開発されたものが主流で当時はシングルコアだったため、マルチコアに最適化されたコードが搭載されているはずがないのです。私のような単細胞、シングルタスクな人間には想像できないのですが、コア数を目いっぱい使ったソフトウェアを使いこなすには相当な発想、プログラミング技術が必要だと思います。

 巨大な仮想イメージをバックアップ取ろうとして tar 圧縮していたのですが、ボーっと観測していたら8コアのうち、実際に動いているのは1コアだけでした。そりゃカーネルはプロセッサを効率よく利用しようとさまざまなジョブを振り分けるわけですから、8コアが無駄だとは思いませんが、ひとつのジョブが8分かかるところ、8コアにしたからといって1分で終わるわけではないのですね。じゃぁ8つのジョブが8分で終わるんじゃないの? という疑問があるのですが、怖くてまだ試していません。たぶんディスクIOでそれほどのパワーは出ないと予測しています。

 メモリもCPUもパワーが出てきている割には、マルチコアを生かすチップセットというものが無いような気がします。サーバーの外のケーブル、HDDはチューニングのし甲斐というものがあるのですが、チップセットはチューニングできません。全てオンメモリで処理してしまおうと思っても、意外とパフォーマンスに恵まれないのはその辺もあるかなと思います。

 もちろん、改善点はいくつでもあるでしょう。スイッチングHUBはできるだけ良いものを、ケーブルもカテゴリ6以上の短いものを、SATA読み込みは遅いのでSAS-RAIDを選ぶとか、読み込みが多いところはSSDを使うとか工夫のしかたはあるのでしょうが、いかんせんそこまで考えると、予算も足りないし、予測していた程度のパフォーマンスが出なくてがっかりするのも嫌で仕様がありません。これだけは、サーバーメーカーさん工夫していい装置を出してよねと考えています。

 ついでにHDDですが、やっぱり3.5インチには敵わないなと思っています。スペースや音、電力では2.5インチに分があるのですが、いくら消費電力が半分でも、台数を倍積むとそれだけ電力も発熱も出てきます。しかも回転数が1万回転でハイエンドだと、やっぱり3.5インチのほうが明らかに使い勝手はよいように思います。厳密にアクセススピードやベンチマークを取っているわけではないのでご了解ください。

 また、SATAドライブを使ったNASなどがありますが、あれはあくまでもDLTに変わるバックアップメディアだと割り切った方がよさそうです。SAS-RAIDだと、壊れたディスクを自動的に再構築してくれる機能は普通にありますが、SATAのRAID1とかは、単にメインのディスクが壊れたときの単純なバックアップなので、あればいい程度に考えたほうがいいでしょう。動きがおかしくなって初めて「壊れていた」ことに気がつくわけです。NTFSでフォーマットしたSATAのディスクは明らかにランクが落ちるLinuxマシンより読み出し速度が遅いようです。書き込みは普通OSがバッファになるので、あまり意識はないのですが、読み出し速度は明らかにSASに軍配が上がります。Windows Storage Server 搭載SATA-NASなんてのもあります。コンソールつなげれば立派な Windows の画面ですが、基本的には NAS の機能しかついていません。じゃないとあんな安価なライセンスで売れませんからね。もっともそういう結果が言えるのは、サーバー室で暇なあまりコンソールばっかり見ている結果なのですけど。ただしSATAは消費電力を下げることができる点は評価していいと思います。

侮れないGbE

 GbEは1Gしか出ないし、FbEなら3Gとか6Gとか出るようです。確かに何百台とある巨大なデータセンターなら、これくらい投資するのが当たり前のようなところがあるのですが、たいていの中小システムはそんな巨大な予算は組めません。ただ、以外に同じディスクの中でコピーペーストするより、サーバにペーストするほうがスピードが速いということはよく感じます。つまり1対1では、まだディスクの転送速度に GbE なら余裕があると考えてもいいと思っています。・単純なシステムで構築するのであれば、ストレージに光ファイバを入れる必要はないなと思います。SAS なら 6Gb とか言いますが、きらきらした円盤から読み出せる速度がそれだけ速いという意味ではないのですね。
 もっとも10GbEも結構世の中に出ていますが、光ファイバを前提としたものが多く、メタル線を使うものはまだ少ないのが残念ですね。NICで8万円くらい、HUBは100万を超えます。ポート単価が1万円台になると急激に普及すると予測します。最近のNICで侮れないのはiSCSIのブート機能がついていることです。iSCSI ブートができると、実質サーバーにはディスクは不要なんですね。小型のシステムだったら1Uで4つのCPUユニットと共有電源があり、それぞれデュアルソケット、メモリ8バンク、2つの Ethernet と管理ポート、RJ45のコンソールポート、あとUSBが二つぐらいがあれば使えるわけですから、「起動しっぱなし」のシステムには非常に有効かもしれません。この1Uのラックの中に30個くらいの仮想マシンが動いているとしたら、ちょっと痛快です。

visite my site
[PR]
by islandcenter | 2010-05-21 03:14 | プライベートクラウド | Trackback | Comments(0)

Windows XP ネットワークから Windows 7 NotWorkに移行した後、(あれ、綴りが...)「ネットワーク」を開くと、動作しているはずのPCがリストアップされない事が良くあります。

「ping は通れど、Windows のネットワークの一覧に出ない」

「なぜか\\PC名で開けずネットワークに出ない」 Windows NotWork !

「でも\\ip で開けるんだな、これが」

「リモートデスクトップで接続できない」 Windows NotWork !

ということがよくあります。当然ネットワーク管理者へのクレームとなります。

Windows 7 の DNS 名前解決ができない

これは Windows の「マスターブラウザー」の仕様によるものです。

Windows は「起動した順番」から「マスターブラウザー」を決定し、「マスターブラウザー」がシャットダウンすると、別なPCが「マスターブラウザー」となる「仕様」のようです。

また、「マスターブラウザー」となるコンピューターは出来るだけ新しいオペレーティングシステムを選ぶ「仕様」となっているようで、Windows 2003 より Windows 7/8/2008/2012 系のPCを「マスターブラウザー」として「勝手に」選んでくれる「仕様」となっています。

ということで、Windows ネットワークでは「マスターブラウザー」が勝手にどのタイミングで動いてしまうのか、「ネットワークから別なPCを探す」作業は全く「運」によるものということになります。この「マスターブラウザー」が Windows Server であっても、動作が不安定で、より「新しいOS」をマスターブラウザにしてしまうため、お出かけ中の「部長のPC」がマスターブラウザーになってしまったり、「ネットワーク」にPCが出てこないことが頻繁に発生するようです。

調べてみて解ったのは

1) 朝、起動したPCは、まず周囲にマスターブラウザーを探して自分よりエライPCがいなければマスターブラウザーとなる。自分よりエライPCが出勤してきたら、マスターブラウザーの席を譲る。これ社会人の常識。

2) 次に出勤してきた主任は「マスターブラウザーはいないかぁ?」と問い合わせると、新入社員より性能が高く、新しいOSを搭載する「偉いPC」がマスターブラウザーを引き継ぐ(Windows2003 より Windows7 が当然新しいくてエライ。Windows はどっちがエライかを体の大きさや能力ではなく、バージョンで自動的に判断するようです)

3) 何らかの理由でマスターブラウザーの情報は壊れる可能性があり、リブートして別なPCに引き継ぐまでしつこく壊れた情報を保持する。例えば誤った人事考課の途中で夜の銀座に出張してしまった新しモノ好きな「エライ部長のPC」がマスターブラウザーになっていても再起動することができない。(怒られますからね) だから、エライ人が判断を間違えたまま夜の銀座に「出張」してしまい無断で古い Windows Server にパッチを当てて再起動なんかをすると、ホンとに人事考課がエライことになる。

4) Windows 7 をマスターブラウザーに「しない」ためには秘密のレジストリを修正をする必要がある(全台...orz)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Browser\Parameters
ドメイン マスター ブラウザーで発生するブラウザー イベント ID 8021 および 8032 の一般的な原因と解決方法
http://support.microsoft.com/kb/135404/ja

5) マスターブラウザーになる、ならないはデフォルトで「全自動」なので、「全自動」にならないサーバーをマスターブラウザを「手動で強制的に」マスターブラウザーにしなければならない。

6) 夜の「パブリックネットワーク」に接続している場合はマスターブラウザーに情報を提供しない(見えないだけでPINGは通る、ファイアウォールの設定もあるけどたぶん)

9) マスターブラウザーが情報を更新するにはエラク時間がかかる。これも社会の常識です。

10) マスターブラウザーになる、ならないは「全自動」これはサーバーでも同じ仕様なので、何らかの理由で Windows7 がマスターブラウザーとなってしまうこともある。特定のサーバー「だけ」マスターブラウザーにする方法はレジストリを修正する必要がある。(ドメイン環境はまた別な仕組みがあるらしい)

11) NAS がある場合、NAS が勝手に Local Master Browser になっている場合があり、NAS によっては機能を停止できない場合がある。NASをリセットするしかない。つまり Windows (Server)をリブートするのであれば NAS もリブートしたほうがいい。(パートのおばちゃんであっても無視してはいけない。「家政婦は全部知っている」誰がどこにいるかはちゃんと知っているわけです)

12) コマンドプロンプトで "nbtstat" コマンドを実行して、マスターブラウザを確認できる(らしい、あまりにも解りづらい社会の仕組みを解析するツールがMicrosoft によって提供されている) このツールの使えない所は、自分がつかんでいるマスターブラウザを表示する機能がない事である。だから、どうして自分のPCが他のPCに接続できないのか、原因がどこにあるのかを調べる為のツールではない事である。自分がどのマスターブラウザの情報をつかんでいるのかを調べるには、全てのローカルネットワークに nbtstat を打ちまくるしかないという非常に馬鹿な機能しかない所である。

13) 「自分はマスターブラウザーでエライんだ」と誤解していながら、それより「エライ」マスターブラウザーが存在することを知らない上司がたまにいる。そんな上司を盲目に信用している部下もまた沢山いる。(よくある話)。つまり風通しの悪いネットワークではマスターブラウザーが二つあってもおかしくない。どっちが正しいかは起動した後、先に見つかった「マスターブラウザー」次第である。

そしてリセットしたアタマで考えると、目の前の部長より社内のプレイイングマネージャは他にいた気が付くヤツがいて、隣は間違っているのに「オレは問題ない」と黙っている。

14) Microsoft のマスターブラウザーは社内の人事を全て司る DNS サーバなんかよりなぜかエライ。だからDNSの設定が正しく dns名で ping が通っても、ネットワークには見えないことは平気で良くある。それどころか、DNSレコードに登録した名前で Ping すら通らない事もある。困ったことに、せっかくダイナミックDNSなんて設定しても全く無視してくれる。 DNS のマスターレコードにwindows7pc.mynetwork.com なんて設定しても、Windows はまず集落のマスターブラウザに名前解決を求めてくる。村役場のDNSに問い合わせず、そこい登録していない住民は存在しない事になっている。これが Windows のマスタブラウザの仕組みです。まず近所の顔色を窺え。これ閉鎖的なマイクロソフト村の常識です。所詮、小規模なネットワークにしか対応していないのです。大規模ネットワークで使えという方がどう考えても無理。ローカルネットワークの FQDN を指定しても「ページがありません」なんて事が普通にある。Linux なら、全然 FQDN を指定しなくても、同じドメインなら、Aレコードを指定しただけでも、問題なく動くンだけどね。

15) 所属しているワークグループのまま、「リストラ隔離部屋」に送られると、社内の人事部(DNS)からも隔離されてしまう。声をあげて arp を叫んでも、セグメントが変わって個室に閉じ込められると誰も MSbrowse の返事がない。他のマスターブラウザがあっても聞こえない。社内の事情が見えないので、自分はワークグループに所属していても「孤立しているんだ」「社内にはオレしかいない」と誤解してしまう。仕方がないので呼べど答えぬローカルネットDNS、社内DNSを無視して、社外DNSの駆け込み寺(労働者ユニオンみたいなもの)に名前解決相談(DNSクエリ)するしかない。当然、社内のプリンタなんかのリソースにはアクセスできない。

16) 俺は Windows だからエライ

俺は Windows で、三流とは言え大学も出ている、そこそこに記憶力がある。

ということで面倒な事に Windows には 「DNS キャッシュ」という謎で余計な記憶機能があります。これは

> ipconfig /flusdns

というビンタでキレイに忘れてくれるのですが、困ったことに、「じゃ DNS に素直に聞きに行こう」という動きがありません。素直にDNSサーバーにクエリを行わず、相変わらず隣近所の評判を NetBios で「ウッフン、私のダーリン、マスタブラウザはどこぉ?」と相手が素性のわからないヤクザものであるにも関わらず、聞きに行くのですね。ちなみに UNIX/Linux 系OSでは DNS キャッシュをクリアする操作はありません。必ず 「DNS という交番」に問い合わせるのが「普通の仕様」なんですね。DNS を無視しまくるのは Windows の仕様なので、まぁ勝手にしろという感じです。

-補足-

実際に nbstat を使った例です。

C:\Users\Administrator>nbtstat -n <-- 自身を調べた

ローカル エリア接続 4:
ノード IP アドレス: [192.168.1.217] スコープ ID: []

NetBIOS ローカル ネーム テーブル

名前 種類 状態
---------------------------------------------
W28S <00> 一意 登録済
MYJOBGROUP <00> グループ 登録済 <--- 所属するワークグループだ
W28S <20> 一意 登録済

C:\Users\Administrator>nbtstat -a 192.168.1.31 <- 他人を調べた

ローカル エリア接続 4:
ノード IP アドレス: [192.168.1.217] スコープ ID: []

NetBIOS リモート コンピューター ネーム テーブル

名前 種類 状態
---------------------------------------------
WIN7PC1 <00> 一意 登録済
WORKGROUP <00> グループ 登録済 <---- これは違うワークグループなので
WIN7PC1 <20> 一意 登録済
WORKGROUP <1E> グループ 登録済
WORKGROUP <1D> 一意 登録済
..__MSBROWSE__.<01> グループ 登録済 <--- たかだかデスクトップPCのクセにエライ

MAC アドレス = 00-40-45-33-D9-16



C:\Users\Administrator>nbtstat -a 192.168.1.35 <--- 別なPCを調べた

ローカル エリア接続 4:
ノード IP アドレス: [192.168.1.217] スコープ ID: []

NetBIOS リモート コンピューター ネーム テーブル

名前 種類 状態
---------------------------------------------
WIN7PC2 <20> 一意 登録済
WIN7PC2 <00> 一意 登録済
MYJOBGROUP1 <00> グループ 登録済 <---- ワークグループに所属しているので _MSB_ ではない。
MYJOBGROUP1 <1E> グループ 登録済

MAC アドレス = 00-23-81-12-97-7E


C:\Users\Administrator>



--
と、言うことで、常時稼動している SUSE Linux の samba サーバを「マスターブラウザー」として設定する方法を説明します。

良いドキュメントが Novell さんの Web サイトにありました。

Sambaサーバをマスタブラウザにする方法
http://www.novell.com/ja-jp/support/tidj/jp/00006500_/00006752.htm#

簡単に言うと/etc/samba/smb.confファイルのglobalセクションに次の記述を追加して smb をリスタートすると問題が解決します。

local master = yes
os level = 65


-YaSTの設定-
もちろん vi で書き換えても良いのですが、SUSE には YaST という便利なツールがあるので、これで設定してしまいます。(SUSE を使う人間がいつまでも Linux に精通できない理由はこんな便利な一発ツールがあるからなんですね)

yast (ここでは CUI 版) を起動し、Network Service > Samba を選びます。TABキーでIdentity を選び
a0056607_950744.jpg


Expert Global Settings を選びます。
a0056607_9515596.jpg


パラメータリストから local master を選び
a0056607_953754.jpg


スペースキーでチェックを入れます。
a0056607_954336.jpg


OS Level に 65 をセット
a0056607_9544347.jpg


yast を終了すると、自動的に samba が再起動します。誰かがファイルを開いていると yast が注意してくれます。一応、手動で再起動してみましょう。

正しく smb.conf が書き込まれました。
a0056607_1034538.jpg


各パラメータについては次の文書が参考になります。

Windowsネットワークのブラウジング問題の解明
http://www.samba.gr.jp/doc/browsing/browsing02.html

Appendix A. Example Configuration Files
http://www.samba.org/samba/docs/using_samba/appa.html

os level に関してはこの文書が詳しいようです。
os level = 255 にすると「最強の一番エライ」マスターブラウザーになるようです。(社長ですね。未確認ですけど)

Chapter 7. Name Resolution and Browsing
http://www.samba.org/samba/docs/using_samba/ch07.html

結果を Linux 側で調べるには nmblookup コマンドを使います。SUSE11 の場合、samba をインストールすると同時にインストールされます。


samba:~ # nmblookup -M myworkgroup
querying myworkgroup on 192.168.1.255
192.168.1.239 myworkgroup<1d>
samba:~ #



実際に他のPCの状態をLinux 側から調べてみました。nmblookup -A xx.xx.xx.xx を行います。(-A は Case Sensitive です)

sles11:~ # nmblookup -A 192.168.1.31
Looking up status of 192.168.1.31
WIN7PC <00> - B
WORKGROUP <00> - B
WIN7PC <20> - B
WORKGROUP <1e> - B
WORKGROUP <1d> - B
..__MSBROWSE__. <01> - B <--- コイツが怪しい

MAC Address = 00-40-45-33-D9-16

sles11:~ # nmblookup -A 192.168.1.217
Looking up status of 192.168.1.217
W28S <00> - B
MYJOBGROUP1 <00> - B
W28S <20> - B

MAC Address = 00-16-3E-33-02-17

sles11:~ # nmblookup -A 192.168.1.24
Looking up status of 192.168.1.24
W7PC-2 <00> - B
MYJOBGROUP1 <00> - B
W7PC-2 <20> - B
MYJOBGROUP1 <1e> - B

MAC Address = 00-16-3E-5B-17-2F

sles11:~ #



DOS窓開いて一々 nbstat するのも面倒なので、 fping で作り出したホストリストから、nmblookup して __MSBROSE__ を grep するスクリプトを書けば、内部のマスターブラウザのリストが一覧で出るのかなぁ、とぼんやり検討しました。ということで。

-ネットワーク内のコンピュータに fping して生きているデバイスに nmblookup を行うシェルを作る-

※参考にして動かなくても一切責任は負えませんので悪しからず御免なさい。あくまで SUSE Linux Enterprise Server (SLES11sp2)で試して動いたものです。YaST しか知らないのにちょっとがんばりました。


sles11:~ # cat create-fping-list.sh
#! /bin/sh
rm nmblookup-all.sh
if [ $# -ne 1 ]; then
echo usage:makepinglist xx.xx.xx.0/24
exit 1
fi

/usr/sbin/fping -g $1 | grep alive | sort -t. -k3,3n -k4,4n | sed -e 's/ is alive//' | sed -e 's/^/nmblookup -A /g' >> nmblookup-all.sh
chmod 700 nmblookup-all.sh
echo ---- done ------
cat nmblookup-all.sh




-簡単に解説-

まず、前回作ったシェルがあったら rm で消して
# fping -g 192.168.1.0/24
で実行すると 192.168.1.x のセグメント全てに ping します。そこで一応パラメータチェックします。このシェルに渡すのは 192.168.xx.xx/24 などの値です。この辺は fping の man で確認してください。

結果から "alive" の文字があれば、 sort して ip アドレスの下二桁をソートします。(よく考えると無意味ですね)
" is alive" の文字を sed で消しすと ip アドレスだけになるので、先頭にsed で nmblookup -A の文字を挿入します。
この結果を nmblookup-all.sh に書き込んで実行権を与えて、 cat で確認するということです。
もちろん alive でない結果もあるのでエラーが続々と出てきます。

sed に詳しいのでご紹介
フィルタを使用した文字列操作

これで ./nmblookup-all.sh で実行すると fping で aliveなデバイス全てに nmblookup をかけるので(ルータなどもチェックするので、no response が帰ってくるまで)結構時間がかかります。結果をリダイレクト">"するなり、端末のログを見れば、どれがマスタブラウザをつかんでいるかが解りました。

--
Windows 7 NotWork では外部のDNSを設定すると、内部のネットワークを参照できないという「仕様」があるようなので、DNSは内部参照だけにしておいたほうがいいようです。どうも DNS より MSbrowse の方が Windows NotWork 内部の名前解決の優先度が高いようで、せっかく内部向けDNSを使っていても、全く機能しない場合があるようです。つまり、 Windows NotWork では Windows 以外は使ってくれるなという人事部のお達しがある感じですね。

Windows 7 の DNS 名前解決ができない

--
Need to know はどうなるの

Windows NotWork には Need to Know という概念はありません。「共有」を設定した以上「共有」されるのが Windows ネットワークの「悪」の部分です。あなたのPCに「xxさんとyyさんだけね」という「共有」を作ったら、全てのユーザに「共有」されます。もちろん、アクセス権限は自由に作れますが、「xxさんとyyさんだけね」という共有だけは誰からでもばっちり見えます。

基本的に「隣のPCは見えない」ようにして「共有機能」は利用させないことがポイントです。

※2013/5/16 一部修正しました。何だかまとまりのない記事になりました。

-Keyword-

SUSE SLES SLES11 Windows7 ネットワーク ワークグループ ネットワークのPCが見えない samba でマスターブラウザーを設定

お問い合わせは
islandcenter.jp
[PR]
by islandcenter | 2010-05-16 15:16 | Windows | Trackback | Comments(0)

先日初めて Windows 2008 R2 のプリインストールマシンというのを触ったわけですが、いかにも「サーバーです」というシンプルで全体的にもったりしたI/Fに好感も感じましたが、果たしてこの中でどういうアプリケーションが動くのかというのがとても疑問でした。

マイクロソフトのおすすめは64bit OSで32bitアプリ

今回販売される Office は特殊なことをしない限りデフォルトで32ビット版がインストールされるわけです。これがマイクロソフトの「一番売れている」製品であることを考えると、Windowsサーバー側ソフトウェアでも64ビットソフトウェアの先が明いとは思えません。

今、「サーバー用」で販売されている「サーバ版」の業務アプリケーションは、Windows 2003 でも動くことが前提なわけで、一応 「2008 R2 x64 でも」動きますよという程度のものなので、改めて Windows 2008 R2 に導入する理由が全くないわけです。

また、多くの「 Windows 用アプリケーション」はクローズドなソフトウェアなので販売元が積極的に64ビット化しなければ永遠に32ビット版のまま販売され続けるのでしょう。

64ビットCPUの登場に伴い、Linux などは各パッケージが少しずつ64ビット化しました。数年前64ビット版に入れるとうまく動かないソフトウェアは随分あったわけですが、今はほとんどのパッケージは64ビット化しています。もっともブラウザや OpenOffice などはまだ互換性の問題で32ビット版が主流のようです。

メディアのライターさんや僕も含めたワーカーさんたちは、ノートPCを使うことがおおいわけですが、こういった機械で4G以上のメモリを搭載できる機種はほとんどありません。だから、彼ら、レポーターのほとんどが32ビット機で仕事をしていると推定できます。

ということで、Windows 7 も Windows 2008 R2 も64ビット版の最大のライバルは過去の32ビット版ソフトウェアであると感じます。
[PR]
by islandcenter | 2010-05-16 15:11 | Windows | Trackback | Comments(0)

Novell SUSE Linux Enterprise Server 11 (SLES11) を使った syslog サーバーの構築は次の文書が参考になります。

Centralized Syslogging with Syslog-NG on SUSE Linux

syslog-ng サーバのインストールと設定

YaST > Software Management より syslog を search します、syslog-ng にチェックを入れて Accept します。

/etc/syslog-ng/syslog-ng.conf を編集します。

a0056607_17303882.gif


source src {

のセクションの次の行を編集します。

#
# uncomment to process log messages from network:
#
udp(port(514));
tcp(ip("My-Syslog-Server") port(5140) keep-alive(yes));


ファイルの最後に

# this is for separating out network hosts into individual log files.
destination std {
file ("/var/log/HOSTS/$YEAR-$MONTH/$HOST/$FACILITY-$YEAR-$MONTH-$DAY"
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes)
);
};

log {
source(src);
destination(std);
};


を追加して保存します。

# service syslog start (もしくは restart) を実行します。

syslog-ng を自動実行させるため、yast > System > System Service(Run Level) より expertタブを開き、目的の Run Level で自動起動できることを確認します。

a0056607_14222169.gif


snmpd のインストールと設定

YaST > Software Management > より snmp を検索して net-snmp をチェックしてインストールします。

/etc/snmp/snmpd.conf を編集します。

rocommunity MyCommunity MySyslog-Server

これでトラップを syslog-ng に送信することができます。このサービスも自動起動されるよう、yast の System Service の Run Level に設定しておきます。

snmptrapd



-空白の美-
-under construction-






Windows の場合

コントロールパネル>Windows の機能の追加から snmp をインストールします。 I386 へのパスが要求されます。

コントロールパネル > コンピュータの管理 > サービスから SNMP service を選びトラップタブからコミュニティ名、SYSLOG 送信先サーバをセットします。

a0056607_17481357.gif


# service snmpd start( もしくは restart) を実行します。

-Key word-

Novell, SUSE Linux Enterprise Server, SLES, SLES11, syslog, syslog-ng, syslog, snmp


visit my site
[PR]
by islandcenter | 2010-05-11 14:24 | SUSE | Trackback | Comments(0)

ベライゾンとノベル、クラウド・セキュリティ・サービスを共同提供へ


実は Active Directory の仕事をやっているのですが、どうしてマイクロソフトは AD 管理をクラウドとして提供できないのでしょうか。あんな面倒で冗長性の高いシステムなのだから、世界各地に企業のADのサーバをクラウドで提供できれば、ユーザ企業は楽なんだけどなぁ、と思います。

でもできないんですね。ADでは。

何しろ Administrator 権限がなければ何もできないし、客に与えると何でもできるのがADです。

一方 Novell の eDirectory サービスは root に対する権限さえアウトソースできれば、スキーマの管理やライセンスの管理などは全てアウトソースして、ユーザはOUに対する権限さえ負えば運用できるわけですから、eDirectory の法がディレクトリのクラウドサービス基盤としては優れていると思います。ライセンスとスキーマが管理できるわけなので、利用しているアプリケーションに対する課金も簡単に管理できるはず。

本当に顧客の root サーバだけでもノベルさんのデータセンターで管理してもらえないものかと思います。特に20ユーザ程度はフリーミアムモデルとして無料で利用してもらい、ユーザ数が増えたり、スキーマの拡張が必要なアプリケーションが必要になればプレミアムモデルとしてサービスできる。初期ユーザは LDAP 認証機器は全てノベルのクラウド認証サービスを利用できる。

できれば、初期状態で ZENworks の DLU 機能だけは実装してもらえれば、ユーザ企業はかなり楽なんだけどなぁ。

-Key word-

Novell, eDirectory, クラウドサービス, ID 管理, ディレクトリサービス, LDAP 認証

Visit My site
[PR]
by islandcenter | 2010-05-11 01:59 | Novell | Trackback | Comments(0)

若い配線専門のエンジニアと話したことがあります。彼は新入社員教育の時代に1時間に60本のパッチケーブルを作ったことがあり、

「あの記録は自分はもう敗れないなぁ」

とおっしゃっていました。そう言いつつ、目の前には大量のパッチケーブルを「製造」しています。単純に1時間に60本というと1分で1本、両端処理ですから1分で2箇所の皮むき、プラグの装着、カシメ、通電チェックを行うわけです。雑談ついでなのですが、より線を並べる作業と通電チェック以外はほとんど手元を見ていません。まるで指先だけでより線の色がわかるような繊細な動きでした。


まだ100BASE時代のことなので、当たり前の仕事かもしれません。

Gigabit の時代になって、ケーブルにも繊細さが要求されるようになりました。ということで、所内の主な機器間を CAT7 (カテゴリ7)のケーブルで配線してみました。小さな字で 10Gbase-T 対応であることが書かれています。

プラグも薄い金属皮膜があります。

a0056607_2175639.jpg


一般に 1Gbps であれば、CAT5e で十分だという意見がありますが、本当にそうなのか、ケーブルの品質で転送速度が変わるのかということを試してみました。


ということで2台の samba サーバ間で Windows クライアントから大量のデータを転送したときの状態です。

a0056607_2059285.jpg


この仕事は長いのですが、1Gbps の帯域をほぼ 100% 使い切る状況は見たことがありません。客先で 50% で張り付いているのはたまに見ますが、通常は12% から 25% 程度なので、これだけ長い間 100% 近い数字を出しているのは初めて見ました。

a0056607_211664.gif


大体、最低 40Mb/s から60Mb/s 程度の速度がでます。数十Gバイトのデータ転送が数分で完了してしまうスピードには、初めてターボ車に乗ったときのようなショックがあります。もっともこの速度は SUSE Linux + Samba 間の転送であり、Windows からのローカル転送はこの半分程度の速度が出れば良いようです。

--
ということで、仮想化システムのボトルネックはディスクIOとネットワークIOだと言われます。最近8コアや12コアのCPUもサンプル出荷されている時代です。このクラスであれば、数台の仮想マシンを動かしても十分なパフォーマンスをだします。クロックがあがらない時代、マルチコア化が今の流れなので、メモリとその周辺のチップセットの性能も重要になります。ただ、これらの性能はハードウェア性能なので、自分たちで改善することができません。

唯一見直す一番簡単なポイントがあるとすれば、サーバーとHUBとの間の通信ケーブルの品質は問題ないかということでしょう。パッチケーブルが足りないからと、ジャンクボックスから取り出した古いケーブルを使っていては十分なパフォーマンスは出ません。
[PR]
by islandcenter | 2010-05-05 21:13 | プライベートクラウド | Trackback | Comments(0)