QNAP Systems, Inc. - ネットワーク接続ストレージ(NAS)

Language

Support

QTS で S3 と OpenStack に対応するオブジェクトストレージサービスをホストする

はじめに

概要

QNAP OSS (Object Storage Server/オブジェクトストレージサーバー) アプリを利用すれば、QNAP Turbo NAS で、S3 と OpenStack に対応するオブジェクトストレージプロトコル (現在、クラウドストレージにアクセスするための最も一般的な標準) を利用してデータにアクセスできます。OSS アプリは Turbo NAS のアクセス性と互換性を補完します。バックアップとアーカイブ、コンテンツ配信、文書管理など、クラウドオブジェクトストレージ向けに多様なアプリケーションが設計されていますが、それらに対処できます。クラウドストレージの人気がますます上昇する中、新しく作られたアプリケーションはほとんどがクラウドストレージ仕様になっています。そのため、Turbo NAS を利用し、本稼働やテストのためにアプリケーションにサービスを提供できます。また、アプリケーションを書き直さなくてもパブリッククラウドストレージから自分の Turbo NAS にデータを移行できます。

OSS アプリは統一されたデータアクセスを提供します。オブジェクトストレージプロトコルを利用してファイルにアクセスしたり、ネットワークファイル共有プロトコル (SMB/CIFS、NFS、FTP、WebDAV) を利用してオブジェクトにアクセスしたりできます。たとえば、ローカルネットワークで SMB/CIFS を使用し、Turbo NAS 上のファイルにアクセスして管理したり、オブジェクトストレージプロトコルを利用してインターネット経由のデータアクセスを同じファイルセットに提供したりできます。Turbo NAS 上のユーザーで、オブジェクトストレージプロトコル経由でデータにアクセスできるユーザーを制御したり、各ユーザーに複数のアクセスキーを与えたりできます。また、オブジェクトストレージアカウントにマッピングできる共有フォルダーとストレージアカウントにアクセスできるユーザーを制御できます。ネットワークファイルアクセスとオブジェクトストレージを統合することで、OSS アプリは QTS のオブジェクトストレージサービスのホスティングを簡単で安全なものにします。

主な機能

  • S3 と OpenStack に対応するオブジェクトストレージプロトコルをサポートする
  • OpenStack と S3 (大部分) で動的および静的マニフェスト別の大規模オブジェクトをサポートする
  • オブジェクトプロトコルとネットワークファイルプロトコルにより、ファイルへのユニファイドストレージアクセスをサポートする
  • ユーザーおよび共有フォルダーレベルでアクセス制御をサポートする
  • ドメインユーザーはオブジェクトストレージにアクセスできる
  • NAS ユーザーごとに最大 20 のアクセスキーペアをサポートする
  • スタンドアロンストレージサーバーまたは QTS Web サーバー仮想ホスト経由でアクセスできる
  • コンテナのプライベートアクセスとパブリックアクセス制御をサポートする
  • ダッシュボードにオブジェクトストレージアクセスの統計値を表示できる
  • ログを管理し、設定変更を監査し、追跡できる

注記: OSS アプリは、QTS 4.1 以上を実行する x86 ベースの Turbo NAS でのみご利用いただけます。

オブジェクトストレージ

データの整理

オブジェクトストレージは、オブジェクトと呼ばれる不連続単位を操作することでデータを整理する新しい方法です。各オブジェクトは、ファイルのように、ユーザーが定義した一連のバイナリデータです。ただし、ファイルとは異なり、オブジェクトはフォルダーの階層で整理されず、階層のパスでは特定されません。各オブジェクトは作成時に文字列で構成されたキーに関連付けられます。そのキーを利用してオブジェクトストレージに問い合わせることで、オブジェクトを取得できます。結果として、すべてのオブジェクトはフラットな名前空間で整理されます。つまり、フォルダー内にはフォルダーがありません。フォルダーを移動させるための操作がありません。このような編成ではオブジェクト間の依存性がなくなりますが、データを保存して取り出すという、ストレージシステムの基本的機能は維持されます。データをこのように整理することで、ストレージの大規模な拡張性と高い可用性が実現します。

