等のCPANモジュールのロード、実装。gnomeのサービス設定を用いて、実行モード3/4/5でsamba,httpd,vsftpdを起動時実行に変更保存する。MS-Network等を利用して接続確認を行う。GUIの「仮想化サーバーマネージャー」を利用してゲストOS(CentOS等)を必要数インストールする。手順8でインストールしたゲストOSそれぞれについて上述1-7の手順を繰り返す。/etc/inittabを変更し、CUI起動に設定して再起動する。ローカルホストに適当なurl設定をおこなうために、ローカルdns設定を予め行うこと。5.2のインストールを行う場合、x86/64bit対応のCPUを搭載したサーバーが望ましい。仮想化に対応したIntel-VTあるいはAMD-V対応であった方がなおさら良い。Pentium3/4など古めの32bitCPUなサーバーはこの際であるから、ヤフオクなどで処分してしまうのが吉である。いうのも、CentOS5.2は後述するように、xenを利用した仮想化サーバーの構築に対応しており、しかも実に簡単に実装できる。インストールの際のオプションで仮想化サーバーの項目にチェックを入れれば、インストール終了時のリブートでxenが即時的に動作するようになるからだ。この点で、dual-core以上の今的なCPU搭載サーバーなら何でも良い。それと、xen仮想サーバーを立ち上げる前提で言えば、32bit版より断然64bit版を推奨したい。仮想化サーバーとして利用するなら4GB上限の32bit系CPU/OSでは役不足。複数のゲストOSを同時起動させるならば、メモリは大容量である方が望ましいし、昨今2GBのメモリーはとても安価である(2000円以下で買えたりする)。インストールメディアはDVD1枚にまとまっていた方が何かと都合がよい。CD-ROMだと7枚組。ディストリビューションの配布サイトの多くはCD-ROMベースのイメージ配布がメインだが、理研サーバーのようにDVD1枚イメージを置いていてくれているサイトも少なからずある。ゲストOSを複数インストールする場合、DVD-Rなメディアで1枚にまとまっていた方が断然手間が省ける。text"コマンドによるCUIインストールのいずれでも構わない。/etc/inittabを書き換えれば起動をCUI/GUIのいずれかに変更することはいつでもできるからだ。長年CUI利用のインストールや設定を繰り返してきたが、最近、Fedra5/8/9を使うようになって以降、LinuxでもGUIを使うことが普通になった。GUIの「サーバー設定」toolやネットワーク設定がお気軽簡単で便利であるというのがその理由。最近は大容量HDDも安価なので、インストールはマイ・ルール的に「全部入り」がお約束。サーバー導入の目的が「サーバー構築術」の習得にあるなら話は別でそれはそれで楽しいものではある。私のサーバー導入の目的は「運用利用」それ自体なので、unix/linux的な難しげな手動設定は限りなく省力化したいと考えている。インストールに際してはできるだけGUIとマウスだけで行い、最後にCUIに戻して24時間放置で運用するようにしている。5.2のOSそれ自体のインストールで生じる問題・トラブルはあまり無いが一点だけ。デフォルトでインストールされなかったことには驚いた。RedHat3,4,5,6,7,8,9と使い続けてきた。cコンパイラがインストールされなかったのは今回が初めてだ。インストール直後にRPMコマンドとかで所在確認すると未インストール。そこであえてGUIのパッケージ確認でチェックするとインストール済みと表示される。すると、5.2のディストビューションパッケージの実装それ自体に問題があるだけなのかもしれない。これも後述するがgcc/ccはyumインストールで簡単にインストール可能である。dir_Aをfile_B.tarという名前で集約。tar形式のファイルを展開。アーカイブから特定ファイルを展開。tar.gz形式のファイルの解凍&展開。Linuxのブートモードの切り替えLinux起動時、x/gnome表示あるいは文字端末表示のいずれかは/etc/inittabの設定で選択可能。文字端末モードで起動。サーバー利用時はこちらを推奨。コマンドでGUIを起動できる。vsftpdの設定vsftpdはインストール時点では自動起動されない。chkconfigコマンド等で自動起動設定する必要がある。デフォルトの設定だとanonymous設定で起動されるのでcgi等の転送には不向き。11行目、のYES設定をNOに変更するだけでユーザ認証に切り替わる。demon類の起動設定を行う場合はGUIであるgnomeのサーバー設定メニューにある「サービス設定」が超便利。したり、Boot時のランレベル3(CUI)、ランレベル5(x/gnome)などの自動的起動の設定が行える。GUIなgnomeは何も操作していなくても結構マシンに負荷がかかる。純然なサーバー利用の場合はCUI起動が望ましい。gnome起動はすなわちランレベルが5なので、サーバー利用時をCUI起動としてvsftpd等を自動起動するのであればこの「サービス設定」でrun-level3のチェックマークにチェックを入れて設定保存すること。する場合は以下の様に打ち入れる。インストール済みのdemonが一覧できる。samba設定CentOS5.2等、最近のディストビューションはGUI設定がそこそこ使い易く改良改善されている。WEBベースの901なswatも不要かもしれない。sambaユーザの追加、パスワード設定などにはsambaそれ自体がversion3に更新され、パスワードファイルの構成に変更があり、GUIツールが未対応であるため、結果バグに似た挙動があってうまく設定できない。以下にユーザ認証ベースの設定手順をメモ書きしておく。最初にすべきは、smbpasswdの生成。smbpasswdファイルはデフォルトでは存在していないのであらかじめユーザが自己責任で生成する必要がある。以下が/etc/passwdをコピペして使う例。nobodyとかも全部smbpasswdに含めるのは難ありかも。/etc/samba/smbpasswdCentOS5.2のGUI/gnomeに組み込まれている「Sambaサーバー設定」toolはversionが1.2.39。適応していないのであろう。sambaのシステム構成についてはうまく設定できるようであるが、ユーザ登録機能ではユーザマップ(smbpasswdファイルそれ自体)の削除操作だけで、/etc/samba/passdb.tcbやsecrets.tdbの操作では追加も削除も失敗するようである。それ故、sambaのユーザ追加・削除・変更などは以下のpdbeditコマンドで行うのがよい。version3対応のパスワードファイルの生成・変換も同時に行う。ユーザ名一覧としてのsmbpasswdのユーザを全てパスワードファイルに登録変換するわけではない。よって、次にすべきは、sambaユーザの追加設定。以下のコマンドで行う。コマンドを打ち入れるとパスワードを聞いてくるので、Windows機で使用しているパスワードを入力する。ユーザ名sambaユーザの設定を終えたら、X/Gnomeのsambaサーバー設定ツールを起動する。このツールでは、最初にワークグループを指定する。セキュリティは指定ユーザ限定とする。書き込み許可のチェックマークを入れておくこと(ただしこの設定も挙動観察でいえばどうも無意味に近い)。次にsamba公開するサーバーのディレクトリの切り出し位置を指定する。指定後にタブ切り替えで、そのディレクトリパスのアクセスを許可するユーザを指定する。一覧は上記smbpasswdファイルに登録されていなければ指定できない。"xxx.hoge.com"の最左端なサブドメイン名"xxx"が使用される。ここまで設定した後、x/gnomeのサービス設定を開いて、3-4-5レベル全開でチェックマークを入れ、smbを再起動させる。設定保存すれば次回リブート時から自動起動するようになる。コンパイル&インストールperlのtar.gzファイルをCPAN等からダウンロードする。5.8.8が推奨?以下のコマンドを実行。インストールCentOS5.2など、設定によってはgcc/ccがインストールできない。その場合のyum/RPMは以下のコマンドで。compat-lib*実際には、gnomeデスクトップからパッケージマネージャーを起動し、[開発]→[開発ツール]:[開発ライブラリ]にチェックを入れて自動追加更新するのが面倒でない簡便なやり方。cgiファイルのサーバーエラー回避/usr/bin/perlで直接実行、エラー無しにも関わらず、cgiモジュールがapacheでサーバーエラーが生じる場合は、cgiファイルの改行コードがLFだけであるかどうかを確認すること。ftp転送中とかでsjis変換されていると改行コードがCR/LFとなる場合があり、この場合だとエラーが生じる。ソースコードはUTF-8記述が望ましい。MicrosystemsのJavaの方が標準度もあり一般的。共存切り替えで利用することもできるが、ここではGNU版を削除し、Sun版と取り替えてしまうやりかた記しておく。JavaSEはここからダウンロードする。;上記環境変数の変更を即時反映。6のページからダウンロードする。リバースプロキシpoundのリモートホストIPの取得poundをロードバランサとして使用するとログ記録のためのリモートホストのIP情報が全てpoundサーバーのIPで記録されてしまう。$ENV{'HTTP_X_FORWARDED_FOR'};)と書き換えればよい。$ENV{'REMOTE_USER'};)して拾ってくるように設定されていても効き目はないので要注意。xenを利用した仮想化サーバーCentOS5.2の良い点は、仮想化ツールのxenが組み込み済みであること。Virtualization(AMD-V)対応のCPUを利用すればxenの完全仮想化機能を利用することができる。この点でAthron64なサーバーはOK。用途はケースバイケースだが、poundを利用したクラスタリング・システムのワークベンチの構築などにxenは最適。この場合、domain0サーバーではpoundを走らせ、appacheは停止。ゲストOSとして複数のCentOS5.2を組み込み、それぞれをゲスト・httpdサーバーとして構成する。した場合、少なくとも3~5台程度のゲストOSの組み込みが必要となる。従来ならその台数だけサーバー実機を用意しなければならなかった。電気代もバカにならない。仮想化サーバーなら電気代は1台分で全てまかなえる。仮想化を行う場合、CentOS5.2の64bit版を使用しメモリは8GBフル実装が望ましい。最近は2GBのDDR2メモリーもとても安価(2000円以下で買える)なのでメモリーは可能な限り増設すべきだと思う。xen/LinuxはSwapに弱い。メモリーが不足してスワップが走るような状態になると、xenは暴走して突然リセットという事態になる場合がまだある(特にインストール時のファイルを利用したドライブの新規作成時)。xenで仮想化ゲスト・サーバーを組み込む場合、簡単なのは10GB~40GB程度のサイズ指定のファイルベースのゲストOS設定。パーティションを別切りで設定する場合、ファイルシステムは特定ディレクトリを占有するような論理的な構成では組み込めない。物理パーティションが要求される。CentOS5.2の場合、そうした物理パーティションは1台のHDDでは2つまでしか設定できないようなので、ゲストOSを複数用意する場合はdomain0の管理下にあるファイルベースの組み込みが安易ではあるが現実的。ファイルベースで構築するとファイルを管理しているdomain0の負荷が大きくなる。オーバーヘッドも大きくAthron3500+な単独サーバー利用時と比較して1.5倍程度処理が遅くなる。マルチコアなCPUを利用すればこのdomain0の負荷は軽減されるかもしれない。仮想化利用はマルチコアなCPUを利用すべきだが、ワークベンチ利用ならシングルコアなCPUでも十分実用的。トラブルなく安定して使えている。実際にdomain0からゲストOSを全てCentOS5.2(64bit版)で構成してみた。ゲストOSは合計で6セット。ML115G1/8GB/500GBHDD/。シングルコアなので負荷が重くなるとCPU使用率が100%推移することが多々ある。インストール直後やアップデート直後にLinuxはバックグラウンドでmanファイルやライブラリファイルの集約toolが起動して長時間高負荷状態になる。この高負荷状態は一時的・過渡的だから安定稼働状態なればそうそう高負荷にはならない。個人利用ならロードは0.0推移が普通。ゲストOSのインストールや稼働管理を行うために利用するツールはx/gnomeの「仮想化サーバーマネージャー」。簡易だが実に便利なツールだ。ゲストOSをファイルベースで組み込むなら何の設定もなしに速攻で組み込んで行ける。簡易であるが難点はある。スナップショット起動ができないこと。それとゲストOSの起動は手動で行わなければならないこと。24時間運用ならdomain0を再起動する必要はそれほど無いから問題も少ないが面倒ではある。このGUIツールを使う限りcronリブートなどの設定はできない。GUI/gnomeを走らせたままだとCPUの負荷が常時かかる。load換算で0.2程度だが、サーバー利用中は無駄な負荷でもある。本体の起動はレベル3なCUI起動にすべきである。設定時のみstartxコマンドでGUI/gnomeを起動し、サーバー利用時はログアウトしCUIに戻して放置しておくのが良い。GUIからCUIに戻してもxen/ゲストOSは動いたままだから心配はない。xenそれ自体の設定で起動時にゲストOSの自動起動させることは可能。現時点ではワークベンチ的に使用しているので選択的な起動ができる余地があったほうが良いと考えてあえて自動起動するような設定はしていない。これまでdomain0/ゲストOS(CentOS5.2)×6の合計7サーバーを仮想化状態で半年近く安定稼働させていたが、仮想コンソールの表示が遅いので現在はVirtualBoxに切り替えている。MicrosystemsのVirtualBoxを実装し、AMD64bit版のVirtualBox上でCentos5.2を実装してみた。実装上の要点はWindowsVISTA上のホストアダプタ・ブリッジ設定のみ。実に簡単お気軽に実装できた。宅内DNSサーバーを動かしているので、個々のゲストOS/VirtualBoxにも固定IPを振り当て、サーバー利用できるかどうかが要である。VirtualBoxをインストールした後、VirtualBoxを起動し、早速ゲストOSのインストールを行うことができる。インストールは、[新規]ボタンをクリックすることで始められる。OSの名前をCentOS5.2等と適当に設定する。OSタイプはLinux2.6。メモリサイズは512MB。起動ディスクをデフォルトのまま8GBサイズで設定してインストールをDVD-Rの1枚インストールメディアから行うのが簡便だ。初期設定が終わったら、再度セレクタから新規に作成したゲストOS名をクリックすればインストールが開始される。インストールを開始する前にネットワークのホスト設定を行うのがよい。VirtualBoxのゲストOS固有の設定はゲストOS起動中に出来ないのでゲストOS停止中に行わなければならない。VirtualBoxのGUIウインドウのOSセレクタからゲストOSであるCentOS5.2を選択状態にしてからウィンドウ右の[ネットワーク]を選択する。ネットワークの設定ダイアログ上でホストインタフェースを新規作成する。ホストインタフェース1")の二つを同時に選択しマウスの右ボタンを押してブリッジ接続を選ぶ。時間が掛かるが、"ネットワークブリッジ"のアイコンが表示されたら、ネットワークブリッジのプロパティを開き、そこで従来用いてきた接続設定と同様のIP等の設定を行う。私はDHCPを用いていない。固定IP利用「主義」。ユーザPCはDHCP利用でも構わないだろう。その場合、ベースIPは192.168.0.とかサーバー利用するべきゲストOSのIPと同じく設定する必要があるだろう。留意すべきは、VirtualBoxのホストインタフェースの利用。ホストインタフェースの利用は排他的・唯一的で、2つ以上のゲストOSが同時に共有利用することができない。ゲストOSを複数同時起動する場合、ゲストOSそれぞれに割り当てるホスト・インタフェース、アダプタはユニークでなければゲストOS起動時にエラーが生じる。NICの4枚差しまで仮想的に試すことができる。いずれにせよ、ゲストOSを新規インストールするたび毎にホストインターフェースを新規作成しブリッジ接続指定する必要がある。面倒ではあるが、初期これだけのことで仮想的にいくらでもゲストOSを作成することができるのはありがたい。ホストインタフェースをブリッジ接続する可能最大数がいくつかはわからない。実用上は無制限といえる。ブリッジ接続を行うと、旧版のFFFTPが動かなくなる。このバグは既にFFFTPの最新版で対策解消済みであるので、FFFTPユーザはFFFTPをダウンロードするのがよいだろう。ubuntuのvirtualBox用のVDIイメージは正式に配布されている。VDIイメージはそれ自体で保存可能。同一マシン上でコピー利用することはできない。VDIイメージ自体にVirtualBoxの設定項目が保存されるわけでなく、xmlファイルとして別ファイル保存され、そのxmlファイルのパスをVDIイメージが保持するからである。ゲストOSを新規作成する時点で、VDI内蔵の設定ファイルパスで示される設定ファイルが存在していなければVDIイメージを用いたゲストOSの新規作成は可能。設定ファイルが既に存在しているコピーを新規登録で使用しようとすると、その設定ファイルの存在を理由とするエラーが発生して新規登録ができない。基本的なサーバー設定が終わっているVDIイメージをベースに複数のゲストOSが登録できたらずいぶん設定も楽になるのにとやや残念な気がする。それでも他機へのコピー利用は可能だと思う。試してはいないが、Windows上で作成したVDIイメージをLinux上のVirtualBox環境へ持ち込んでみる。いうのも面白いかもしれない。Core)なサーバーと同じ構成で仮想サーバーを構築してみた。xenはCPUの数をゲストOS毎に割り当てることができるから、パフォーマンスの調整ができる。4コア割り当てだとマウスの動きも大分改善される。それでもリアルなサーバー同様とは言い難いほどに遅い。マウスポインタの描画がポーリングというかソフトウェアによる逐一的描画であるからだろう。Linux等のように何をするにせよgnomeが必須などというLinuxディストリビューションも増えているから、画面の描画はユーザビリティという観点からいえば重要な点。この点ではVirtualBoxの方が断然優れている。4コアなサーバーでも期待していたほどに描画性能が上がらなかったので、VirtualBoxのLinux版をインストールしてみた。ML115G1なWindows機はVGAカードを巡るBIOSやWindowsOSの問題などがあって、64bitOSでもメモリは3GBまでしか実装できない。そのためゲストOSを複数同時に稼働させるには環境的にやや貧弱。LinuxをベースにVirtualBoxをインストールしてみた。ゲストOSのインストールはWindows版とほとんど変わらない。唯一、留意点があるとすれば、ネットワーク接続のホストインタフェースの指定のあり方だけ。Linux版ではホストアダプタ1にeth0を指定すればよいだろう。この組み合わせはどのゲストOSでも問題なく同時起動させることができる。割り当てメモリがゲストOSの同時利用の限界となる。2009/1/20現在のVirtualBoxはバージョンが2.1.0。Linuxベース+CentOS5.2ゲストだと、キーボードのキー2つか利用できない。]と[_ろ]キーが無反応となる。打ち込めないのでパイプ利用のコマンドラインが打てない。コマンドならリモート端末側から操作すれば済むことなので問題回避は可能である。これはVirtualBoxのバージョンが上がるのを待つほかないのだろう。5.2は、インストール直後の状態でDNSは起動していない。startとコマンドすればとりあえずクライアント用のDNSサーバーとして利用可能になるはず。この場合、ネット設定でゲートウェイ設定を行い、インターネット接続が可能な状態でなければならない。BIND9は巨大なブログラムなので全てを使い切るのも説明するのも難しい。いうことは他にお願いするとして、ここでは、あくまで個人の私的な利用に限ったローカルドメインのDNSのメモ書きに留める。ローカル・ドメインの設定とは、192.168.0.0~192.168.255.255までのローカルネットIPに接続された機器にドメイン名を割り振って利用する場合の設定。いうドメインを自分自身で勝手に設定し、以下の様にドメイン名を割り振ることができる。192.168.1.13上記のような身勝手ドメインといえども、きちんと設定すれば、自宅サーバーもイントラネットサーバーとしてドメイン名を用いて自在にアクセスできる。イントラネット利用に限るが、ローカルサーバー上のリンクページをクリックして他のリアル・サーバーにアクセスした際、先方のアクセスログのリファラ記録には身勝手なローカルサーバー名が記録として残るようである。CentOSのBIND9の設定は手動設定が望ましい。他に蜃気楼的に移動しているからである。/var/named/chroot/以下はサーバーのルートディレクトリの配置イメージであるが、root権限者でなければ見ることが許されない。したセキュリティがかけられている。ローカルホストのリゾルバ。localdomainの定義ファイル。BIND9のパッケージに含まれているもの。サーバーのIPアドレスを記録したファイル。ローカルドメインといえど、きちんと逆引き定義はするのが吉。イントラネット接続クライアント向けのリゾルバ定義。以下はイントラネット内のクライアントPC(Windows/Mac等)がDNS参照する場合に応答する部分の記述。サーバーのIPアドレスを記録したファイル。ローカルドメインといえど、きちんと逆引き定義はするのが吉。"/etc/1.168.192.in-addr.arpa.zone.db";};};//以下はローカル利用の場合は不要。//公開サーバーを設置する場合のドメイン定義ファイルの所在は以下に記述する。BIND9の公開サーバーはnoがお約束。DDoS攻撃の踏み台化の防止がその理由。sinji.pilots.eva.正引き・逆引きファイルは本来、/var/named/とかに保存管理するのが通例である。ここでは、設定のし易さを考慮して同一ディレクトリで保存するように記述してある。オフセットが暗黙省略されている。9で上記のような2レベル混在なドメイン定義を行うとエラーになるようだ。host定義で用いるサブドメインの定義はサブドメインのレベル(深度)を考慮しなくてはならない。yui.ikariのような(.)付きのサブドメインは別ファイルに分けて定義すべきである。逆引きファイルはcgi開発前提ならきちんと記述しておくのが当然。クライアント機のIPもきちんと割り当て定義しておくとよい。ログの検証・確認などの場合に役立つはずである。