先日リリースされたばかりの SUSE Enterprise Server 11 (SLES11) を XEN 仮想環境でインストールしました。

シンプルにインストールした後 df -h すると 2.6G 程度ディスクを使用します。SLES10 のインストールテンプレートで充分ですが、ディスク容量は6G程度が良いようです。
a0056607_16173030.gif


Welcome スクリーンと言語、キーボードの選択です。テーマカラーは緑です。
a0056607_14421640.gif


インストールモードの選択です。今回は新規で
a0056607_14424989.gif


タイムゾーンの設定です。マウスが必須です。
a0056607_1444948.gif


Server Base Scenario というのがあります。基本インストールするか、仮想化Domain-U とするか Hyper Visor 動作が前提かどうかのチェックが増えます。
a0056607_14443775.gif


追加ソフトウェアの選択です。かなりデザインが変わりました。見づらいという印象です。
a0056607_1445944.gif


インストール開始です。
a0056607_14453923.gif


インストールが終わると再起動して root のパスワードを設定します。
a0056607_1446019.gif


Network Congiguration です。 FireWall は Disable にします。ちょっと画面の雰囲気が変わるので戸惑うかもしれません。
a0056607_1447666.gif


ネットワークカードにスタティックIPを与えます。
a0056607_14475458.gif


DNSリゾルバの定義です。
a0056607_14525086.gif


デフォルトゲートウェイの定義です。
a0056607_1452313.gif


接続テストです。 必ず SKIP します。
a0056607_14541744.gif


ローカルユーザの定義です。
a0056607_14545450.gif


とりあえず、通常運用するときのユーザ名、パスワードをセットします( system など)
a0056607_14551923.gif


ユーザ接続方法のサマリです
a0056607_14481775.gif


この間、リリースノートの確認など幾つか Next を押します。

完了しました
a0056607_1455563.gif


NTPの設定 - 若干イメージが変わります。
a0056607_14563579.gif


a0056607_14553967.gif


YaST > Software の表示です。少しアイコンがごちゃごちゃしています。
a0056607_14561198.gif


デスクトップのスクリーンです。背景は緑に代わりました。
a0056607_14575940.gif


-KeyWord-
SUSE Linux Enterprise Server 11 SLES YaST XEN 仮想化 インストール


その他の情報はこちらから
非番のエンジニア
[PR]
by islandcenter | 2009-03-27 14:48 | SUSE | Trackback | Comments(2)

-顧客の縄張り争い-

小さな組織であれば問題は少ないけれど、組織の規模がある程度大きくなると、おのずと組織の中の「縄張り争い」というものが発生します。

ネットワークのインフラ、全社向けのメール、グループウェアはシステム部が管理しているけれど、営業管理システム、人事管理システム、生産管理システム、という具合に各システムが各部門に設置されたり管理されたり導入されたりしているケースが多いわけです。それもほとんどが異なるベンダーのシステムなのですね。

巨大なデータベースを必要として、かなりクリティカルなシステムであれば、部門に管理させても構わないのでしょうが、エンドユーザが数人しかいないシステムで、ディスク容量や稼働率の低いシステムも多いのが事実。

こういった単発もののシステムは仮想化して利用効率を上げたいところなのですが、部門のエゴにより、容易にシステム部の管理下の仮想システムで運用するためには、組織内の政治問題を解決しなければなりません。

また、リースや契約の関係から、簡単に仮想環境に移行するという話にはならないところが悩みです。

-ベンダーの縄張り争い-

これも困った問題です。

どことは言いませんが、仮にF社としましょうか(もうばれてますね)日本のハードウェアベンダーが作った、役所関係の電子申請システムを導入するにあたり、「ウチのハードウェアでない限り動作保障もサポートもしません」というケースがありました。ただの Windows のソフトウェアなのですがね。ということでどういうわけか、H社のPCで統一されているはずの顧客に一台だけ、その国産ベンダーのマシンがあったというケースがあります。一括でハードウェアベンダーとのサポート修理の契約が行えれば、運用側にも大変メリットがあるのですが、このように1台だけ特殊な契約にしなければならないとなると、契約の手間だけでも面倒なのです。

