CMU Migrations

このガイドでは、CMU、すなわち「Cobalt Migration Utility」を使って、サイト、ユーザー、設定をエクスポートおよびインポートする際の実践的な手順を説明します。

エクスポート:

1.) CMU が最新であることを確認する:

移行元サーバーが BlueQuartz の場合は、必ず最新の CMU をインストールしてください。少なくとも CMU v2.90-0BX01 以降が必要です。まだ導入されていない場合は ここ から入手できます。インストール済み CMU のバージョンは「rpm -qa|grep cmu」で確認できます。

移行元が BlueOnyx の場合は、まず「yum clean all」と「yum update」を実行して、利用可能な更新をすべて適用してください。これにより CMU も最新状態になります。

2.) サイトやユーザーが quota 超過していないことを確認する(任意):

SSH で root として次の 2 コマンドを実行します。

/usr/sausalito/sbin/disk_restorequotas.pl
/usr/sbin/swatch

最初のコマンドは、CODB に保存されている quota 設定をファイルシステムの quota と同期します。次のコマンドは実際の使用量を確認し、その結果を CODB に書き戻します。

その後 GUI で「Active Monitor」/「Status」/「Disk Usage」を開き、「Sites」タブと「All users」タブを見て、どのサイトやユーザーも quota 超過していないことを確認してください。超過している場合は、すべて緑表示になるまでディスク quota を引き上げます。

注意: CMU v2.90 以降では、quota 超過しているサイトやユーザーでも移行自体は可能です。インポートはそのまま進行します。

3.) ディレクトリ準備:

移行対象データを書き出すエクスポート用ディレクトリを作成します。推奨構成は次のとおりです。

mkdir /home/export
mkdir /home/export/data
mkdir /home/export/extra 

これで /home/export の下に「data」と「extra」という 2 つのサブディレクトリが作成されます。

4.) サービス準備:

GUI から SMTP、POP3、IMAP、FTP を無効化し、エクスポート中に新しいメールやファイルが入ってこないようにします。

5.) MySQL のエクスポート:

まず MySQL デーモンを停止します。

5209R 以外では次のコマンドを使います。

/sbin/service mysqld stop

5209R では次を使います。

systemctl stop mysqld

MySQL ディレクトリの位置を確認します。通常は /var/lib/mysql または /home/mysql です。

そのディレクトリを固めて /home/export/extra/mysql.tar.gz に保存します。

tar czvf /home/export/extra/mysql.tar.gz /var/lib/mysql

もし MySQL の root パスワードを忘れている場合は、CCEclient で確認できます。

/usr/sausalito/bin/cceclient 

次のような応答が返ります。

100 CSCP/0.80
200 READY

ここで次を入力します。

find MySQL

すると次のような結果が返ります。

104 OBJECT 72
201 OK

この例では「72」が object ID です。環境によって値は異なります。表示された object ID を使って、次のように get コマンドを実行します。

get 72

すると、そのオブジェクトに保存されている内容が次のように表示されます。

102 DATA NAMESPACE = ""
102 DATA sql_rootpassword = "the-supersecret-password"
102 DATA CLASSVER = "1.0"
102 DATA sql_host = "localhost"
102 DATA timestamp = "1322165402"
102 DATA CLASS = "MySQL"
102 DATA savechanges = "1322165402"
102 DATA sql_port = "3306"
102 DATA OID = "72"
102 DATA sql_root = "root"
201 OK

GUI 経由で設定されていれば、MySQL root パスワードは「102 DATA sql_rootpassword」で始まる行に表示されます。

念のため、そのパスワードを /home/export/extra/mysql.txt に保存しておきます。

6.) DNS のエクスポート:

DNS サーバーを停止します。

/sbin/service named stop

5209R では次のコマンドになります。

systemctl stop named

DNS ゾーンファイルを含むディレクトリと、厳密には不要ですが named.conf もまとめて固めます。

tar czvf /home/export/extra/named.tar.gz /var/named/chroot/etc/named.conf /var/named/chroot/var/named

DNS Slave zone を使っている場合に限り、次の手順で DNS Slave zone をテキストファイルへ書き出しておくと、あとで簡単にインポートできます。

cd /home/export/extra/
wget http://d2.smd.net/scripts/dns-slaves/dns-slavezones.txt
mv dns-slavezones.txt dns-slavezones.pl
chmod 700 dns-slavezones.pl./dns-slavezones.pl > /home/export/extra/slaves.txt

これで /home/export/extra/slaves.txt に DNS Slave zone 一覧が作成されます。

7.) CMU で全サイトとユーザーをエクスポートする:

/usr/sbin/cmuExport -d /home/export/data

このコマンドは、ディレクトリがすでに存在すると表示し、そのまま使うか確認してきます。「Yes」で続行してください。完了までしばらく時間がかかります。

8.) すべてのファイルを移行先サーバーへコピーする:

移行先サーバーでは SSH が有効であり、root ログインが許可されている必要があります。これは GUI で設定できます。そのうえで、移行元サーバー上で次を実行します。

