私は今でこそエンジニアであるため仕事柄Linuxを触るのは当然なのですが、昔は違いました。エンジニアではなかったのです。当時、ある企業のCMSの顧客の運用サポートをしていましたが、一緒にチームを組んでいた開発エンジニアがある日突然辞めて、一人残された私はなりゆきでエンジニアの真似事をせざるを得ない状況に追い込まれました。他に担当するエンジニアがいなかったからです。
Linuxをさわるというのは基本的にエンジニアの作業のため、検索して出てくるエンジニアが書いた記事は多くの前提が省略されています。したがって体系的な勉強をしていない非エンジニアはMondo Rescueでバックアップを作るという作業を一つとっても、いざ実行するとなるとけっこう苦労します。この記事は、かつての自分と同じような境遇で苦労している人に役立つよう書きます。
前提
- さくらVPSのメモリ2Gから別のさくらVPSのメモリ1Gへ移行するためにディスクイメージを作成する
- 移行元は本番稼働中で、移行先は検証環境である
CentOS6系でMondo Rescueを使ってバックアップするまでの流れ
さくらVPSのCentOS6.9です。ま、さくらVPSかどうかはそこまで関係ないかもしれませんが、同じCentOS6系であってもAWS、GCP、ニフクラなどで微妙に何かが違うというのは経験したことがあるので、敢えてさくらVPSに限定しておきます。大まかな流れは以下の通りです。バックアップデータを作成する以上を復元手順も必要ですが、そこまですると大変なので、今回はバックアップデータ作成のみに焦点をあてます。
- そもそもディスクイメージって何?
- まずはCentOSのバージョン確認
- mondo-rescueをインストールする
- mondo-rescueでバックアップを作成する
- うまくいかない場合はキャッシュクリアをしよう
そもそもディスクイメージって何?
今回Mondo Rescueで作成するバックアップはディスクイメージというものです。というかMondo Rescueをで作成されるデータは当然ディスクイメージになるのですが、素人にはその当然のことが最初は分かりません。なので説明します。ディスクイメージはサーバーAの環境をサーバーBにまるごとコピーするようなデータです。OSやミドルウェア、その他あらゆるインストールされた機能を含みます。OSごとというのがポイントで、当然データ容量は大きくなります。従って、ディスク使用量が半分前後の場合に何も考えずディスクイメージを作成すると、かなり悲惨なことになります。
ではmondo-rescueのインストールに進みます。
まずはCentOSのバージョン確認
mondo-rescueをインストールする前に、CentOSのバージョン確認をしましょう。CentOS6系と7系とではインストールに使用するmondo-rescueのファイルが異なるからです。CentOSのバージョン確認をするには以下のコマンドで確認できます。
CentOS release 6.9 (Final)
mondo-rescueをインストールする
ではいよいよmondo-rescueをインストールします。そうです、インストールしないといけないのです。mondo-rescueはLinuxに最初から入っている機能ではありません。だからさくらVPSにインストールします。こんな当たり前のことも、最初は分からないのです。まずはyumリポジトリディレクトリに移動します。cdコマンドはチェンジディレクトリの略です。コマンドをコピペするのはいいですが、意味を理解してから実行しましょう。
yumリポジトリディレクトリに移動します。
mondo-rescueをダウンロードします
lsでファイルが正常にダウンロードされたか確認します。mondo-rescueがなければダウンロードされてませんぞ。
mondo-rescueをインストールします。
インストールときは「error」という表示が出てこないかよく確認しましょう。
[Errno 14] Could not open/read file:
例えば、この表示があるとインストールできず止まります。こんな場合は下記のオプションを指定するとmondoresuceをインストールできます。
エラーがでてくるときはインストールすべきバージョンが違う可能性があります。または、キャッシュクリアで解決することもあります。それでもうまくいかないときは、こういう記事も参考にしてください。
https://qiita.com/m_fuji/items/4d440cb913818a7922c6
リポジトリのキャッシュが原因のときは、キャッシュをクリアしましょう。
もういちどmondo-rescueインストールをすれば、正常にいくと思います。整理するとインストールがうまくいかないときは、キャッシュクリアかバージョン確認をすれば、きっと解決できます。
mondo-rescueでバックアップを作成する
さていよいよmondo-rescueでバックアップを作成します。その前に、サーバーの容量を確認しましょう。ディスク容量が半分を40%を超えている場合は、安易にディスクイメージを作成しないほうがいいです。
サーバー容量を確認
バックアップを実行します。
ディスクイメージ作成にはオプションがいろいろあるので注意してください。このコマンドであれば、サーバーの/mnt/配下にディスクイメージを保存し、ファイルの上限は4480MBで、その/mntディレクトリ自体はディスクイメージに含まれない、という指定です。
https://qiita.com/mozo/items/55574d7039bacfa8d8c8
例えば、以下のようにイメージファイルの上限を指定しないと、15ファイルに勝手に分割されます。
ファイルを何分割するか、1ファイル辺りの上限容量はどれくらいにするか、バックアップファイルはどのディレクトリに作成するか、など様々です。300Gの単一ファイルを作っても、ダウンロードするのに途方もない時間がかかって結局作業ができないとか、タイムアウトしてしまうなどの問題が発生し得ます。そもそもローカルPCに300Gもダウンロードできますか?考慮すべきことはいっぱいあります。こういうのは経験がものを言うので、自分で自由に実験ができる環境を用意して、しっかり練習しておきましょう。エンジニアたるもの、求められた業務はいつでもできないといけません。
時間がかかるディスクイメージのダウンロード
作成したディスクイメージをローカルマシンにダウンロードするのにはさくらVPSは恐ろしく遅い。ある時は50k/sだったり、夜間だと3000k/sだったりとかなりむらがある。もちろん、基本的にはダウンロード速度が遅いことのほうが多いが、この辺りは安いサービスだから仕方ない。これ以上を求めるなら別の高価格のサービスを利用すべしということになる。
または、さくらVPSに接続可能な外付けのストレージを別に契約すれば、そのストレージはさくらVPSにローカル接続ができるので、そこにデータを保存するのであればネットを
介する必要がなく、ストレスフリーにデータを保存できる。この辺は予算や目的に応じて設定するといい。
さくらVPSの場合の注意点 2020/9/30時点の情報
さくらVPSでmondorescueを使う際の注意点です。
- リストアに必要なディスクイメージをアップするディレクトリにアップできるファイルは1つだけ
- 1つのディスクイメージのファイル上限は10G(メモリは1Gプランの場合。他のプランの場合は知りません)
- ディスクイメージ用のSFTPアカウントは1日で消え、アップしたディスクイメージも1日で自動的に消える
リストア手順の記事はこちら。
さくらVPSのCentOS6系でMondo Rescueを使いリストアする