オブジェクトの名前空間を 2 つの基本レベル、ストレージアカウントとコンテナで共有します。各ストレージアカウントは課金請求 ID を表します。これはストレージボリュームの場合と同様です。ストレージアカウントにはコンテナを作成し、初歩的な方法としてオブジェクトをグループ化したり、複数の名前空間を用意したりできます。前述のとおり、コンテナ内には他のコンテナはありません。

データアクセス

オブジェクトストレージにアクセスするためのプロトコルは HTTP/HTTPS を基盤とする RESTful API です。これはほとんどのネットワーク環境で利用できます。OSS のオブジェクトストレージ API はオブジェクトストレージの 2 つの API、S3 と OpenStack の両方に準拠しています。S3 は Amazon Web サービスの Simple Storage Service です。これは業界をリードし、最も人気のあるクラウドストレージサービスの 1 つです。OpenStack オブジェクトストレージ (以前は Swift と呼ばれていました) は、IBM、HP、Red Hat を含む、多くのベンダーに指示されているすぐれたオープンソースプロジェクトです。OpenStack はまた、パブリッククラウドサービスのホスティングだけでなく、プライベートクラウドにとつても将来有望なソリューションです。両方の API をサポートすることで、OSS はさまざまなアプリケーションを活用したり、2 つの API 間でデータを移行したりできます。

ただし、オブジェクトストレージは進化の途中にある技術であり、OSS は S3 と OpenStack のすべての機能を使えるわけではありません。本書にあるサポートされる API 機能のセクションをご覧ください。

オブジェクトストレージ API の詳細については、次のリンクにアクセスしてください。

ユニファイドストレージ

オブジェクトストレージサービスの管理を簡単にするために、OSS では、オブジェクトストレージとネットワークファイルストレージのストレージエンティティ間の次のマッピングを前提とします。

  • ストレージアカウントを共有フォルダーにマッピングする
  • コンテナを共有フォルダーの上位フォルダーにマッピングする
  • オブジェクトをファイルにマッピングする

たとえば、共有フォルダーが存在するとき、それに対応するストレージアカウントが存在します。共有フォルダーで SMB/NFS により上位フォルダーを作成するとき、OSS のストレージアカウントにもコンテナを作成します。構造が統一されているため、ファイルのパスをオブジェクトキーとして使用すれば、共有フォルダーのファイルにオブジェクトストレージプロトコルでアドレス指定できます。ネットワークファイルプロトコル経由でファイルの名前を変更するか、ファイルを移動し、ファイルのパスを変更した場合、そのオブジェクトキーも適宜変更されます。ファイルシステムのフォルダーはオブジェクトストレージのゼロバイトオブジェクトとしてアクセスされます。この場合も、そのオブジェクトキーがパスとして利用されます。

オブジェクト操作とファイル操作の両方でデータにアクセスし、管理できるため、自分のニーズに合ったアクセス方法を自由に選択できます。

注記: オブジェクトストレージのクライアントアプリケーションのほとんどは S3 と OpenStack の一般的サービスのために設計されており、互換性のために、ストレージアカウント、コンテナ、オブジェクトの名前として ASCII 以外の文字を使用することができません。OSS がクライアントアプリケーションと連動するために、オブジェクトストレージサービスがアクセスするエンティティ (ストレージアカウントやコンテナなど) に名前を付けるときは ASCII 文字のみを使用してください。

アクセス制御

オブジェクトストレージプロトコルにはアクセスキーを利用してアクセスします。これは従来のユーザー名とパスワードに代わるものであり、ユーザーの資格情報の露出を減らすため、セキュリティが向上します。セキュリティを強化するために、既定ではユーザーはオブジェクトストレージプロトコル経由でデータにアクセスできません。Turbo NAS またはドメインサーバーのローカルアカウントから OSS のユーザーリストに明示的にユーザーを追加し、そのユーザー用のアクセスキーを作成する必要があります。

オブジェクトストレージはインターネットアクセス用に設計されているため、安全上の理由から、既定では共有フォルダーにオブジェクトストレージプロトコルでアクセスできません。OSS ユーザーがアクセスするストレージアカウント (共有フォルダー) を明示的に許可する必要があります。ネットワークファイルプロトコル (FTP など) で共有フォルダーにアクセスする許可がユーザーに与えられている場合でも、OSS でストレージアカウントのアクセス許可リストに追加しない限り、該当するストレージアカウントにはアクセスできません。