同様に仮想化システムでは1台のハードウェアに複数のオペレーティングシステム、複数のアプリケーションが混在するわけですから、ベンダーのサポート責任、業務範囲、契約内容といったものを解決しなければなりません。当たり前ですが、SI業者の中にはハードウェアとソフトウェアと一体で販売し、一体でサポートしたがる傾向があり、この考え方は仮想化の方向と相容れないものがあります。自社が販売したシステムじゃないとセットアップしませんと堂々と言い出すSI業者もあるし、セットアップと言っても単にセットアップソフトウェアを起動してウィザードやるだけなのに20万とか取る業者もいるわけです。

極端な話ですが、「ウチでは動いた」と強引に言い張って、平気で済まそうとしたソフトウェア開発業者がいました。何のことはない「管理者モード」で動かせば問題がないのに、「ユーザモード」で動かすとトラブルが出るという簡単な問題なのですが、こういった無責任な開発者がいまだに運用技術者を見下していることは私には許せません。

-SI業者、ソフトウェアベンダー、開発者-

SI業者、あるいはソフトウェアベンダーの意識の低さも非常に問題があります。あるソフトウェアでどうしても仮想化環境で動作しないプログラムがありました。たかが500Mバイト程度のデータベースを動かすだけで、稼働率も非常に低いソフトウェアです。こういうソフトウェアはぜひ仮想化システムに載せたいところなのですが、不具合に対しては「仮想化環境では保障はしない」の一点張りで、実際の検証、回避策の提示、バグのフィックスなどは一切提供してくれず、やむなくハードウェアを追加しなければならなかったケースがあります。国産ハードベンダー系でもうどことは言いませんがね。

一般的にはハードウェアやインフラを提供するベンダーの仮想化に対する意欲というのは、特に国産ベンダーより海外ベンダーの方が非常に意欲が高いのですが、実力がない国内のベンダーやソフトウェア提供者には仮想化環境に対する情報提供や実力がまだまだ低いのが実情です。


-結局スキルが必要とされる-

ということで結局は顧客側のスキルが要求されるのです。顧客のスキルというのは技術スキルだけではありません。社内の調整とベンダー間とのサポート能力の調整です。

ハードウェアのメンテナンス、ソフトウェアのトラブル、ネットワークのトラブル。こういった微妙な不具合を見つけ出して、必要なサポートをどうやって手に入れるかについては、結局運用側のスキルが必要になってきます。オマケにクラウド化によって、下手をすれば運用技術が低下してしまうシステム管理者にとっては頭の痛い問題と言えます。

一般にシステム運用の技術者は「所詮ヘルプデスクとバックアップオペレータだろ」という低いレベルで見られがちで、つい外注化、派遣化されたり、優秀なプロパーのエンジニアが外されたりするわけですが、システムが熟成してくると、運用こそ組織の命であるということに気が付かない経営層が多いことも問題です。
[PR]
by islandcenter | 2009-03-26 14:30 | XEN | Trackback | Comments(0)

ちょっと古い記事ですが

米Novell、アプリケーション仮想化ソフトの最新版

プレスリリース

ダウンロード可能です。
[PR]
by islandcenter | 2009-03-26 13:43 | ZENworks | Trackback | Comments(0)

Novell,「SUSE Linux Enterprise 11」を発表,Windowsとの相互運用性を強化

ノベル、「SUSE Linux Enterprise 11」をリリース

米Novell、「SUSE Linux Enterprise 11」正式版をリリース

金融危機はLinuxに追い風? - システム導入意向調査で半数以上が投資加速

公式サイト
SUSE Linux Enterprise 11の新機能


大きな話題は mono の搭載による .NET 環境の移行、移植が可能なこと。Windows 用に開発されたサーバアプリケーションの移行がより簡単になったところでしょうか。XENは 3.31 にバージョンアップしたようです。

ただいまダウンロードしています。
[PR]
by islandcenter | 2009-03-26 13:00 | Novell | Trackback | Comments(0)

