fbpx

[和訳] Enterprise Chef におけるバックアップとリストア #opschef_ja #getchef_ja

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

この記事は Backup and Restore の 2014/08/01 時点での和訳です。

Enterprise Chef のデータの定期バックアップは、健全な構成管理を行う上で必要不可欠な要素で、必要に応じ重要データをリストアする際の手助けとなります。

高可用性 (High Availability, HA)

HA 構成でのバックエンドサーバのバックアップ設定は、次のような cron ジョブ /etc/cron.d/opc_snapshot を設置します。


# rendered by private-chef-ctl reconfigure, do not modify
# Add to /etc/cron.d/opc_snapshot, and then remove comment below MAILTO to activate the cron job
SHELL=/bin/bash
HOME=/opt/opscode/bin
PATH=/usr/bin:/usr/sbin:/bin:/opt/opscode/embedded/bin:/opt/opscode/bin
MAILTO=SOMEONE@payingattention
#17 23 * * * root drbd-backups -g opscode -l drbd > /dev/null 2>&1

この cron ジョブの例では、次の名前のスナップショット論理ボリュームをマウントします。


/dev/opscode/backup-{+%Y-%m-%d-%H-%M-%S}

{+%Y-%m-%d-%H-%M-%S} は日時のフォーマット文字列です。

この cron ジョブが正常に実行されれば、mount コマンドはマウントポイント /var/opt/opscode/drbd-backups に新しい論理ボリュームがマウントされていることを表示します。このバックアップスクリプトは /opscode ボリュームグループの未使用領域にスナップショット論理ボリュームを作成します。スナップショットが作成されたら、バックアップスクリプトはスナップショット論理ボリュームをマウントし、このスナップショットは 24時間マウントされたままになります。次回の cron ジョブが実行されたら、バックアップスクリプトはスナップショットをアンマウントして破棄してから、処理を続行します。

ノート

drbd-backups スクリプトのデフォルト設定では、バックエンドサーバの /opscode ボリュームグループに最低 40GB の空き領域を必要とします。

必須ディレクトリ

定期バックアップすべきデータは次のディレクトリに保存されています。

  • /etc/opscode
  • /var/opt/opscode

このデータは Enterprise Chef Server にとって、どのようなバックアップ・リストアの処理形式であっても必須となります。

バックアップ

Enterprise Chef のデータをバックアップする際は、バックアップの最中はシステムを停止するか、アクセスがないようにします。opscode-pgsql ユーザで次のコマンドを実行します。


$ /opt/opscode/embedded/bin/pg_dumpall | gzip --fast > postgresql-dump.tgz

ディスクにすべてのデータが書き込まれるように同期します。


$ sync

リストア

Enterprise Chef のデータをリストアする際は、以前にバックアップしたファイルが必要となり、加えて postgresql サービスのみが動作している必要があります。データベースをリストアするには、opscode-pgsql ユーザで次のコマンドを実行します。


$ gunzip -c postgresql-dump.tgz | tar -xf \
/opt/opscode/embedded/bin/psql -U "opscode-pgsql" -d postgres -f postgresql-dump

そして、以前にバックアップしたファイルを次の位置にリストアします。

  • /etc/opscode
  • /var/opt/opscode
新規CTA