ある案件で、サーバ移管をしたときのお話です。対象はWADAXというレンタルサーバから別のサーバに移管するお仕事がありました。その時発生している悲しい出来事です。
WADAXのサーバはこちらになります。法人向けのレンタルサーバで、サポートが充実しているらしいですね。
移管の作業内容としてはWADAX→別のサーバに移動の作業です。ワードプレスと静的なページしか無いので、移動も簡単だと思っていましたが、いろいろな罠が仕掛けてあって、失敗しました。
書いてみます。
まずはWADAXサーバにデータが沢山おいてあるのでFTPでダウンロードしないといけない
サーバ移管作業なので、まずはサーバ上のファイルを全部持ってこないといけないです。約30GBくらいありました。
そして、SSHなどでサーバに接続できない仕様とのことなので、FTPでしかダウンロードできません。細かいファイルが大量にある(WordPressが10個以上入っている)状態なので、ファイルの容量の問題よりも、ファイル数で問題が出そうでした。
そして、現状誰もサーバの中身の正解の状態を知らないので、とにかく全部移し替えるしか無いです。
FTPで全てのファイルがダウンロードができない
予想通り、細かいファイルが大量にあるので、速度が出ません。でも、速度が出ないだけではなく、FTPクライアントによってはまともに動かない現象が出ていました。
FFFTPだとディレクトリの中身一覧を取得中にサーバから中止されて、そもそも動かない。LISTコマンドとかMLSDコマンド利用の有無など、いろいろ設定の組み合わせしても、サーバ側から切断されてとまる。
WinSCPだと速度が遅すぎて、数日以上かかって実用的ではない。
この時点で結構ピンチです。でも一つだけまともに動くFTPクライアントがありました。
最後の希望 Filezillaと裏切り
そんな中、Filezillaはとても高速でした。何度かダウンロードも完了できて、とてもいい感じでした。技術検証もバッチリです。
実際にファイルをダウンロード、新しいサーバに移動。その後、新しいサーバを稼働させて本番稼働、切り替え調整をして本番切り替えまで行いました。とても順調でした。
ただし、以下の問題がひっそりと発生していました。
その問題は、
ファイルダウンロード時に一部ファイルの中間部分あたりが「稀に文字化けしてファイルが破壊される」
という、素敵な爆弾をかかえていました。改行コードとかで文末とかの問題とかならまだわかるのですが、ファイルの中間の一部分だけ文字化けした感じで破壊される事があるみたいです。
Filezillaは現時点(2020/08)の最新版の3.49.1です。
後ろ寄りの部分で、
b.element.val()!==bd,3����d,3��������������������گ»E������������ S&3����xd,3������������0d,3����[������0d,3������������unction
みたいになっています。文字化けが始まっている先頭部分を確認すると、元のコードは
b._color.toString()
と始まる部分です。後ろの方にも制御文字なんか無いし。なんでこんな物が化けるんだろう。。。
本番運用開始して、ワードプレスの管理画面で作業していたら、微妙に変なことになっているパターンが発見されました。
phpなどのテキスト系のファイル、フォント系のバイナリファイルなど一部がひっそりと破壊されていました。大丈夫なファイルもあって謎すぎます。発生するパターンもよくわからず、どうしようもなくなって、新サーバでの稼働は即諦め、古いサーバに切り戻しを行いました。
あと、毎回挙動が全然違いました。転送モードをバイナリモードにすれば、文字化けは一定大丈夫そうなのですが、ファイル一覧を取得するのが途中で止まって、サーバからLIST系のコマンドを拒否されて落とされていることが多くなります。結果、ディレクトリごと大量にファイルが欠けたりします。全体の1/5のファイルもダウンロードできない感です。
転送モードを自動にしていても、破壊が発生したりしなかったりします。ファイルが多いので確認しきれていないですが、技術検証時は発生していないはず。多分。。。途中ソフトウェアのバージョンアップもしてないです。
もう、サーバが悪いのか、FTPクライアントが悪いのか、全くわからなくなりました。おじさんはただ、サーバ上のファイルをダウンロードしたいだけなんだけど。。。
とにかく、お客さんには平謝りです。でも、すぐに気づいて本当によかったよ。。これが数日運用されていたらと思うと、、、ハゲそうだ。。。
というわけで手詰まりです。
まずはWADAXに電話で相談
とにかく旧サーバからデータを全部、完全に引き出さないといけないのです。でも、FTPクライアントやパソコンを変えたりしても、全部ダウンロードするのが困難な状態です。
まずは電話でWADAXに相談してみました。結果、調査のため問い合わせフォームから再度連絡をください。という感じでした。電話では即答できない内容は回答しないで、自分でフォームからの問い合わせしないといけないみたいですね。
状況を説明したうえでの電話でのWADAXの回答では、「サーバはファイルの置き場なのでユーザがどの様にファイルを置くか・何でどうやってダウンロードするかは知らない。」というスタンスでした。
まぁ、そうだよね。。でも、どのFTPクライアント使ってもダウンロードできないんだ。サーバにwordpressを置いたり、必要なファイルをたくさん置いたら、サーバに飲み込まれて二度と全部ダウンロードできなくなります。というのは流石にないですね。。
とにかく、もう一回問い合わせフォームから問い合わせることにしました。問い合わせをして、いま調査をしてもらっています。すみませんです。
落ち着いて現状をまとめてみる
現状をまとめてみます。
・WADAXはFTP接続でしかファイルはダウンロードできない仕様である
・WADAXサーバはLISTコマンドなどが途中で中断・中止されたりする事実。大量にファイルやディレクトリがあると動かない。
・FFFTPは途中で止まってそもそも動かない
・Filezillaは中途半端に動いて最も良くない。ファイルが壊れる。
・Winscpは遅すぎて、作業を停止できる期限的に絶対に間に合わない。
良くないのは以下二点。
・ディレクトリが多くなると、サーバからLISTコマンドなどのファイル一覧取得系のコマンド発行を中止される。【レンタルサーバ要因】
・唯一動くっぽいFilezillaの挙動が不審すぎる。【こちらのFTPクライアントの要因】
WADAXにお願い・確認したことは以下です。
以下をお願いしてみました。結構ざっくりとお願いしています。
・なんとかしてtelnetやsshから接続しDocumentRoot以下を全てtar.gzなどでアーカイブできないか。これが一番良い。
・なんとかしてファイルを正確に全てダウンロードする術は無いか。
というのを調べてもらっています。どうにかなるのかな。。
教訓
レンタルサーバでも最低限SSHやtelnetが利用できるところを選びましょう
取り急ぎ、それなりに大きな規模で運用する予定のあるサイトなら、レンタルサーバでもSSHやtelnetが最低限利用できるところがいいと思います。もうね、はじめからtar.gzとかでアーカイブできれば何も問題ないです。
今まで、レンタルサーバなんてどこでもいいや。と思っていましたが、SSH接続またはtelnetでの接続はとても重要だと思います。
今回は、サーバ移管ということで全部ファイルダウンロードが必要でしたが、他の要件でもサーバのファイルをダウンロードしないといけない!という事態になったときに困ると思います。
Filezillaよ。挙動がよくわからないよ。
なんであんなところが文字化けするのかもよくわからないです。問題が発生するファイルと発生しないファイルの差がわかりません。どうせなら、動かないでほしかった。
とまだまだ続きます。