アップロードされたオブジェクトの所有者は操作を行うアクセスキーを持つユーザーに割り当てられます。ただし、複雑になるのを避けるため、ファイルとフォルダーの詳細アクセス権 (ACL) はオブジェクトストレージサービスに適用されません。

大規模オブジェクト

OSS は、S3 対応 API の Multipart Upload と OpenStack ストレージ API の Large Object を利用した大規模ファイルアクセスをサポートします。

S3 Multipart Upload では、1 つのオブジェクトを部分の集合としてアップロードできます。すべての部分がアップロードされると、データは 1 つのオブジェクトとして表示されます。

OpenStack Large Object は 2 種類のオブジェクトから構成されます。オブジェクトコンテンツを保存するセグメントオブジェクトと、セグメントオブジェクトを 1 つの大きな論理オブジェクトにリンクするマニフェストオブジェクトです。マニフェストオブジェクトをダウンロードすると、セグメントオブジェクトのコンテンツが連結され、要求の応答本文で返されます。OSS は 2 種類の OpenStack Large Object をサポートします。Static Large Object (SLO) と Dynamic Large Object (DLO) です。

この機能を利用すると、大きなオブジェクトをチャンク (大きな塊) に分割し、たくさんのチャンクを並列でアップロードできます。並列の長所を生かすことでアップロードの速度が上がります。チャンクのアップロードに失敗した場合、そのチャンクをもう一度アップロードします。オブジェクト全体を再送信する必要はありません。

注記: OSS は各チャンク (S3 部分または OpenStack セグメント) をファイルとして保存します。非オブジェクトストレージプロトコルを利用して大型のオブジェクトにアクセスすることはできません。

OSS アプリの使用

概要

OSS は OpenStack Swift プロジェクトを基盤として開発されており、性能と簡易性の面で QTS のために最適化されています。次の手順でクラウドストレージサービスにアクセスする方法のように Turbo NAS へのアクセスを開始できます。

  1. QTS App Center から OSS アプリをインストールします
  2. Turbo NAS ユーザーを OSS ユーザーリストに追加します
  3. OSS ユーザーのアクセスキーを作成します
  4. ストレージアカウントのアクセス権を設定します
  5. S3 または OpenStack 対応ツールでオブジェクトストレージプロトコルを利用し、データにアクセスします

OSS アプリのインストールと起動

Turbo NAS に OSS をインストールするには、QTS Web インターフェイスに管理者としてサインインします。「App Center」に進み、「オブジェクトストレージサーバー」を見つけ、「QTS に追加」をクリックします。OSS をダウンロードし、インストールすると、そのアイコンが QTS デスクトップとクイックスタートメニューに表示されます。「オブジェクトストレージサーバー」をクリックし、管理インターフェイスを開きます。

メインメニュー

左側のメニューアイテムをクリックすると、メイン管理ユーザーインターフェイス Web ページを切り替えることができます。下に各メニューの機能の概要があります。

ダッシュボード:
(1) オブジェクトストレージの統計値を表示する
(2) オブジェクトストレージサービスのオン/オフを切り替える
(3) サービスエンドポイントの URL を表示する

ユーザー:
(1) オブジェクトストレージサービスを利用してデータにアクセスできるユーザーを管理する
(2) ユーザーアクセス資格情報 (アクセスキー) を管理する

ストレージアカウント:
(1) ストレージアカウントとそれにアクセスできるユーザーを管理する
(2) ストレージアカウントを作成/削除する
(3) ストレージアカウントの容量用途を表示する

コンテナ:
(1) コンテナを作成/削除する
(2) コンテナの匿名アクセスを有効にする
(3) 各コンテナの容量用途を表示する

サービスエンドポイント:
(1) 組み込みサーバーまたは QTS Web サーバーを使用するように選択する
(2) 組み込みサーバーのサービスポートを設定する
(3) サービスの仮想ホスト名を設定する

ダッシュボード

OSS はオブジェクトストレージサービスの統計値とエンドポイントを表示するためのダッシュボードを提供します。ここでサービスの有効/無効を切り替えることができます。前の時間、日、週の統計値が提供されます。各ストレージアカウントが共有フォルダーにマッピングされている (そして、共有フォルダーの上位サブフォルダーがコンテナにマッピングされている) ため、オブジェクトストレージプロトコルを利用してデータにアクセスする前は、これらの統計値にゼロ以外のカウントが表示されます。GET、HEAD、OPTION、POST、PUT、DELETE はオブジェクトストレージ API で使用される HTTP メソッドです。ダッシュボードには、各メソッドの使用カウントと転送されたバイト数が表示されます。