中小規模のネットワークでは以外と DNS や DHCP の環境が構成されていないケースを見ます。まず、コンピュータ資源を hosts ファイルで管理しようということ、IPアドレスで管理しようということから構築が始まり、次第にその運用方法が定着してしまった所も多いようです。結果として、新しいプリンタが増えるたび、あるいはサービスが増えるたびに hosts ファイルをどう管理するかという問題が出てきます。

システム管理者にとっては DNS/DHCP という機能を導入することによる運用費用、手間の軽減できるという意図が理解できても経営側にとっては「お前がやればいい」ということでこの苦労を理解させにくいところがあります。DNS/DHCP がないことによる、システム管理者の管理コストをどう数字化すればよいのかというのも難しい点かもしれません。

「インターネットに繋がるのに、何が問題なんだ」というのが経営者の判断です。そのために管理用のサーバハードウェアを購入するということは非常に高価なものと判断されやすいものです。それだけに XEN 仮想化のターゲットとして DNS サーバはどうかという提案ができます。

しかもDNSサーバはサーバとしての負荷、記憶容量はそれほどコストがかかるものでもないため、XEN 仮想化を検討する運用現場ではもっとも引き合いが多い機能の一つです。設定も苦労することが多いので、一旦動くとあまりいじりたくない機能でもあるし、サーバのライフサイクルで再設定をほとんど考慮する必要のない仮想化にはまさにうってつけの機能でしょう。

DNSは「専門家」が必要なくらい、複雑なものなのですが、彼らにとっては一旦覚えてしまえばこんな簡単なものはないと、豪語するでしょう。そして、自分が理解した方法でしか頑固に設定したがりません。

だから、初心者がDNSに手を出して四苦八苦するくらいならプロの手を借りた方が無難なのかもしれませんが自分がメンテナンスできないことも事実です。しかもDNSは良い教科書が中々なく、最初の root の仕組みから教科書を読むと眠くなること自明です。それにDNSのインストール、設定がいかに難しいかを説明するだけで、挫折させることが目的じゃないかと思われる文書が多いと思います。

ということで、ここでは、インターネット外部へのDNSではなく、イントラネットで利用するDNSを作ることを目標に、 SUSE Linux で YaST を使った場合どのような手順で作ればよいかを説明します。DNSについてもっと詳しく知りたいようであれば、ソースコードのダウンロードから時間をかけて理解することをお勧めします。

-インストール-
教科書では DNS は「どこか」からダウンロードして圧縮解凍して make install しろとよく書かれていますが、 SUSE Linux の場合は、インストールサマリから SoftWare Product > DNS/DHCP を選ぶとインストールは自動的に行われてしまいます。後から入れる場合でも YaST > Software メニューからインストールできます。

a0056607_21482155.gif

もし、インストールを忘れた場合でも YaST > Network Service > DNS をクリックするだけでインストールが終わってしまいます。インストールソースに CD の生メディアが指定されている場合はCD/DVDを用意しましょう。イントラネットにインストールソースを指定しておけば、インストールサーバから追加でインストールされます。

YaST > Network Service から HOSTNAME を確認しますこの設定はインストールの際、Network Card の設定からスタティックアドレスを設定したものです。デフォルトでは linux-XXXX.site です。任意にここでは dns2 というホスト名と intra というドメイン名(ゾーン名)を指定しました。
a0056607_21491172.gif

内容は /etc/HOSTNAME に反映されます。

-list-
dns2:/etc # cat HOSTNAME
dns2.intra

YaST > Network Service > DNS Hostname を確認します。
a0056607_21483310.gif

ここではNetwork Card の設定からスタティックアドレスを設定した、DNSサーバの値が設定されています。多くの場合、例えば BBルータや ISP の DNS サーバアドレスが指定されているはずです。

内容は /etc/resolv.conf に書き込まれます。

-list-
dns2:/etc # cat resolv.conf
nameserver 192.168.1.2
nameserver 192.168.1.1
search intra

 <---- 転送元のDNSです。ここでは BB Router です。
