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 | | +--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
ん〜リストアされたかわからないですね。。