ユーザー管理

オブジェクトストレージプロトコルでデータにアクセスすることをユーザーに許可するには、「追加」] ボタンを押し、ユーザー管理ページで Turbo NAS からユーザーを選択します。Turbo NAS ユーザーを選択するとき、Turbo NAS に AD または LDAP によるアカウント認証が設定されている場合、ドメインユーザーの追加を選択できます。リストからユーザーを削除することもできます。

ユーザーを追加すると、ユーザー名とパスワードを利用し、オブジェクトストレージサービスにアクセスできます。ただし、アクセスキーを利用したほうが安全です。

注記: QTS コントロールパネルで Turbo NAS ユーザーを削除すると、ユーザーとアクセスキーは有効のまま残ります。OSS ユーザーリストからユーザーを削除することもできます。

アクセスキー管理

ユーザーを OSS ユーザーリストに追加すると、そのユーザーのアクセスキーを作成できます。アプリケーションのアクセスキーを使用し、オブジェクトストレージプロトコルでデータにアクセスします。アプリケーションはアクセスキーの所有者の代わりにデータにアクセスします。

OSS はユーザーに複数のアクセスキーを提供します。アクセスキーに不正利用の恐れがある場合、別のアクセスキーを利用する他のアプリケーションに影響を与えることなくアクセスキーを削除できます。安全上の一般的な慣行として、定期的に古いアクセスキーを新しいアクセスキーで交換します。

詳細を表示するにはアクセスキーの「プロパティ」ボタンをクリックします。プロトコルが異なるため、S3 と OpenStack のサービスエンドポイントと用語は異なります。OpenStack の場合、サービスエンドポイントはその認証サービスの URL です。S3 の場合、サービスエンドポイントはそのオブジェクトストレージサービスの URL です。OpenStack プロトコル経由でデータにアクセスするには、ユーザー名と API キーを使用します。S3 プロトコルを使用する場合、アクセスキーと秘密キーを使用します。

オブジェクトストレージはマルチテナントであるため、OpenStack ユーザー名と S3 アクセスキーにはストレージアカウントを含める必要があります。たとえば、OSS キー ID が「bB9MSEIrXEYFGcxXdW7f」で、アクセスするストレージアカウントが「cloudvault」の場合、OpenStack ユーザー名または S3 アクセスキーは「cloudvault:bB9MSEIrXEYFGcxXdW7f」になります。これを利用した場合、「cloudvault」ストレージアカウントにのみアクセスできることに注意してください。

ストレージアカウント管理

ストレージアカウントを管理するには、OSS の左側メニューの「ストレージアカウント」アイテムをクリックします。ストレージアカウントは共有フォルダーに等しいため、共有フォルダーはストレージアカウントとして一覧表示されます。ここで「作成」ボタンを押してストレージアカウントを作成することもできます。該当する共有フォルダーが既定の共有フォルダー設定で作成されます。ここでストレージアカウントを選択し、「削除」ボタンを押してストレージアカウントを削除することもできます。該当する共有フォルダーも削除されます。

注記: 一部の共有フォルダー (home、homes、USB、TMBackup など) はストレージアカウントとしてアクセスできません。オブジェクトストレージ統計値もこれらの共有フォルダーを除外します。

ストレージアカウントのアクセス権を設定するには、「アクション」列の「アクセス権」アイコンを押します。ユーザーをリストに追加できます。追加できる唯一のユーザーは OSS ユーザーリストに追加されているユーザーです。ユーザーにストレージアカウントへのアクセスを許可すると、そのユーザーが所有するすべてのアクセスキーを利用し、このストレージアカウントにアクセスできます。

オブジェクトストレージプロトコルはストレージアカウントとコンテナの用途を取得するための API を提供します。統計値の計算には時間とシステムリソースが必要なため、カウントは定期的に行われます。統計値を計算する時間/日付を選択できます。

コンテナ管理

