月別アーカイブ: 2013年5月

cinder-backupを使ってみる

OpenStack GrizzlyではブロックストレージをSwiftにバックアップする機能が追加されました。使ってみたくてマニュアルをあさっても、OpenStack Block Storage Service Administration Guideにあるcinder-backupがたぶんそうだろう、というくらいしかわからなかったので、DevStackで使ってみました。DevStackなので、ストレージドライバはLVMです。

前提として当たり前ですが、Swiftに保存するためSwiftを有効にして、DevStackを起動します。http://devstack.org/localrc.htmlを参考に、Swiftを有効にしてください。
ブロックストレージをSwiftにバックアップする機能はcinder-backupサービスが提供しますので、別ウィンドウでcinder-backupを起動します。

$ /usr/local/bin/cinder-backup
2013-05-11 21:31:59     INFO [cinder.service] Starting 1 workers
2013-05-11 21:31:59     INFO [cinder.service] Started child 20987
2013-05-11 21:31:59    AUDIT [cinder.service] Starting cinder-backup node (version 2013.1.2)
2013-05-11 21:31:59    DEBUG [cinder.utils] Running cmd (subprocess): sudo cinder-rootwrap /etc/cinder/rootwrap.conf vgs --noheadings -o name
2013-05-11 21:31:59     INFO [cinder.backup.manager] Cleaning up incomplete backup operations
2013-05-11 21:31:59    DEBUG [cinder.utils] backend <module 'cinder.db.sqlalchemy.api' from '/opt/stack/cinder/cinder/db/sqlalchemy/api.pyc'>
2013-05-11 21:31:59     INFO [cinder.openstack.common.rpc.common] Connected to AMQP server on localhost:5672
2013-05-11 21:31:59    DEBUG [cinder.service] Creating Consumer connection for Service cinder-backup

それではcinder-backupを使ってみます。

rcファイルを読み込みます。

$ source accrc/demo/demo

1GBのボリュームを作ります。

$ cinder create --display-name test 1
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2013-05-11T12:33:39.811753      |
| display_description |                 None                 |
|     display_name    |                 test                 |
|          id         | 4bab444e-8b6e-4085-8a38-21057aa99de5 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

正常に作成されたことを確認します。

$ cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |     test     |  1   |     None    |  false   |             |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

作成したボリュームをバックアップします。

$ cinder backup-create --display-name backup_test 4bab444e-8b6e-4085-8a38-21057aa99de5
$

バックアップを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウに大量のログが表示されます。create_backup finished.とあれば成功のようです。

2013-05-11 21:36:48     INFO [cinder.backup.manager] create_backup finished. backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670

バックアップが作成できたことを確認します。

$ cinder backup-list
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
|                  ID                  |              Volume ID               |   Status  |     Name    | Size | Object Count |   Container   |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
| 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 | 4bab444e-8b6e-4085-8a38-21057aa99de5 | available | backup_test |  1   |      22      | volumebackups |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
$ cinder backup-show 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670
+-------------------+--------------------------------------+
|      Property     |                Value                 |
+-------------------+--------------------------------------+
| availability_zone |                 nova                 |
|     container     |            volumebackups             |
|     created_at    |      2013-05-11T12:36:15.000000      |
|    description    |                 None                 |
|    fail_reason    |                 None                 |
|         id        | 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |
|        name       |             backup_test              |
|    object_count   |                  22                  |
|        size       |                  1                   |
|       status      |              available               |
|     volume_id     | 4bab444e-8b6e-4085-8a38-21057aa99de5 |
+-------------------+--------------------------------------+

Swiftに保存されたことを確認します。

$ swift list
volumebackups
$ swift list volumebackups
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00001
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00002
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00003
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00004
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00005
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00006
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00007
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00008
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00009
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00010
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00011
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00012
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00013
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00014
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00015
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00016
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00017
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00018
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00019
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00020
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00021
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670_metadata

確かに保存されたようです。

リストアします。ヘルプをみてみます。

$ cinder help backup-restore
usage: cinder backup-restore [--volume-id <volume-id>] <backup>

Restore a backup.

Positional arguments:
  <backup>              ID of the backup to restore.

Optional arguments:
  --volume-id <volume-id>
                        Optional ID of the volume to restore to.

ヘルプをみると、リストアするのと、新しくボリュームを作るのと、2つあるようです。
まずは–volume-id なしでやります。

$ cinder backup-restore 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670
$ 

リストアを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウにrestore_backup finishedとあれば成功のようです。

2013-05-11 21:54:16     INFO [cinder.backup.manager] restore_backup finished, backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 restored to volume: 1c9df004-4eda-4023-b92f-59017532a9a7

ボリュームが増えたことを確認します。

$ cinder list
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |                     Display Name                    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
| 1c9df004-4eda-4023-b92f-59017532a9a7 | available | restore_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |  1   |     None    |  false   |             |
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |                         test                        |  1   |     None    |  false   |             |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+

もうひとつボリュームが増えたようです。バックアップはあいかわらず存在しています。

$ cinder backup-list
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
|                  ID                  |              Volume ID               |   Status  |     Name    | Size | Object Count |   Container   |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
| 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 | 4bab444e-8b6e-4085-8a38-21057aa99de5 | available | backup_test |  1   |      22      | volumebackups |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+

今度は最初に作ったボリュームにリストアしてみます。

$ cinder backup-restore --volume-id 4bab444e-8b6e-4085-8a38-21057aa99de5 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670

やはりリストアを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウにrestore_backup finished〜restored to volumeとあれば成功のようです。

2013-05-11 22:02:13     INFO [cinder.backup.manager] restore_backup finished, backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 restored to volume: 4bab444e-8b6e-4085-8a38-21057aa99de5

ボリュームが正常であることを確認します。

$ cinder list
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |                     Display Name                    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
| 1c9df004-4eda-4023-b92f-59017532a9a7 | available | restore_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |  1   |     None    |  false   |             |
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |                         test                        |  1   |     None    |  false   |             |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+

ん〜リストアされたかわからないですね。。