Product SiteDocumentation Site

3.2. 移行の方法

サービスの継続性を保証するために、それぞれのコンピュータの移行計画を立て、計画に従って移行作業を行わなければいけません。この原則はオペレーティングシステムの種類に依存しません。

3.2.1. サービスの調査と確認

簡単そうに見えるかもしれませんが、この手順は絶対不可欠です。真面目な管理者はそれぞれのサーバの主たる役割をよく理解していますが、その役割が変わる可能性もありますし、経験豊かなユーザが「変わった」サービスをインストールしていたかもしれません。そのようなサービスが存在するとわかれば、少なくともこのようなサービスを場当たり的に削除するのではなく、どのように扱うか決めることができます。
この目的で、サーバを移行する前にユーザに Debian プロジェクトを通知することが賢明です。ユーザを Debian プロジェクトに関わらせるために、移行前に最も一般的な (Debian への移行後に使うような) フリーソフトウェアプログラムをユーザのデスクトップにインストールすることは役に立つかもしれません; Libre Office や Mozilla スイートはこのようなソフトウェアの良い例です。

3.2.1.1. ネットワークとプロセス

nmap ツール (パッケージも同じ名前) を使うことで、あるネットワークに接続されたマシンにログインすることなしにそのマシンががホストする Internet サービスを素早く特定できます。同じネットワークに接続されている他のマシンに対して以下のコマンドを実行するだけです:
$ nmap mirwiz
Starting Nmap 6.00 ( http://nmap.org ) at 2012-12-17 11:34 CET
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.0037s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
サーバがユーザにシェルアカウントを提供する Unix マシンの場合、所有者不在のプロセスがバックグラウンドで実行されているかどうかを見つけ出すことは興味深いものです。ps auxw コマンドはすべてのプロセスのリストをユーザ名を含めて表示します。この情報と、ログイン中のユーザのリストを表示する who コマンドの出力を比較することで、バックグラウンドで実行されている不正で無申告のサーバまたはプログラムを特定することができます。crontabs (ユーザが定期的に予定している自動実行の一覧表) にはしばしばサーバの果たす役割に関する興味深い情報が含まれています (cron の完全な説明はcronatd を使ったスケジューリングタスク」にあります)。
どんな場合でも、サーバのバックアップを行うことは絶対必要です: バックアップをしておけば、移行したことで生じた特定の問題がユーザから報告され、問題が起きた後でも情報を回復することができます。

3.2.2. 設定のバックアップ

アップデート後のサーバに同等の環境を作るれるようにするため、それぞれのサービスに対する設定を保存しておくのは賢明です。設定ファイルのバックアップコピーを取ることは最低限必要です。
Unix マシンでは、設定ファイルは通常 /etc/ にありますが、場合によっては /usr/local/ サブディレクトリにあるかもしれません。これはプログラムをパッケージではなくソースコードを使ってインストールした場合です。また、設定ファイルが /opt/ の下にある場合もあります。
データ管理サービス (データベースなど) では、新しいソフトウェアで簡単に読み込むことができる一般的なフォーマットでデータを書き出すことを強く推奨します。そのようなフォーマットは通例テキストデータで文書化されています; これは例えば、データベースでは SQL ダンプ、LDAP サーバでは LDIF ファイルのことを指します。
データベースのバックアップ

図3.2 データベースのバックアップ

それぞれのサーバソフトウェアには差がありますから、現存するすべての場合について詳しく述べることは不可能です。移行元と移行先のソフトウェアの文書を比較して、書き出し可能 (そして、再読み込み可能) な部分と手作業を必要とするかどうかを確認してください。この本を読めば主な Linux サーバプログラムの設定は明らかになります。

3.2.3. 既存の Debian サーバの引き継ぎ

維持管理を効率的に引き継ぐために、すでに Debian が稼働中のマシンを解析する必要があるかもしれません。
最初に確認するファイルは/etc/debian_version で、これは通常インストールされた Debian システムのバージョン番号を含んでいます (base-files パッケージの一部です)。バージョン番号が codename/sid となっていた場合、このシステムは開発版ディストリビューション (テスト版か不安定版のどちらか) のパッケージを使って更新されたことを意味しています。
apt-show-versions プログラム (同じ名前の Debian パッケージに含まれます) はインストールされたパッケージのリストを確認して、利用可能なバージョンを識別します。apt-show-versions に比べると体系的ではありませんが、aptitude を同様の目的で使うこともできます。
/etc/apt/sources.list ファイルをぱっと見ただけで、インストールされた Debian パッケージの取得元がわかります。ここにたくさんの未知のソースがあった場合、管理者は Debian が提供するソフトウェアとの最適な互換性を確保するために、コンピュータシステムを完全に再インストールするかもしれません。
この sources.list ファイルは多くの場合良い指標となります: 大多数の管理者は、少なくともコメントの中で、過去に使っていた APT ソースのリストを残しています。しかし、過去に使っていたソースは削除されているかもしれないこと、インターネットから取得されたでたらめなパッケージが手作業で (dpkg コマンドを使って) インストールされているかもしれないこと、を忘れるべきではありません。この場合、マシンは「標準的な」Debian の外観に偽装されている恐れがあります。そのため、外部パッケージの存在を示す兆候を見逃さないようするべきです (通常では考えにくいディレクトリに deb ファイルがあったり、パッケージのバージョン番号のサフィックスに ubuntulmde などの特別なものが使われていたら、それは Debian プロジェクト以外で作られたことを意味しています)。
同様に /usr/local/ ディレクトリの内容を分析するのは興味深いです。このディレクトリは手作業でコンパイルおよびインストールされたプログラムを納めるための場所です。手作業でインストールされたソフトウェアをリストアップすることは有益です。なぜならそうすることで、Debian にもそのソフトウェアに類似するパッケージがあるにもかかわらずそれを使っていない理由に疑問を提起することができるからです。

3.2.4. Debian のインストール

現在のサーバに関する全ての必要な情報を集め終わったら、サーバを停止させ、Debian のインストールを始めることができます。
適切なバージョンを選ぶには、コンピュータのアーキテクチャを知らなければいけません。まあまあ最近の PC ならば、アーキテクチャは十中八九 amd64 でしょう (古めの PC なら i386)。それ以外の場合、以前使っていたシステムから可能性を狭めることができます。
表 3.1 は全てを網羅することを意図したものではありませんが、参考になります。いかなる場合でも、コンピュータの元の文書はこの種の情報を探すには最も信頼できるソースです。

表3.1 オペレーティングシステムとアーキテクチャの照合

オペレーティングシステムアーキテクチャ
DEC Unix (OSF/1)alpha、mipsel
HP Unixia64、hppa
IBM AIXpowerpc
Irixmips
Mac OSamd64、powerpc、i386、m68k
z/OS、MVSs390x、s390
Solaris、SunOSsparc、i386、m68k
Ultrixmips
VMSalpha
Windows 95/98/MEi386
Windows NT/2000i386、alpha、ia64、mipsel
Windows XP / Windows Server 2008i386、amd64、ia64
Windows Vista / Windows 7 / Windows 8i386、amd64

3.2.5. 選ばれたサービスのインストールと設定

ひとたび Debian がインストールされると、我々はコンピュータがホストする全てのサービスについて 1 つずつインストールと設定を行わなければいけません。移行を円滑に進めるためにも、新しい設定は古い設定を考慮して行われなければいけません。最初の 2 ステップで集めた全ての情報が、この作業を成功のうちに完了させるのに役立ちます。
選ばれたサービスのインストール

図3.3 選ばれたサービスのインストール

意気込んで行動を起こす前に、この本の残りの部分を読むことを強く推奨します。そうすることで、運用予定のサービスを設定する方法について、正確な理解を得ることができるでしょう。