OSS の左側メニューの「コンテナ」アイテムをクリックすると、コンテナを管理できます。コンテナは共有フォルダーの最上位フォルダーです。ストレージアカウントをクリックし、すべてのコンテナを一覧表示できます。また、コンテナを作成したり、削除したりできます。

注記: 共有フォルダーの一部の最上位ディレクトリには、コンテナとしてアクセスできないもの(@Recycle、tmp、async_pending、隠しフォルダー)もあります。オブジェクトストレージ統計値もこれらの最上位フォルダーを除外します。

パブリックコンテナの場合、それに含まれるすべてのオブジェクトに匿名アクセスできます。この仕組みは、すべてのユーザーにたくさんのファイルのダウンロードしてもらうときやコンテナのファイルを利用してウェブサイトをホストするときに便利です。これを行うには、コンテナを選択し、「アクセス権」ボタンを押し、権限を「プライベート」から「パブリック」に変更します。パブリックコンテナの URL は「http://nas_ip_address:oss_service_port/v1/AUTH_storage_account_name/file_path」のようになります。

サービスエンドポイント

OSS は組み込みサーバーと仮想ホストを利用した QTS ウェブサーバーによるデータアクセスサービスを提供します。OSS 組み込みサーバーを利用し、そのポートを設定できます。ただし、HTTPS をサポートしません。QTS ウェブサーバーを利用する場合、仮想ホスト名を設定する必要があります。オブジェクトストレージサービスのポートは QTS ウェブサーバーと同じになります。HTTPS もサポートできます。仮想ホスト名を使用している場合、オブジェクトストレージクライアントアプリケーションは FQDN によってのみオブジェクトストレージサービスにアクセスできます。


問題の報告

OSS アプリは問題解決を支援するために内部でデバッグログを生成します。OSS ウィンドウの右上隅にある [i] ボタンをクリックしてください。小さいウィンドウにバージョン情報と「デバッグレポートの生成」ボタンが表示されます。ボタンを押し、QNAP カスタマーサポートチームに送信するデバッグログファイルをダウンロードします。

データ保護

OSS アプリはオブジェクトを複製しませんが、RAID 保護ボリュームにオブジェクトを保存することでデータを保護できます。RAID は複製による保護よりも性能が良く、ストレージが効率的になります。障害復旧に関しては。RTRR または rsync を利用し、すべてのオブジェクトをリモート Turbo NAS に複製するか、CloudBackup NAS アプリを利用し、オブジェクトをパブリッククラウドサービスにバックアップできます。データセキュリティの場合、QTS が提供するボリューム暗号化を利用し、オブジェクトを暗号化できます。

オブジェクトストレージにアクセスする

CloudBerry Explorer を利用する

Cloudberry Lab は、さまざまなクラウドストレージ環境のデータにアクセスし、管理するための一連のデスクトップアプリケーションを提供します。OSS サービスへの接続を設定する方法については下記を参照してください。詳しくは、http://www.cloudberrylab.com/ をご覧ください。

S3 Explorer

  1. 「ファイル」 -> 「S3 対応」 -> 「S3 対応」の順にクリックし、接続設定ウィンドウを開きます。
  2. Turbo NAS の IP アドレスまたは FQDN とオブジェクトストレージクライアントのポート番号を「サービスポイント」フィールドに入力し、さらにアクセスキーと秘密を入力します。仮想ホストを使用する場合、DNS を設定するか、コンピューターのホストファイルを変更し、仮想ホスト名を Turbo NAS の IP アドレスにマッピングする必要があります。SSL を使用してデータ転送を暗号化する場合、Turbo NAS で自己署名 SSL 証明書が使われていれば、警告メッセージが表示されます。
  3. 「テスト接続」ボタンを押して設定が正しいことを確認し、[OK] ボタンを選択してウィンドウを閉じます。これでこの接続を利用してデータにアクセスできます。

