Oracle ZFS Storage Appliance (ZFSSA) で Object Store を使う
はじめに
Oracle ZFS Storage Appliance は NFS や iSCSI、FC などを利用できる Unified Storage です。 Firmware ver OS8.7 から新たに Object Storage としても利用できるようになりましたので、設定して使ってみたいと思います。
設定
オブジェクトストアにアクセスするユーザを作成する。
オブジェクトストアとして利用する Filesystem の HTTP のオブジェクトストアモードを”読み取り/書き込み" に設定する。
先ほど作成したユーザが書き込めるように設定する。
構成→サービス→HTTP にてサービスを有効にし、先ほど作成したオブジェクトストアのパスを指定する。
動作確認
curl で確認をしていきます。
まず Proxy が設定されている場合は外しておきましょう。
$ unset http_proxy $ unset https_proxy
まず Token を取得します。この時、ユーザは一般ユーザで取得すること。root でもTokenは取得できるが、その後の操作はできないので一般ユーザで進めていきます。
$ curl -i -X GET -H 'X-Auth-User: demo01' -H 'X-Auth-Key: welcome1' http://cloud-zfs7320-vip.jp.osc.oracle.com/auth/v1.0 HTTP/1.1 200 OK Date: Fri, 16 Jun 2017 06:37:26 GMT Server: Apache X-Storage-Url: http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01 X-Storage-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 X-Trans-Id: tx9f6aab5dbe33495c8bba9-0059437ca6 Content-Length: 0 Content-Type: text/html; charset=utf-8
コンテナを作成
$ curl -v -H 'X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760' -i http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01/kazuito01 -X PUT * About to connect() to cloud-zfs7320-vip.jp.osc.oracle.com port 80 (#0) * Trying 10.122.12.35... connected * Connected to cloud-zfs7320-vip.jp.osc.oracle.com (10.122.12.35) port 80 (#0) > PUT /object/v1/export/object01/kazuito01 HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: cloud-zfs7320-vip.jp.osc.oracle.com > Accept: */* > X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 > < HTTP/1.1 201 Created HTTP/1.1 201 Created < Date: Fri, 16 Jun 2017 08:13:26 GMT Date: Fri, 16 Jun 2017 08:13:26 GMT < Server: Apache Server: Apache < X-Timestamp: 1497600806.63 X-Timestamp: 1497600806.63 < X-Trans-Id: tx1aa8d891b97ee11aca1dd-0059439326 X-Trans-Id: tx1aa8d891b97ee11aca1dd-0059439326 < Content-Length: 0 Content-Length: 0 < Content-Type: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8 < * Connection #0 to host cloud-zfs7320-vip.jp.osc.oracle.com left intact * Closing connection #0
ファイルをアップロード
$ curl -v -H 'X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760' http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01/my_fio.sh -T my_fio.sh * About to connect() to cloud-zfs7320-vip.jp.osc.oracle.com port 80 (#0) * Trying 10.122.12.35... connected * Connected to cloud-zfs7320-vip.jp.osc.oracle.com (10.122.12.35) port 80 (#0) > PUT /object/v1/export/object01/my_fio.sh HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: cloud-zfs7320-vip.jp.osc.oracle.com > Accept: */* > X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 > Content-Length: 482 > Expect: 100-continue > * Done waiting for 100-continue < HTTP/1.1 201 Created < Date: Fri, 16 Jun 2017 08:06:41 GMT < Server: Apache < X-Timestamp: 1497600401.57 < X-Trans-Id: tx16480743f13e60469a26d-0059439191 < Content-Length: 0 < Content-Type: application/json; charset=utf-8 < * Connection #0 to host cloud-zfs7320-vip.jp.osc.oracle.com left intact * Closing connection #0
リストを取得
$ curl -i http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01/ -X GET -H "Content-Length: 0" -H 'X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760' HTTP/1.1 200 OK Date: Fri, 16 Jun 2017 06:45:09 GMT Server: Apache X-Timestamp: 1497595509.63 X-Account-Object-Count: 2 X-Account-Container-Count: 2 X-Account-Bytes-Used: 1048576020 X-Trans-Id: tx2f1212afb1a7e442f31cf-0059437e75 Transfer-Encoding: chunked Content-Type: text/plain; charset=utf-8 container test.img
ファイルのダウンロード
$ curl -v -H 'X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760' -i http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01/kazuito01/my_fio.sh -X GET -O * About to connect() to cloud-zfs7320-vip.jp.osc.oracle.com port 80 (#0) * Trying 10.122.12.35... connected * Connected to cloud-zfs7320-vip.jp.osc.oracle.com (10.122.12.35) port 80 (#0) > GET /object/v1/export/object01/kazuito01/my_fio.sh HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: cloud-zfs7320-vip.jp.osc.oracle.com > Accept: */* > X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 > % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0< HTTP/1.1 200 OK < Date: Fri, 16 Jun 2017 08:28:33 GMT < Server: Apache < Content-Length: 482 < Accept-Ranges: bytes < Last-Modified: 2017-06-16T08:26:09 < Etag: 6c70a22fdcd02f8f085ba5cb9fff5be3 < X-Timestamp: 1497601713.85 < X-Trans-Id: txdad3ff790cee6ecd9beac-00594396b1 < { [data not shown] 120 482 120 482 0 0 3526 0 --:--:-- --:--:-- --:--:-- 117k* Connection #0 to host cloud-zfs7320-vip.jp.osc.oracle.com left intact * Closing connection #0
ファイルの削除
$ curl -v -H 'X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760' -i http://cloud-zfs7320-vip.jp.osc.oracle.com:80/object/v1/export/object01/kazuito01/test.tar -X DELETE * About to connect() to cloud-zfs7320-vip.jp.osc.oracle.com port 80 (#0) * Trying 10.122.12.35... connected * Connected to cloud-zfs7320-vip.jp.osc.oracle.com (10.122.12.35) port 80 (#0) > DELETE /object/v1/export/object01/kazuito01/test.tar HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: cloud-zfs7320-vip.jp.osc.oracle.com > Accept: */* > X-Auth-Token: ZFSSA_ba2629c6-5258-11e7-aed3-802128f06760 > < HTTP/1.1 204 No Content HTTP/1.1 204 No Content < Date: Fri, 16 Jun 2017 08:24:59 GMT Date: Fri, 16 Jun 2017 08:24:59 GMT < Server: Apache Server: Apache < X-Timestamp: 1497601499.44 X-Timestamp: 1497601499.44 < X-Trans-Id: tx5e5b0c36a1c66867d090f-00594395db X-Trans-Id: tx5e5b0c36a1c66867d090f-00594395db < Content-Length: 0 Content-Length: 0 < Content-Type: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8 < * Connection #0 to host cloud-zfs7320-vip.jp.osc.oracle.com left intact * Closing connection #0
その他
CloudBerry でもアクセスしてみました。 登録は以下のように指定してください。
このように見えてきます。
まとめ
このように ZFSSA を Object Storage として簡単に利用することができるようになりました。
また、認証を Openstack の Keystone と連携させることも可能です。詳細はこちらをご確認ください。