scp -r /home/export root@target.of.migration.com:/home/

これにより「/home/export」ディレクトリ全体と、その中のサブディレクトリおよびファイルが、移行先の /home/export にコピーされます。

インポート:

移行先サーバーへ SSH で「admin」としてログインし、「su -」で root 権限を取得します。同時に GUI にも「admin」でログインしておきます。

シェルで /home/export が存在し、移行元から持ってきたデータがすべて入っていることを確認してください。

1.) MySQL のインポート:

まず MySQL サーバーを停止します。

/sbin/service mysqld stop

5209R ではこちらです。

systemctl stop mysqld

既存の MySQL データベースディレクトリを削除します。

rm -R /var/lib/mysql

mysql.tar.gz から MySQL ディレクトリを展開します。

cd /home/export/extra
tar zxvf mysql.tar.gz

展開された「mysql」ディレクトリを /var/lib/ へ移動します。

mv /home/export/extra/var/lib/mysql /var/lib/

MySQL サーバーを再起動します。

/sbin/service mysqld start

5209R では次になります。

systemctl start mysqld

権限テーブルを修復し、必要なら変換も行います。your-mysql-root-password は実際の root パスワードへ置き換えてください。

/usr/bin/mysql_fix_privilege_tables your-mysql-root-password 

GUI で「Network Services」/「MySQL」を開き、最初のタブに MySQL root パスワードを 2 回入力します。これで GUI が MySQL に接続できるようになり、「MySQL Status」には「Connection possible with this settings」と表示されます。

2.) CMU を使ってサイトをインポートする:

/usr/sbin/cmuImport -a -s -d /home/export/data/

これにより、すべてのサイトとユーザー、admin ユーザーのファイル、および Extra Admin(Reseller)のファイルが、元と同じ IP アドレスでインポートされます。別の IP にインポートしたい場合は次のコマンドを使います。

/usr/sbin/cmuImport -a -s -i 192.168.100.1 -d /home/export/data/

この例では、すべてのサイトが 192.168.100.1 へインポートされます。

3.) DNS のインポート:

既存の DNS レコードをすべて削除します。CMU-Import により何らかのレコードが作られている可能性があるため、この手順は省略しないでください。

/usr/sausalito/sbin/dnsDeleteAllRecords.pl --delete-confirm

named.tar.gz を展開します。

cd /home/export/extra
tar zxvf named.tar.gz

次に少し整理し、必要なものだけを /home/export/extra/dns へコピーします。

mkdir /home/export/extra/dns
cp /home/export/extra/var/named/chroot/var/named/db*.* /home/export/extra/dns/
rm /home/export/extra/dns/*~

これで、主 DNS レコードが /home/export/extra/dns/ に集まり、インポート準備が整います。

すべての DNS ゾーンファイルをインポートします。

/usr/sausalito/sbin/dnsImport.pl /home/export/extra/dns

DNS Slave zone を使用していなければ、この先の数手順は飛ばして name サーバーを再起動して構いません。

任意の DNS Slave zone インポート:

cd /home/export/extra
wget http://d2.smd.net/scripts/dns-slaves/dns-import-slavezones.txt
mv dns-import-slavezones.txt dns-import-slavezones.pl
chmod 700 dns-import-slavezones.pl./dns-import-slavezones.pl

これにより、任意で作成しておいた /home/export/extra/slaves.txt から DNS Slave zone がインポートされます。

DNS サーバーを再起動します。

/sbin/service named restart

5209R ではこちらです。

systemctl restart named-chroot

DNS サーバーが起動していることを確認します。

/sbin/service named status

5209R では次です。

systemctl status named-chroot

GUI でも DNS サーバー用のチェックボックスが有効になっていることを確認してください。

4.) インポート後の後処理:

インポート完了後は、次のコマンドを実行することを推奨します。

/usr/sausalito/sbin/fix_user_UID_and_GID.pl
/usr/sausalito/sbin/web_alias_redirects.pl --enabled
/usr/sausalito/sbin/fix_user_suspension.pl
/usr/sausalito/sbin/fix_web-and-email-server-aliasses.pl

これらのスクリプトは次のことを行います。

a) サイトとユーザーの UID/GID の不整合を修正する。
b) すべてのサイトの Web alias をメインサイト名へリダイレクトする。
c) 停止状態であるべきユーザーを停止する。
d) Web Server Alias と Email Server Alias を修正する。

5.) インポート後の確認:

GUI で、本来有効であるべき各サービス(Email、POP3、IMAP、SMTP-Auth、FTP、DNS など)が有効になっていることを確認してください。

「Software updates」/「YUM updates」で自動更新が有効であることも確認してください。

すべてのサイトが正常に動作し、欠落しているサイトがないことを確認してください。

最後に、すべて問題なく動作していることを確認したら、容量節約のため /home/export を削除してもよいでしょう。

rm -R /home/export

この手順について質問がある場合や支援が必要な場合は、BlueOnyx users メーリングリストで遠慮なく相談してください。