OpenStack Storage Explorer

  1. 「ファイル」 -> 「OpenStack」の順にクリックし、接続設定ウィンドウを開きます。
  2. OSS OpenStack サービスエンドポイントの URL、Turbo NAS の適切な IP アドレスまたは FQDN、オブジェクトストレージサービスのポート番号を「認証サービス」フィールドに入力し、さらにユーザー名と API キーを入力します。仮想ホストを使用する場合、DNS を設定するか、コンピューターのホストファイルを変更し、仮想ホスト名を Turbo NAS の IP アドレスにマッピングする必要があります。SSL を使用し、HTTPS でデータ転送を暗号化できますが、Turbo NAS で自己署名 SSL 証明書が使われていれば、警告メッセージが表示されます。「キーストーン認証を使用する」は有効にしないでください。
  3. 「テスト接続」ボタンを押して設定が正しいことを確認し、[OK] ボタンを選択してウィンドウを閉じます。これでこの接続を利用してデータにアクセスできます。

QNAP CloudBackup アプリの使用

QNAP は CloudBackup アプリを提供します。このアプリを利用すれば、Turbo NAS から、S3 や OpenStack を含む、さまざまなクラウドストレージサービスにデータをバックアップできます。QTS App Center に進み、アプリをダウンロードし、アプリの指示に従い、バックアップソリューションとしてオブジェクトストレージプロトコルを使用してください。これで Turbo NAS 上のアプリを利用し、パブリックやプライベートのクラウドストレージにバックアップできます。

その他のソフトウェアユーティリティー

S3 と OpenStack にはさまざまなアプリケーションが用意されています。参照のためにアプリケーションの一部を以下に記載します。

  • Cyberduck (https://cyberduck.io/): Windows と Mac 用の S3 と OpenStack のブラウザー
  • Duplicati (http://www.duplicati.com/): Windows と Linux 用の S3 と OpenStack のバックアップクライアント
  • S3 Browser (http://s3browser.com/): S3 Windows クライアント
  • S3cmd (http://s3tools.org/): Linux の S3 のコマンドラインクライアントソフトウェア
  • Cloud Explorer (https://github.com/rusher81572/cloudExplorer): Windows、Mac、Linux 用の S3 ブラウザー
  • s3fs (https://code.google.com/p/s3fs/): S3 により支援される FUSE ベースのファイルシステム。ローカルファイルシステムの読み取り/書き込みとしてバケットをマウントします。

開発者キット

S3 と OpenStack のアプリケーションを開発するためのさまざまなオープンソース開発リソース (SDK) をインターネットでも探すことができます。

  • AWS サンプルコード、ライブラリ、文書 (http://aws.amazon.com/code)
  • OpenStack ソフトウェア開発キット (https://wiki.openstack.org/wiki/SDKs)

性能評価

次のツールを利用し、Turbo NAS のオブジェクトストレージサービスの性能をテストできます。

  • COSBench (https://github.com/intel-cloud/cosbench)
  • Swift Bench (https://github.com/openstack/swift-bench)

サポートされる API

OSS は S3 と OpenStack API の基本的機能セットをサポートします。ただし、OSS はユニファイドストレージを実行し、オブジェクトとファイルの両方でデータにアクセスできるため、API の動作は純粋なオブジェクトストレージとは少し異なります。本稼働サービスに OSS を利用する前にテストを実施してください。

OpenStack ストレージ

  • アカウントメタデータの取得
  • Swift ACL
  • コンテナの一覧表示
  • コンテナの削除
  • コンテナの作成
  • コンテナメタデータの取得
  • コンテナメタデータの更新
  • コンテナメタデータの削除
  • オブジェクトの一覧表示
  • オブジェクトの作成 (最大オブジェクトサイズ: 1TB)
  • 大型オブジェクトの作成 (SLO と DLO をサポート)
  • 推奨セグメントサイズ: 5GB
  • オブジェクトの削除 (一括削除をサポート)
  • オブジェクトの取得
  • オブジェクトのコピー
  • オブジェクトメタデータの取得
  • オブジェクトメタデータの更新
  • CORS
  • TempURL
  • フォーム POST

S3

  • バケットの一覧表示
  • バケットの削除
  • バケットの作成
  • バケット情報の取得 (HEAD)
  • オブジェクトの配置
  • オブジェクトの削除
  • 複数のオブジェクトの削除
  • オブジェクトの取得
  • オブジェクト情報の取得 (HEAD)
  • オブジェクトのコピー
  • マルチパートアップロード
リリース日: 2014-11-28
役に立ちましたか ?
ご意見をいただき、ありがとうございます。
ご意見をいただき、ありがとうございます。 ご質問がありましたら、support@qnap.com にお問合せください
100% の人が、これは役に立つと思っています。