Logical Rabbit.

さくらのVPS

ConoHaのownCloudとオブジェクトストレージでオンラインストレージを作る(後編)

ConoHaのownCloudとオブジェクトストレージでオンラインストレージを作る(前編)の続き。いよいよオブジェクトストレージと連結し、Windowsの同期バックアップストレージとして運用しますよ。

ownCloudのデータ保存領域をオブジェクトストレージにする

ownCloud のドキュメントに設定のサンプルがあります。ただ、一部項目の入れ替えが必要となりますので注意。

ConoHaオブジェクトストレージを契約する

  1. ConoHa管理画面の「オブジェクトストレージ設定」 を開く
  2. 「ディスク容量」バーの右端にある設定アイコンをクリック
  3. お好みでディスク容量をセット。最低100GBからなので、予め使う容量が分かっているのでなければ、とりま100GBでよろしいかと。容量セット後から課金スタートです。

ConoHaオブジェクトストレージのAPI情報を確認する

APIユーザーにパスワードを設定します。既にある場合はテナント名、パスワード、エンドポイントURLを確認。

  1. 左側グローバルメニューの上から7つめ「API」をクリック
  2. 「APIユーザー」の右側「+ユーザー」ボタンをクリック
  3. 適宜パスワードをセット。ConoHaアカウント自体、ownCloud管理者、ownCloud運用VPSのroot(権限を持つ)アカウント等とはパスワードを変えておいたほうがより安全かと思われ。
  4. パスワードの他、画面上段の「テナント情報」内「テナントID」と「エンドポイント」内「Identity Service」の情報も確認。

ownCloudにオブジェクトストレージの情報をセットする

/var/www/htmi/owncloud/config/config.php に以下の内容を追加します。’dboassword’等と同じ階層になるよう注意。

'objectstore' => array(
  'class' => 'OC\\Files\\ObjectStore\\Swift',
  'arguments' => array(
    'username' => ←APIユーザー名
    'password' => ←APIパスワード
    'container' => 'owncloud', ←任意のコンテナ名(別途作成が必要)
    'region' => ← Identity Service URLの identity と conoha.io の間にあるサブドメインを指定。認証情報の endpoints.region としても得られます
    'url' => ← Identity Service のURL
    'tenantId' => ←テナントIDをセット
    'serviceName' => 'Object Storage Service' ←ConoHa APIのエンドポイント名
  ),
),

ハマった点としては tenantIdがありました。ownCloudのサンプルコードでは tenantName を使用しており、ConoHaのAPI情報にも「テナント名」があるのでてっきりコレかと思ったのですが、「テナントID」のほうを渡してやらないとConoHaの認証エンドポイントから他のエンドポイント一覧が提供されないという罠。しかも tenantName があると tenantId を書いてあっても無視される。…というのを ownCloud のソースコードを追いかけまわしてようやく見つけましたよ…。

ConoHaオブジェクトストレージにコンテナを作成する

コンテナは自動では作成されない模様。 autocreate オプションは true にしてみても反応しないし、ソースコード中には「テスト用」的なコメントがあったのでどこかで無効化されているんだろうな。ともあれ、仕方ないので node.js でコンテナ生成だけ実行するスクリプトを書きました。gistにテンプレートがありますので宜しければどうぞ(以下)。こちらでの注意としては、認証URL(AuthURL)にバージョン番号が入らない点があります。node.jsは v5.2.0-linux-x64 を使用していますが、ほぼ同一の JavaScript を他のサーバーでかなり前に入れた v0.12.7 で動かしていたりしますので、概ね動くかと思われ。しかし node.js のバージョン番号はよく分からん。なんで1年も経たないうちにこんなに上がるんだ。

Windows 7 との同期

できれば WebDAV でスマートにいきたいのですが、HTTPS にしないといけないようです(レジストリをいじればいけるっぽい)。後々ちゃんとしたSSL証明書を取得する方向でいきたいので、今回はひとまず ownCloudの公式デスクトップアプリを使うことにします。

  1. owncloud.org の ダウンロード画面 から「Desktop Clients」をクリック、Windows用インストーラをダウンロード
  2. さくさくとインストール(これといった選択肢もありませぬ)
  3. さくさくと起動すると、サーバーアドレスを入力する画面が現れますので、http:///owncloud/ を入力(結局ここでもHTTPS問題が発生…致し方なし)
  4. ユーザ名とパスワードを入力
  5. サーバー側の同期対象フォルダ、ローカル側の同期対象フォルダを選択

あとはローカル側に作成された同期フォルダにがつがつとモノを入れていけば同期されるようデス。

ファイルの行先を確認など。

本当にちゃんとConoHaオブジェクトストレージに収まっているんでしょうか…?

  • owncloud をインストールした VPS の /var/www/html/owncloud/data/administraotr/files/ にはファイルが作成されていません
  • ConoHaオブジェクトストレージのディスク使用量を確認すると、イイ感じに増加しております

ということで、まあオブジェクトストレージには収まったかな、と。次の疑問は、具体的にどういうオブジェクトになっているのか、とか、メタデータとかどうなんですかね?といった点ですが。

あと、HTTPSは早めに対応しないとなぁ…。