dns2:/etc #



YaST > Network Service を選ぶと自動的に Bind がインストールされ、コンフィグレーションウィザードが起動します。まず forwarderの設定なのですが、この DNS が保持する内容は外部に転送する必要がないので、そのままブランクで自分の持っていないゾーンの転送元です。外部の ISPや他の親DNS などのサーバを指定して Next を押します。
a0056607_21504156.gif


この状態でとりあえず、内部から外部ネットワークへの参照用キャッシュサーバが出来上がります。YaST > DNS サーバメインの Startup メニューから save and reload .... を実行するとDNSサーバが起動します。

SUSE Linux の bind パッケージはデフォルトでは自動起動されませんので、自動実行するように when booting をチェックしておきます。DNSの停止、再起動は全てこの画面から行うことができます。
a0056607_214958.gif


-dig を使った動作確認-

# dig @MyDNS Target-Device の構文でDNSが正しく動作しているか確認します。

dns2:/etc # dig @localhost www.novell.com

; <<>> DiG 9.3.4 <<>> @localhost www.novell.com
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53148
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2

;; QUESTION SECTION: <--- 問い合わせ内容
;www.novell.com. IN A

;; ANSWER SECTION: <--- 帰ってきた答え
www.novell.com. 86400 IN A 130.57.5.25

;; AUTHORITY SECTION: <--- どの DNS が返してきたか
novell.com. 86400 IN NS ns.wal.novell.com.
novell.com. 86400 IN NS ns.novell.com.
novell.com. 86400 IN NS ns2.novell.com.


;; ADDITIONAL SECTION:
ns.wal.novell.com. 86400 IN A 130.57.22.5
ns2.novell.com. 86400 IN A 137.65.1.2


;; Query time: 916 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 2 22:42:45 2009
;; MSG SIZE rcvd: 136


dns2:/etc #

ANSWER SECTION に正しく外部のサービスが見えていることを確認します。

-クライアント側からの確認-

一旦 YaST > Network Service から DNS のサービスを STOP させてみましょう。コマンドで実行する場合は

# service named stop

を実行します。

次に Windows PC などのDNS指定をこのサーバに設定します。
Windows からipconfig /flushdns でDNSのキャッシュをクリアします。

C:\>ipconfig /flushdns <- Windowsの DNS キャッシュをクリアします。

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.


C:\ping www.novell.com <- DNS が動いていないため、正引きできません。
Ping request could not find host www.novell.com. Please check the name and try a
gain.

Yast > DNS Server から Start DNS server now を押します。コマンドでは

# service named start

を実行します。

C:\>ping www.yahoo.co.jp

pinging www.yahoo.co.jp [124.83.139.191] with 32 bytes of data:

reply from 124.83.139.191: bytes=32 time=479ms TTL=48
reply from 124.83.139.191: bytes=32 time=406ms TTL=48
reply from 124.83.139.191: bytes=32 time=430ms TTL=48
reply from 124.83.139.191: bytes=32 time=501ms TTL=48

ing statistics for 124.83.139.191:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
pproximate round trip times in milli-seconds:
Minimum = 406ms, Maximum = 501ms, Average = 454ms

正しく Ping が帰ってきます。

-Basic Option-
ここは特にいじる必要がなかったので、そのままにします。必要なオプションはその手の解説本を参考にしてください。
a0056607_21511871.gif


※ 必要に応じて allow-recursion と allow-query を設定する必要がある場合があります。
パラメータはドロップダウンリストから設定できます。

a0056607_18421762.jpg


値は { xxxx.xxxxx.xxxx.xxxx/xx; ------- continue } 形式です。 多くの解説本には " } ; " と書いてあります。

allow-recursion { 192.168.1.0/24; 127.0.0.1; };
allow-query { 192.168.1.0/24; 127.0.0.1; };

YaST から設定する場合は ”閉じ括弧” の後に "セミコロン"を書くとエラーになります。セミコロンは自動的に named.conf に付加されるので注意してください。

a0056607_18423373.jpg



-ZONE の定義-
ここでは、内部ネットワーク参照用のDNSを定義します。このサーバは dns2.intra というネームを持つので、 DNS ZONE > intra : MASTER を選び Add ボタンを押します。これで intra ZONE の編集をします。

intra ZONE を選んで Edit ボタンを押すと、おなじみのゾーンエディタが起動するので、必要な項目を書いていきます。


a0056607_21515876.gif


このあたりは一般的な教科書にある内容をそのままパクリで持ってくるのも一つの方法でしょうか。基本形さえできてしまえば、あとは add で A レコードや MX レコードを追加するだけです。絵とは若干違いますが、 /var/lib/named/master/intra ファイルは次のような中身になりました。 忘れがちなserial セクションは YaST が起動する都度インクリメントアップするので、特に気にする必要はありません。

- list- /var/lib/named/master/intra

$TTL 1d
@IN SOA dns2 root.localhost. (
2009030210; serial
3h; refresh
1h; retry
1w; expiry
1d ); minimum

@.intra.IN NS dns2.intra.
intra. IN NS dns1.intra.
oes2lx1 IN A 192.168.1.235
mylx IN A 192.168.1.240
ace-tree IN A 192.168.1.235
bandit IN A 192.168.1.245
router IN A 192.168.1.1


※追記: CNAME レコードは重複したホストを指定できません。Bind の仕様なのか SUSE のパッケージでエラーにしているのかは不明ですがRFCでも推奨していないようです。 named をリスタートした後 tail /var/log/messages にエラーがでていないか確認してください

multiple RRs of singleton type: DNS には CNAME で同じレコードを登録してはいけない。


a0056607_21522299.gif


NS レコードには自分自身の名前 dns2 をセットします。
a0056607_21513298.gif


Finish ボタンを押すと設定ファイルが保存され、自動的に named がリスタートします。

※ここからは、DNSの教科書に従って /var/lib/named/master/intra を編集して

# rndc reload

などを行なって内部レコードの更新をおこなってもよいでしょう。
その際、 ..../master/MyZone ファイルは事前にバックアップしておくことです。



※追記 SLES の場合 YaST で設定したゾーンファイルの内容とファイルの実態が異なる場合があります。
明示的に named を再起動すると YaST でキャッシュされた内容が書き込まれるようです。


-内部DNSは正しく動いているか-

dns2:/etc # dig @localhost router.intra

; <<>> DiG 9.3.4 <<>> @localhost router.intra
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44762
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;router.intra. IN A

;; ANSWER SECTION:
router.intra. 86400 IN A 192.168.1.1

;; AUTHORITY SECTION:
intra. 86400 IN NS dns1.intra.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 2 23:38:16 2009
;; MSG SIZE rcvd: 65

dns2:/etc #

dig コマンドで内部のリソースにアドレスが割り振られています。

Windows でも正しく引けているか確認しましょう。

C:\>ipconfig /flushdns ローカルの DNS キャッシュをクリアします。

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.


C:>ping ace-tree ping を確認します。

Pinging ace-tree.intra [192.168.1.235] with 32 bytes of data:

Reply from 192.168.1.235: bytes=32 time<1ms TTL=64
Reply from 192.168.1.235: bytes=32 time<1ms TTL=64
Reply from 192.168.1.235: bytes=32 time<1ms TTL=64
Reply from 192.168.1.235: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.235:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms



-/var/log/message を確認する-
Mar 4 12:45:31 dns2 named[2682]: shutting down: flushing changes <--- bind のシャットダウンです
Mar 4 12:45:31 dns2 named[2682]: stopping command channel on 127.0.0.1#953
Mar 4 12:45:31 dns2 named[2682]: stopping command channel on ::1#953
Mar 4 12:45:31 dns2 named[2682]: no longer listening on ::#53
Mar 4 12:45:31 dns2 named[2682]: no longer listening on 127.0.0.1#53
Mar 4 12:45:31 dns2 named[2682]: no longer listening on 192.168.1.2#53
Mar 4 12:45:31 dns2 named[2682]: exiting
Mar 4 12:45:32 dns2 named[2814]: starting BIND 9.3.4 -t /var/lib/named -u named
Mar 4 12:45:32 dns2 named[2814]: found 1 CPU, using 1 worker thread
Mar 4 12:45:32 dns2 named[2814]: loading configuration from '/etc/named.conf' <-- /etc/named.conf が読まれます。
Mar 4 12:45:32 dns2 named[2814]: listening on IPv6 interfaces, port 53
Mar 4 12:45:32 dns2 named[2814]: listening on IPv4 interface lo, 127.0.0.1#53
Mar 4 12:45:32 dns2 named[2814]: listening on IPv4 interface eth0, 192.168.1.2#53
Mar 4 12:45:32 dns2 named[2814]: command channel listening on 127.0.0.1#953
Mar 4 12:45:32 dns2 named[2814]: command channel listening on ::1#953
Mar 4 12:45:32 dns2 named[2814]: zone 0.0.127.in-addr.arpa/IN: loaded serial 42
Mar 4 12:45:32 dns2 named[2814]: zone intra/IN: loaded serial 2009030211 <-- /var/lib/named/master/intra が読み込まれます
Mar 4 12:45:32 dns2 named[2814]: zone localhost/IN: loaded serial 42
Mar 4 12:45:32 dns2 named[2814]: running



-DNSキャッシュのダンプ-

DNSキャッシュは rndc dumpdb コマンドでデフォルトの保存先にダンプされます。

dns2:~ # rndc dumpdb
dns2:~ #
dns2:~ # cat /var/lib/named/log/named_dump.db | more
;
; Start view _default
;
;
; Cache dump of view '_default'
;
$DATE 20090304041029
; authanswer
. 516956 IN NS A.ROOT-SERVERS.NET.
516956 IN NS B.ROOT-SERVERS.NET.
516956 IN NS C.ROOT-SERVERS.NET.
516956 IN NS D.ROOT-SERVERS.NET.
516956 IN NS E.ROOT-SERVERS.NET.
516956 IN NS F.ROOT-SERVERS.NET.
516956 IN NS G.ROOT-SERVERS.NET.
516956 IN NS H.ROOT-SERVERS.NET.
516956 IN NS I.ROOT-SERVERS.NET.
516956 IN NS J.ROOT-SERVERS.NET.
516956 IN NS K.ROOT-SERVERS.NET.
516956 IN NS L.ROOT-SERVERS.NET.
516956 IN NS M.ROOT-SERVERS.NET.
; glue
com. 171355 NS A.GTLD-SERVERS.NET.
dns2:~ #


-DNSキャッシュの確認-

例えば yahoo のサイトが引けるかどうかは次のように grep します。

dns2:~ # grep yahoo.co.jp /var/lib/named/log/named_dump.db

yahoo.co.jp. 743 NS ns04.ops.ogk.yahoo.co.jp.

: 略


dns2:~ #

※ Windows 環境ではこのままで動作しない場合があります。外部DNSの参照をさせないように設定する必要があります。
こちらを御覧ください。

※ YaSTでスレーブ側を設定するとレコードファイルが mydomainA となる場合があります。 /etc/.named.conf の次の部分を確認してください。/etc/named.conf の中に intra ではなく intraA と記述される場合がありますので、この部分を修正すればよいようです。

include "/etc/named.conf.include";
zone "intra" in {
allow-transfer { any; };
masters { 192.168.1.2; };
file "slave/intraA";
type slave;
};

あわせてこちらの記事もご参考にしてください。

SUSE で 作る DNS サーバ(逆引きゾーン)

SUSE Linux で Dynamic DNS(DDNS) を作る

YouTube に openSUSE11 で YaST を使ったDNSのインストールから設定までを解説したビデオがありました
Learning Linux: Lesson 11 DNS Server


-KeyWord-
SUSE SLES 10 SP2 YaST DNS Bind named イントラネットDNS DNSキャッシュのクリア


その他の情報はこちらから
islandcenter.jp

[PR]
by islandcenter | 2009-03-02 21:54 | SUSE | Trackback | Comments(0)